@@ -186,11 +186,15 @@ option_ref<decl> find_ir_decl(elab_environment const & env, name const & n) {
186186 return option_ref<decl>(lean_ir_find_env_decl (env.to_obj_arg (), n.to_obj_arg ()));
187187}
188188
189+ extern " C" object * lean_ir_find_env_decl_boxed (object * env, object * n);
190+ option_ref<decl> find_ir_decl_boxed (elab_environment const & env, name const & n) {
191+ return option_ref<decl>(lean_ir_find_env_decl_boxed (env.to_obj_arg (), n.to_obj_arg ()));
192+ }
193+
189194extern " C" double lean_float_of_nat (lean_obj_arg a);
190195extern " C" float lean_float32_of_nat (lean_obj_arg a);
191196
192197static string_ref * g_mangle_prefix = nullptr ;
193- static string_ref * g_boxed_suffix = nullptr ;
194198static string_ref * g_boxed_mangled_suffix = nullptr ;
195199static name * g_interpreter_prefer_native = nullptr ;
196200
@@ -1047,7 +1051,7 @@ class interpreter {
10471051 } else {
10481052 // `lookup_symbol` does not prefer the boxed version for interpreted functions, so check manually.
10491053 decl d = e.m_decl ;
1050- if (option_ref<decl> d_boxed = find_ir_decl (m_env, fn + *g_boxed_suffix )) {
1054+ if (option_ref<decl> d_boxed = find_ir_decl_boxed (m_env, fn)) {
10511055 d = *d_boxed.get ();
10521056 }
10531057 r = mk_stub_closure (d, 0 , nullptr );
@@ -1185,8 +1189,6 @@ extern "C" LEAN_EXPORT object * lean_run_init(object * env, object * opts, objec
11851189void initialize_ir_interpreter () {
11861190 ir::g_mangle_prefix = new string_ref (" l_" );
11871191 mark_persistent (ir::g_mangle_prefix->raw ());
1188- ir::g_boxed_suffix = new string_ref (" _boxed" );
1189- mark_persistent (ir::g_boxed_suffix->raw ());
11901192 ir::g_boxed_mangled_suffix = new string_ref (" ___boxed" );
11911193 mark_persistent (ir::g_boxed_mangled_suffix->raw ());
11921194 ir::g_interpreter_prefer_native = new name ({" interpreter" , " prefer_native" });
@@ -1207,7 +1209,6 @@ void finalize_ir_interpreter() {
12071209 delete ir::g_init_globals;
12081210 delete ir::g_interpreter_prefer_native;
12091211 delete ir::g_boxed_mangled_suffix;
1210- delete ir::g_boxed_suffix;
12111212 delete ir::g_mangle_prefix;
12121213}
12131214}
0 commit comments