diff --git a/include/mes/builtins.h b/include/mes/builtins.h index 63e6dc44..35a47ce1 100644 --- a/include/mes/builtins.h +++ b/include/mes/builtins.h @@ -105,6 +105,7 @@ struct scm *make_module_type (); struct scm *module_printer (struct scm *module); struct scm *module_variable (struct scm *module, struct scm *name); struct scm *module_define_x (struct scm *module, struct scm *name, struct scm *value); +struct scm *initial_module (); /* src/posix.c */ struct scm *abort_ (); struct scm *exit_ (struct scm *x); diff --git a/include/mes/symbols.h b/include/mes/symbols.h index 58d3a8de..98cbac8c 100644 --- a/include/mes/symbols.h +++ b/include/mes/symbols.h @@ -86,7 +86,6 @@ extern struct scm *cell_symbol_portable_macro_expand; extern struct scm *cell_symbol_sc_expander_alist; extern struct scm *cell_symbol_call_with_values; extern struct scm *cell_symbol_call_with_current_continuation; -extern struct scm *cell_symbol_boot_module; extern struct scm *cell_symbol_current_module; extern struct scm *cell_symbol_primitive_load; extern struct scm *cell_symbol_car; @@ -143,8 +142,8 @@ extern struct scm *cell_symbol_test; // CONSTANT CELL_UNSPECIFIED 7 #define CELL_UNSPECIFIED 7 -// CONSTANT CELL_SYMBOL_RECORD_TYPE 82 -#define CELL_SYMBOL_RECORD_TYPE 82 +// CONSTANT CELL_SYMBOL_RECORD_TYPE 81 +#define CELL_SYMBOL_RECORD_TYPE 81 #endif /* __MES_SYMBOLS_H */ diff --git a/mes/module/mes/fluids.mes b/mes/module/mes/fluids.mes index 5fe3f187..ca36d31c 100644 --- a/mes/module/mes/fluids.mes +++ b/mes/module/mes/fluids.mes @@ -28,7 +28,7 @@ ((lambda (fluid) `(begin (module-define! - (boot-module) + (initial-module) ',fluid ((lambda (v) (lambda ( . rest) diff --git a/src/builtins.c b/src/builtins.c index 8178169d..cb114457 100644 --- a/src/builtins.c +++ b/src/builtins.c @@ -215,6 +215,7 @@ mes_builtins (struct scm *a) /*:((internal)) */ a = init_builtin (builtin_type, "module-printer", 1, &module_printer, a); a = init_builtin (builtin_type, "module-variable", 2, &module_variable, a); a = init_builtin (builtin_type, "module-define!", 3, &module_define_x, a); + a = init_builtin (builtin_type, "initial-module", 0, &initial_module, a); /* src/posix.c */ a = init_builtin (builtin_type, "abort", 0, &abort_, a); a = init_builtin (builtin_type, "exit", 1, &exit_, a); diff --git a/src/eval-apply.c b/src/eval-apply.c index c531bad6..2bdc5817 100644 --- a/src/eval-apply.c +++ b/src/eval-apply.c @@ -291,7 +291,6 @@ expand_variable_ (struct scm *x, struct scm *formals, int top_p) /*:((int else if (a == cell_symbol_quote) return cell_unspecified; else if (a->type == TSYMBOL - && a != cell_symbol_boot_module && a != cell_symbol_current_module && a != cell_symbol_primitive_load && formal_p (x->car, formals) == 0) @@ -538,11 +537,6 @@ apply: R1 = R0; goto vm_return; } - if (c == cell_symbol_boot_module) - { - R1 = M0; - goto vm_return; - } } else if (t == TPAIR) { @@ -716,8 +710,6 @@ eval: } else if (t == TSYMBOL) { - if (R1 == cell_symbol_boot_module) - goto vm_return; if (R1 == cell_symbol_current_module) goto vm_return; if (R1 == cell_symbol_begin) diff --git a/src/module.c b/src/module.c index 7242c4e4..aa647c8c 100644 --- a/src/module.c +++ b/src/module.c @@ -65,6 +65,12 @@ make_initial_module (struct scm *a) /*:((internal)) */ return module; } +struct scm * +initial_module () +{ + return M0; +} + struct scm * module_printer (struct scm *module) { diff --git a/src/symbol.c b/src/symbol.c index 821546d4..9e6993ac 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -120,7 +120,6 @@ init_symbols_ () /*:((internal)) */ cell_symbol_sc_expander_alist = init_symbol (g_symbol, TSYMBOL, "*sc-expander-alist*"); cell_symbol_call_with_values = init_symbol (g_symbol, TSYMBOL, "call-with-values"); cell_symbol_call_with_current_continuation = init_symbol (g_symbol, TSYMBOL, "call-with-current-continuation"); - cell_symbol_boot_module = init_symbol (g_symbol, TSYMBOL, "boot-module"); cell_symbol_current_module = init_symbol (g_symbol, TSYMBOL, "current-module"); cell_symbol_primitive_load = init_symbol (g_symbol, TSYMBOL, "primitive-load"); cell_symbol_car = init_symbol (g_symbol, TSYMBOL, "car"); @@ -190,7 +189,6 @@ init_symbols () /*:((internal)) */ struct scm *a = cell_nil; a = acons (cell_symbol_call_with_values, cell_symbol_call_with_values, a); - a = acons (cell_symbol_boot_module, cell_symbol_boot_module, a); a = acons (cell_symbol_current_module, cell_symbol_current_module, a); a = acons (cell_symbol_mes_version, make_string0 (MES_VERSION), a); diff --git a/tests/macro.test b/tests/macro.test index 126e1e73..03d82e53 100755 --- a/tests/macro.test +++ b/tests/macro.test @@ -69,7 +69,7 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests 'begin (list 'module-define! - (list 'boot-module) + (list 'initial-module) (list 'quote fluid) (list (lambda (v)