新泽西州标准ML
发行说明


110.89版
2019年6月1日


总结

此版本继续向64位支持进军。主要更改是固定Int,大单词、和职位结构别名现在为64位。此更改将假设这些结构与国际32,单词32、和国际32(分别)。

此版本可能不稳定,因此我们建议坚持110.87版用于生产工作。此外,我们还没有完成移植对运行时系统的Windows版本的更改,因此我们没有发布此版本的Windows MSI文件。

细节

安装

安装程序对于110.89在macOS 10.14 Mojave上的作品,从源代码构建需要一些额外的步骤。

编译器

  • 修复了64字算术操作。

  • 通过删除禁用的优化简化了代码生成器功能(内存消歧和GC类型)。

  • 添加缺少的缩写报价REM(快速眼动)primops公司。

基础库

  • 这个固定Int,大单词、和职位结构现在都是64位。因此国际6464字结构适当符合基本规范。
    此更改的另一个影响是超过\(2^{30}-1\)的文件现在支持字节大小(错误3336).

MLRISC和NLFFI

  • 修复了假定大单词单词32都是一样的。

运行时系统

  • 运行时系统是按照ANSI X3.159-1989标准编写的C类; 在里面这个发布器,我们添加了内联函数,其中在ISO中添加C99码。而Microsoft的Visual Studio没有完全支持该标准,它通常与ISO C99兼容。

  • 以前使用宏实现了小对象的分配;我们现在使用内联函数。内联函数更健壮,类型更安全,并且还可以更干净地处理装箱的32位整数32位目标,但在64位目标上未装箱。

  • 删除了用于以下操作系统的生成文件和代码:不再支持。

漏洞

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

33

inputLine函数溢出异常

36

无法打开非常大的文件

支持的系统

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

建筑 操作系统 状态

电源PC

Mac OS X 10.5(豹)
AIX(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发布之前。