新泽西州标准ML
发行说明


版本110.91
2019年6月20日


总结

此次发布是向64位进军的又一个关卡。大多数变化与移植运行时系统以构建在AMD64上有关,但我们也有在系统的其他地方做了一些改进。

细节

安装

安装程序用于macOS 10.14 Mojave上的110.91作品,从源代码构建需要一些额外的步骤。您可能会遇到的另一个问题在macOS 10.14上构建时,Mojave是shell的错误消息表单脚本

/bin/sh:错误的解释器:不允许操作

出现此错误的原因是com.苹果.检疫属性设置在shell脚本。要解决此问题,请使用命令删除属性

xattr-d com.apple.quantification外壳脚本

并继续构建。

编译器

我们添加了一个新的primop,实际_位将浮点值强制转换为相同大小的单词值。此primop允许Assembly.logb函数在中实现SML公司.

这个目标中定义的结构基准/mlcomp现在包括endianes信息。这些信息是实施实际_位32位上的primop目标。

基础库

我们添加了可选的基础库模块PackWord64大压缩字64小.

我们还重构了数学要共享的结构针对不同级别的硬件支持。

运行时系统

  • 这个mach-dep/assyntax。小时文件,它提供一组宏以允许程序集同时使用AT&T和GNU汇编程序语法的代码已被替换mach-dep/x86-语法。小时。此新文件已被剥离,仅涵盖汇编代码中实际使用的指令。此外,它涵盖了这两个方面Unix和Windows汇编程序,以及x86(x86)amd64型架构。

  • 因为我们现在假设C99码支持,我们可以使用C类库函数飞地含铁的控制舍入模式。因此,我们有从程序集代码中删除这些。

  • 通过编译器对位转换的支持真实的值为单词64.word,我们可以实现对数b中的函数SML公司。因此,我们删除了对数b来自程序集代码。

漏洞

此版本没有修复任何已知的错误。

支持的系统

我们相信SML/NJ将在以下系统上构建和运行,但只有测试了其中一些:

建筑 操作系统 状态

电源PC

Mac OS X 10.5(Leopard)

AIX公司

 

斯巴达克

Solaris公司

Linux操作系统

 

x86(32位)

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)

macOS 10.12(塞拉利昂)

已测试

macOS 10.13(高塞拉)

已测试

macOS 10.14(莫哈韦)

已测试

Ubuntu 16.04.3 LTS版本

已测试

其他Linux变体

BSD变体

Windows 7

Windows 10

Cygwin(32位)

关于64位支持的说明

苹果正在反对macOS中的32位支持。使用macOS 10.14 Mojave编译32位应用程序,如SML/NJ运行时系统,需要使用较旧的SDK。SML/NJ安装程序,然而,在macOS 10.14 Mojave上运行时没有问题。

自110.82年以来,我们一直致力于64位支持,我们希望它能够到位在macOS 10.15发布之前。