Using the Racc gem instead of the stdlib version (both of them are version
1.4.9) breaks with the latest rubinius, only when racc/parser
is required
twice.
$ rbx bug.rb
An exception occurred running bug.rb
Missing or uninitialized constant: Racc::Parser::Racc_Runtime_Core_Id_C (NameError)
Backtrace:
Module(Class)#const_missing at kernel/common/module.rb:468
Racc::Parser.__class_init__ (Parser) at /Users/txus/.rvm/gems/rbx-head@bug/gems/racc-1.4.9/lib/racc/parser.rb:41
Racc.__module_init__ (Racc) at /Users/txus/.rvm/gems/rbx-head@bug/gems/racc-1.4.9/lib/racc/parser.rb:31
Object#__script__ at /Users/txus/.rvm/gems/rbx-head@bug/gems/racc-1.4.9/lib/racc/parser.rb:25
Rubinius::CodeLoader.require at kernel/common/codeloader.rb:212
Kernel(Object)#gem_original_require (require) at kernel/common/kernel.rb:631
Kernel(Object)#require at /Users/txus/.rvm/src/rbx-head/staging/lib/rubygems/custom_require.rb:36
Object#__script__ at lexer.rex.rb:7
Rubinius::CodeLoader.require at kernel/common/codeloader.rb:212
Rubinius::CodeLoader.require_relative at kernel/common/codeloader19.rb:28
Kernel(Object)#require_relative at kernel/common/kernel19.rb:176
Object#__script__ at parser.tab.rb:12
Rubinius::CodeLoader.require at kernel/common/codeloader.rb:212
Rubinius::CodeLoader.require_relative at kernel/common/codeloader19.rb:28
Kernel(Object)#require_relative at kernel/common/kernel19.rb:176
Object#__script__ at bug.rb:1
Rubinius::CodeLoader#load_script at kernel/delta/codeloader.rb:68
Rubinius::CodeLoader.load_script at kernel/delta/codeloader.rb:110
Rubinius::Loader#script at kernel/loader.rb:626
Rubinius::Loader#main at kernel/loader.rb:829
This is probably related to the double loading problem pointed out in this issue.
The strange thing is that it works with the Stdlib version, but not with the gem.
(A workaround to avoid failure is removing the require 'racc/parser'
line on
parser.tab.rb
., thus avoid double loading).