Skip to content

Commit

Permalink
Merge pull request #584 from MatthewFluet/smlnj-updates
Browse files Browse the repository at this point in the history
Update to SML/NJ 110.99.6.1 libraries
  • Loading branch information
MatthewFluet authored Dec 14, 2024
2 parents c4e0d7e + 88b75e5 commit bf18753
Show file tree
Hide file tree
Showing 10 changed files with 1,822 additions and 884 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ Here are the changes from version 20210117 to YYYYMMDD.

=== Details

* 2024-12-14
** Update SML/NJ libraries to SML/NJ 110.99.6.1.

* 2024-08-09
** Update the LLVM codegen to generate LLVM IR using opaque
pointers; using the LLVM codegen requires LLVM 15 (or higher).
Expand Down
4 changes: 2 additions & 2 deletions doc/guide/src/CKitLibrary.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ into abstract syntax represented as a set of SML datatypes. The ckit
Library is distributed with SML/NJ. Due to differences between SML/NJ
and MLton, this library will not work out-of-the box with MLton.

As of 20230526, MLton includes a port of the ckit Library synchronized
with SML/NJ version 110.99.3.
As of 20241214, MLton includes a port of the ckit Library synchronized
with SML/NJ version 110.99.6.1.

== Usage

Expand Down
4 changes: 2 additions & 2 deletions doc/guide/src/MLLPTLibrary.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ is a support library for the <<MLULex#>> scanner generator and the
<<MLAntlr#>> parser generator. The ML-LPT Library is distributed with
SML/NJ.

As of 20230526, MLton includes the ML-LPT Library synchronized with
SML/NJ version 110.99.3.
As of 20241214, MLton includes the ML-LPT Library synchronized with
SML/NJ version 110.99.6.1.

== Usage

Expand Down
4 changes: 2 additions & 2 deletions doc/guide/src/MLRISCLibrary.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ ends. The MLRISC Library is distributed with SML/NJ. Due to
differences between SML/NJ and MLton, this library will not work
out-of-the box with MLton.

As of 20230526, MLton includes a port of the MLRISC Library
synchronized with SML/NJ version 110.99.3.
As of 20241214, MLton includes a port of the MLRISC Library
synchronized with SML/NJ version 110.99.6.1.

== Usage

Expand Down
11 changes: 7 additions & 4 deletions doc/guide/src/SMLNJLibrary.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ collection of libraries that are distributed with SML/NJ. Due to
differences between SML/NJ and MLton, these libraries will not work
out-of-the box with MLton.

As of 20230526, MLton includes a port of the SML/NJ Library
synchronized with SML/NJ version 110.99.3.
As of 20241214, MLton includes a port of the SML/NJ Library
synchronized with SML/NJ version 110.99.6.1.

== Usage

Expand Down Expand Up @@ -62,14 +62,17 @@ the output `.mlb` file.
The following changes were made to the SML/NJ Library, in addition to
deriving the `.mlb` files from the `.cm` files:

* `Compat/either` (added): Implements `signature EITHER` and `structure Either: EITHER` (see https://github.com/SMLFamily/BasisLibrary/wiki/2015-002-Addition-of-Either-module); used by RegExp Library.
* `Compat/fn` (added): Implements `signature FN` and `structure Fn: FN` (see https://github.com/SMLFamily/BasisLibrary/wiki/2015-005-Addition-of-Fn-module); used by JSON Library.
* `Compat/mono-buffer` (added): Implements `signature MONO_BUFFER` and `structure CharBuffer: MONO_BUFFER` (see https://github.com/SMLFamily/BasisLibrary/wiki/2018-001-Addition-of-monomorphic-buffers); used by JSON and PP Libraries.
* `Compat/mono-sequence` (added): Implements `signature MONO_{ARRAY,VECTOR}{,_SLICE}_EXT` and `structure Word8Slice: MONO_VECTOR_SLICE_EXT` (see https://github.com/SMLFamily/BasisLibrary/wiki/2015-003-Additional-operations-on-sequences and
https://github.com/SMLFamily/BasisLibrary/wiki/2018-001-Addition-of-monomorphic-buffers); used by SML/NJ Library.
* `HTML4/pp-init.sml` (added): Implements `structure PrettyPrint` using the SML/NJ PP Library. This implementation is taken from the SML/NJ compiler source, since the SML/NJ HTML4 Library used the `structure PrettyPrint` provided by the SML/NJ compiler itself.
* `RegExp/Glue/match-tree.sml` (modified): Rewrote use of `Either.either` (see https://github.com/SMLFamily/BasisLibrary/wiki/2015-002-Addition-of-Either-module).
* `JSON/json-stream-parser.sml` and `JSON/json-parser.sml` (modified): Rewrote use of `Unsafe.CharVector.create` and `Unsafe.CharVector.update`; MLton assumes that vectors are immutable.
* `Util/base64.sml` (modified): Rewrote use of `Unsafe.CharVector.create` and `Unsafe.CharVector.update`; MLton assumes that vectors are immutable.
* `Util/dynamic-array.sml` (modified): Rewrote use of `Array.fromVector`.
* `Util/engine.mlton.sml` (added, not exported): Implements `structure Engine`, providing time-limited, resumable computations using <:MLtonThread:>, <:MLtonSignal:>, and <:MLtonItimer:>.
* `Util/graph-scc-fn.sml` (modified): Rewrote use of `where` structure specification.
* `Util/hash-set-fn.sml` and `Util/hash-table-rep.sml` (modified): The computation of the `maxSize` computes succesive powers of two less than or equal to `Array.maxLen`, which overflows under MLton. Add a `handle Overflow => i` to properly find the correct maximum size.
* `Util/time-limit.mlb` (added): Exports `structure TimeLimit`, which is _not_ exported by `smlnj-lib.mlb`. Since MLton is very conservative in the presence of threads and signals, program performance may be adversely affected by unnecessarily including `structure TimeLimit`.
* `Util/time-limit.mlton.sml` (added): Implements `structure TimeLimit` using `structure Engine`. The SML/NJ implementation of `structure TimeLimit` uses SML/NJ's first-class continuations, signals, and interval timer.
* `Util/utf8.sml` (modified): Rewrote use of `String.implodeRev` (see https://github.com/SMLFamily/BasisLibrary/wiki/2015-003d-STRING).
Expand Down
Binary file modified lib/ckit-lib/ckit.tgz
Binary file not shown.
Binary file modified lib/mllpt-lib/ml-lpt.tgz
Binary file not shown.
Binary file modified lib/mlrisc-lib/MLRISC.tgz
Binary file not shown.
Loading

0 comments on commit bf18753

Please sign in to comment.