[Ironruby-core] Consuming DynamicObjects in IronRuby

Robert Walker RWalker at kinaxis.com
Tue Mar 2 21:51:42 EST 2010


A simple case appears to reproduce the problem:

using System;

namespace DynamicTest
{
    public class N : System.Dynamic.DynamicObject
    {
        public N()
        {
        }

        public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out Object result)
        {
            if (binder.Name == "Zot")
            {
                result = "hello world";
                return true;
            }

            return base.TryGetMember(binder, out result);
        }
    }
}

And then ...

$LOAD_PATH << "D:\\Projects\\DynamicTest\\DynamicTest\\bin\\Debug"
require "DynamicTest.dll"

z =DynamicTest::N.new
z.Zot

>>> z.Zot
System.Core:0:in `BindCore': unbound variable: Param_0 (TypeError)
        from (ir):1

---
Rob


From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Tomas Matousek
Sent: Tuesday, March 02, 2010 6:00 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] Consuming DynamicObjects in IronRuby

It is a bug in DynamicObject for which I implemented a workaround in IronRuby some time ago. So the build from latest sources should help.

Tomas

From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Jim Deville
Sent: Tuesday, March 02, 2010 2:05 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] Consuming DynamicObjects in IronRuby

Have you tried building Ruby directly? Get the sources from Github, then, from the command line, run
c:\path\to\merlin\main\languages\ruby\scripts\dev.bat
rb
devenv ruby4.sln

Inside of VS build ruby4.sln then:

1)      For basic testing, rbd will open a prompt for you to resume testing.

2)      For using it then without the sources, rake package will generate the release layout at c:\ironruby, which you can then copy to your desired location.

After 1.0, I'm going to look into making nightly drops available, but that's a little ways off.

If this still doesn't work, it might be a bug :(

JD

From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Robert Walker
Sent: Tuesday, March 02, 2010 1:22 PM
To: ironruby-core at rubyforge.org
Subject: [Ironruby-core] Consuming DynamicObjects in IronRuby

(All work done with VS2010 RC and matching IronRuby build (v0.9.40, 07-Feb-10)).

I have a C# assembly that implements a dynamic object. When I try to use this object from Ruby I get the error:

>>> r.StdUnitCost
System.Core:0:in `BindCore': unbound variable: Param_0 (TypeError)
        from (ir):1

This usage works fine from a test C# 4.0 app using the 'dynamic' keyword.

I suspect that the issue is related to the version of the DLR in use -- there are a number of 'InvalidOperationExceptions' being thrown from the Microsoft.Dynamic.dll and I believe this is no longer a shipping assembly with .NET 4?

Is there a (simple) work around for this?

Thanks,

Rob Walker
Senior Software Architect
[cid:image001.gif at 01CABA52.2CB2CB40]<http://www.kinaxis.com/>
http://www.kinaxis.com
Kinaxis
700 Silver Seven Road
Ottawa, ON, Canada K2V 1C3
Office:

+1 613.592.5780 ext. 5282

Fax:

+1 613.592.0584


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100302/69913366/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 1706 bytes
Desc: image001.gif
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100302/69913366/attachment-0001.gif>


More information about the Ironruby-core mailing list