[Ironruby-core] Regression ? "Invalid IL code in (wrapper dynamic-method)"

Tomas Matousek Tomas.Matousek at microsoft.com
Fri Feb 27 12:40:29 EST 2009


Jim, could you push the latest sources to GIT?
Jb, could you try again using the latest source code (after Jim pushes it) and if it fails send me please full stack trace and complete IL of the offending method?

Thanks,
Tomas

-----Original Message-----
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Jb Evain
Sent: Friday, February 27, 2009 12:09 AM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] Regression ? "Invalid IL code in (wrapper dynamic-method)"

Hey Jim,

On 2/27/09, Jim Deville <jdeville at microsoft.com> wrote:
> Can anyone confirm if this is only a Mono problem? Also, what platform x86
> or x64 (doubt it makes a difference, but I want to be certain)? I can't
> repro on .NET.

Let say it's a shared problem :)

The issue comes from our verifier, which, well, verifies the whole
method body. It's shocking on a dynamic method which looks like:

ldc.i4.1
brfalse target
ldarg.3
call foo
ret
pop

target:

ldarg.1
call bar
bla bla bla
...

The issue is the pop, in between the ret and the jump target. .net's
JIT will optimize it away, and not even verify it, as it will never be
executed.

But our verifier, well, verifies the whole method body, hence the
InvalidProgramException.

We've had this issue already with some obfuscators injecting plain non
sense, so I guess at some point we'll fix it on our side. It would be
nice if IronRuby could emit nice and verifiable code though.

-- 
Jb Evain  <jb at nurv.fr>
_______________________________________________
Ironruby-core mailing list
Ironruby-core at rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core



More information about the Ironruby-core mailing list