rubinius/rubinius — Issue #1379: rb_eIndexError missing from C API
Author: Quintus
Created: 2011-10-27 17:43:09+00:00
State: open

Hi there,

I've just tried to install the [wxruby](http://wxruby.rubyforge.org) gem, but requiring wxRuby fails like this:

irb(main):001:0> require "rubygems"
=> false
irb(main):002:0> require "wx"
LoadError::InvalidExtensionError: Could not open library /opt/rubies/rubinius/gems/1.8/gems/wxruby-2.0.0-x86_64-linux/lib/wxruby2.so - /opt/rubies/rubinius/gems/1.8/gems/wxruby-2.0.0-x86_64-linux/lib/wxruby2.so: undefined symbol: rb_eIndexError
from Rubinius::NativeMethod.load_extension at kernel/common/native_method.rb:26
from Rubinius::CodeLoader#load_library at kernel/delta/codeloader.rb:181
from Rubinius::CodeLoader#require at kernel/common/codeloader.rb:46
from Rubinius::CodeLoader.require at kernel/common/codeloader.rb:148
from Kernel(Object)#gem_original_require (require) at kernel/common/kernel.rb:672
from Kernel(Object)#require at /opt/rubies/rubinius/lib/rubygems/custom_require.rb:29
from Object#__script__ at /opt/rubies/rubinius/gems/1.8/gems/wxruby-2.0.0-x86_64-linux/lib/wx.rb:12
from Rubinius::CodeLoader.require at kernel/common/codeloader.rb:152
from Kernel(Object)#gem_original_require (require) at kernel/common/kernel.rb:672
from Kernel(Object)#require at /opt/rubies/rubinius/lib/rubygems/custom_require.rb:32
from { } in Object#irb_binding at (irb):2
from Rubinius::BlockEnvironment#call_on_instance at kernel/common/block_environment.rb:72

Caused by:
LoadError: Could not open library /opt/rubies/rubinius/gems/1.8/gems/wxruby-2.0.0-x86_64-linux/lib/wxruby2.so - /opt/rubies/rubinius/gems/1.8/gems/wxruby-2.0.0-x86_64-linux/lib/wxruby2.so: undefined symbol: rb_eIndexError
from FFI::DynamicLibrary#initialize at kernel/platform/library.rb:253
from Rubinius::NativeMethod.load_extension at kernel/common/native_method.rb:24
from Rubinius::CodeLoader#load_library at kernel/delta/codeloader.rb:181
from Rubinius::CodeLoader#require at kernel/common/codeloader.rb:46
from Rubinius::CodeLoader.require at kernel/common/codeloader.rb:148
from Kernel(Object)#gem_original_require (require) at kernel/common/kernel.rb:672
from Kernel(Object)#require at /opt/rubies/rubinius/lib/rubygems/custom_require.rb:29
from Object#__script__ at /opt/rubies/rubinius/gems/1.8/gems/wxruby-2.0.0-x86_64-linux/lib/wx.rb:12
from Rubinius::CodeLoader.require at kernel/common/codeloader.rb:152
from Kernel(Object)#gem_original_require (require) at kernel/common/kernel.rb:672
from Kernel(Object)#require at /opt/rubies/rubinius/lib/rubygems/custom_require.rb:32
from { } in Object#irb_binding at (irb):2
from Rubinius::BlockEnvironment#call_on_instance at kernel/common/block_environment.rb:72
irb(main):003:0>

That looks as if Rubinius' C API is missing the `rb_eIndexError` exception class.

`rbx --version`: `rubinius 2.0.0dev (1.8.7 80e84295 yyyy-mm-dd JI) [x86_64-unknown-linux-gnu]`
`gem --version`: 1.5.2
OS: Arch Linux (64 bits), kernel 3.0
wxruby version: 2.0.0

Valete,
Marvin