[MacRuby-devel] macirb fails to start on 0.5b2 (undefined method `bind' for IRB::SLex:Class)

Logan Bowers logan at datacurrent.com
Sun Nov 22 15:53:56 PST 2009


Hello, 

I just downloaded and installed 0.5b2, however macirb fails to start; I get the following: 

bender:~ logan$ macirb
/usr/local/bin/macirb:in `<main>': undefined method `bind' for IRB::SLex:Class (NoMethodError)
bender:~ logan$ 

After doing a little digging, the culprit appears to be in e2mmap.rb:

module Exception2MessageMapper
  @RCS_ID='-$Id: e2mmap.rb,v 1.10 1999/02/17 12:33:17 keiju Exp keiju $-'

  E2MM = Exception2MessageMapper

  def E2MM.extend_object(cl)
    super
    STDERR.puts("About to bind on #{cl.inspect}") # <---Line I added for debugging
    cl.bind(self) unless cl < E2MM  # <--- Exception is raised here!
  end
  
  def bind(cl)
    self.module_eval %[
      def Raise(err = nil, *rest)
   Exception2MessageMapper.Raise(self.class, err, *rest)
      end
      alias Fail Raise

      def self.included(mod)
   mod.extend Exception2MessageMapper
      end
    ]
  end

With the debugging line above, I see: 

bender:~ logan$ macirb
About to bind on IRB::Notifier
About to bind on IRB::SLex
/usr/local/bin/macirb:in `<main>': undefined method `bind' for IRB::SLex:Class (NoMethodError)
bender:~ logan$ 

Given that the 'bind' method is defined 3 lines later, I can't see why the call would succeed for IRB::Notifier and not for IRB::SLex.  Any ideas on what's going on?  FWIW, I'm running SL on a 32-bit machine.  Thanks!  


Logan Bowers



More information about the MacRuby-devel mailing list