[Mono-bugs] [Bug 47968][Cri] New - mono crashes when executing a program that relies heavily on structs
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Wed, 27 Aug 2003 15:16:03 -0400 (EDT)
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 klaehn@gamemakers.de.
http://bugzilla.ximian.com/show_bug.cgi?id=47968
--- shadow/47968 2003-08-27 15:16:03.000000000 -0400
+++ shadow/47968.tmp.32568 2003-08-27 15:16:03.000000000 -0400
@@ -0,0 +1,45 @@
+Bug#: 47968
+Product: Mono/MCS
+Version: unspecified
+OS: All
+OS Details: Tried with Windows and Debian Unstable
+Status: NEW
+Resolution:
+Severity:
+Priority: Critical
+Component: Misc
+AssignedTo: mono-bugs@ximian.com
+ReportedBy: klaehn@gamemakers.de
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: mono crashes when executing a program that relies heavily on structs
+
+I wrote a matrix and vector library in cs, which uses only structs for
+performance reasons. The performance under microsoft.net is quite bad
+since it is incapable of inlining many simple method calls. You have to
+make the code quite ugly by using lots of static methods and ref
+parameters to get decent performance.
+
+I wanted to check out wether mono would do better, but it does not even
+run it! I tried both aot and jit.
+
+Here is the output of the program. I also tried this under debian
+unstable, with the same result, so it is not OS specific.
+
+-------------------------------------------------------------------------
+C:\Documents and Settings\Ruediger Klaehn\My Documents\SharpDevelop
+Projects\MatrixBenchmark>mono Benchmark.exe
+
+** (Benchmark.exe:2876): WARNING **: wrong maximal instruction length of
+instruction vcall (expected 8, got 11)
+
+This application has requested the Runtime to terminate it in an unusual
+way.
+-------------------------------------------------------------------------
+
+If you are interested in the code then contact me. It should be a nice
+benchmark for the quality of the JIT and AOT compiler once it compiles.
+It contains lots of small methods and temporary creation of structs, but
+a decent optimizer should be able to reduce it to a few instructions.