diff --git a/collects/scheme/place.ss b/collects/scheme/place.ss new file mode 100644 index 0000000000..513b93abb9 --- /dev/null +++ b/collects/scheme/place.ss @@ -0,0 +1,7 @@ +(module place '#%kernel + (#%require '#%place) + + (#%provide place + place_sleep + place_wait + place?)) diff --git a/src/mzscheme/src/env.c b/src/mzscheme/src/env.c index 728420da5c..3574c9c295 100644 --- a/src/mzscheme/src/env.c +++ b/src/mzscheme/src/env.c @@ -319,6 +319,7 @@ Scheme_Env *scheme_engine_instance_init() { place_instance_init_pre_kernel(stack_base); make_kernel_env(); + scheme_init_parameterization_readonly_globals(); env = place_instance_init_post_kernel(); return env; @@ -348,6 +349,8 @@ static void place_instance_init_pre_kernel(void *stack_base) { scheme_make_thread(stack_base); + scheme_init_module_resolver(); + #ifdef TIME_STARTUP_PROCESS printf("process @ %ld\n", scheme_get_process_milliseconds()); #endif diff --git a/src/mzscheme/src/module.c b/src/mzscheme/src/module.c index 150f4f73f9..11bde2ac7e 100644 --- a/src/mzscheme/src/module.c +++ b/src/mzscheme/src/module.c @@ -319,8 +319,6 @@ void scheme_init_module(Scheme_Env *env) scheme_install_type_writer(scheme_module_type, write_module); scheme_install_type_reader(scheme_module_type, read_module); - scheme_init_module_resolver(); - GLOBAL_PARAMETER("current-module-name-resolver", current_module_name_resolver, MZCONFIG_CURRENT_MODULE_RESOLVER, env); GLOBAL_PARAMETER("current-module-declare-name", current_module_name_prefix, MZCONFIG_CURRENT_MODULE_NAME, env); diff --git a/src/mzscheme/src/schpriv.h b/src/mzscheme/src/schpriv.h index 84ea52b821..d2f6f82139 100644 --- a/src/mzscheme/src/schpriv.h +++ b/src/mzscheme/src/schpriv.h @@ -201,6 +201,7 @@ void scheme_init_dynamic_extension(Scheme_Env *env); extern void scheme_regexp_initialize(Scheme_Env *env); #endif void scheme_init_memtrace(Scheme_Env *env); +void scheme_init_parameterization_readonly_globals(); void scheme_init_parameterization(Scheme_Env *env); void scheme_init_getenv(void); diff --git a/src/mzscheme/src/thread.c b/src/mzscheme/src/thread.c index 59a702b9a4..5f206268b2 100644 --- a/src/mzscheme/src/thread.c +++ b/src/mzscheme/src/thread.c @@ -815,18 +815,21 @@ void scheme_init_memtrace(Scheme_Env *env) scheme_finish_primitive_module(newenv); } -void scheme_init_parameterization(Scheme_Env *env) +void scheme_init_parameterization_readonly_globals() { - Scheme_Object *v; - Scheme_Env *newenv; - REGISTER_SO(scheme_exn_handler_key); REGISTER_SO(scheme_parameterization_key); REGISTER_SO(scheme_break_enabled_key); scheme_exn_handler_key = scheme_make_symbol("exnh"); scheme_parameterization_key = scheme_make_symbol("paramz"); scheme_break_enabled_key = scheme_make_symbol("break-on?"); +} +void scheme_init_parameterization(Scheme_Env *env) +{ + Scheme_Object *v; + Scheme_Env *newenv; + REGISTER_SO(recycle_cell); REGISTER_SO(maybe_recycle_cell);