新泽西州标准ML
110.82版新闻
2017年10月16日
- SML/NJ主页:
- http://www.smlnj.org/index.html
- 文件夹:
-
http://smlnj.cs.uchicago.edu/dist/working/10.82/
总结:
这个版本继续向64位支持进军(看起来是一个漫长的过程)。为了支持32位和64位目标,以及一些错误修复。它还增加了对macOS操作系统10.13(High Sierra)。
细节:
- 编译器
-
合理化了Absyn和FLINT中原始运算符的处理,并删除了未使用的基本运算符。这些更改影响了pickle格式,这意味着--重建生成时必须使用选项源代码中的编译器。
补充目标结构到基础;这个模块指定目标的属性,例如ML值的大小和默认值的大小整数类型。
改变了内联T结构是定义为对目标敏感。例如,在32位目标上将是一个内联T.i31添加用于添加的函数默认值整数类型,而在64位目标上,相应的功能将是内联T.i63添加.
恢复了110.80之前的shell命令行为sml foo.sml文件编译时出错时返回非零退出状态foo.sml文件(错误号183)。
- 运行时系统
-
更改了在次要GC中测试分配空间地址的方式。我们现在不使用BIBOP,而是进行指针范围测试;这个变化在32位机器上产生了较小的加速,但我们期望有更大的好处在64位机器上,使用2级BIBOP。
为64位目标做准备的各种更改,包括添加2级BIBOP实施和拆分联合税。小时到32位(联合税。小时)和64位(语法64.h)版本。
漏洞:
以下是此版本修复(或关闭)的跟踪错误列表,请参阅错误追踪系统了解更多详细信息。
123 | 缺少顶层非austive绑定的警告。 |
183 | sml REPL返回的状态代码。 |
185 | 使命令行帮助文本与手册页相同。 |
还修复了以下未编号的错误:
- JSON库:字符串的打印已修复,以匹配JSON规范。
- 消除断言签入中的误报内置文字。c(c).还修复了中跟踪可用空间时的记帐错误内置文字。c(c).
- 修复了中的一个错误IntInf.mod公司和国际信息操作员,其中Div公司例外是不当两个参数都为零时被提出。
- 修复了上的运行时系统生成问题macOS操作系统对于以下情况X代码已安装,但/usr/include(使用/包含)不存在。
支持的系统:
我们相信SML/NJ将在以下系统上构建和运行,但只有测试了其中一些:
建筑 | 操作系统 | 状态 |
电源PC | Mac OS X 10.5(豹) | |
| AIX(AIX) | |
| |
斯巴达克 | Solaris公司 | |
| Linux操作系统 | |
| |
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) | 已测试 |
| macOS 10.12(塞拉利昂) | 已测试 |
| macOS 10.13(高塞拉) | 已测试 |
| Ubuntu 14.04.3(GNU/Linux 3.13.0) | 已测试 |
| 其他Linux变体 | |
| BSD变体 | |
| Windows 7 | |
| Windows 10 | 已测试 |
| Cygwin(在Windows 7或10上托管) |