新泽西州标准ML
110.79版新闻
2015年10月4日

SML/NJ主页:
http://www.smlnj.org/index.html
文件夹:
http://smlnj.cs.uchicago.edu/dist/working/10.79/

总结:

此版本相当重要,包括新版本基础库模块和开始支持继任者ML,这是标准ML语言的演变。它还支持最新版本的Mac OS X(El Capitan)和Linux 4.X内核,以及许多错误修复。

细节:

编译器:

编译器速度稍快(编译自身时约为7%)。

基础库:

此版本对基础库.请注意,这些改进是建议尚未批准且可能更改的文件!具体而言,此版本的SML/NJ支持以下提案:

[2015-001]对ListPair的更正
SML/NJ已经实现了本提案中描述的语义。
[2015-002]添加任一模块
此更改添加了要么结构到基础库。
[2015-003]序列的附加操作
此更改将操作添加到阵列,列表,列表对,选项,矢量结构,以及单数组(_A)单矢量(_V)签名。
[2015-005]添加Fn模块
此更改添加了Fn公司结构到基础库。
[2015-007]添加Ref模块
此更改添加了裁判结构到基础库。
[2015-009]例外和部分应用程序的策略
此更改标准化了部分应用curried基函数时异常的生成。更改修复了错误136.

这些更改不太可能破坏现有代码,但代码可能会中断的几个场景。首先是冲突的产生通过使用打开例如,实施属于ml-年具有形式声明

打开阵列列表
创建了类型错误,因为列表.sub有阴影的数组.sub.

第二类问题是模块实现一个受影响的基础时签名。例如MLRISC公司该库有两个实现的模块的扩展阵列签名和所需内容修改以编译。

在这种情况下,我们建议更新源代码,但也可以编译与旧版本的基础库通过更改线条

美元/基础.cm

美元/基础-2004.cm

在CM文件中。请注意,的向后兼容版本基础库只是如果老旧的基础中的目标配置/目标被请求的时间SML/新泽西已生成(请求此目标默认情况下)。

我们还添加了以下可选的实现基础库结构:

结构PackReal64Big:PACK_REAL结构PackReal64Little:PACK_REAL结构PackRealBig:PACK_REAL结构PackRealLittle:PACK_REAL
继任者ML:

继任者ML是对标准ML语言。MLton公司我们是实施者开始添加对这些功能的支持SML/新泽西.在此版本中,我们添加了对该语言词汇扩展的支持:

可以使用命令行选项启用这些功能-Cparser.suck-ml=真或使用赋值

Control.succML:=真;

在REPL。也可以将单个源文件标记为存在“继任者ML“CM文件中的源。有这样做的几种方法;最简单的方法是指定它们应该是由“suc-ml公司“工具:

foo.sml:成功ml

或者,可以给出“suc-ml公司“参数"sml公司“工具:

foo.sml:sml(suc-ml)foo.sml(suc-ml)

也可以通过设置控制标志来启用它们使用具有CM文件中的关键字为通过以下等效形式进行说明:

foo.sml文件(具有:解析器.suck-ml)foo.sml文件(具有:parser.suck-ml=true)foo.sml文件(具有:(名称:解析器.suck-ml))foo.sml文件(具有:(名称:parser.suck-ml价值:true))

漏洞:

以下是此版本修复(或关闭)的跟踪错误列表,请参阅错误追踪系统了解更多详细信息。

45专门化阶段的编译器错误
53不推荐使用psfig.sty,请使用epsfig.sty包装器或graphicx.sty
82缺少PACK_REAL的实现
131ml-ulex不允许在%states指令中添加注释
134无法使用Linux内核4.x构建
135无法在Linux PowerPC上构建
136在Real.fmt和Time.fmt中错误地引发异常
137调整Linux PPC构建以使用mkstemp而不是tmpnam
138Date.fromTimeLocal的错误行为
139Date.Date已中断
140编译Twelf时closure.sml中的查找失败

支持的系统:

我们已经验证了系统在以下系统上构建和运行。

建筑 操作系统
PowerPC公司 Mac OS X 10.5(豹)
   
x86(x86) Mac OS X 10.6(雪豹)
Mac OS X 10.7(狮子)
Mac OS X 10.8(山狮)
Mac OS X 10.9(小牛队)
Mac OS X 10.10(约塞米蒂)
Mac OS X 10.11(El Capitan)
Ubuntu 12.04.4(GNU/Linux 3.2.0)
Windows 7
Cygwin(在Windows 7上托管)

我们相信它可以在任何支持32位的最新Linux发行版上运行可执行文件,以及在BSD变体、SPARC/Solaris和PPC/AIX上,但我们没有测试了这些系统。