新泽西州标准ML
110.84版新闻
2018年9月3日
- SML/NJ主页:
- 网址:https://smlnj.org
- 文件夹:
-
https://smlnj.org/dist/working/10.84/
总结:
这是一个次要版本,其主要目的是支持对编译器的实现。
此版本引入了抽象语法描述库(ASDL)。它还添加了对Mac OS X 10.14(Mojave)的支持,并包括其他一些增强功能和错误修复。
细节:
- ASDL公司
-
此版本的SML/NJ包括抽象语法描述库(ASDL),最初设计并由Daniel Wang作为Zephyr项目的一部分实施。ASDL允许一个声明归纳类型的集合,然后使用asdlgen公司工具使用pickler/unpickler操作生成类型的实现。我们计划用ASDL和最终也会在基于LLVM的新后端中使用它。
虽然ASDL的早期版本支持许多不同的目标语言,新版本目前只支持SML和C++(注意C++支持当前不完整)。
有关规范的详细信息,请参阅ASDL手册(3.0版)语言和asdlgen公司工具。
另请注意,ASDL当前不是Windows安装的一部分。
- 基础库:
-
此版本增加了对基础库提案的支持:
-
[2018-002]其他切片操作
- 本提案为各种切片结构添加了四个功能:修剪,修整器,拆分位置、和获取Vec.
请注意,此更改是建议尚未批准且可能会更改的文件!
- SML/NJ图书馆
-
添加了漂亮的打印(结构SExpPP公司)到S-Expression库。
- 安装程序
-
对安装程序进行了一些更改(base/base/system/smlnj/installer).
- 用于掠夺和数字编程行动已从“建造“至"build.sh(建筑.sh)“在Unix系统上(它仍然是"内置.bat”)。
- 一个新的配置添加了导致配置脚本的操作要运行。脚本应命名为配置.sh(或配置.bat(在Windows上)。
漏洞:
此版本中没有编号的错误修复,但以下是修复了数量不多的错误:
- 修复了一个编译器错误(“参数列表长度错误“)中unifyTy(统一Ty)当类型构造函数之一是错误类型(因为之前有一个类型错误检测到)。
- 修复了单态缓冲区实现中的一个错误:功能字符缓冲区.add1和文字8缓冲区.add1长度不正确测试。
- 修复了中的一个错误SExp.名称函数,其中如果较短的列表是较长列表的前缀。
- 修复了一个错误,其中芬迪语各种功能薄片结构(例如,Word8数组切片)将错误的索引值传递给谓词函数(该索引假定为相对于切片的开始,而不是底层向量或数组)。
支持的系统:
我们相信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(高塞拉) | 已测试 |
| macOS 10.14(莫哈韦) | 测试(见下文注释) |
| Ubuntu 16.04.3 LTS | 已测试 |
| 其他Linux变体 | |
| BSD变体 | |
| Windows 7 | |
| Windows 10 | 已测试 |
| Cygwin(在Windows 7或10上托管) |
苹果正在反对macOS中的32位支持。使用macOS 10.14(Mojave),无法再编译32位应用程序,例如SML/NJ运行时系统。因此,虽然可以使用安装程序,使用安装配置/安装.sh脚本不会不用额外努力就可以工作。
自110.82年以来,我们一直致力于64位支持,我们希望它能够到位在macOS 10.15发布之前。