gpt4 book ai didi

compiler-construction - F# 编译器问题

转载 作者:行者123 更新时间:2023-12-04 22:24:43 26 4
gpt4 key购买 nike

关于 F# 编译器的几个问题

1) --noframework 有什么作用?我用它编译但我仍然需要 .Net 4.0(我认为它可能允许移植到早期版本?)它是否删除了 F# 依赖?

2) F# --optimize+ 启用了哪些优化?他们都是?如果有,它们都是什么?

3) --tailcall 的优点/缺点是什么?我知道 x64 有时会忽略 .tailcall,我很好奇是否还有其他问题或这些问题是否仍然存在。

4) 什么是--crossoptimize,它有什么作用?

5) is there actually a fast sublanguage or is that something really old??

最佳答案

以下是一些基于内存的快速答案。 (您可以随时深入研究编译器代码以获取更多详细信息。)

1) 通过不尝试隐式使用任何 mscorlib/FSharp.Core 程序集,它允许针对不同的框架。所以你在例如时使用它您明确引用 Silverlight mscorlib/FSharp.Core 以定位 Silverlight。

2)是的,几乎所有的,我不知道他们都是什么。您可能会查看 opt.fs。

3) 调试 - 在“调试”模式下使用 VS 时,传递 --tailcalls- 以关闭尾调用并保留所有堆栈帧,以便更轻松地进行调试。

4) FSharp 可以跨程序集边界进行内联和其他优化。这对于已发布的库来说可能是危险的,因为如果 A 引用 B 和 A 使用交叉优化编译然后部署,然后有人更改/重新部署 B,则 A 可能会“调用”“旧” B 中的方法,因为来自 B 的代码被内联到 A 中,因此除非重新编译 A,否则 A 仍然具有“旧 B”代码。这在实践中很少有影响,但在“典型”场景中,如果您有许多依赖但可独立分发的 F# 库,您希望关闭交叉优化以摆脱脆弱的依赖关系。

5) 那已经不存在了。

关于compiler-construction - F# 编译器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5576448/

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