diff options
Diffstat (limited to 'mini_builtin.c')
| -rw-r--r-- | mini_builtin.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/mini_builtin.c b/mini_builtin.c index d9827e70e4..75ea94d37d 100644 --- a/mini_builtin.c +++ b/mini_builtin.c @@ -23,7 +23,8 @@ prelude_ast_value(VALUE name, VALUE code, int line) static void pm_prelude_load(pm_parse_result_t *result, VALUE name, VALUE code, int line) { - pm_options_line_set(&result->options, line); + pm_parse_result_init(result); + pm_options_line_set(result->options, line); VALUE error = pm_parse_string(result, code, name, NULL); if (!NIL_P(error)) { @@ -60,7 +61,7 @@ builtin_iseq_load(const char *feature_name, const struct rb_builtin_function *ta }; if (rb_ruby_prism_p()) { - pm_parse_result_t result = { 0 }; + pm_parse_result_t result; pm_prelude_load(&result, name_str, code, start_line); vm->builtin_function_table = table; @@ -96,24 +97,22 @@ builtin_iseq_load(const char *feature_name, const struct rb_builtin_function *ta return iseq; } -static void -load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table) +void +rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table) { const rb_iseq_t *iseq = builtin_iseq_load(feature_name, table); - rb_namespace_enable_builtin(); - rb_iseq_eval_with_refinement(iseq, rb_mNamespaceRefiner); - rb_namespace_disable_builtin(); + rb_iseq_eval(iseq, rb_root_box()); +} + +VALUE +rb_define_gem_modules(VALUE _a, VALUE _b) +{ + // do nothing - moniruby doesn't load gem_prelude.rb. + return Qnil; } void -rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin_function *table) +rb_load_gem_prelude(VALUE _) { - const rb_iseq_t *iseq; - if (rb_namespace_available() && rb_mNamespaceRefiner) { - load_with_builtin_functions(feature_name, table); - } - else { - iseq = builtin_iseq_load(feature_name, table); - rb_iseq_eval(iseq); - } + // do nothing - miniruby doesn't support loading RubyGems. } |
