# After a long delay, r128 is out

**URL:** <https://www.ruby-forum.com/t/after-a-long-delay-r128-is-out/145698>\
**Category:** IronRuby\
**Created:** [August 13, 2008, 2:08am UTC](https://www.ruby-forum.com/t/after-a-long-delay-r128-is-out/145698 "2008-08-13T02:08:04Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![John\_LSSIRONRUBY](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/4491bb/32.png) [@John\_LSSIRONRUBY](https://www.ruby-forum.com/u/John_LSSIRONRUBY)\
**Post date:** [August 13, 2008, 2:08am UTC](https://www.ruby-forum.com/t/after-a-long-delay-r128-is-out/145698/1 "2008-08-13T02:08:04Z")

</div>

Hi Everyone,

We were stalled on a bunch of improvements that I wanted to make for  
external devs (mostly related to removal of the SIGNED requirement for  
external layouts). That’s been done now, and modulo some hiccups around  
mspec right now which we will fix tomorrow, we should be back in the  
business of regular updates.

Thanks,  
-John

---

<div class="post-metadata">

**Author:** ![John\_LSSIRONRUBY](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/4491bb/32.png) [@John\_LSSIRONRUBY](https://www.ruby-forum.com/u/John_LSSIRONRUBY)\
**Post date:** [August 13, 2008, 3:14am UTC](https://www.ruby-forum.com/t/after-a-long-delay-r128-is-out/145698/2 "2008-08-13T03:14:09Z")

</div>

Thanks for all your hard work. It’s looking great!

From: removed\_email\_address@domain.invalid  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] On Behalf Of John L.  
(IRONRUBY)  
Sent: Tuesday, August 12, 2008 7:07 PM  
To: removed\_email\_address@domain.invalid  
Subject: [Ironruby-core] After a long delay, r128 is out

Hi Everyone,

We were stalled on a bunch of improvements that I wanted to make for  
external devs (mostly related to removal of the SIGNED requirement for  
external layouts). That’s been done now, and modulo some hiccups around  
mspec right now which we will fix tomorrow, we should be back in the  
business of regular updates.

Thanks,

-John

---

<div class="post-metadata">

**Author:** ![John\_LSSIRONRUBY](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/4491bb/32.png) [@John\_LSSIRONRUBY](https://www.ruby-forum.com/u/John_LSSIRONRUBY)\
**Post date:** [August 13, 2008, 1:29pm UTC](https://www.ruby-forum.com/t/after-a-long-delay-r128-is-out/145698/3 "2008-08-13T13:29:10Z")

</div>

Consider following self-contained example program. The program  
uses generic proxy class to wrap WPF-widgets and dynamically add  
new to itself methods that correspond to the wrapped-class methods.

------------------ [CODE] -------------------------

using System;  
using Microsoft.Scripting;  
using Microsoft.Scripting.Hosting;  
using Ruby.Runtime;

class Program  
{  
[STAThread] static void Main(string[] args)  
{  
ScriptRuntimeSetup runtimeSetup = new ScriptRuntimeSetup(true);  
runtimeSetup.DebugMode = true;  
ScriptRuntime scriptRuntime =  
ScriptRuntime.Create(runtimeSetup);  
ScriptEngine engine = scriptRuntime.GetEngine(“ruby”);  
try {  
engine.CreateScriptSourceFromString(@"  
require ‘mscorlib, Version=2.0.0.0, Culture=neutral,  
PublicKeyToken=b77a5c561934e089’  
require ‘System, Version=2.0.0.0, Culture=neutral,  
PublicKeyToken=b77a5c561934e089’  
require ‘PresentationFramework, Version=3.0.0.0,  
Culture=neutral, PublicKeyToken=31bf3856ad364e35’  
require ‘PresentationCore, Version=3.0.0.0,  
Culture=neutral, PublicKeyToken=31bf3856ad364e35’  
Console = System::Console

```
            class WpfProxy
                def initialize(wpf_widget); @wpf_widget =

```

wpf\_widget; end  
def method\_missing(method\_id, \*args)  
Console.write\_line ’ Adding proxy-method for:  
’ + method\_id.to\_s  
self.class.send(:define\_method, method\_id) do  
|\*args|  
return @wpf\_widget.send(method\_id, \*args)  
end  
# Use the just-made method for first time (on  
subsequent calls, the new method is used directly)  
return self.send(method\_id, \*args)  
end  
end

```
            proxy =

```

WpfProxy.new(System::Windows::Controls::TextBox.new())  
Console.write\_line ‘set to something’  
proxy.text = ‘something’  
Console.write\_line 'textbox text is: ’ + proxy.text.to\_s  
Console.write\_line ‘set to something different’  
proxy.text = ‘something different’ # FAILS HERE IN IR  
SVN 128  
Console.write\_line 'textbox text is: ’ + proxy.text.to\_s  
").Execute(engine.CreateScope());  
}  
catch (Exception ex) { Console.WriteLine(ex.ToString()); }  
}  
} // class

------------------ [CODE] -------------------------

When executed with IR SVN 127 (and some earlier versions), program runs  
as planned and output is:

set to something  
Adding proxy-method for: text=  
Adding proxy-method for: text  
textbox text is: something  
set to something different  
textbox text is: something different

When executed with IR SVN 128, program runs as follows:

set to something  
Adding proxy-method for: text=  
Adding proxy-method for: text  
textbox text is: something  
set to something different

---- DEBUG ASSERTION FAILED ----  
---- Assert Long Message ----

at RubyLambdaMethodInfo.SetInvocationRule(String name,  
MetaObjectBuilder metaBuilder, CallArguments args)  
C:\programs\IronRuby\trunk\src\ironruby\Runtime\Calls\RubyLambdaMethodIn  
fo.cs(47)  
at RubyCallAction.SetInvokeMemberActionRule(MetaObjectBuilder  
metaBuilder, SymbolId methodName, CallArguments args)  
C:\programs\IronRuby\trunk\src\ironruby\Runtime\Calls\RubyCallAction.cs(  
140)  
at RubyCallAction.SetRule(MetaObjectBuilder metaBuilder,  
CallArguments args)  
C:\programs\IronRuby\trunk\src\ironruby\Runtime\Calls\RubyCallAction.cs(  
115)  
at RubyCallAction.Bind(MetaObject[] args)  
C:\programs\IronRuby\trunk\src\ironruby\Runtime\Calls\RubyCallAction.cs(  
110)  
at MetaAction.Bind(Object[] args)  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\MetaActi  
on.cs(59)  
at CallSite`1.CreateNewRule(Rule`1 originalMonomorphicRule, Object[]  
args)  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\CallSite  
.cs(298)  
at CallSite`1.UpdateAndExecute(Object[] args)  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\CallSite  
.cs(253)  
at UpdateDelegates.Update3(CallSite site, T0 arg0, T1 arg1, T2 arg2)  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\UpdateDe  
legates.Generated.cs(41)  
at .#top-level-method#$1##1(Closure , Scope ,  
LanguageContext )  
at ScriptCode.InvokeTarget(LambdaExpression code, Scope scope)  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting\Runtime\ScriptCode.cs  
(88)  
at ScriptCode.Run(Scope scope)  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting\Runtime\ScriptCode.cs  
(80)  
at SourceUnit.Execute(Scope scope, ErrorSink errorSink)  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting\SourceUnit.cs(223)  
at ScriptSource.Execute(ScriptScope scope)  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting\Hosting\ScriptSource.  
cs(128)  
at Program.RunRuby() C:\DATA\IronRuby128Testing\Program.cs(23)  
…

\<and, ignoring that, exception follows\>

System.ArgumentException: wrong number or type of arguments for `text=' at _stub_$36##36(Closure , CallSite , CodeContext , Object , RubyArray ) at _stub_MatchCaller(DynamicSiteTarget`4 , CallSite , Object[] )  
at System.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[] args) in C:\programs\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\CallSite .cs:line 272 at System.Scripting.Actions.UpdateDelegates.Update3[T,T0,T1,T2,TRet](CallSi te site, T0 arg0, T1 arg1, T2 arg2) in C:\programs\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\UpdateDe legates.Generated.cs:line 41 at Ruby.Builtins.KernelOps.SendMessage(CodeContext context, Object self, BlockParam block, SymbolId methodName, Object[] args) in C:\programs\IronRuby\trunk\src\IronRuby.Libraries\Builtins\KernelOps.cs: line 1252 at _stub_$30##30(Closure , CallSite , RubyScope , Object , Object , Object ) at method_missing;;13$4##4(Closure , BlockParam , Object , Object[] , RubyArray ) at Ruby.Runtime.Calls.BlockDispatcherUnsplatN.Invoke(BlockParam param, Object self) in C:\programs\IronRuby\trunk\src\ironruby\Runtime\Calls\BlockDispatcherUns platN.cs:line 43 at Ruby.Runtime.RubyOps.Yield0(Object self, BlockParam blockParam) in C:\programs\IronRuby\trunk\src\ironruby\Runtime\RubyOps.cs:line 250 at _stub_$35##35(Closure , CallSite , RubyScope , Object , MutableString ) at _stub_MatchCaller(DynamicSiteTarget`4 , CallSite , Object[] )  
at System.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[]  
args) in  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\CallSite  
.cs:line 272  
at  
System.Scripting.Actions.UpdateDelegates.Update3[T,T0,T1,T2,TRet](CallSi  
te site, T0 arg0, T1 arg1, T2 arg2) in  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting.Core\Actions\UpdateDe  
legates.Generated.cs:line 41  
at #top-level-method#$1##1(Closure , Scope , LanguageContext )  
at Microsoft.Scripting.ScriptCode.InvokeTarget(LambdaExpression code,  
Scope scope) in  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting\Runtime\ScriptCode.cs  
:line 88  
at Microsoft.Scripting.ScriptCode.Run(Scope scope) in  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting\Runtime\ScriptCode.cs  
:line 80  
at Microsoft.Scripting.SourceUnit.Execute(Scope scope, ErrorSink  
errorSink) in  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting\SourceUnit.cs:line  
223  
at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope  
scope) in  
C:\programs\IronRuby\trunk\src\Microsoft.Scripting\Hosting\ScriptSource.  
cs:line 128  
at Program.RunRuby() in C:\DATA\IronRuby128Testing\Program.cs:line 23  
…

* * *

I can add a bug about this to the Bugtracker once confirmed that from  
spec-point-of-view, IR 127 is the correct way to behave and IR 128  
incorrect.

Robert B.  
Software architect  
Napa Ltd  
Tammasaarenkatu 3, Helsinki FI-00180  
P.O.Box 470, Helsinki FI-00181

Tel. +358 9 22 813 1  
Direct. +358 9 22 813 611  
GSM +358 45 11 456 02  
Fax. +358 9 22 813 800

Email: removed\_email\_address@domain.invalid

> **[Home – NAPA](https://www.napa.fi/)**
>
> NAPA provides intelligent solutions for maritime industry: Software, Services and Data Analysis for Ship Design and Operation. We combine naval architecture, shipping and digital expertise to help maritime business make the decisions that matter.

---

<div class="post-metadata">

**Author:** ![John\_LSSIRONRUBY](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/4491bb/32.png) [@John\_LSSIRONRUBY](https://www.ruby-forum.com/u/John_LSSIRONRUBY)\
**Post date:** [August 13, 2008, 8:52pm UTC](https://www.ruby-forum.com/t/after-a-long-delay-r128-is-out/145698/4 "2008-08-13T20:52:05Z")

</div>

I’ve pushed out changes to our versions of Mspec, Rubyspec, and  
ironruby-tags that should work with this revision. I’d appreciate if  
someone could grab them, and rake compile and rake regression on them to  
be certain.

Our version of MSpec is now almost identical to the real version. I have  
one extra helper and two extra formatters that I need to fix and give to  
the real Mspec.

After that we may move away from a fork of MSpec, and just use the real  
version. I’d like to get to a point where we are running a specific tag  
of the real version, and only needing the git repo for our tags. We’ll  
see where that goes, and how it goes.

JD

From: removed\_email\_address@domain.invalid  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] On Behalf Of Ryan R.  
Sent: Tuesday, August 12, 2008 6:12 PM  
To: removed\_email\_address@domain.invalid  
Subject: Re: [Ironruby-core] After a long delay, r128 is out

Thanks for all your hard work. It’s looking great!

From: removed\_email\_address@domain.invalid  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] On Behalf Of John L.  
(IRONRUBY)  
Sent: Tuesday, August 12, 2008 7:07 PM  
To: removed\_email\_address@domain.invalid  
Subject: [Ironruby-core] After a long delay, r128 is out

Hi Everyone,

We were stalled on a bunch of improvements that I wanted to make for  
external devs (mostly related to removal of the SIGNED requirement for  
external layouts). That’s been done now, and modulo some hiccups around  
mspec right now which we will fix tomorrow, we should be back in the  
business of regular updates.

Thanks,  
-John

---

<div class="post-metadata">

**Author:** ![John\_LSSIRONRUBY](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/4491bb/32.png) [@John\_LSSIRONRUBY](https://www.ruby-forum.com/u/John_LSSIRONRUBY)\
**Post date:** [August 14, 2008, 12:47am UTC](https://www.ruby-forum.com/t/after-a-long-delay-r128-is-out/145698/5 "2008-08-14T00:47:39Z")

</div>

Rake compile and rake regression work.

From: removed\_email\_address@domain.invalid  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] On Behalf Of Jim D.  
Sent: Wednesday, August 13, 2008 11:51 AM  
To: removed\_email\_address@domain.invalid  
Subject: Re: [Ironruby-core] After a long delay, r128 is out

I’ve pushed out changes to our versions of Mspec, Rubyspec, and  
ironruby-tags that should work with this revision. I’d appreciate if  
someone could grab them, and rake compile and rake regression on them to  
be certain.

Our version of MSpec is now almost identical to the real version. I have  
one extra helper and two extra formatters that I need to fix and give to  
the real Mspec.

After that we may move away from a fork of MSpec, and just use the real  
version. I’d like to get to a point where we are running a specific tag  
of the real version, and only needing the git repo for our tags. We’ll  
see where that goes, and how it goes.

JD

From: removed\_email\_address@domain.invalid  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] On Behalf Of Ryan R.  
Sent: Tuesday, August 12, 2008 6:12 PM  
To: removed\_email\_address@domain.invalid  
Subject: Re: [Ironruby-core] After a long delay, r128 is out

Thanks for all your hard work. It’s looking great!

From: removed\_email\_address@domain.invalid  
[[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)] On Behalf Of John L.  
(IRONRUBY)  
Sent: Tuesday, August 12, 2008 7:07 PM  
To: removed\_email\_address@domain.invalid  
Subject: [Ironruby-core] After a long delay, r128 is out

Hi Everyone,

We were stalled on a bunch of improvements that I wanted to make for  
external devs (mostly related to removal of the SIGNED requirement for  
external layouts). That’s been done now, and modulo some hiccups around  
mspec right now which we will fix tomorrow, we should be back in the  
business of regular updates.

Thanks,  
-John
