新泽西州标准ML
发行说明


110.90版
2019年6月12日


总结

此版本的主要目的是将Windows端口SML/NJ与Unix版本相当,具有64位清理能力。它还为CM中暴露的长期休眠错误提供了修复110.88年Basis重组。

细节

安装

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

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

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

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

并继续构建。

编译器

此编译器现在支持一个基元类型来表示指向运行时系统的指针数据结构。用户可以通过不安全的。指针结构。请注意,这些值(空指针除外)无法持久跨堆导出。事实上,导出包含指针的堆将导致错误消息。

基础库

本版本实施了以下基础库提案:

[2019-001]

修正PRIM_IO签名 — 此提案更改了效用用于读者的功能返回Position.int选项,而不是int选项类型。

运行时系统

  • SML/NJ Basis代码和运行时系统之间的接口现在使用无符号64位传递时间信息的值(例如,用于当前时间或文件修改时间戳)。使用时间和日期值的Windows代码现在使用本机Windows API,而不是C-Library API。

  • 运行时系统中32位值的处理已修改为允许装箱表示(在32位机器上)和标记表示(在64位机器上机器)。

  • Microsoft的运行时和基础表示把手类型已被抽象超过target-machine单词大小。虽然此类型是的别名空隙*,的值实际上不是指针;因此,我们将其表示为本地人的装箱词机器尺寸。

漏洞

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

222

CM从导入的库导出,而不是从定义的库导出

支持的系统

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

建筑 操作系统 状态

电源PC

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