summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-06-11 15:37:49 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-12 16:21:10 +0900
commit52507b1083ba1c562ae506d63a07a51a26815c21 (patch)
tree1c4087091f82fd792b5d81c3ef2c8c384e1854f4 /lib
parent7deb41b0e88b3670476ed86bab541340f5551b52 (diff)
downloadmruby-52507b1083ba1c562ae506d63a07a51a26815c21.tar.gz
mruby-52507b1083ba1c562ae506d63a07a51a26815c21.zip
Generate C struct from `irep` instead of binary dump.
Diffstat (limited to 'lib')
-rw-r--r--lib/mruby/build/command.rb2
-rw-r--r--lib/mruby/gem.rb17
2 files changed, 11 insertions, 8 deletions
diff --git a/lib/mruby/build/command.rb b/lib/mruby/build/command.rb
index 84ce78cb9..39981cc32 100644
--- a/lib/mruby/build/command.rb
+++ b/lib/mruby/build/command.rb
@@ -310,7 +310,7 @@ module MRuby
def initialize(build)
super
@command = nil
- @compile_options = "-B%{funcname} -o-"
+ @compile_options = "-S -B%{funcname} -o-"
end
def run(out, infiles, funcname)
diff --git a/lib/mruby/gem.rb b/lib/mruby/gem.rb
index 6fcaad9c1..d6b1a6851 100644
--- a/lib/mruby/gem.rb
+++ b/lib/mruby/gem.rb
@@ -174,7 +174,7 @@ module MRuby
def generate_gem_init(fname)
open(fname, 'w') do |f|
print_gem_init_header f
- build.mrbc.run f, rbfiles, "gem_mrblib_irep_#{funcname}" unless rbfiles.empty?
+ build.mrbc.run f, rbfiles, "gem_mrblib_#{funcname}_proc" unless rbfiles.empty?
f.puts %Q[void mrb_#{funcname}_gem_init(mrb_state *mrb);]
f.puts %Q[void mrb_#{funcname}_gem_final(mrb_state *mrb);]
f.puts %Q[]
@@ -183,7 +183,7 @@ module MRuby
f.puts %Q[ struct REnv *e;] unless rbfiles.empty?
f.puts %Q[ mrb_#{funcname}_gem_init(mrb);] if objs != [objfile("#{build_dir}/gem_init")]
unless rbfiles.empty?
- f.puts %Q[ mrb_load_irep(mrb, gem_mrblib_irep_#{funcname});]
+ f.puts %Q[ mrb_load_proc(mrb, gem_mrblib_#{funcname}_proc);]
f.puts %Q[ if (mrb->exc) {]
f.puts %Q[ mrb_print_error(mrb);]
f.puts %Q[ mrb_close(mrb);]
@@ -215,10 +215,13 @@ module MRuby
def print_gem_init_header(f)
print_gem_comment(f)
- f.puts %Q[#include <stdlib.h>] unless rbfiles.empty?
- f.puts %Q[#include <mruby.h>]
- f.puts %Q[#include <mruby/irep.h>] unless rbfiles.empty?
- f.puts %Q[#include <mruby/proc.h>] unless rbfiles.empty?
+ unless rbfiles.empty?
+ f.puts %Q[#include <stdlib.h>]
+ f.puts %Q[#include <mruby.h>]
+ f.puts %Q[#include <mruby/proc.h>]
+ else
+ f.puts %Q[#include <mruby.h>]
+ end
end
def print_gem_test_header(f)
@@ -226,7 +229,7 @@ module MRuby
f.puts %Q[#include <stdio.h>]
f.puts %Q[#include <stdlib.h>]
f.puts %Q[#include <mruby.h>]
- f.puts %Q[#include <mruby/irep.h>]
+ f.puts %Q[#include <mruby/proc.h>]
f.puts %Q[#include <mruby/variable.h>]
f.puts %Q[#include <mruby/hash.h>] unless test_args.empty?
end