From: Suraj Kurapati Date: 2006-02-17T15:20:36+09:00 Subject: SystemStackError when rb_define_module_function() * 3 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, I'm getting a "test.rb:46: stack level too deep (SystemStackError)" when defining three or more functions for a module, which is created & given to Ruby via the Ruby C API. ## begin extra info ## The test.rb (actually "samp/test.rb") file and the remaining source code is available in a Subversion repository at RubyForge: svn checkout -r21 svn://rubyforge.org/var/svn/ruby-vpi/trunk - -or- Also, I run "make ivl" inside the "samp/" directory to run the sample test bench ("test.v" and "test.rb"). Finally, I am using this Ruby version: ruby 1.8.3 (2005-06-23) [i486-linux] ## end extra info ## In particular, the error occurs when I register a third module function with Ruby C API inside line 25 of the file "src/RVPI.cin": // register the VPI module RVPI__rModuleDef = rb_define_module("VPI"); rb_define_module_function( // first func RVPI__rModuleDef , "relay_verilog" , RVPI_rb_relay_verilog , 0 ); rb_define_module_function( // second func RVPI__rModuleDef , "register_task" , RVPI_rb_register_task , 1 ); rb_define_module_function( // third func RVPI__rModuleDef , "handle_by_name" , RVPI_rb_handle_by_name , 2 ); // FIXME: causes "stack level too deep (SystemStackError)" I originally thought the problem was with the third module function (named "RVPI_rb_handle_by_name") that I was trying to register. But this was not the case, because the SystemStackError occurred even when I registered the first module function under a different name: // register the VPI module RVPI__rModuleDef = rb_define_module("VPI"); rb_define_module_function( // first func RVPI__rModuleDef , "relay_verilog" , RVPI_rb_relay_verilog , 0 ); rb_define_module_function( // second func RVPI__rModuleDef , "register_task" , RVPI_rb_register_task , 1 ); rb_define_module_function( // first func with different name RVPI__rModuleDef , "foo" , RVPI_rb_relay_verilog , 0 ); What am I doing wrong? Thank you. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFD9WgQmV9O7RYnKMcRAnv6AKCp2axs4vC3+n9h1vSmBIP7QL+ISgCdGH6X U6pkTj3RoLSsPNj0dL1xVQg= =18Ev -----END PGP SIGNATURE-----