[Ironruby-core] [ironlanguages-main] Ruby 1.9 marshalling compatibility. (630995e)

Orion Edwards Orion.Edwards at gallagher.co
Sun Oct 30 23:34:12 EDT 2011

Hi Tomas (and other IronRuby devs). I'm trying to implement this, but I'm 
not sure quite how to go about dynamically invoking the 'message' and 
'backtrace' methods on the other objects.

It looks like the other methods all have a UnaryOpStorage or other kind of 
'storage' that they use to invoke other dynamic methods
 - how do I know what kind of Storage object I need to invoke methods on 
other objects?
 - I'm not sure where I get these storage objects from? It appears that in 
this case the language runtime will pass them in as needed, but if I need 
to call a ruby method from another location (eg inside Marshal.cs), how do 
I go about getting the storage object?

Thanks, Orion

From:   Tomas Matousek 
<reply+c-683915-ae54ce679190ef3de090cba9240521883afb62af at reply.github.com>
To:     Gallagher Group R&D Department <orione at gallagher.co.nz>
Date:   31/10/2011 06:55 a.m.
Subject:        Re: [ironlanguages-main] Ruby 1.9 marshalling 
compatibility. (630995e)

This doesn't seem to be quite right.
Unfortunately Ruby's exception object might be a bit messed up. Message 
might not be a string, backtrace is always an array (or nil) but it might 
not containg strings. It seems that Ruby calls "==" on the message object 
and then on each item of the backtrace. 

It doesn't look like Ruby is comparing exception classes.

Also an exception can be compared with any object that has "message" and 
"backtrace" methods.


class C
  def message
  def backtrace

class D 
  def ==(other)
    p "=="

c = C.new
m = D.new
e = Exception.new(m)
a = ["1","2","3"]
a[1] = D.new

p e == c

p e.backtrace.inspect, e.message
p c.backtrace.inspect, c.message

p IOError.new("1") == Exception.new("1")

Reply to this email directly or view it on GitHub:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20111031/b6b41463/attachment.html>

More information about the Ironruby-core mailing list