[Mono-bugs] [Bug 76485][Maj] Changed - [GMCS] assertion failed in
monodis
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Wed Jan 18 05:36:22 EST 2006
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by malekith at pld-linux.org.
http://bugzilla.ximian.com/show_bug.cgi?id=76485
--- shadow/76485 2006-01-16 11:21:01.000000000 -0500
+++ shadow/76485.tmp.11701 2006-01-18 05:36:22.000000000 -0500
@@ -42,6 +42,107 @@
------- Additional Comments From jankit at novell.com 2006-01-16 11:21 -------
monodis seems to be working with Nemerle.dll fine. ilasm2(svn) can
roundtrip it also now. But am not sure whether there might be any
issues with the roundtripped assembly. It would be nice if nemerle's
test-suite could be tried on this and let us know if there are issues
with that. Thanks.
+
+------- Additional Comments From malekith at pld-linux.org 2006-01-18 05:36 -------
+So the good news: it works fine with the testsuite.
+
+There is a single tiny problem: monodis says special-name, while ilasm
+accepts only specialname. I think ilasm is right.
+
+However there are issues with PEVerify run on the resulting assemblies:
+
+[IL]: Error: [C:\cygwin\home\malekith\boot\Nemerle.dll :
+Nemerle.Collections.Set`1['a]::Sum['a]][offset 0x00000006] Unable to
+resolve token.
+[token 0x0200002F] Type load failed.
+2 Errors Verifying Nemerle.dll
+
+(similar errors occur in Nemerle.Compiler.dll).
+
+Offending method, when disassembled by MS ildasm:
+ .method public hidebysig instance class
+Nemerle.Collections.Set`1<!'\'a'>
+ Sum(class Nemerle.Collections.Set`1<!'\'a'> s) cil managed
+ {
+ // Code size 30 (0x1e)
+ .maxstack 4
+ .locals init (class Nemerle.Builtins.Function`3<!'\'a',class
+Nemerle.Collections.Tree/Node`1<!'\'a'>,
+ class Nemerle.Collections.Tree/Node`1<!'\'a'>> V_0)
+ IL_0000: ldarg.1
+ IL_0001: ldfld class Nemerle.Collections.Tree/Node`1<!0>
+class Nemerle.Collections.Set`1<!'\'a'>::root
+ IL_0006: ldarg.0
+ IL_0007: ldfld class Nemerle.Collections.Tree/Node`1<!0>
+class Nemerle.Collections.Set`1<!'\'a'>::root
+ IL_000c: newobj instance void class
+Nemerle.Collections.Set`1/_N__N_l10568_10578<!'\'a'>::.ctor()
+ IL_0011: stloc.0
+ IL_0012: ldloc.0
+ IL_0013: call !!1
+Nemerle.Collections.Tree::Fold<!'\'a',class
+Nemerle.Collections.Tree/Node`1<!'\'a'>>(class
+Nemerle.Collections.Tree/Node`1<!!0>,!!1,class
+Nemerle.Builtins.Function`3<!!0,
+
+ !!1,
+
+ !!1>)
+ IL_0018: newobj instance void class
+Nemerle.Collections.Set`1<!'\'a'>::.ctor(class
+Nemerle.Collections.Tree/Node`1<!0>)
+ IL_001d: ret
+ } // end of method Set`1::Sum
+
+and by monodis:
+
+ // method line 610
+ .method public hidebysig
+ instance default class Nemerle.Collections.Set`1<!'\'a'>
+Sum (class Nemerle.Collections.Set`1<!'\'a'> s) -> cil managed
+ {
+ // Method begins at RVA 0xcd0c
+ // Code size 30 (0x1e) .maxstack 4
+ .locals init (
+ class Nemerle.Builtins.Function`3<!'\'a', class
+Nemerle.Collections.Tree/Node`1<!'\'a'>, class ->
+Nemerle.Collections.Tree/Node`1<!'\'a'>> V_0)
+ IL_0000: ldarg.1
+ IL_0001: ldfld class Nemerle.Collections.Tree/Node`1<!0>
+class Nemerle.Collections.Set`1<!0>::root
+ IL_0006: ldarg.0
+ IL_0007: ldfld class Nemerle.Collections.Tree/Node`1<!0>
+class Nemerle.Collections.Set`1<!0>::root
+ IL_000c: newobj instance void class
+Nemerle.Collections.Set`1/_N__N_l10577_10587<!'\'a'>::.ctor()
+IL_0011: stloc.0
+ IL_0012: ldloc.0 IL_0013: call !!1 class
+Nemerle.Collections.Tree::Fold<!0, class
+Nemerle.Collections.Tree/Node`1<!0>> -> (class
+Nemerle.Collections.Tree/Node`1<!!0>, !!1, class
+Nemerle.Builtins.Function`3<!!0,!!1,!!1>)
+ IL_0018: newobj instance void class
+Nemerle.Collections.Set`1<!'\'a'>::.ctor(class
+Nemerle.Collections.Tree/-> Node`1<!0>)
+ IL_001d: ret
+ } // end of method Set`1::instance default class
+Nemerle.Collections.Set`1<!'\'a'> Sum (class Nemerle. ->
+Collections.Set`1<!'\'a'> s)
+
+
+Also when trying to ms.ilasm monodis produced assembly, it assembles
+fine, but later PEVerify screams:
+[IL]: Error: [C:\cygwin\home\malekith\stage3\n.dll :
+Nemerle.Utility.Getopt::Usage] Type load failed.
+[IL]: Error: [C:\cygwin\home\malekith\stage3\n.dll :
+Nemerle.Utility.Getopt::Parse] Type load failed.
+[IL]: Error: [C:\cygwin\home\malekith\stage3\n.dll :
+Nemerle.Utility.Getopt::Parse] Type load failed.
+[IL]: Error: [C:\cygwin\home\malekith\stage3\n.dll :
+Nemerle.Utility.Getopt::_N_concat4729] Type load failed.
+
+and so on, but it can be something wrong with my setup here.
+
More information about the mono-bugs
mailing list