mruby-require causing issues with other mrbgems
rjst opened this issue · 6 comments
Hi,
I'm using mruby-require, and although it appears to work fine, when using it, other mrbgems such as mruby-onig-regexp or mruby-eval stop working, just as if they weren't being included.
Am I doing something wrong or could this be a bug ?
regards,
Ricardo
Could you please show me your build_config.rb ? Probably, you specify mruby-onig-regexp after mruby-require in order. mruby-require should be last in order.
I tried, and it happens even if mruby-require is the last in the file.
Here is my complete file
MRuby::Build.new do |conf|
# load specific toolchain settings
toolchain :gcc
# Use mrbgems
# conf.gem 'examples/mrbgems/ruby_extension_example'
# conf.gem 'examples/mrbgems/c_extension_example' do |g|
# g.cc.flags << '-g' # append cflags in this gem
# end
# conf.gem 'examples/mrbgems/c_and_ruby_extension_example'
# conf.gem :github => 'masuidrive/mrbgems-example', :branch => 'master'
# conf.gem :git => 'git@github.com:masuidrive/mrbgems-example.git', :branch => 'master', :options => '-v'
# Use standard Kernel#sprintf method
conf.gem "#{root}/mrbgems/mruby-sprintf"
# Use standard print/puts/p
conf.gem "#{root}/mrbgems/mruby-print"
# Use standard Math module
conf.gem "#{root}/mrbgems/mruby-math"
# Use standard Time class
conf.gem "#{root}/mrbgems/mruby-time"
# Use standard Struct class
conf.gem "#{root}/mrbgems/mruby-struct"
# Use extensional Enumerable module
conf.gem "#{root}/mrbgems/mruby-enum-ext"
# Use extensional String class
conf.gem "#{root}/mrbgems/mruby-string-ext"
# Use extensional Numeric class
conf.gem "#{root}/mrbgems/mruby-numeric-ext"
# Use extensional Array class
conf.gem "#{root}/mrbgems/mruby-array-ext"
# Use extensional Hash class
conf.gem "#{root}/mrbgems/mruby-hash-ext"
# Use Random class
conf.gem "#{root}/mrbgems/mruby-random"
# No use eval method
conf.gem "#{root}/mrbgems/mruby-eval"
# A Regexp implementation
# conf.gem :github => 'masamitsu-murase/mruby-hs-regexp', :branch => 'master'
conf.gem :git => 'git@github.com:mattn/mruby-onig-regexp.git'
# A require implementation. Should be last in order
conf.gem :git => 'git@mattn/mruby-require.git'
# Generate binaries
# conf.bins = %w(mrbc mruby mirb)
# C compiler settings
# conf.cc do |cc|
# cc.command = ENV['CC'] || 'gcc'
# cc.flags = [ENV['CFLAGS'] || %w()]
# cc.include_paths = ["#{root}/include"]
# cc.defines = %w(DISABLE_GEMS)
# cc.option_include_path = '-I%s'
# cc.option_define = '-D%s'
# cc.compile_options = "%{flags} -MMD -o %{outfile} -c %{infile}"
# end
# Linker settings
# conf.linker do |linker|
# linker.command = ENV['LD'] || 'gcc'
# linker.flags = [ENV['LDFLAGS'] || []]
# linker.flags_before_libraries = []
# linker.libraries = %w()
# linker.flags_after_libraries = []
# linker.library_paths = []
# linker.option_library = '-l%s'
# linker.option_library_path = '-L%s'
# linker.link_options = "%{flags} -o %{outfile} %{objs} %{libs}"
# end
# Archiver settings
# conf.archiver do |archiver|
# archiver.command = ENV['AR'] || 'ar'
# archiver.archive_options = 'rs %{outfile} %{objs}'
# end
# Parser generator settings
# conf.yacc do |yacc|
# yacc.command = ENV['YACC'] || 'bison'
# yacc.compile_options = '-o %{outfile} %{infile}'
# end
# gperf settings
# conf.gperf do |gperf|
# gperf.command = 'gperf'
# gperf.compile_options = '-L ANSI-C -C -p -j1 -i 1 -g -o -t -N mrb_reserved_word -k"1,3,$" %{infile} > %{outfile}'
# end
# file extensions
# conf.exts do |exts|
# exts.object = '.o'
# exts.executable = '' # '.exe' if Windows
# exts.library = '.a'
# end
# file separetor
# conf.file_separator = '/'
end
# Define cross build settings
# MRuby::CrossBuild.new('32bit') do |conf|
# toolchain :gcc
#
# conf.cc.flags << "-m32"
# conf.linker.flags << "-m32"
#
# conf.build_mrbtest_lib_only
#
# conf.gem 'examples/mrbgems/c_and_ruby_extension_example'
# end
thanks,
Ricardo
Probably, you are using mruby-require. So try following on your mirb.
C:\temp\github\mruby>mirb
mirb - Embeddable Interactive Ruby Shell
This is a very early version, please test and report errors.
Thanks :)
> require 'mruby-onig-regexp'
=> true
> "f-o-o".split /-/
=> ["f", "o", "o"]
>
Ok, I understand now. When using mruby-require additional mrbgems have to be required, which isn't the case when you aren't including it. Can I suggest that this is added to the documentation ? (I can do it if you'd like)
Cool, thank you. I'm not native speaker, so I think you are eligible than me.