我有一个.NET 4.0应用程序,它大量使用尾递归(用F#编程).它在.NET VM上运行良好,但在Mono-3.0.1上运行时没有堆栈.
我试过跑步,mono --optimize=tailc
但似乎没有改变任何东西.
有没有办法强制单声道消除尾部呼叫?有没有办法增加单声道的最大堆栈大小?
最近有一个非常相似的问题,并提供了有用的答案:Mono 下的堆栈大小
正如 Robert Harvey 在评论中已经指出的那样,Mono 对 F# 的尾部调用支持已损坏/不完整(错误 476785:F# 中的尾部调用支持)。此问题的修复位于 Mono 的运行时正在进行的项目列表中。
System.Threading.Thread
堆栈大小可以使用构造函数或在 PE 标头中增加。但这种System.Threading.Thread
方式在 Mono 中不起作用。为了更改 PE,您可能需要 MS Visual Studio,因为可能没有其他替代品editbin.exe /stack
。
归档时间: |
|
查看次数: |
314 次 |
最近记录: |