gpt4 book ai didi

.net - Mono 中的尾调用消除

转载 作者:行者123 更新时间:2023-12-03 13:02:09 24 4
gpt4 key购买 nike

我有一个大量使用尾递归(用 F# 编程)的 .NET 4.0 应用程序。它在 .NET VM 上运行良好,但在 Mono-3.0.1 上用完堆栈。

我试过用 mono --optimize=tailc 运行但这似乎并没有改变任何东西。

有没有办法强制单声道消除尾音?
有没有办法增加单声道的最大堆栈大小?

最佳答案

最近有一个非常相似的问题,提供了有用的答案:Stack size under Mono

正如 Robert Harvey 在评论中已经指出的那样,Mono 对 F# (bug 476785: Tail call support in F#) 的尾调用支持已中断/不完整。解决此问题的方法是 on Mono's runtime ongoing projects list .

可以使用 System.Threading.Thread 增加堆栈大小构造函数或在 PE header 中。 System.Threading.Thread方式does not work in Mono , 尽管。要更改 PE,您可能会 need MS Visual Studio ,因为它的 editbin.exe /stack 可能没有其他选择.

关于.net - Mono 中的尾调用消除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13617071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com