新泽西州标准ML
发行说明


版本110.99.5
2024年3月14日


摘要

此修补程序版本修复了“遗留”版本中的大量错误属于SML/新泽西; 实现了标准ML基础库、和包括对SML/NJ图书馆

细节

编译器

  • REPL漂亮打印的一些小改进。

厘米

  • 这个系统/cmb-make脚本现在使用CM_服务器环境变量设置为默认情况下(使用-冗长的旧行为的选项)。现在还设置路径环境变量,以包含sml公司命令作为参数提供给cmb品牌

基础库

  • 完全重写用于实现转换的机制在字符串和实数之间。作为重写的一部分,我们实现了支持字符串Cvt。准确格式化模式,并实现了丢失的实数到小数/从十进制功能。实数字符串转换基于Ryu图书馆和关联PLDI纸作者:乌尔夫·亚当斯。

  • 添加了缺少的实现Real64.next之后功能。

  • 补充不安全的。实际64结构,该结构在双精度实数和64位单词。

SML/NJ图书馆

除了下面提到的错误修复之外,还有以下改进制造到SML/NJ图书馆以下为:

  • 重写JSON格式解析器直接处理输入源(而不是使用ML-ulex lexer。此更改修复了https://github.com/smlnj/legacy/issues/284[第284期(ML-ULex’s内存化会导致大量性能损失JSON格式解析)。对于这个data.json(数据.json)问题中提到的文件,解析大约是8次速度更快,而对于huge.json公司文件。

  • 添加了JSON解码结构到JSON格式库。本模块实现一组组合子(灵感来自Elm公司 JSON格式。解码模块)用于解码JSON格式值。

  • 补充插入With,插入Withi、和查找并删除操作到HASH_表单现金表接口(以及相应的实现)。

  • 修复了中的一个错误随机.randReal在32位系统上。

  • 修复了的错误检查和文档subArray(子数组)功能在中动态数组结构和动态阵列Fn函子。

  • 固定到subArray(子数组)截断动态数组中的函数实现(两种结构动态数组和函子动态阵列Fn).

  • 添加编辑距离模块到实用程序库。

  • 返工输出f8编码。添加了无效编码无效时的异常遇到并替换了异常无效还添加了尺寸'用于获取UTF-8的编号的函数子字符串中的字符。

  • 添加了用于表示布尔值、整数和单词的模块作为哈希值哈希Cons库。

漏洞

以下是此版本中修复(或解决)的问题列表。我们包括使用gforge错误跟踪器。

问题 描述 Gforge虫子

194

实数格式不正确

221

269

实际realMod实际.split对接近零的值产生错误的结果

不适用。

280

支持在Windows实现中将前向斜杠(“/”)用作分隔符操作系统。路径

不适用。

283

文本IO输入全部读取980M文件时出现segfaults

不适用。

284

ML-ULex的记忆会对JSON解析造成巨大的性能损失

不适用。

285

不透明签名归属中的不匹配规范导致未捕获的异常

不适用。

286

运行时获取“fgrep已过时”sml公司在费多拉

不适用。

287

单词literal0wx8000000个被错误地转换为0wx7FFFFFFF800000000

不适用。

288

动态数组.subArray创建长度绑定为+1的数组

不适用。

289

未捕获绑定编译器中具有不透明签名匹配的异常

不适用。

290

随机.realRand返回的值远小于单位

不适用。

292

文字8到较大Int在32位版本中被破坏

不适用。

294

在Windows上启动SML/NJ会产生难看的REM行

不适用。

295

使用cmb-make编译编译器时,CM找不到工具

不适用。

296

这个从十进制到十进制中的函数真实结构未实现

不适用。

297

的附加操作单HASH_TABLE接口

不适用。

298

错误消息中源代码打印错误

不适用。

300

PackReal64软件包{,}.update(更新)未实现

不适用。

302

SML/NJ实施日期.fromTimeLocal与SML基础库文档不同

不适用。

我们还修复了以下没有问题的错误与它们关联(或者错误修复从开发存储库):

支持的系统

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

建筑 操作系统 状态

AMD64型

免费BSD 12.0

macOS 10.14(莫哈韦)

已测试

macOS 10.15(卡特琳娜)

已测试

macOS 11(大苏尔)

已测试

macOS 12(蒙特雷)

已测试

Ubuntu 16.04.3 LTS

Ubuntu 18.04.3 LTS

已测试

 

电源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 12.0

其他BSD变体

Windows 7

Windows 10

Cygwin(32位)

 

32位macOS问题

x86安装程序110.99.5工程macO公司10.14莫哈韦,从源头建设需要一些额外的步骤,因为X代码为Mojave发布的不包括32位SDK。

您可能遇到的另一个问题构建时macO公司10.14 Mojave是shell的错误消息表单脚本

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

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

  xattr公司 -d日 com.apple.检疫 壳脚本

并继续构建。