1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 17:50:29 +02:00

* modules.c: Use applicable smobs for eval closures instead of

compiled closures.  Include "libguile/smob.h".
(f_eval_closure): Removed.
(scm_eval_closure_tag): New variable.
(scm_eval_closure_lookup): Renamed from eval_closure.
This function now takes a smob instead of a compiled closure.
(scm_standard_eval_closure): Create a smob instead of a compiled
closure.
(scm_init_modules): Initialize the eval closure type as a smob.
* modules.h (SCM_EVAL_CLOSURE_P): New macro.
(scm_eval_closure_tag, scm_eval_closure_lookup): Declare.
* symbols.c: Include "libguile/smob.h".
(scm_sym2vcell): Call scm_eval_closure_lookup directly if THUNK
is an eval closure.
This commit is contained in:
Keisuke Nishida 2000-09-10 22:22:36 +00:00
parent 4c7cb8ba94
commit fb43bf74e2
3 changed files with 18 additions and 14 deletions

View file

@ -73,10 +73,13 @@
#define SCM_MODULE_EVAL_CLOSURE(module) \
SCM_PACK (SCM_STRUCT_DATA (module)[scm_module_index_eval_closure])
#define SCM_EVAL_CLOSURE_P(OBJ) SCM_SMOB_PREDICATE (scm_eval_closure_tag, OBJ)
extern SCM scm_module_system_booted_p;
extern SCM scm_module_tag;
extern SCM scm_eval_closure_tag;
extern SCM scm_the_root_module (void);
extern SCM scm_selected_module (void);
@ -90,6 +93,7 @@ extern SCM scm_load_scheme_module (SCM name);
extern SCM scm_env_top_level (SCM env);
extern SCM scm_top_level_env (SCM thunk);
extern SCM scm_system_module_env_p (SCM env);
extern SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep);
extern SCM scm_standard_eval_closure (SCM module);
extern void scm_init_modules (void);
extern void scm_post_boot_init_modules (void);