[Ironruby-core] question on RubyGems

Turpin, Jay jay.turpin at intel.com
Tue Sep 23 13:35:47 EDT 2008


Tomas - The problem seems to be coming from rubygems/custom_required.rb. It redefines Kernel.required() and is not re-throwing the error properly:

This works:

module Kernel
  alias gem_original_require require # :nodoc:

  def require(path) # :nodoc:
    gem_original_require path
  end
end  # module Kernel

but this doesn't:

module Kernel
  alias gem_original_require require # :nodoc:

  def require(path) # :nodoc:
    gem_original_require path
    rescue LoadError => load_error
      raise load_error
  end
end  # module Kernel

Regards,
Jay Turpin
"It is always the best policy to tell the truth, unless, of course, you are an exceptionally good liar." - Jerome K. Jerome
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Tomas Matousek
Sent: Tuesday, September 23, 2008 10:12 AM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] question on RubyGems

I see. Well it seems more broken than I thought it is :)

Tomas

From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Turpin, Jay
Sent: Tuesday, September 23, 2008 9:37 AM
To: 'ironruby-core at rubyforge.org'
Subject: Re: [Ironruby-core] question on RubyGems

Tomas - Thanks for the advice. However, it is still not working as expected. When I run this ruby script:

require 'rubygems'
require 'rake'

puts $LOAD_PATH

It give me this output:

C:\temp>ir -D t.rb
C:/Projects/IronRuby/lib/ruby/site_ruby/1.8\rubygems/custom_require.rb:31:in `require': Bogus Error (RuntimeError)
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\MatchCaller.Generated.cs:35:in `Call3'
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\CallSite.cs:275:in `UpdateAndExecute'
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\UpdateDelegates.Generated.cs:45:in `Update3'
        from t.rb:3
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\MatchCaller.Generated.cs:35:in `Call3'
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\CallSite.cs:275:in `UpdateAndExecute'
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\UpdateDelegates.Generated.cs:45:in `Update3'
        from t.rb:3

But the error is actually coming from deep inside the rubygems library

Thanks!

Regards,
Jay Turpin
"In the end, everything is a gag." - Charlie Chaplin
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Tomas Matousek
Sent: Tuesday, September 23, 2008 9:30 AM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] question on RubyGems

-D is actually what you need:

C:\Temp>rbd x.rb
C:\M1\ndp\fx\src\Core\Microsoft\Scripting\Actions\CallSite.cs:275:in `UpdateAndExecute'
C:\M1\ndp\fx\src\Core\Microsoft\Scripting\Actions\UpdateDelegates.Generated.cs:38:in `Update2'
x.rb:7:in `bar'
C:\M1\ndp\fx\src\Core\Microsoft\Scripting\Actions\MatchCaller.Generated.cs:30:in `Call2'
C:\M1\ndp\fx\src\Core\Microsoft\Scripting\Actions\CallSite.cs:275:in `UpdateAndExecute'
C:\M1\ndp\fx\src\Core\Microsoft\Scripting\Actions\UpdateDelegates.Generated.cs:38:in `Update2'
x.rb:3:in `foo'
C:\M1\ndp\fx\src\Core\Microsoft\Scripting\Actions\MatchCaller.Generated.cs:30:in `Call2'
C:\M1\ndp\fx\src\Core\Microsoft\Scripting\Actions\CallSite.cs:275:in `UpdateAndExecute'
C:\M1\ndp\fx\src\Core\Microsoft\Scripting\Actions\UpdateDelegates.Generated.cs:38:in `Update2'
x.rb:10

As I said, some internal frames are included as well, which is a bug that I'm going to fix soon.

Tomas

From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Turpin, Jay
Sent: Tuesday, September 23, 2008 9:15 AM
To: 'ironruby-core at rubyforge.org'
Subject: Re: [Ironruby-core] question on RubyGems

Michael - Thanks for the quick response, but that's not quite what I meant. When I run Ruby and get an error, I get the complete stack trace of the Ruby code:

C:\temp>ruby t.rb
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:283:in `satisfy?': Bogus Error (RuntimeError)
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:273:in `satisfied_by?'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:86:in `all?'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:273:in `each'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:273:in `all?'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:273:in `satisfied_by?'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:187:in `search'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:185:in `each'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:185:in `search'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:165:in `find_name'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:187:in `activate'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in `require'
        from t.rb:2

However, when I run IronRuby and get an error, I only get one line of ruby code and the rest is the C# stack trace:

C:\temp>ir t.rb
custom_require.rb:26:in `require': Bogus Error (RuntimeError)
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\MatchCaller.Generated.cs:35:in `Call3'
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\CallSite.cs:275:in `UpdateAndExecute'
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\UpdateDelegates.Generated.cs:45:in `Update3'
        from :0
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\MatchCaller.Generated.cs:35:in `Call3'
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\CallSite.cs:275:in `UpdateAndExecute'
        from C:\Projects\IronRuby\src\Microsoft.Scripting.Core\Actions\UpdateDelegates.Generated.cs:45:in `Update3'
        from :0

The error really happens deep inside the Ruby code. Any ideas?

Thanks

Regards,
Jay Turpin
"Over 48.7% of all statistics are useless." - Anonymous
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080923/b7f78706/attachment-0001.html>


More information about the Ironruby-core mailing list