两个f#编译器项目有什么区别

时间:2018-05-29 08:45:36

标签: f# compiler-construction

我想学习f#编译器的内部结构。事实证明,github上有两个存储库。以下是这些回购的链接:

  1. https://github.com/Microsoft/visualfsharp

  2. https://github.com/fsharp/fsharp

  3. 这些项目有什么区别?我应该用什么来学习编译器的设计?我真的无法理解差异。

1 个答案:

答案 0 :(得分:6)

主要区别在于所有权。

Microsoft存储库由Microsoft拥有,他们负责使用Visual Studio打包F#(因此“Visual F#”)。

FSharp存储库归F#Software Foundation所有,负责打包F#以在Linux,Android,iOS等上使用。

编译器和工具主要在两个存储库之间进行镜像,但它们在任何时间点都不一定完全相同 - 有关详细信息,请参阅F#Core Engineering Group。新的贡献将转移到Microsoft存储库,之后它们会被复制到F#SF存储库(因此平台之间没有差异 - 跨平台的东西只有轻微的延迟)。

如果您想了解有关F#开发的更多信息,https://fsharp.github.io/2014/06/18/fsharp-contributions.html是一个很好的起点。

要直接回答:使用Microsoft存储库。如果要查看跨平台实现的细节,您只需要关心F#SF存储库。