mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 17:20:29 +02:00
* use an applicable SMOB to represent continuations, instead of a
custom tc7 type. This will make it easier to support R5RS multiple value continuations, without the use of a Scheme-level wrapper. * continuations.c (scm_tc16_continuation, continuation_mark, continuation_free, continuation_print, continuation_apply): new SMOB support. (scm_make_continuation): new procedure, replaces scm_make_cont with a different interface. (copy_stack_and_call, scm_dynthrow, scm_init_continuations): rewritten. (CHEAP_CONTINUATIONS): removed non-working code completely. (scm_call_continuation): removed. * continuations.h (struct scm_contregs): add num_stack_items and stack fields. previously stack was stored following this struct: use a tail array instead. (SCM_CONTINUATIONP): new macro. (SCM_CONTINUATION_LENGTH, SCM_SET_CONTINUATION_LENGTH): rewritten. (SCM_SET_CONTREGS): removed. * tags.h: removed scm_tc7_contin (was tag 61). * debug.c, gc.c, hash.c, print.c, procprop.c, procs.c: removed scm_tc7_contin support. * eval.c: use scm_make_continuation instead of scm_make_cont. don't set jump buffers here. remove scm_tc7_contin support. * init.c, root.c: create SMOB continuation for rootcont instead of scm_tc7_contin. call scm_init_continuations before scm_init_root. * root.c: remove support for static jmpbuf. It's not used by default and I broke it. create SMOB continuation for rootcont. * stacks.c: use SCM_CONTINUATIONP.
This commit is contained in:
parent
7f555fb4ed
commit
5f144b105d
14 changed files with 240 additions and 210 deletions
|
@ -431,7 +431,6 @@ SCM_DEFINE (scm_procedure_source, "procedure-source", 1, 0, 0,
|
|||
SCM_EOL,
|
||||
SCM_ENV (proc))));
|
||||
}
|
||||
case scm_tc7_contin:
|
||||
case scm_tcs_subrs:
|
||||
#ifdef CCLO
|
||||
case scm_tc7_cclo:
|
||||
|
@ -455,7 +454,6 @@ SCM_DEFINE (scm_procedure_environment, "procedure-environment", 1, 0, 0,
|
|||
switch (SCM_TYP7 (proc)) {
|
||||
case scm_tcs_closures:
|
||||
return SCM_ENV (proc);
|
||||
case scm_tc7_contin:
|
||||
case scm_tcs_subrs:
|
||||
#ifdef CCLO
|
||||
case scm_tc7_cclo:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue