From 128d86da1fcf6ab0fab67d779d15812dc0d8dae0 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 30 Jun 2010 10:20:02 -0600 Subject: [PATCH] throw out attempt at more laziness in phase instantiation keep some related refactoring, though --- src/racket/src/module.c | 40 +------------------------------------- src/racket/src/mzmark.c | 2 -- src/racket/src/mzmarksrc.c | 1 - src/racket/src/schpriv.h | 3 --- 4 files changed, 1 insertion(+), 45 deletions(-) diff --git a/src/racket/src/module.c b/src/racket/src/module.c index 3ecae727ad..8c813eb537 100644 --- a/src/racket/src/module.c +++ b/src/racket/src/module.c @@ -3980,7 +3980,6 @@ static void chain_start_module(Scheme_Env *menv, Scheme_Env *env, int eval_exp, { Scheme_Object *new_cycle_list, *midx, *l; Scheme_Module *im; - int max_template_depth = 1; new_cycle_list = scheme_make_pair(menv->module->modname, cycle_list); @@ -4018,9 +4017,6 @@ static void chain_start_module(Scheme_Env *menv, Scheme_Env *env, int eval_exp, midx, eval_exp, eval_run, base_phase, new_cycle_list); - - if ((im->template_depth + 1) > max_template_depth) - max_template_depth = im->template_depth + 1; } } @@ -4032,9 +4028,6 @@ static void chain_start_module(Scheme_Env *menv, Scheme_Env *env, int eval_exp, im = module_load(scheme_module_resolve(midx, 1), env, NULL); start_module(im, env, 0, midx, eval_exp, eval_run, base_phase, new_cycle_list); - - if (im->template_depth > max_template_depth) - max_template_depth = im->template_depth; } scheme_prepare_exp_env(menv); @@ -4049,9 +4042,6 @@ static void chain_start_module(Scheme_Env *menv, Scheme_Env *env, int eval_exp, im = module_load(scheme_module_resolve(midx, 1), env, NULL); start_module(im, menv->exp_env, 0, midx, eval_exp, eval_run, base_phase, new_cycle_list); - - if ((im->template_depth - 1) > max_template_depth) - max_template_depth = im->template_depth - 1; } } @@ -4086,9 +4076,6 @@ static void chain_start_module(Scheme_Env *menv, Scheme_Env *env, int eval_exp, midx, eval_exp, eval_run, base_phase, new_cycle_list); - - if ((im->template_depth - SCHEME_INT_VAL(phase)) > max_template_depth) - max_template_depth = im->template_depth - SCHEME_INT_VAL(phase); } } else { compute_require_names(menv, phase, env, syntax_idx); @@ -4110,26 +4097,11 @@ static void chain_start_module(Scheme_Env *menv, Scheme_Env *env, int eval_exp, im = module_load(scheme_module_resolve(midx, 1), env, NULL); start_module(im, menv2, 0, midx, eval_exp, eval_run, base_phase, new_cycle_list); - - if ((im->template_depth - SCHEME_INT_VAL(phase)) > max_template_depth) - max_template_depth = im->template_depth - SCHEME_INT_VAL(phase); } } } } } - - if (max_template_depth > menv->module->template_depth) - menv->module->template_depth = max_template_depth; - - if (!env->module_registry->cycled) { - Scheme_Hash_Table *ht; - ht = scheme_make_hash_table(SCHEME_hash_ptr); - env->module_registry->cycled = ht; - } - scheme_hash_set(env->module_registry->cycled, - menv->module->modname, - scheme_true); } typedef struct Start_Module_Args { @@ -4431,17 +4403,7 @@ static void start_module(Scheme_Module *m, Scheme_Env *env, int restart, menv->did_starts = v; } - if ((env->phase > base_phase) - && menv->module->template_depth - && ((env->phase - (menv->module->template_depth - 1)) > (base_phase + 2)) - && env->module_registry->cycled - && scheme_hash_get(env->module_registry->cycled, - menv->module->modname)) { - /* Skip chain start, because we won't get back to the base phase, - and we've already traversed the module's imports before to load - any needed modules. */ - } else - chain_start_module_w_push(menv, env, eval_exp, eval_run, base_phase, cycle_list, syntax_idx); + chain_start_module_w_push(menv, env, eval_exp, eval_run, base_phase, cycle_list, syntax_idx); if (restart) { if (menv->rename_set_ready) { diff --git a/src/racket/src/mzmark.c b/src/racket/src/mzmark.c index 4a6bbabb26..10efc902a4 100644 --- a/src/racket/src/mzmark.c +++ b/src/racket/src/mzmark.c @@ -2184,7 +2184,6 @@ static int module_reg_val_MARK(void *p, struct NewGC *gc) { Scheme_Module_Registry *r = (Scheme_Module_Registry *)p; gcMARK2(r->loaded, gc); gcMARK2(r->exports, gc); - gcMARK2(r->cycled, gc); return gcBYTES_TO_WORDS(sizeof(Scheme_Module_Registry)); } @@ -2193,7 +2192,6 @@ static int module_reg_val_FIXUP(void *p, struct NewGC *gc) { Scheme_Module_Registry *r = (Scheme_Module_Registry *)p; gcFIXUP2(r->loaded, gc); gcFIXUP2(r->exports, gc); - gcFIXUP2(r->cycled, gc); return gcBYTES_TO_WORDS(sizeof(Scheme_Module_Registry)); } diff --git a/src/racket/src/mzmarksrc.c b/src/racket/src/mzmarksrc.c index 0da149bc4e..df8d903e1a 100644 --- a/src/racket/src/mzmarksrc.c +++ b/src/racket/src/mzmarksrc.c @@ -872,7 +872,6 @@ module_reg_val { Scheme_Module_Registry *r = (Scheme_Module_Registry *)p; gcMARK2(r->loaded, gc); gcMARK2(r->exports, gc); - gcMARK2(r->cycled, gc); size: gcBYTES_TO_WORDS(sizeof(Scheme_Module_Registry)); } diff --git a/src/racket/src/schpriv.h b/src/racket/src/schpriv.h index 903b910da0..d7e392bb42 100644 --- a/src/racket/src/schpriv.h +++ b/src/racket/src/schpriv.h @@ -2769,7 +2769,6 @@ typedef struct Scheme_Module_Registry { Scheme_Hash_Table *loaded; /* symbol -> module ; loaded modules, shared with modules in same space */ Scheme_Hash_Table *exports; /* symbol -> module-exports */ - Scheme_Hash_Table *cycled; /* resolved module paths that have been traversed */ } Scheme_Module_Registry; struct Scheme_Env { @@ -2878,8 +2877,6 @@ typedef struct Scheme_Module Scheme_Env *primitive; Scheme_Object *rn_stx; - - long template_depth; } Scheme_Module; typedef struct Scheme_Module_Phase_Exports