mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-06 15:40:29 +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:
parent
532df66e07
commit
cf25a94745
9 changed files with 28 additions and 4 deletions
|
@ -40,6 +40,7 @@
|
|||
#include "gsubr.h"
|
||||
#include "init.h"
|
||||
#include "numbers.h"
|
||||
#include "ports.h"
|
||||
#include "struct.h"
|
||||
#include "smob.h"
|
||||
#include "threads.h"
|
||||
|
@ -459,6 +460,15 @@ scm_set_automatic_finalization_enabled (int enabled_p)
|
|||
return was_enabled_p;
|
||||
}
|
||||
|
||||
int
|
||||
scm_i_print_finalizer (SCM exp, SCM port, scm_print_state *pstate SCM_UNUSED)
|
||||
{
|
||||
scm_puts ("#<finalizer ", port);
|
||||
scm_uintprint (SCM_UNPACK (exp), 16, port);
|
||||
scm_puts (")>", port);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
scm_run_finalizers (void)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue