Прочитав некоторые сообщения о недостатках сборщика мусора 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
Эквивалентный цикл C #-кода работает так же хорошо, как и на F # hello world program.Код F # также хорошо работает с Mono 2.6 и .Net.Кто-нибудь еще может воспроизвести это?Это ошибка или это просто моя установка?
Вот различные среды выполнения, которые я пробовал, и результаты, которые я получил.
Mono 2.10.2 (составлено изисходники Debian Squeeze)
-- "Stack overflow: IP: 0x4153bb84, fault addr: (nil)"
Mono 2.8 (скомпилировано из источников в Debian Squeeze)
-- "Native stacktrace: ..."
Mono 2.10.2 (Бинарный файл Windows)
-- "mono.exe has stopped working" dialog.
Mono 2.10.2 (образ VMware)
-- Segmentation fault
Mono 2.6.7 (в комплекте с Debian Squeeze)
-- Works fine
Используемый компилятор F # был взят из CTP-версии ноября 2010 года.