Fo on Mono(2.11)的尾调用优化的当前状态是什么?

use*_*673 8 linux mono f# arm tail-call-optimization

Mono(2.11)上的尾调用优化(TCO)实现的当前状态是什么?在某处读取需要修改所有代码库以使用callee-pops-arguments约定.这种变化的状态如何?ARM/Linux端口是否是最新的?

谢谢!

Joh*_*mer 3

尾部调用绝对可以在 Linux 上的单声道上工作 - 使用测试

let rec f a = f (a+1)
Run Code Online (Sandbox Code Playgroud)

没有崩溃 - 在 Mono 2.10.2 上测试

更新

使用 Brian 的链接进行了测试 - https://bugzilla.novell.com/show_bug.cgi?id=476785

.tail尽管生成了指令,它在 Mono 2.10.2 上还是崩溃了

  • 我无法重现这些错误。2.10.2是古老的,你知道吗?你至少需要 2.10.8。这两个版本之间大约需要 10 个月的工作时间 (6认同)
  • @miguel.de.icaza - 刚刚在从 git master 编译的 mono 上进行了测试,在使用 `fsc --optimize+ --tailcalls+` 和 `mono --optimize=all` 以及普通的 `mono` 编译文件时崩溃了 (5认同)