fix cross-phase-persistent attribute of primitive modules
This commit is contained in:
parent
c71993badd
commit
a6f8f00f55
|
@ -0,0 +1,17 @@
|
|||
#lang racket/base
|
||||
(require racket/place)
|
||||
|
||||
(define (go)
|
||||
(place ch
|
||||
(printf "running\n")
|
||||
(parameterize ([current-namespace (make-base-namespace)])
|
||||
(eval '(module with-contract-#%app-app racket/kernel
|
||||
(#%require '#%network)
|
||||
(#%declare #:cross-phase-persistent))))
|
||||
(printf "done\n")))
|
||||
|
||||
(module+ main
|
||||
(printf "creating place\n")
|
||||
(define p (go))
|
||||
(printf "waiting\n")
|
||||
(place-wait p))
|
|
@ -528,6 +528,7 @@ EXPORTS
|
|||
scheme_save_initial_module_set
|
||||
scheme_primitive_module
|
||||
scheme_finish_primitive_module
|
||||
scheme_set_primitive_module_phaseless
|
||||
scheme_protect_primitive_provide
|
||||
scheme_make_modidx
|
||||
scheme_apply_for_syntax_in_env
|
||||
|
|
|
@ -543,6 +543,7 @@ EXPORTS
|
|||
scheme_save_initial_module_set
|
||||
scheme_primitive_module
|
||||
scheme_finish_primitive_module
|
||||
scheme_set_primitive_module_phaseless
|
||||
scheme_protect_primitive_provide
|
||||
scheme_make_modidx
|
||||
scheme_apply_for_syntax_in_env
|
||||
|
|
|
@ -545,6 +545,7 @@ scheme_install_macro
|
|||
scheme_save_initial_module_set
|
||||
scheme_primitive_module
|
||||
scheme_finish_primitive_module
|
||||
scheme_set_primitive_module_phaseless
|
||||
scheme_protect_primitive_provide
|
||||
scheme_make_modidx
|
||||
scheme_apply_for_syntax_in_env
|
||||
|
|
|
@ -551,6 +551,7 @@ scheme_install_macro
|
|||
scheme_save_initial_module_set
|
||||
scheme_primitive_module
|
||||
scheme_finish_primitive_module
|
||||
scheme_set_primitive_module_phaseless
|
||||
scheme_protect_primitive_provide
|
||||
scheme_make_modidx
|
||||
scheme_apply_for_syntax_in_env
|
||||
|
|
|
@ -5862,7 +5862,7 @@ Scheme_Env *scheme_primitive_module(Scheme_Object *name, Scheme_Env *for_env)
|
|||
m = MALLOC_ONE_TAGGED(Scheme_Module);
|
||||
m->so.type = scheme_module_type;
|
||||
m->predefined = scheme_starting_up;
|
||||
m->phaseless = (scheme_starting_up ? scheme_true : NULL);
|
||||
m->phaseless = scheme_true;
|
||||
|
||||
env = scheme_new_module_env(for_env, m, 0);
|
||||
|
||||
|
@ -5923,6 +5923,11 @@ Scheme_Env *scheme_primitive_module(Scheme_Object *name, Scheme_Env *for_env)
|
|||
return env;
|
||||
}
|
||||
|
||||
void scheme_set_primitive_module_phaseless(Scheme_Env *env, int phaseless)
|
||||
{
|
||||
env->module->phaseless = (phaseless ? scheme_true : NULL);
|
||||
}
|
||||
|
||||
void scheme_finish_primitive_module(Scheme_Env *env)
|
||||
{
|
||||
Scheme_Module *m = env->module;
|
||||
|
|
|
@ -1029,6 +1029,7 @@ MZ_EXTERN void scheme_install_macro(Scheme_Bucket *b, Scheme_Object *v);
|
|||
MZ_EXTERN void scheme_save_initial_module_set(Scheme_Env *env);
|
||||
MZ_EXTERN Scheme_Env *scheme_primitive_module(Scheme_Object *name, Scheme_Env *for_env);
|
||||
MZ_EXTERN void scheme_finish_primitive_module(Scheme_Env *env);
|
||||
MZ_EXTERN void scheme_set_primitive_module_phaseless(Scheme_Env *env, int phaseless);
|
||||
MZ_EXTERN void scheme_protect_primitive_provide(Scheme_Env *env, Scheme_Object *name);
|
||||
|
||||
MZ_EXTERN Scheme_Object *scheme_make_modidx(Scheme_Object *path,
|
||||
|
|
|
@ -844,6 +844,7 @@ void (*scheme_install_macro)(Scheme_Bucket *b, Scheme_Object *v);
|
|||
void (*scheme_save_initial_module_set)(Scheme_Env *env);
|
||||
Scheme_Env *(*scheme_primitive_module)(Scheme_Object *name, Scheme_Env *for_env);
|
||||
void (*scheme_finish_primitive_module)(Scheme_Env *env);
|
||||
void (*scheme_set_primitive_module_phaseless)(Scheme_Env *env, int phaseless);
|
||||
void (*scheme_protect_primitive_provide)(Scheme_Env *env, Scheme_Object *name);
|
||||
Scheme_Object *(*scheme_make_modidx)(Scheme_Object *path,
|
||||
Scheme_Object *base,
|
||||
|
|
|
@ -614,6 +614,7 @@
|
|||
scheme_extension_table->scheme_save_initial_module_set = scheme_save_initial_module_set;
|
||||
scheme_extension_table->scheme_primitive_module = scheme_primitive_module;
|
||||
scheme_extension_table->scheme_finish_primitive_module = scheme_finish_primitive_module;
|
||||
scheme_extension_table->scheme_set_primitive_module_phaseless = scheme_set_primitive_module_phaseless;
|
||||
scheme_extension_table->scheme_protect_primitive_provide = scheme_protect_primitive_provide;
|
||||
scheme_extension_table->scheme_make_modidx = scheme_make_modidx;
|
||||
scheme_extension_table->scheme_apply_for_syntax_in_env = scheme_apply_for_syntax_in_env;
|
||||
|
|
|
@ -614,6 +614,7 @@
|
|||
#define scheme_save_initial_module_set (scheme_extension_table->scheme_save_initial_module_set)
|
||||
#define scheme_primitive_module (scheme_extension_table->scheme_primitive_module)
|
||||
#define scheme_finish_primitive_module (scheme_extension_table->scheme_finish_primitive_module)
|
||||
#define scheme_set_primitive_module_phaseless (scheme_extension_table->scheme_set_primitive_module_phaseless)
|
||||
#define scheme_protect_primitive_provide (scheme_extension_table->scheme_protect_primitive_provide)
|
||||
#define scheme_make_modidx (scheme_extension_table->scheme_make_modidx)
|
||||
#define scheme_apply_for_syntax_in_env (scheme_extension_table->scheme_apply_for_syntax_in_env)
|
||||
|
|
Loading…
Reference in New Issue
Block a user