最新的 F# 破坏了二进制兼容性

  • Abel Avram
  • 朱永光

2009 年 5 月 23 日

话题:.NET编程语言函数式编程语言 & 开发

微软在 VS 2010 Beta 1中包含了 F#,并发布了对应的用于 VS2008 的 CTP 更新。最新的二进制版本 1.9.6.16,和之前的版本 1.9.6.2 不兼容,意味着所有之前的代码都需要重新编译。

微软不仅把 F# 添加到 VS 2010 Beta 1 中以实现 2007 年许下在 Visual Studio 中包含 F# 的承诺,而且还为那些不想使用测试版只愿意用同.NET 2.0-3.5 一道的稳定 IDE 的人,也提供了一个 VS 2008 的 CTP 更新版本。

Don Syme 提供了一个详细的发布说明,提到了二进制不兼容的问题:

使用新版本编译的 F# 二进制文件与之前版本上的二进制文件已经不兼容,所以必须重新编译。F# 的二进制兼容性是 Visual Studio 2010 的 RTM 版本的一个目标。

另外一个显著的破坏性改变是,默认使用轻量级语法(#light)。这让代码默认情况下空白有效(whitespace-significant)。所以,包含在MSDN 演练中的例子里面的非法空白就需要删除掉。

一些有用的链接:发布说明、InfoQ 采访: Don Syme Answering Questions on F#, C#, Haskell and Scala译文连接), InfoQ 上的 F# 内容中文内容)、由 Luca Bolognese 做的 PDC 演讲 (初学者)、 在 VS2010 中关于 F# 的 MSDN 演练MSDN Visual F# 文档MSDN F# 代码库

查看英文原文:Latest F# Breaks Binary Compatibility

.NET编程语言函数式编程语言 & 开发