1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-08 22:50:27 +02:00

Add tc7 for finalizer objects

Whippet will need this.

* libguile/scm.h (scm_tc7_finalizer): Reserve.
* libguile/evalext.c (scm_self_evaluating_p): Add finalizer case.
* libguile/print.c (iprin1):
* libguile/finalizers.h:
* libguile/finalizers.c (scm_i_print_finalizer): Arrange to print
finalizers.
* module/oop/goops.scm (<finalizer>):
* libguile/goops.c (class_finalizer, scm_class_of)
(scm_sys_goops_early_init): Wire up support for <finalizer>.
* module/system/base/types/internal.scm (heap-tags): Add finalizers.
* module/system/vm/assembler.scm (system): Add emit-finalizer?.
This commit is contained in:
Andy Wingo 2025-05-02 16:21:17 +02:00
parent 532df66e07
commit cf25a94745
9 changed files with 28 additions and 4 deletions

View file

@ -39,6 +39,7 @@
#include "continuations.h"
#include "control.h"
#include "eval.h"
#include "finalizers.h"
#include "fluids.h"
#include "foreign.h"
#include "frames.h"
@ -760,6 +761,9 @@ iprin1 (SCM exp, SCM port, scm_print_state *pstate)
case scm_tc7_bitvector:
scm_i_print_bitvector (exp, port, pstate);
break;
case scm_tc7_finalizer:
scm_i_print_finalizer (exp, port, pstate);
break;
case scm_tc7_thread:
scm_i_print_thread (exp, port, pstate);
break;