在阅读了一些有关Mono 2.6垃圾收集器不足之处的报道之后,我决定给Mono 2.10一个机会.我发现2.10运行时崩溃了以下简单的F#程序:
let rec f x acc =
if x = 0 then acc
else f (x - 1) (acc + 1)
f 10 0
Run Code Online (Sandbox Code Playgroud)
等效循环C#代码运行得很好,就像F#hello world程序一样.F#代码也适用于Mono 2.6和.Net.其他人可以重现这个吗?这是一个错误还是只是我的安装?
以下是我尝试的各种运行时间和结果.
单声道2.10.2(从Debian Squeeze的源代码编译)
-- "Stack overflow: IP: 0x4153bb84, fault addr: (nil)"
Run Code Online (Sandbox Code Playgroud)Mono 2.8(源自Debian Squeeze的资源)
-- "Native stacktrace: ..."
Run Code Online (Sandbox Code Playgroud)单声道2.10.2(Windows二进制)
-- "mono.exe has stopped working" dialog.
Run Code Online (Sandbox Code Playgroud)单声道2.10.2(VMware映像)
-- Segmentation fault
Run Code Online (Sandbox Code Playgroud)单声道2.6.7(与Debian Squeeze捆绑在一起)
-- Works fine
Run Code Online (Sandbox Code Playgroud)使用的F#编译器来自2010年11月的CTP.