#define FUNC_NAME __FUNCTION__
-static int module_count;
-
-void
-ly_init_anonymous_module (void *data)
-{
- (void) data;
-}
-
SCM
ly_make_anonymous_module (bool safe)
{
SCM mod = SCM_EOL;
if (!safe)
{
- String s = "*anonymous-ly-" + to_string (module_count++) + "*";
- mod = scm_c_define_module (s.to_str0 (), ly_init_anonymous_module, 0);
+ SCM maker = ly_lily_module_constant ("make-module");
+
+ SCM scm_module = ly_lily_module_constant ("the-scm-module");
+
+ mod = scm_call_0 (maker);
+ scm_module_define (mod, ly_symbol2scm ("%module-public-interface"),
+ mod);
+
+ ly_use_module (mod, scm_module);
ly_use_module (mod, global_lily_module);
}
else
"Copy all bindings from module SRC into DEST.")
{
SCM_VALIDATE_MODULE (1, src);
- scm_internal_hash_fold ((Hash_cl_func) &module_define_closure_func,
+ scm_internal_hash_fold ((Hash_cl_func) & module_define_closure_func,
(void *) dest,
SCM_EOL, SCM_MODULE_OBARRAY (src));
return SCM_UNSPECIFIED;
SCM_VALIDATE_MODULE (1, mod);
SCM obarr = SCM_MODULE_OBARRAY (mod);
- return scm_internal_hash_fold ((Hash_cl_func) &accumulate_symbol,
+ return scm_internal_hash_fold ((Hash_cl_func) & accumulate_symbol,
NULL, SCM_EOL, obarr);
}
{
(void) closure;
if (scm_variable_bound_p (val) == SCM_BOOL_T)
- {
- return scm_cons (scm_cons (key, scm_variable_ref (val)), result);
- }
- else
- {
- programming_error ("Unbound variable in module.");
- return result;
- }
+ return scm_cons (scm_cons (key, scm_variable_ref (val)), result);
+ programming_error ("unbound variable in module");
+ return result;
}
LY_DEFINE (ly_module2alist, "ly:module->alist",
SCM_VALIDATE_MODULE (1, mod);
SCM obarr = SCM_MODULE_OBARRAY (mod);
- return scm_internal_hash_fold ((Hash_cl_func) &entry_to_alist, NULL, SCM_EOL, obarr);
+ return scm_internal_hash_fold ((Hash_cl_func) & entry_to_alist, NULL, SCM_EOL, obarr);
}
/* Lookup SYM, but don't give error when it is not defined. */