1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-02 23:50:47 +02:00

Give continuations (contregs) their own static tc16

* libguile/continuations-internal.h: New file, for internal definitions.
* libguile/continuations.h: Move out internal definitions.
* libguile/Makefile.am: Add new file.
* libguile/continuations.c: Adapt to put the tag in the beginning of the
continuation (contregs) structure.
* libguile/eq.c:
* libguile/goops.c:
* libguile/init.c:
* libguile/print.c:
* libguile/scm.h:
* libguile/stacks.c:
* libguile/vm.c:
* module/oop/goops.scm: Adapt to contregs tc16 change.
This commit is contained in:
Andy Wingo 2025-06-13 13:13:02 +02:00
parent f47fe6e752
commit 12da6739b1
12 changed files with 156 additions and 133 deletions

View file

@ -141,6 +141,7 @@ static SCM class_ephemeron_table;
static SCM class_character_set;
static SCM class_condition_variable;
static SCM class_mutex;
static SCM class_continuation;
static struct scm_ephemeron_table *vtable_class_map;
static SCM pre_goops_vtables = SCM_EOL;
@ -351,6 +352,8 @@ SCM_DEFINE (scm_class_of, "class-of", 1, 0, 0,
return class_condition_variable;
case scm_tc16_mutex:
return class_mutex;
case scm_tc16_continuation:
return class_continuation;
default:
abort ();
}
@ -988,6 +991,7 @@ SCM_DEFINE (scm_sys_goops_early_init, "%goops-early-init", 0, 0, 0,
class_character_set = scm_variable_ref (scm_c_lookup ("<character-set>"));
class_condition_variable = scm_variable_ref (scm_c_lookup ("<condition-variable>"));
class_mutex = scm_variable_ref (scm_c_lookup ("<mutex>"));
class_continuation = scm_variable_ref (scm_c_lookup ("<continuation>"));
create_smob_classes ();
create_struct_classes ();