mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-18 17:50:29 +02:00
make sure we compile boot code in (guile), not (guile-user)
* libguile/eval.h: * libguile/eval.c (scm_m_eval_when): Define a cheap eval-when, used before syncase has booted. * module/Makefile.am: Reorder to put (system vm) and (system repl) modules after the compiler, as they are not needed at runtime. * module/ice-9/boot-9.scm: Move the eval-when earlier, to be the first thing -- so when we recompile Guile we do so all in the '(guile) module, not '(guile-user). * module/ice-9/compile-psyntax.scm: Rewrite to assume that psyntax.scm will eval-when to set its module, etc. Have everything in a let -- otherwise the `format' call is in (guile), but `target' was defined in (guile-user). Also, write in an eval-when to the expanded file. * module/ice-9/psyntax-pp.scm: Regenerate. * module/ice-9/networking.scm: * module/ice-9/psyntax.scm: * module/ice-9/r4rs.scm: Sprinkles of eval-when, for flavor.
This commit is contained in:
parent
34ad4f83ca
commit
9c35c5796c
10 changed files with 73 additions and 43 deletions
|
@ -2140,6 +2140,25 @@ unmemoize_at_call_with_values (const SCM expr, const SCM env)
|
|||
unmemoize_exprs (SCM_CDR (expr), env));
|
||||
}
|
||||
|
||||
SCM_SYNTAX (s_eval_when, "eval-when", scm_makmmacro, scm_m_eval_when);
|
||||
SCM_GLOBAL_SYMBOL (scm_sym_eval_when, s_eval_when);
|
||||
SCM_SYMBOL (sym_eval, "eval");
|
||||
SCM_SYMBOL (sym_load, "load");
|
||||
|
||||
|
||||
SCM
|
||||
scm_m_eval_when (SCM expr, SCM env SCM_UNUSED)
|
||||
{
|
||||
ASSERT_SYNTAX (scm_ilength (expr) == 3, s_bad_expression, expr);
|
||||
ASSERT_SYNTAX (scm_ilength (scm_cadr (expr)) > 0, s_bad_expression, expr);
|
||||
|
||||
if (scm_is_true (scm_memq (sym_eval, scm_cadr (expr)))
|
||||
|| scm_is_true (scm_memq (sym_load, scm_cadr (expr))))
|
||||
return scm_caddr (expr);
|
||||
|
||||
return scm_list_1 (SCM_IM_BEGIN);
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
||||
/* See futures.h for a comment why futures are not enabled.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue