make bytecode compiler less picky about exports
Closes PR 12134
This commit is contained in:
parent
2692d119be
commit
98bc4067c3
|
@ -3504,7 +3504,11 @@ static void setup_accessible_table(Scheme_Module *m)
|
|||
if (SCHEME_SYMBOLP(tl)) {
|
||||
Scheme_Object *v;
|
||||
v = scheme_hash_get(ht, tl);
|
||||
if (!v) scheme_signal_error("internal error: defined name inaccessible");
|
||||
if (!v) {
|
||||
/* The defined name is inaccessible. The bytecode compiler
|
||||
won't generate such modules, but synthesized module bytecode
|
||||
might leave bindings out of the `toplevels' table. */
|
||||
} else {
|
||||
if ((SCHEME_VEC_SIZE(form) == 2)
|
||||
&& scheme_compiled_duplicate_ok(SCHEME_VEC_ELS(form)[0], 1)) {
|
||||
/* record simple constant from cross-module propagation: */
|
||||
|
@ -3513,10 +3517,11 @@ static void setup_accessible_table(Scheme_Module *m)
|
|||
/* record that it's constant across all instantiations: */
|
||||
v = scheme_make_pair(v, scheme_constant_key);
|
||||
} else {
|
||||
/* record that it's fixed for any given instantiations: */
|
||||
/* record that it's fixed for any given instantiation: */
|
||||
v = scheme_make_pair(v, scheme_fixed_key);
|
||||
}
|
||||
scheme_hash_set(ht, tl, v);
|
||||
}
|
||||
} else
|
||||
scheme_signal_error("internal error: strange defn target %d", SCHEME_TYPE(tl));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user