diff --git a/runtime/main.rb b/runtime/main.rb index 0bbd80d..f50f476 100644 --- a/runtime/main.rb +++ b/runtime/main.rb @@ -1 +1,6 @@ -puts "hi from main.rb" +def main + puts "hi from main.rb" + p ARGV +end + +main diff --git a/src/main.cc b/src/main.cc index 84fc625..045b7c5 100644 --- a/src/main.cc +++ b/src/main.cc @@ -6,6 +6,14 @@ using namespace std; RUBY_GLOBAL_SETUP +static void handle_bootstrap_error() +{ + VALUE e = rb_errinfo(); + VALUE s = rb_funcall(e, rb_intern("message"), 0); + fprintf(stderr, "%s\n", StringValueCStr(s)); + rb_set_errinfo(Qnil); +} + static int bootstrap() { int rv = 0; @@ -15,10 +23,7 @@ static int bootstrap() &err_state); if (err_state != 0) { - VALUE e = rb_errinfo(); - VALUE s = rb_funcall(e, rb_intern("message"), 0); - fprintf(stderr, "%s\n", StringValueCStr(s)); - rb_set_errinfo(Qnil); + handle_bootstrap_error(); rv = 1; } return rv; @@ -37,6 +42,7 @@ int main(int argc, char *argv[]) ruby_init(); ruby_init_loadpath(); ruby_script(argv[0]); + ruby_set_argv(argc, argv); rv = bootstrap(); ruby_finalize(); }