Problems with 'require' in embedded ruby

I’m tinkering with my first C++ app with an embedded Ruby interpreter.
I’m having trouble with pretty much any usage of ‘require’ that involves
a file not in the same folder as the executable. If I use rb_require, it
blows up. If I do it in the script, it blows up.

I’ve checked the $LOAD_PATH variable on both the C++ side and the script
side, and it’s reporting the values I expect. The modules I’m requiring
are definitely in the $LOAD_PATH directories.

I’m getting a memory access error. It’s mostly trying to access address
0x0. Anyone have any inkling of what’s going on here? My version of Ruby
wasn’t compiled with symbols, so I can’t see what’s going on once the
code enters the interpreter (I’m not much for wading through
disassembly).

==== c++ ====

int main(int argc, char *argv[]) {
VALUE result;
ruby_sysinit(&argc, &argv);
RUBY_INIT_STACK;
ruby_init();
ruby_init_loadpath();
#ifdef _DEBUG
rb_eval_string(“puts $LOAD_PATH”);
#endif
rb_require(“rules”);

    return ruby_cleanup(0);

}

==== rules.rb ====

puts $LOAD_PATH

require ‘pp’

class Rules
def self.apply(arr_face)
puts “array: #{arr_face.size}” if arr_face.kind_of?(Array)
puts arr_face.pretty_inspect
return (arr_face.size > 0) ? 1 : 0
end
end

Sorry, forgot to mention: ruby 1.9.1-p0 compiled from source running on
Vista.

James H. wrote:

I’m tinkering with my first C++ app with an embedded Ruby interpreter.
I’m having trouble with pretty much any usage of ‘require’ that involves
a file not in the same folder as the executable. If I use rb_require, it
blows up. If I do it in the script, it blows up.

I’ve checked the $LOAD_PATH variable on both the C++ side and the script
side, and it’s reporting the values I expect. The modules I’m requiring
are definitely in the $LOAD_PATH directories.

I’m getting a memory access error. It’s mostly trying to access address
0x0. Anyone have any inkling of what’s going on here? My version of Ruby
wasn’t compiled with symbols, so I can’t see what’s going on once the
code enters the interpreter (I’m not much for wading through
disassembly).

Hi James,

Did you solve this issue? I have a similar one with Ruby 1.8.7.

Thanks,
David

James H. wrote:

Sorry, forgot to mention: ruby 1.9.1-p0 compiled from source running on
Vista.

James H. wrote:

I’m tinkering with my first C++ app with an embedded Ruby interpreter.
I’m having trouble with pretty much any usage of ‘require’ that involves
a file not in the same folder as the executable. If I use rb_require, it
blows up. If I do it in the script, it blows up.

I’ve checked the $LOAD_PATH variable on both the C++ side and the script
side, and it’s reporting the values I expect. The modules I’m requiring
are definitely in the $LOAD_PATH directories.

I’m getting a memory access error. It’s mostly trying to access address
0x0. Anyone have any inkling of what’s going on here? My version of Ruby
wasn’t compiled with symbols, so I can’t see what’s going on once the
code enters the interpreter (I’m not much for wading through
disassembly).

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs