2013-04-26 6 views
5

動作しない複雑さのための賞を獲得しませんコードのビットは次のとおりです。些細なスニペットはここMONO

[<EntryPoint>] 
let main argv = 
    let i = 1I 
    printfn "One is %A\n" i 
    0 // return an integer exit code 

これは次のようにコンパイルされています:「C:/プログラムファイル(x86の)/ Microsoft SDK/F#/ 3.0/Framework/v4.0/Fsc.exe " - out:numericstest.exe --debug:full --target:exe --standalone Program.fs

Windowsでは、結果。しかし、Mono 3.0.7の下でUbuntuの下でコンパイルされています:

mono numericstest.exe 

Unhandled Exception: System.InvalidProgramException: Invalid IL code in System.Numerics.BigInteger:get_One(): method body is empty. 

at Program.main (System.String[] argv) [0x00000] in <filename unknown>:0[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid IL code in System.Numerics.BigInteger:get_One(): method body is empty. 

at Program.main (System.String[] argv) [0x00000] in <filename unknown>:0 

私は間違っていますか?どうもありがとう。

答えて

2

コードに問題はありません。その例外は、コードが原因です。あなたのマシンに​​アセンブリが何か問題があるようです。それは正しくインストールされていないか、正しくコンパイルされていないか(例えばMono C#コンパイラによって)、またはそれは必要なように動作しない何らかのタイプの転送をしている。

BigInteger(I接尾辞経由)を使用していますか?


VirtualBoxで動作する私のUbuntu(12.04,32ビット)VMであなたのコードを試しました。コードがコンパイルされ、期待どおりに実行されました。あなたがしたい場合は出力は次のとおりです。

コンパイル/実行

[email protected]:~/Desktop$ fsharpc --out:JoeHuha.exe --debug:full --target:exe --standalone JoeHuha.fs 
F# Compiler for F# 3.0 (Open Source Edition) 
Freely distributed under the Apache 2.0 Open Source License 
[email protected]:~/Desktop$ mono JoeHuha.exe 
One is 1 

モノラルバージョン情報

[email protected]:~/Desktop$ mono -V 
Mono JIT compiler version 3.0.5 (master/1643364 Fri Feb 22 19:31:07 EST 2013) 
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com 
    TLS:   __thread 
    SIGSEGV:  altstack 
    Notifications: epoll 
    Architecture: x86 
    Disabled:  none 
    Misc:   softdebug 
    LLVM:   supported, not enabled. 
    GC:   Included Boehm (with typed GC and Parallel Mark) 
+0

それはint型でうまく動作します。残念ながら、私は本当にbigintsが必要です。それは、静的にリンクされたコードであっても、おそらく数値の正しいコピーを持っている(既に動的にリンクされたバージョン、同じ結果を試した)場合でも失敗するようです。私は本当に究極の答えが "モノが成熟するまで待たない"ことを願っています –

+0

@ JoeHuha - あなたのコードはF#3.0とモノ2.10.2でうまく動作します。あなたのインストールに問題があると思います。 –

+0

Monoは、特にXamarinが昨年Novellから自由になって以来、非常にうまく成熟しています。いずれにしても、私は明日あなたのコードを試してみるでしょう(まだ解決されていなければ)、同じバグに遭遇しているかどうかを見てください。そうすれば、少なくともあなたはバグの範囲についてより良いアイデアを得るでしょう。 –

関連する問題