[nem-en] Compiling Nemerle

Kamil Skalski kamil.skalski at gmail.com
Mon Sep 10 01:58:04 CEST 2007


This is a bug in a recent mono release, which is already fixed on mono
svn. Use either the previous version of mono or development one.

2007/9/10, J. Pablo Fernández <pupeno at pupeno.com>:
> Hello,
>
> I've been trying to use Nemerle for some time. I've tried the stable version,
> 0.9.3, but monodevelop seems to require 0.9.3.99, so I've decided to try svn
> trunk, but I can't get it to compile as you can see in the next log. Is there
> any particular snapshot that I should try?
>
> Thanks.
>
> pupeno at silver:~/kampu/zasni/mono/nemerle$ ./configure --prefix=/opt/mono/
> Checking for .NET environment... mono
> Checking if we are using Mono < 1.2.3... no
> Checking for presence of regtool in the system... not found
> Checking for .NET disassembler... monodis
> Checking for native image generator... disabled
> Checking if Nemerle compiler works... yes
> Checking for gacutil... found
> Checking if we are using mono gacutil... yes
> Checking for mono libdir... /opt/mono/lib/pkgconfig/../../lib
> Checking for PEVerify... not found
> Checking for ilasm2... found
> Checking for C# compiler... found, gmcs
> Checking for Python version... 2.5, ok
> Checking for antlr >= 2.7.5... yes, 2.7.5+
> Checking for nant... yes
> Checking for nant plugin directory... found, /opt/mono/lib/NAnt
> Checking for nunit-console for .NET 2.0... found, nunit-console2
> Checking for MSBuild... found
> Creating config.mak
> Creating nemerle.pc
> pupeno at silver:~/kampu/zasni/mono/nemerle$ make
> make[1]: Entering directory `/home/pupeno/kampu/zasni/mono/nemerle/ncc'
> make[2]: Entering directory `/home/pupeno/kampu/zasni/mono/nemerle/ncc'
> MKDIR out.stage1
> make[3]: Entering directory `/home/pupeno/kampu/zasni/mono/nemerle/ncc'
> COMPILE [stage1] Nemerle.dll
> ___________.................................................
> ** ERROR **: file metadata.c: line 950 (mono_metadata_decode_row): assertion
> failed: (res_size == count)
> aborting...
> Stacktrace:
>
>   at (wrapper managed-to-native) System.MonoType.GetFields_internal
> (System.Reflection.BindingFlags,System.Type) <0x00004>
>   at (wrapper managed-to-native) System.MonoType.GetFields_internal
> (System.Reflection.BindingFlags,System.Type) <0xffffffff>
>   at System.MonoType.GetFields (System.Reflection.BindingFlags) <0x00010>
>   at System.Reflection.Emit.TypeBuilder.GetFields
> (System.Reflection.BindingFlags) <0x00024>
>   at System.Reflection.MonoGenericClass.initialize () <0x00080>
>   at System.Reflection.MonoGenericClass.GetField (System.Reflection.FieldInfo)
> <0x0000d>
>   at System.Reflection.Emit.TypeBuilder.GetField
> (System.Type,System.Reflection.FieldInfo) <0x00015>
>   at Nemerle.Compiler.ILEmitter.FrameworkGetField
> (System.Type,System.Reflection.FieldInfo) <0x000c3>
>   at Nemerle.Compiler.ILEmitter.GetFieldInfo
> (System.Type,Nemerle.Compiler.IField) <0x00040>
>   at Nemerle.Compiler.ILEmitter.GetFieldInfo
> (Nemerle.Compiler.Typedtree.TExpr,Nemerle.Compiler.IField) <0x00049>
>   at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
> <0x0593e>
>   at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
> <0x0498d>
>   at Nemerle.Compiler.ILEmitter.emit_parms (Nemerle.Core.list`1) <0x000ac>
>   at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
> <0x06bd0>
>   at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
> <0x047c2>
>   at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
> <0x0498d>
>   at Nemerle.Compiler.ILEmitter.Run () <0x00183>
>   at _N__N_l42742_42851.apply_void () <0x0009d>
>   at Nemerle.Compiler.TypeBuilder.FinalizeType () <0x000a6>
>   at Nemerle.Compiler.TypeBuilder.EmitImplementation () <0x001a0>
>   at _N_emit_impl_36219.apply_void (Nemerle.Compiler.TypeBuilder) <0x0004c>
>   at _N_maybe_f_36826.apply_void (Nemerle.Compiler.TypeBuilder) <0x001ed>
>   at Nemerle.Collections.List.Iter
> (Nemerle.Core.list`1,Nemerle.Builtins.FunctionVoid`1) <0x000a6>
>   at Nemerle.Core.list`1.Iter (Nemerle.Builtins.FunctionVoid`1) <0x0000d>
>   at Nemerle.Compiler.TypesManager.Iter
> (Nemerle.Core.list`1,Nemerle.Builtins.FunctionVoid`1) <0x0008a>
>   at Nemerle.Compiler.TypesManager.Iter (Nemerle.Builtins.FunctionVoid`1)
> <0x00026>
>   at Nemerle.Compiler.TypesManager.compile_all_tyinfos (bool) <0x001a1>
>   at _N__N_l35631_35734.apply_void () <0x0001b>
>   at Nemerle.Compiler.Solver.Enqueue (Nemerle.Builtins.FunctionVoid) <0x0003b>
>   at Nemerle.Compiler.TypesManager.EmitDecls () <0x0004f>
>   at Nemerle.Compiler.ManagerClass.Run () <0x002a0>
>   at Nemerle.CommandlineCompiler.MainClass.main_with_catching () <0x000ce>
>   at Nemerle.CommandlineCompiler.MainClass.Main () <0x0011b>
>   at (wrapper runtime-invoke)
> Nemerle.CommandlineCompiler.MainClass.runtime_invoke_void
> (object,intptr,intptr,intptr) <0xffffffff>
>
> Native stacktrace:
>
>         mono [0x81681c0]
>         [0xffffe440]
>         /lib/tls/i686/cmov/libc.so.6(abort+0x101) [0x4013c641]
>         /usr/lib/libglib-2.0.so.0(g_logv+0x4ca) [0x4006f70a]
>         /usr/lib/libglib-2.0.so.0(g_log+0x29) [0x4006f749]
>         mono(mono_metadata_decode_row+0x70) [0x80eff90]
>         mono [0x80ffd68]
>         mono [0x81002b5]
>         mono(mono_class_get_fields+0x20) [0x81002e0]
>         mono [0x80a27f2]
>         [0x41146a05]
>         [0x411469c1]
>         [0x413443ed]
>         [0x41323ee1]
>         [0x41323e1e]
>         [0x41323dc6]
>         [0x41323d84]
>         [0x4130e149]
>         [0x4130dbea]
>         [0x4140893f]
>         [0x4140798e]
>         [0x4141022d]
>         [0x41409bd1]
>         [0x414077c3]
>         [0x4140798e]
>         [0x412f8f5c]
>         [0x412f3686]
>         [0x412f343f]
>         [0x412b0599]
>         [0x412b032d]
>         [0x4125e3a6]
>         [0x4125e11f]
>         [0x4125e05e]
>         [0x4125dfeb]
>         [0x4125df2f]
>         [0x412a45b2]
>         [0x41310cd4]
>         [0x41310bcc]
>         [0x41310b28]
>         [0x40e1f7f1]
>         [0x40e1932f]
>         [0x405fc2c4]
>         [0x405fbf06]
>         mono [0x8154f36]
>         mono(mono_runtime_invoke+0x27) [0x80927b7]
>         mono(mono_runtime_exec_main+0xb0) [0x80966e0]
>         mono(mono_runtime_run_main+0x215) [0x8096dd5]
>         mono(mono_main+0xa15) [0x8058e25]
>         mono [0x8057f0e]
>         /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc) [0x40126ebc]
>         mono [0x8057e51]
>
> Debug info from gdb:
>
> Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
> [Thread debugging using libthread_db enabled]
> [New Thread 1076215280 (LWP 27624)]
> [New Thread 1086765968 (LWP 27626)]
> [New Thread 1079999376 (LWP 27625)]
> 0xffffe410 in __kernel_vsyscall ()
>   3 Thread 1079999376 (LWP 27625)  0xffffe410 in __kernel_vsyscall ()
>   2 Thread 1086765968 (LWP 27626)  0xffffe410 in __kernel_vsyscall ()
>   1 Thread 1076215280 (LWP 27624)  0xffffe410 in __kernel_vsyscall ()
>
> Thread 3 (Thread 1079999376 (LWP 27625)):
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x400df986 in ?? () from /lib/tls/i686/cmov/libpthread.so.0
> #2  0x0810615e in collection_thread (unused=0x0) at collection.c:34
> #3  0x400d831b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #4  0x401e057e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 2 (Thread 1086765968 (LWP 27626)):
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x400dc5c6 in pthread_cond_wait@@GLIBC_2.3.2 ()
>    from /lib/tls/i686/cmov/libpthread.so.0
> #2  0x0810906f in timedwait_signal_poll_cond (cond=0x4065b1dc,
>     mutex=0x4065b1c4, timeout=0x0, alertable=0) at handles.c:1413
> #3  0x0810916f in _wapi_handle_timedwait_signal_handle (handle=0x404,
>     timeout=0x0, alertable=0) at handles.c:1493
> #4  0x081092ba in _wapi_handle_wait_signal_handle (handle=0xfffffffc,
>     alertable=-4) at handles.c:1453
> #5  0x0811c5d1 in WaitForSingleObjectEx (handle=0x404, timeout=4294967295,
>     alertable=0) at wait.c:200
> #6  0x080adedb in finalizer_thread (unused=0x0) at gc.c:835
> #7  0x080cd990 in start_wrapper (data=0x8250e90) at threads.c:319
> #8  0x0811b280 in thread_start_routine (args=0x406ad3c0) at threads.c:253
> #9  0x081314c4 in GC_start_routine (arg=0xfffffffc) at pthread_support.c:1362
> #10 0x400d831b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
> #11 0x401e057e in clone () from /lib/tls/i686/cmov/libc.so.6
>
> Thread 1 (Thread 1076215280 (LWP 27624)):
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0x401d93d1 in select () from /lib/tls/i686/cmov/libc.so.6
> #2  0x400924a0 in g_spawn_sync () from /usr/lib/libglib-2.0.so.0
> #3  0x4009286c in g_spawn_command_line_sync () from /usr/lib/libglib-2.0.so.0
> #4  0x0816823b in mono_handle_native_sigsegv (signal=6, ctx=0xbffc469c)
>     at mini-exceptions.c:1081
> #5  <signal handler called>
> #6  0xffffe410 in __kernel_vsyscall ()
> #7  0x4013adf0 in raise () from /lib/tls/i686/cmov/libc.so.6
> #8  0x4013c641 in abort () from /lib/tls/i686/cmov/libc.so.6
> #9  0x4006f70a in g_logv () from /usr/lib/libglib-2.0.so.0
> #10 0x4006f749 in g_log () from /usr/lib/libglib-2.0.so.0
> #11 0x080eff90 in mono_metadata_decode_row (t=0x6, idx=0, res=0xbffc5028,
>     res_size=3) at metadata.c:950
> #12 0x080ffd68 in mono_class_setup_fields (class=0x8cdaa3c) at class.c:867
> #13 0x081002b5 in mono_class_setup_fields_locking (class=0x8cdaa3c)
>     at class.c:947
> #14 0x081002e0 in mono_class_get_fields (klass=0x8cdaa3c, iter=0xbffc50c0)
>     at class.c:4983
> #15 0x080a27f2 in ves_icall_Type_GetFields_internal (type=0x7da620,
>     bflags=<value optimized out>, reftype=0x0) at icall.c:3147
> #16 0x41146a05 in ?? ()
> #17 0x007da620 in ?? ()
> #18 0x0000003e in ?? ()
> #19 0x007da620 in ?? ()
> #20 0x0821b108 in ?? ()
> #21 0x00c6e4c0 in ?? ()
> #22 0x00000000 in ?? ()
> #0  0xffffe410 in __kernel_vsyscall ()
>
>
> =================================================================
> Got a SIGABRT while executing native code. This usually indicates
> a fatal error in the mono runtime or one of the native libraries
> used by your application.
> =================================================================
>
> make[3]: *** [out.stage1/Nemerle.stage1.dll] Aborted (core dumped)
> make[3]: Leaving directory `/home/pupeno/kampu/zasni/mono/nemerle/ncc'
> make[2]: *** [aux-stage] Error 2
> make[2]: Leaving directory `/home/pupeno/kampu/zasni/mono/nemerle/ncc'
> make[1]: *** [stage1] Error 2
> make[1]: Leaving directory `/home/pupeno/kampu/zasni/mono/nemerle/ncc'
> make: *** [all] Error 2
>
> --
> J. Pablo Fernández <pupeno at pupeno.com> (http://pupeno.com)
>
> _______________________________________________
> https://nemerle.org/mailman/listinfo/devel-en
>


-- 
Kamil Skalski
http://nazgul.omega.pl


More information about the devel-en mailing list