You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(56) |
Sep
(40) |
Oct
(30) |
Nov
(144) |
Dec
(23) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(41) |
Feb
(29) |
Mar
(31) |
Apr
(39) |
May
(193) |
Jun
(45) |
Jul
(19) |
Aug
(3) |
Sep
(23) |
Oct
(83) |
Nov
(92) |
Dec
(123) |
2007 |
Jan
(90) |
Feb
(267) |
Mar
(120) |
Apr
(51) |
May
(40) |
Jun
(121) |
Jul
(109) |
Aug
(173) |
Sep
(77) |
Oct
(52) |
Nov
(121) |
Dec
(62) |
2008 |
Jan
(76) |
Feb
(53) |
Mar
(98) |
Apr
(87) |
May
(26) |
Jun
(27) |
Jul
(23) |
Aug
(136) |
Sep
(79) |
Oct
(68) |
Nov
(29) |
Dec
(14) |
2009 |
Jan
(7) |
Feb
(2) |
Mar
(11) |
Apr
(75) |
May
(1) |
Jun
(95) |
Jul
(19) |
Aug
(4) |
Sep
(8) |
Oct
(93) |
Nov
(43) |
Dec
(21) |
2010 |
Jan
(20) |
Feb
(23) |
Mar
(18) |
Apr
(6) |
May
(20) |
Jun
(23) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
(2) |
Feb
(6) |
Mar
(15) |
Apr
(5) |
May
(9) |
Jun
(14) |
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(2) |
Jun
(17) |
Jul
(37) |
Aug
|
Sep
(1) |
Oct
(6) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(5) |
Apr
(2) |
May
(7) |
Jun
(11) |
Jul
(8) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(1) |
Jul
(7) |
Aug
(2) |
Sep
|
Oct
(5) |
Nov
(2) |
Dec
(4) |
2015 |
Jan
|
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(9) |
Jul
(1) |
Aug
|
Sep
|
Oct
(4) |
Nov
(1) |
Dec
|
2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
(1) |
Feb
(3) |
Mar
(3) |
Apr
(7) |
May
(2) |
Jun
(2) |
Jul
(5) |
Aug
(1) |
Sep
(2) |
Oct
(17) |
Nov
(4) |
Dec
(7) |
2018 |
Jan
(5) |
Feb
(14) |
Mar
(2) |
Apr
(5) |
May
(2) |
Jun
(5) |
Jul
|
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(5) |
Dec
|
2019 |
Jan
(4) |
Feb
(2) |
Mar
(3) |
Apr
(1) |
May
(8) |
Jun
(14) |
Jul
(2) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(15) |
Dec
(2) |
2020 |
Jan
(10) |
Feb
(3) |
Mar
(1) |
Apr
|
May
(9) |
Jun
(4) |
Jul
(16) |
Aug
(10) |
Sep
(4) |
Oct
(3) |
Nov
|
Dec
|
2021 |
Jan
(11) |
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
|
Oct
(6) |
Nov
(4) |
Dec
(4) |
2022 |
Jan
(4) |
Feb
(2) |
Mar
(2) |
Apr
|
May
(6) |
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(5) |
Jun
(1) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(13) |
Dec
|
2024 |
Jan
(1) |
Feb
|
Mar
(5) |
Apr
|
May
(10) |
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-06-06 01:24:51
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 26e506bfd8868c41988ad9859628c47e8a70385b https://github.com/MLton/mlton/commit/26e506bfd8868c41988ad9859628c47e8a70385b Author: Matthew Fluet <mat...@gm...> Date: 2022-06-05 (Sun, 05 Jun 2022) Changed paths: M doc/guide/src/Fold.adoc Log Message: ----------- Fix typo in Fold.adoc Closes MLton/mlton#483. Thanks to Brandon Wu (brandonspark) for the bug report. Commit: 875f7912a0b135a9a7e86a04ecac9cacf0bfe5e5 https://github.com/MLton/mlton/commit/875f7912a0b135a9a7e86a04ecac9cacf0bfe5e5 Author: Matthew Fluet <Mat...@gm...> Date: 2022-06-05 (Sun, 05 Jun 2022) Changed paths: M doc/guide/src/Fold.adoc Log Message: ----------- Merge pull request #484 from MatthewFluet/guide-fold-typo Fix typo in Fold.adoc Compare: https://github.com/MLton/mlton/compare/cfc76587ee09...875f7912a0b1 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-05-24 13:35:54
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 33baea5cfe1d07daa4af976217ee39a82625e079 https://github.com/MLton/mlton/commit/33baea5cfe1d07daa4af976217ee39a82625e079 Author: Matthew Fluet <mat...@gm...> Date: 2022-05-24 (Tue, 24 May 2022) Changed paths: M ide/emacs/bg-build-mode.el M ide/emacs/bg-build-util.el M ide/emacs/bg-job.el R ide/emacs/compat.el M ide/emacs/def-use-data.el M ide/emacs/def-use-mode.el M ide/emacs/def-use-sym.el M ide/emacs/def-use-util.el M ide/emacs/esml-du-mlton.el M ide/emacs/esml-gen.el M ide/emacs/esml-mlb-mode.el M ide/emacs/esml-util.el M ide/emacs/mlton.el Log Message: ----------- Update `ide/emacs/*.el` to modern emacs Commit: cfc76587ee09b4549fb91f23046160245c11a9b0 https://github.com/MLton/mlton/commit/cfc76587ee09b4549fb91f23046160245c11a9b0 Author: Matthew Fluet <Mat...@gm...> Date: 2022-05-24 (Tue, 24 May 2022) Changed paths: M ide/emacs/bg-build-mode.el M ide/emacs/bg-build-util.el M ide/emacs/bg-job.el R ide/emacs/compat.el M ide/emacs/def-use-data.el M ide/emacs/def-use-mode.el M ide/emacs/def-use-sym.el M ide/emacs/def-use-util.el M ide/emacs/esml-du-mlton.el M ide/emacs/esml-gen.el M ide/emacs/esml-mlb-mode.el M ide/emacs/esml-util.el M ide/emacs/mlton.el Log Message: ----------- Merge pull request #482 from MatthewFluet/emacs-updates Update `ide/emacs/*.el` to modern emacs Compare: https://github.com/MLton/mlton/compare/6d00649869bf...cfc76587ee09 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-05-24 13:22:29
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: d6148c0efc296f7c7ea8fb09ad21f5d4eebe7eef https://github.com/MLton/mlton/commit/d6148c0efc296f7c7ea8fb09ad21f5d4eebe7eef Author: Matthew Fluet <mat...@gm...> Date: 2022-05-23 (Mon, 23 May 2022) Changed paths: M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun Log Message: ----------- Remove unused `numHandlerUses` from SSA and SSA2 shrinker The `numHandlerUses` was a vestige of HandlerPush/HandlerPop expressions in the SSA IR, removed by b7a169a3a. Commit: 6d00649869bf76684013ee229bff28c90ccedb9f https://github.com/MLton/mlton/commit/6d00649869bf76684013ee229bff28c90ccedb9f Author: Matthew Fluet <Mat...@gm...> Date: 2022-05-24 (Tue, 24 May 2022) Changed paths: M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun Log Message: ----------- Merge pull request #481 from MatthewFluet/ssa-shrink-numhandleruses Remove unused `numHandlerUses` from SSA and SSA2 shrinker Compare: https://github.com/MLton/mlton/compare/fade12b03adb...6d00649869bf |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-05-24 13:22:23
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 8f37e61d25706e3f6df63024bf2447ce50b18881 https://github.com/MLton/mlton/commit/8f37e61d25706e3f6df63024bf2447ce50b18881 Author: Matthew Fluet <mat...@gm...> Date: 2022-05-23 (Mon, 23 May 2022) Changed paths: M mlton/backend/rssa-type-check.fun M mlton/ssa/analyze.fun M mlton/ssa/analyze2.fun Log Message: ----------- Check that `start` label is nullary in SSA, SSA2, and RSSA IRs Commit: fade12b03adb64b95719b39e0475973315d7f8cc https://github.com/MLton/mlton/commit/fade12b03adb64b95719b39e0475973315d7f8cc Author: Matthew Fluet <Mat...@gm...> Date: 2022-05-24 (Tue, 24 May 2022) Changed paths: M mlton/backend/rssa-type-check.fun M mlton/ssa/analyze.fun M mlton/ssa/analyze2.fun Log Message: ----------- Merge pull request #480 from MatthewFluet/ssa-typecheck-start Check that `start` label is nullary in SSA, SSA2, and RSSA IRs Compare: https://github.com/MLton/mlton/compare/340748600c86...fade12b03adb |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-05-19 18:40:17
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: a58b265fb3edd209bb6d04d4cb664ff370a4d11e https://github.com/MLton/mlton/commit/a58b265fb3edd209bb6d04d4cb664ff370a4d11e Author: Matthew Fluet <mat...@gm...> Date: 2022-05-14 (Sat, 14 May 2022) Changed paths: M .github/workflows/ci.yml Log Message: ----------- Experiment with uploading build artifacts in CI Commit: 2a3d4446b23b66c6248ee584083d8b6434f35d22 https://github.com/MLton/mlton/commit/2a3d4446b23b66c6248ee584083d8b6434f35d22 Author: Matthew Fluet <mat...@gm...> Date: 2022-05-16 (Mon, 16 May 2022) Changed paths: M bin/regression Log Message: ----------- Remove MinGW `*.sed.ok` files after regression test Commit: d6614fc383ea8916bb513138fd316d3624003ee4 https://github.com/MLton/mlton/commit/d6614fc383ea8916bb513138fd316d3624003ee4 Author: Matthew Fluet <mat...@gm...> Date: 2022-05-16 (Mon, 16 May 2022) Changed paths: M .github/workflows/ci.yml Log Message: ----------- Check `git status` and `git diff`; windows-latest build shows dirty Commit: cfadbe157a1ec6a42d6eb4f26c47fd294bb136fa https://github.com/MLton/mlton/commit/cfadbe157a1ec6a42d6eb4f26c47fd294bb136fa Author: Matthew Fluet <mat...@gm...> Date: 2022-05-16 (Mon, 16 May 2022) Changed paths: M .github/workflows/ci.yml M mlton/Makefile M mlyacc/Makefile Log Message: ----------- Process all `.boot` files with sed to avoid dirtying worktree on MinGW Commit: 8163e84d5379efa7c9b5decfbc852811f72b875a https://github.com/MLton/mlton/commit/8163e84d5379efa7c9b5decfbc852811f72b875a Author: Matthew Fluet <mat...@gm...> Date: 2022-05-17 (Tue, 17 May 2022) Changed paths: M Makefile Log Message: ----------- Fix broken `tar` invocations in `install-docs` target Commit: 677a2d37975dfa52bc218d31e1951c2b88c12b2d https://github.com/MLton/mlton/commit/677a2d37975dfa52bc218d31e1951c2b88c12b2d Author: Matthew Fluet <mat...@gm...> Date: 2022-05-18 (Wed, 18 May 2022) Changed paths: M .github/workflows/ci.yml Log Message: ----------- Reorder matrix and artifact names in `ci.yml` GitHub action Commit: 340748600c86a22bdcff8f85c85e3eb1dc66f16f https://github.com/MLton/mlton/commit/340748600c86a22bdcff8f85c85e3eb1dc66f16f Author: Matthew Fluet <Mat...@gm...> Date: 2022-05-19 (Thu, 19 May 2022) Changed paths: M .github/workflows/ci.yml M Makefile M bin/regression M mlton/Makefile M mlyacc/Makefile Log Message: ----------- Merge pull request #479 from MatthewFluet/ci-artifacts Upload build artifacts in CI Compare: https://github.com/MLton/mlton/compare/625209f402e0...340748600c86 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-05-14 22:56:20
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-05-14 22:49:57
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: fa70f1b46c2b40b7b240978f77086898100ce9be https://github.com/MLton/mlton/commit/fa70f1b46c2b40b7b240978f77086898100ce9be Author: Matthew Fluet <mat...@gm...> Date: 2022-05-14 (Sat, 14 May 2022) Changed paths: M .github/workflows/ci.yml Log Message: ----------- Experiment with uploading build artifacts in CI |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-03-18 21:06:45
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: f8ffcb8a61caeddd952df4e8a421c2e5564b16ab https://github.com/MLton/mlton/commit/f8ffcb8a61caeddd952df4e8a421c2e5564b16ab Author: Matthew Fluet <mat...@gm...> Date: 2022-03-18 (Fri, 18 Mar 2022) Changed paths: M .github/workflows/ci.yml Log Message: ----------- Fix and consolidate Windows CI Use `msys2/setup-msys2` and `shell: msys2 {0}` to share CI steps between all platforms. Commit: 31b0bc7da46ccbdf6d301bd2b9803f650f5a83ee https://github.com/MLton/mlton/commit/31b0bc7da46ccbdf6d301bd2b9803f650f5a83ee Author: Matthew Fluet <mat...@gm...> Date: 2022-03-18 (Fri, 18 Mar 2022) Changed paths: M .github/workflows/ci.yml Log Message: ----------- Simplify selection of default shell in CI GitHub Action Commit: 625209f402e0a3d5f8c7012572df9a72ed1db651 https://github.com/MLton/mlton/commit/625209f402e0a3d5f8c7012572df9a72ed1db651 Author: Matthew Fluet <Mat...@gm...> Date: 2022-03-18 (Fri, 18 Mar 2022) Changed paths: M .github/workflows/ci.yml Log Message: ----------- Merge pull request #477 from MatthewFluet/windows-ci Fix and consolidate Windows CI Compare: https://github.com/MLton/mlton/compare/0afbac67462f...625209f402e0 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-03-17 01:16:25
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 490119d1ef513c112d5445f78b8822cb821ee892 https://github.com/MLton/mlton/commit/490119d1ef513c112d5445f78b8822cb821ee892 Author: Matthew Fluet <mat...@gm...> Date: 2022-03-16 (Wed, 16 Mar 2022) Changed paths: M mlton/atoms/c-type.fun M mlton/atoms/c-type.sig Log Message: ----------- Add `val CType.isSignedInt: CType.t -> bool` Commit: 286a54cc0fe80de28cc27c82c371dd6b3c6186dc https://github.com/MLton/mlton/commit/286a54cc0fe80de28cc27c82c371dd6b3c6186dc Author: Matthew Fluet <mat...@gm...> Date: 2022-03-16 (Wed, 16 Mar 2022) Changed paths: M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun Log Message: ----------- Sign- or zero-extend 8- and 16-bit args for C calls in x86 and amd64 codegens The x86 and x86-64 calling conventions require 8- and 16-bit arguments to be passed as 32-bit values (on the stack for x86 and in registers for x86-64). The x86-64 SysV ABI doesn't specify the contents of the upper bits for such argument extensions. Both gcc and clang sign- or zero-extend according to the declared type of the argument. Furthermore, clang assumes such a type-directed extension of incoming arguments (and can optimize accordingly). See https://stackoverflow.com/questions/36706721/is-a-sign-or-zero-extension-required-when-adding-a-32bit-offset-to-a-pointer-for/36760539#36760539. For example, consider the function: unsigned int s8_to_u32(signed char x) { return (unsigned int)x; } clang will optimize to movl %edi, %eax while gcc will optimize to movsbl %dil, %eax For slightly increased clang compatibility, the x86 and amd64 codegens are modified to emit either a signed or zero extension conditional on the declared type of the argument in the C function's prototype (rather than unconditionally using a zero extension). Commit: c4502bdfb6a1b430715e9a33d168921c10e77967 https://github.com/MLton/mlton/commit/c4502bdfb6a1b430715e9a33d168921c10e77967 Author: Matthew Fluet <mat...@gm...> Date: 2022-03-16 (Wed, 16 Mar 2022) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Support `signext` and `zeroext` parameter attributes in LLVM codegen Various ABIs may require argument or return values to be sign- or zero-extended according to the declared type of the argument. LLVM accomodates this via the `signext` and `zeroext` parameter attributes. Commit: 4d5957dbb131ea3c29e72c45aa92825b41fa6360 https://github.com/MLton/mlton/commit/4d5957dbb131ea3c29e72c45aa92825b41fa6360 Author: Matthew Fluet <mat...@gm...> Date: 2022-03-16 (Wed, 16 Mar 2022) Changed paths: M CHANGELOG.adoc M doc/guide/src/Bugs20210117.adoc Log Message: ----------- Document bug fix for C calling convention in amd64 and LLVM codegens Commit: 0afbac67462f5bc9d02677d29a19774d346a57a9 https://github.com/MLton/mlton/commit/0afbac67462f5bc9d02677d29a19774d346a57a9 Author: Matthew Fluet <Mat...@gm...> Date: 2022-03-16 (Wed, 16 Mar 2022) Changed paths: M CHANGELOG.adoc M doc/guide/src/Bugs20210117.adoc M mlton/atoms/c-type.fun M mlton/atoms/c-type.sig M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun Log Message: ----------- Merge pull request #476 from MatthewFluet/calling-convention-fix-for-amd64-and-llvm-codegens Calling convention fix for amd64 and llvm codegens Compare: https://github.com/MLton/mlton/compare/5ba967d96d62...0afbac67462f |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-02-21 01:12:05
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 737a4b6e07760aba7903d8347d871f3aa51a31c8 https://github.com/MLton/mlton/commit/737a4b6e07760aba7903d8347d871f3aa51a31c8 Author: Matthew Fluet <mat...@gm...> Date: 2022-02-20 (Sun, 20 Feb 2022) Changed paths: M runtime/gc/profiling.c Log Message: ----------- Properly handle single stack frame in `GC_handleSigProf` For `-profile time`, when a profiling signal arrives, the `GC_handleSigProf` handler must determine whether the program is executing in the GC, in mutator SML code, or in mutator (`_import`-ed) C code. Whether or not the program is executing in the GC is determined by a `amInGC` flag in the `struct GC_state`. Whether the mutator is executing in SML code or C code is determined by mapping the "return address" of the top-most stack frame to a `struct GC_frameInfo` and consulting the `const GC_frameKind kind;`. However, if there is a single frame on the stack, there is no "return address" of the top-most stack frame. Rather, `*((GC_returnAddress*)(s->stackTop - GC_RETURNADDRESS_SIZE))` ends up reading the `size_t used;` field of `struct GC_stack`. A subsequent segfault would be the most likely outcome. A simple `s->stackTop == s->stackBottom` detects that there is a single frame on the stack, which must necessarily correspond to the mutator executing SML code. Although this bug (handling a profiling signal when the mutator is executing with a single frame on the stack) has been latent for quite some time, it typically would not lead to failures because, until fcbf9177f, there was a non-tail call from the RSSA `initGlobals` function to the translated SSA2 `main` function. The `initGlobals` executed so quickly that it was very unlikely that a profiling signal would arrive during its execution; therefore, the main computation would proceed in a second SML frame on the stack, always having the `initGlobals` stack frame (and a valid "return address") below it. With fcbf9177f, the RSSA `initGlobals` function tail calls the translated SSA2 `main` function, making it significantly more likely for the profiling signal to arrive when there is a single frame on the stack. Closes MLton/mlton#473. Commit: 03bd796015aa29e8bd9f5df85bf6ebc518559c10 https://github.com/MLton/mlton/commit/03bd796015aa29e8bd9f5df85bf6ebc518559c10 Author: Matthew Fluet <mat...@gm...> Date: 2022-02-20 (Sun, 20 Feb 2022) Changed paths: M runtime/gc/gc_state.h Log Message: ----------- Mutable fields accessed in `GC_handleSigProf` should be `volatile` The `stackTop` and `stackBottom` fields are accessed infrequently by the GC itself, so there should be little penalty to making them `volatile`. They are synchronized with `currentThread->stack` at GC entry and exit. Commit: 668a55deb509c39f95f409b4fc144e9ea7eb8c87 https://github.com/MLton/mlton/commit/668a55deb509c39f95f409b4fc144e9ea7eb8c87 Author: Matthew Fluet <mat...@gm...> Date: 2022-02-20 (Sun, 20 Feb 2022) Changed paths: M mlton/backend/runtime.fun Log Message: ----------- Mutable fields accessed in `GC_handleSigProf` should be `volatile` Commit: 053f8c72928c384f53719842e71b08afd6afe53a https://github.com/MLton/mlton/commit/053f8c72928c384f53719842e71b08afd6afe53a Author: Matthew Fluet <mat...@gm...> Date: 2022-02-20 (Sun, 20 Feb 2022) Changed paths: M mlton/backend/allocate-variables.fun M mlton/backend/allocate-variables.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Add `volatile: bool` field to `Machine.StackOffset.T` In particular, the return address stack offset is volatile when time profiling; it is important that the return address be flushed to the stack before the adjusted stack top is flushed to `struct GC_state`. Commit: 3db0ef493abf1bb27e11d17cf335bb2c6d038d98 https://github.com/MLton/mlton/commit/3db0ef493abf1bb27e11d17cf335bb2c6d038d98 Author: Matthew Fluet <mat...@gm...> Date: 2022-02-20 (Sun, 20 Feb 2022) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Add `volatile: bool` field to `Machine.Operand.SequenceOffset` variant Currently unused, added for completeness with `Offset` and `StackOffset` variants. Commit: c20c737a90695dc0d2c80b4b80d80646aa911a53 https://github.com/MLton/mlton/commit/c20c737a90695dc0d2c80b4b80d80646aa911a53 Author: Matthew Fluet <mat...@gm...> Date: 2022-02-20 (Sun, 20 Feb 2022) Changed paths: M CHANGELOG.adoc M doc/guide/src/Bugs20210117.adoc Log Message: ----------- Document bug fix for `-profile time` Commit: 3934101af4dc9e8d84a8a523f503f69f2cdd59e8 https://github.com/MLton/mlton/commit/3934101af4dc9e8d84a8a523f503f69f2cdd59e8 Author: Matthew Fluet <mat...@gm...> Date: 2022-02-20 (Sun, 20 Feb 2022) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Avoid some redundant writes to `GCState.stackTop` with `-profile time` Commit: 5ba967d96d62dfd253ba06d94711032987fbca2c https://github.com/MLton/mlton/commit/5ba967d96d62dfd253ba06d94711032987fbca2c Author: Matthew Fluet <Mat...@gm...> Date: 2022-02-20 (Sun, 20 Feb 2022) Changed paths: M CHANGELOG.adoc M doc/guide/src/Bugs20210117.adoc M mlton/backend/allocate-variables.fun M mlton/backend/allocate-variables.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/runtime.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun M runtime/gc/gc_state.h M runtime/gc/profiling.c Log Message: ----------- Merge pull request #474 from MatthewFluet/profile-time-segfault Fix bug with `-profile time` leading to a segmentation fault. Compare: https://github.com/MLton/mlton/compare/02a53cc10deb...5ba967d96d62 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-02-17 02:11:31
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0e8945f1fa94350fd3a2db5dacea1d462e2f15b8 https://github.com/MLton/mlton/commit/0e8945f1fa94350fd3a2db5dacea1d462e2f15b8 Author: Matthew Fluet <mat...@gm...> Date: 2022-02-05 (Sat, 05 Feb 2022) Changed paths: M Makefile.config M mlton/Makefile Log Message: ----------- Add `MLKIT_FLAGS` Makefile variable Commit: 56f841fc3c45f122a597b0dbabba6c179f320eee https://github.com/MLton/mlton/commit/56f841fc3c45f122a597b0dbabba6c179f320eee Author: Matthew Fluet <mat...@gm...> Date: 2022-02-06 (Sun, 06 Feb 2022) Changed paths: M lib/.gitignore A lib/stubs/common/basis/pervasive.sml A lib/stubs/mlkit/basis/pervasive.mlb M lib/stubs/mlkit/basis/sources.mlb A lib/stubs/mlkit/basis/unsafe.mlb M mlton/.gitignore M mlton/Makefile Log Message: ----------- Aborted attempt to automatically generate `sources-mlkit.mlb` files Since MLKit doesn't support module-level entities (https://github.com/melsman/mlkit/issues/74), we attempt to automatically generate `bind.sml` files. However, SML doesn't allow `functor` rebinding: `functor Foo = Foo`. Commit: 02a53cc10deb7036b3a74e8c7630f8ae4fc6b796 https://github.com/MLton/mlton/commit/02a53cc10deb7036b3a74e8c7630f8ae4fc6b796 Author: Matthew Fluet <Mat...@gm...> Date: 2022-02-16 (Wed, 16 Feb 2022) Changed paths: M Makefile.config M lib/.gitignore A lib/stubs/common/basis/pervasive.sml A lib/stubs/mlkit/basis/pervasive.mlb M lib/stubs/mlkit/basis/sources.mlb A lib/stubs/mlkit/basis/unsafe.mlb M mlton/.gitignore M mlton/Makefile Log Message: ----------- Merge pull request #472 from MatthewFluet/mlkit Small tweaks to building with MLKit Compare: https://github.com/MLton/mlton/compare/b39a1205a493...02a53cc10deb |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-01-12 20:56:07
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 5ab60aca89ed96acae0cf9cc3d28761d381f17a1 https://github.com/MLton/mlton/commit/5ab60aca89ed96acae0cf9cc3d28761d381f17a1 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-12 (Wed, 12 Jan 2022) Changed paths: M bin/mlbdeps Log Message: ----------- Fix `normalize_path` in `./bin/mlbdeps` A path of the form `./../lib/stubs/mlkit/basis/sources.mlb` should not be normalized to `lib/stubs/mlkit/basis/sources.mlb`. Commit: b39a1205a493e13d058c5319deda3d301d8e710d https://github.com/MLton/mlton/commit/b39a1205a493e13d058c5319deda3d301d8e710d Author: Matthew Fluet <Mat...@gm...> Date: 2022-01-12 (Wed, 12 Jan 2022) Changed paths: M bin/mlbdeps Log Message: ----------- Merge pull request #471 from MatthewFluet/fix-mlbdeps-script Fix `normalize_path` in `./bin/mlbdeps` Compare: https://github.com/MLton/mlton/compare/822aa8181567...b39a1205a493 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-01-11 10:38:09
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 3951a142bb8efc49aaf6f2a8f30fa1ac665a268a https://github.com/MLton/mlton/commit/3951a142bb8efc49aaf6f2a8f30fa1ac665a268a Author: Matthew Fluet <mat...@gm...> Date: 2022-01-10 (Mon, 10 Jan 2022) Changed paths: M CHANGELOG.adoc M mlton/front-end/ml.grm M mlton/front-end/ml.grm.sml.boot Log Message: ----------- Accept a non-semicolon terminated final expression in the syntax of programs The Definition specifies the `program` non-terminal as: program ::= topdec ';' programOpt | exp ';' programOpt programOpt ::= | program So, technically, every program should end with a semicolon. MLton has always deviated slightly from the Definition in that it has always accepted a non-semicolon terminated final topdec in the syntax of programs. MLton's grammar for the `program` non-terminal prior to this commit corresponds to: program ::= topdec semiProgramOpt | exp ';' programOpt semiProgramOpt := | ';' program programOpt ::= | program which requires every top-level `exp` to be terminated by a semicolon. This seems to be an unnecessary restriction. Indeed, SML/NJ, PolyML, and MLKit all accept a non-semicolon terminated final expression in the syntax of programs. With this commit, MLton's grammar for the `program` non-terminal corresponds to: program ::= topdec semiProgramOpt | exp ';' semiProgramOpt semiProgramOpt := | ';' program Recall that the `topdec` non-terminal may be empty. Commit: 822aa818156772b31890cac8b990f0e8b259169a https://github.com/MLton/mlton/commit/822aa818156772b31890cac8b990f0e8b259169a Author: Matthew Fluet <Mat...@gm...> Date: 2022-01-11 (Tue, 11 Jan 2022) Changed paths: M CHANGELOG.adoc M mlton/front-end/ml.grm M mlton/front-end/ml.grm.sml.boot Log Message: ----------- Merge pull request #470 from MatthewFluet/prog-syntax Accept a non-semicolon terminated final expression in the syntax of programs Compare: https://github.com/MLton/mlton/compare/46d7ad655168...822aa8181567 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-01-10 15:22:35
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 69a4b3995b338ed1bf8e9c6c43cf56d3d9864689 https://github.com/MLton/mlton/commit/69a4b3995b338ed1bf8e9c6c43cf56d3d9864689 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-22 (Wed, 22 Dec 2021) Changed paths: M Makefile Log Message: ----------- Use `OLD_MLTON` for `boostrap-{smlnj,polyml}` targets Commit: 0efb0cae53fbe3b889e615a9ee28c8679f07c948 https://github.com/MLton/mlton/commit/0efb0cae53fbe3b889e615a9ee28c8679f07c948 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-22 (Wed, 22 Dec 2021) Changed paths: M Makefile M bin/mlton-script Log Message: ----------- Use `SMLNJ` variable in `Makefile` and `mlton-script` Commit: 420a3a374d87198ffe786124b7ca06d87d6e5496 https://github.com/MLton/mlton/commit/420a3a374d87198ffe786124b7ca06d87d6e5496 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-22 (Wed, 22 Dec 2021) Changed paths: M Makefile Log Message: ----------- Use `@SMLsuffix` rtsarg Commit: 2b39c71f5642e5cad43ca000f0f87a54d7e5e23d https://github.com/MLton/mlton/commit/2b39c71f5642e5cad43ca000f0f87a54d7e5e23d Author: Matthew Fluet <mat...@gm...> Date: 2021-12-22 (Wed, 22 Dec 2021) Changed paths: M Makefile M Makefile.config M mlton/Makefile M runtime/Makefile Log Message: ----------- Use Makefile variable `CAT` for standard command `cat` Commit: 9419d53a457c2e5870ca4bb65ec3eb009dff2cd0 https://github.com/MLton/mlton/commit/9419d53a457c2e5870ca4bb65ec3eb009dff2cd0 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-22 (Wed, 22 Dec 2021) Changed paths: M mllex/Makefile M mlyacc/Makefile Log Message: ----------- Use `HAVE_CMD` function to detect presence `pdflatex` Commit: 6e24fcfe2d6e0ce1bdbdba47096c5241a7327484 https://github.com/MLton/mlton/commit/6e24fcfe2d6e0ce1bdbdba47096c5241a7327484 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-23 (Thu, 23 Dec 2021) Changed paths: M Makefile M Makefile.config M mlton/Makefile Log Message: ----------- Improve SML/NJ build Use proper dependency analysis (via `ml-makedepend`). Suppress polymorphic equality warnings with multiple CM servers by using the `CONTROL_POLY_EQ_WARN` environment variable. Commit: 7607bb30a55465b8fc9ef0d7a7774f580aaf5edb https://github.com/MLton/mlton/commit/7607bb30a55465b8fc9ef0d7a7774f580aaf5edb Author: Matthew Fluet <mat...@gm...> Date: 2021-12-23 (Thu, 23 Dec 2021) Changed paths: M util/cm2mlb/Makefile Log Message: ----------- Simplify `util/cm2mlb/Makefile` Commit: f074a9a41b5338303271cd50f17078595fef35ff https://github.com/MLton/mlton/commit/f074a9a41b5338303271cd50f17078595fef35ff Author: Matthew Fluet <mat...@gm...> Date: 2021-12-23 (Thu, 23 Dec 2021) Changed paths: M Makefile M Makefile.config M mlton/Makefile A mlton/front-end/ml.grm.sig.boot A mlton/front-end/ml.grm.sml.boot A mlton/front-end/ml.lex.sml.boot A mlton/front-end/mlb.grm.sig.boot A mlton/front-end/mlb.grm.sml.boot A mlton/front-end/mlb.lex.sml.boot M mlyacc/Makefile A mlyacc/src/yacc.grm.sig.boot A mlyacc/src/yacc.grm.sml.boot A mlyacc/src/yacc.lex.sml.boot Log Message: ----------- Include generated `mllex` and `mlyacc` files for bootstrapping If there is no available `mllex` or `mlyacc` (e.g., when bootstrapping with another SML compiler), use the saved bootstrap files. This also slightly simplifies the `remote-bootstrap` target, since only the compiler proper (and not the tools) needs to be made on the remote system for the initial boot files. Commit: c7f1cea2c4101249cf42801a6ff46363c89db336 https://github.com/MLton/mlton/commit/c7f1cea2c4101249cf42801a6ff46363c89db336 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-23 (Thu, 23 Dec 2021) Changed paths: M benchmark/Makefile Log Message: ----------- Ensure a clean `clean` when no `mlton` command found Commit: 4e6d348041aa8f7fbd80dd1259ffedf18b7894df https://github.com/MLton/mlton/commit/4e6d348041aa8f7fbd80dd1259ffedf18b7894df Author: Matthew Fluet <mat...@gm...> Date: 2021-12-24 (Fri, 24 Dec 2021) Changed paths: M Makefile.config M mlton/.gitignore M mlton/Makefile Log Message: ----------- Use `polyc` for Poly/ML build Commit: 3f85fe42cf56dc8e2044c54e1c850372cef9cc9a https://github.com/MLton/mlton/commit/3f85fe42cf56dc8e2044c54e1c850372cef9cc9a Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M mlton/front-end/sources.mlb Log Message: ----------- Remove import of `$(SML_LIB)/basis/unsafe.mlb` in `mlton/front-end/sources.mlb` With bootstrap `mllex` files, won't ever encounter old `mllex` generated files. Commit: c04fd03eb6019247ccb559379a6d1ab05fd285ad https://github.com/MLton/mlton/commit/c04fd03eb6019247ccb559379a6d1ab05fd285ad Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: A bin/mlbdeps Log Message: ----------- Add a simple `mlbdeps` shell script Commit: 06841ab60d9b59e44f72d14dea4ba9d2c27d730c https://github.com/MLton/mlton/commit/06841ab60d9b59e44f72d14dea4ba9d2c27d730c Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M mlton/Makefile Log Message: ----------- Simplify computation of `polyml-mlton` dependencies Commit: 7a3c477fd0770b42701033e8601e57fea79cc77a https://github.com/MLton/mlton/commit/7a3c477fd0770b42701033e8601e57fea79cc77a Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M Makefile.config M mlton/Makefile Log Message: ----------- Use `mlbdeps` script to build `mlton-polyml.sml` Commit: bcf721ff577d09249adf6f9a79b9ef7a7efbf324 https://github.com/MLton/mlton/commit/bcf721ff577d09249adf6f9a79b9ef7a7efbf324 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M mlton/Makefile Log Message: ----------- Exclude `{smlnj,polyml}-mlton` targets when not goals The `mlbdeps` script is rather slow, so avoid invoking it when not necessary. Commit: 37729cfebfa7576c057d51ed82084bf85b408551 https://github.com/MLton/mlton/commit/37729cfebfa7576c057d51ed82084bf85b408551 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M Makefile.config M benchmark/Makefile M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/Makefile M mlyacc/Makefile Log Message: ----------- Replace `$(RUN_MLTON_DEPS) -stop f` with `$(MLBDEPS)` in `Makefile`s Commit: e627cc88c24403153ebdac17ec5d407202b8bf4a https://github.com/MLton/mlton/commit/e627cc88c24403153ebdac17ec5d407202b8bf4a Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M mlton/Makefile Log Message: ----------- Use `$(MLBDEPS)` to build `mlton-stubs.mlb` Commit: f02933923cb4d011bc2f22ef7f70c7915f4e5b71 https://github.com/MLton/mlton/commit/f02933923cb4d011bc2f22ef7f70c7915f4e5b71 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M lib/mlton/basic/popt.sml Log Message: ----------- Remove dependency on `MLton.isMLton` in `val Popt.makeUsage` Seems unnecessary to exit with an exception with non-MLton host compilers. Commit: a9ae848b37754e6abf76dc9b82ca0cadad59246c https://github.com/MLton/mlton/commit/a9ae848b37754e6abf76dc9b82ca0cadad59246c Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M lib/mlton/basic/assert.sml Log Message: ----------- Don't force `val Assert.debug = true` with non-MLton host compilers A Poly/ML-compiled MLton (with `val Assert.debug = true`) fails with segmentation faults, seemingly due to stack overflow caused by the many non-tail calls induced by tracing (when `val Assert.debug = true`). Commit: 63ad1032d6c83d8f72adfe264f0350263d5fce19 https://github.com/MLton/mlton/commit/63ad1032d6c83d8f72adfe264f0350263d5fce19 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-29 (Wed, 29 Dec 2021) Changed paths: M Makefile Log Message: ----------- Simplify creation of `mlton.{smlnj,polyml}` Commit: 420c48c7650ca8a454e37a32f0693cfa4e322a82 https://github.com/MLton/mlton/commit/420c48c7650ca8a454e37a32f0693cfa4e322a82 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-30 (Thu, 30 Dec 2021) Changed paths: M Makefile.config Log Message: ----------- Use Posix shell function definition syntax Commit: 2f4b32dc986695155539ba8e826414418e45a0b9 https://github.com/MLton/mlton/commit/2f4b32dc986695155539ba8e826414418e45a0b9 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-01 (Sat, 01 Jan 2022) Changed paths: M benchmark/main.sml A lib/mlton/basic/command-line.sig A lib/mlton/basic/command-line.sml M lib/mlton/basic/date.sig A lib/mlton/basic/fix-word.fun M lib/mlton/basic/function.sig M lib/mlton/basic/function.sml A lib/mlton/basic/process-extra.sig A lib/mlton/basic/process-extra.sml M lib/mlton/basic/process.sig M lib/mlton/basic/process.sml M lib/mlton/basic/ref.sig M lib/mlton/basic/ref.sml M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/basic/word8.sml M lib/mlton/env/sources.cm M lib/mlton/pervasive/pervasive.sml M lib/mlton/set/sources.cm M lib/mlton/sources.cm M lib/mlton/sources.mlb M lib/stubs/mlton-stubs-for-smlnj/mlton.sml M mllex/main.sml M mlnlffigen/gen.sml M mlnlffigen/main.sml M mlnlffigen/sources.mlb M mlprof/main.sml M mlton/control/system.sml M mlton/main/main.fun M mlyacc/main.sml Log Message: ----------- Minimize MLton Library Commit: 5dc6f7dcd83e30a06a5a252bec5dd58f0494c8c8 https://github.com/MLton/mlton/commit/5dc6f7dcd83e30a06a5a252bec5dd58f0494c8c8 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: M lib/stubs/mlton-stubs-for-smlnj/mlton.sml R lib/stubs/mlton-stubs/bin-io.sig R lib/stubs/mlton-stubs/cont.sig M lib/stubs/mlton-stubs/exn.sig R lib/stubs/mlton-stubs/finalizable.sig M lib/stubs/mlton-stubs/gc.sig M lib/stubs/mlton-stubs/io.sig R lib/stubs/mlton-stubs/itimer.sig M lib/stubs/mlton-stubs/mlton.sig M lib/stubs/mlton-stubs/mlton.sml R lib/stubs/mlton-stubs/proc-env.sig M lib/stubs/mlton-stubs/process.sig M lib/stubs/mlton-stubs/random.sml R lib/stubs/mlton-stubs/signal.sig M lib/stubs/mlton-stubs/sources.cm M lib/stubs/mlton-stubs/sources.mlb R lib/stubs/mlton-stubs/thread.sig R lib/stubs/mlton-stubs/thread.sml R lib/stubs/mlton-stubs/weak.sig R lib/stubs/mlton-stubs/word.sig R lib/stubs/mlton-stubs/world.sig Log Message: ----------- Minimize stub `structure MLton` Commit: 63eefa94f6c95740b846d187e17108d208137779 https://github.com/MLton/mlton/commit/63eefa94f6c95740b846d187e17108d208137779 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: M lib/mlton/basic/hash-set.sml M lib/mlton/basic/property-list.fun R lib/stubs/basis-stubs-for-polyml/int.sml A lib/stubs/basis-stubs-for-polyml/pack-real.sml A lib/stubs/basis-stubs-for-polyml/pack-word.sml M lib/stubs/basis-stubs-for-polyml/real.sml M lib/stubs/basis-stubs-for-polyml/sources.use R lib/stubs/basis-stubs-for-polyml/word.sml M lib/stubs/mlton-stubs-for-polyml/mlton.sml Log Message: ----------- Fix and minimize stubs for Poly/ML Commit: c08368a59156f7793efd2fe02ea79e577886531d https://github.com/MLton/mlton/commit/c08368a59156f7793efd2fe02ea79e577886531d Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: M lib/mlton/basic/sources.cm M lib/mlton/pervasive/sources.cm R lib/stubs/basis-stubs-for-polyml/pack-real.sml R lib/stubs/basis-stubs-for-polyml/pack-word.sml R lib/stubs/basis-stubs-for-polyml/real.sml R lib/stubs/basis-stubs-for-polyml/sources.use R lib/stubs/basis-stubs-for-polyml/unsafe.sig R lib/stubs/basis-stubs-for-polyml/unsafe.sml R lib/stubs/basis-stubs-for-smlnj/Makefile R lib/stubs/basis-stubs-for-smlnj/char.sml R lib/stubs/basis-stubs-for-smlnj/ieee-real.sml R lib/stubs/basis-stubs-for-smlnj/int-inf.sml R lib/stubs/basis-stubs-for-smlnj/pack-real32.sml R lib/stubs/basis-stubs-for-smlnj/pack-real64.sml R lib/stubs/basis-stubs-for-smlnj/pack-word64.sml R lib/stubs/basis-stubs-for-smlnj/pervasive.cm R lib/stubs/basis-stubs-for-smlnj/pervasive.sml R lib/stubs/basis-stubs-for-smlnj/real.sml R lib/stubs/basis-stubs-for-smlnj/sources.cm R lib/stubs/basis-stubs-for-smlnj/string.sml R lib/stubs/mlton-stubs-for-polyml/mlton.sml R lib/stubs/mlton-stubs-for-polyml/sources.use R lib/stubs/mlton-stubs-for-smlnj/Makefile R lib/stubs/mlton-stubs-for-smlnj/mlton.sml R lib/stubs/mlton-stubs-for-smlnj/sources.cm R lib/stubs/mlton-stubs/Makefile M lib/stubs/mlton-stubs/sources.cm A lib/stubs/polyml/basis/pack-real.sml A lib/stubs/polyml/basis/pack-word.sml A lib/stubs/polyml/basis/real.sml A lib/stubs/polyml/basis/sources.use A lib/stubs/polyml/basis/unsafe.sig A lib/stubs/polyml/basis/unsafe.sml A lib/stubs/polyml/mlton/mlton.sml A lib/stubs/polyml/mlton/sources.use A lib/stubs/smlnj/basis/char.sml A lib/stubs/smlnj/basis/ieee-real.sml A lib/stubs/smlnj/basis/int-inf.sml A lib/stubs/smlnj/basis/pack-real32.sml A lib/stubs/smlnj/basis/pack-real64.sml A lib/stubs/smlnj/basis/pack-word64.sml A lib/stubs/smlnj/basis/pervasive.cm A lib/stubs/smlnj/basis/pervasive.sml A lib/stubs/smlnj/basis/real.sml A lib/stubs/smlnj/basis/sources.cm A lib/stubs/smlnj/basis/string.sml A lib/stubs/smlnj/mlton/mlton.sml A lib/stubs/smlnj/mlton/sources.cm M mlton/Makefile Log Message: ----------- Reorganize stubs Commit: 2c6a65419174bd7513e703fdb9cdd2439bb569fd https://github.com/MLton/mlton/commit/2c6a65419174bd7513e703fdb9cdd2439bb569fd Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: A lib/stubs/common/mlton-process-via-fork-exec.sml M lib/stubs/mlton-stubs/mlton.sml M lib/stubs/polyml/mlton/mlton.sml M lib/stubs/polyml/mlton/sources.use M lib/stubs/smlnj/mlton/mlton.sml M lib/stubs/smlnj/mlton/sources.cm M mlton/Makefile Log Message: ----------- Use old-MLton `structure MLton.Process` for stubs The `MLton.Process.spawn{,e,p}` functions have been available since MLton 20020410 and it complicates bootstrapping on MinGW and Cygwin, since those platforms cannot use `Posix.Process.fork`/`Posix.Process.exec{e,p}` to simulate `MLton.Process.spawn{e,p}` functions. We now only use `Posix.Process.fork`/`Posix.Process.exec{e,p}` to simulate `MLton.Process.spawn{e,p}` functions on non-MLton SML compilers. Commit: 47af5749d60b266e005fff48c19bf9bc82f5b9a3 https://github.com/MLton/mlton/commit/47af5749d60b266e005fff48c19bf9bc82f5b9a3 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: M basis-library/mlton/array.sig M basis-library/mlton/thread.sig M basis-library/mlton/vector.sig Log Message: ----------- Eliminate unnecessary top-level `type int = Int.int` declarations Commit: ba99895c45a51804cdb6845463f52e698ded6cad https://github.com/MLton/mlton/commit/ba99895c45a51804cdb6845463f52e698ded6cad Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: M basis-library/build/sources.mlb A basis-library/mlton/platform-extra.sml M basis-library/mlton/platform.sml M basis-library/primitive/prim-mlton.sml Log Message: ----------- Reorganize `structure MLtonPlatform` to enable sharing with stubs Commit: a85fb4ff705766215cc68c1a987d38be62cd1908 https://github.com/MLton/mlton/commit/a85fb4ff705766215cc68c1a987d38be62cd1908 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: M basis-library/build/sources.mlb A basis-library/mlton/mlton-root.sig M basis-library/mlton/mlton.sig Log Message: ----------- Refactor top-level items of `signature MLTON` into `signature MLTON_ROOT` Commit: 28625e205138155c2a9dead1b67a55ef36d1e9fb https://github.com/MLton/mlton/commit/28625e205138155c2a9dead1b67a55ef36d1e9fb Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: M basis-library/mlton/random.sml Log Message: ----------- Use `CharVector.tabulate` rather than `String.tabulate` Commit: 31d65fea0e9db13206a8b54f71c9e363f27734f7 https://github.com/MLton/mlton/commit/31d65fea0e9db13206a8b54f71c9e363f27734f7 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: R lib/stubs/mlton-stubs/array.sig A lib/stubs/mlton-stubs/array.sig A lib/stubs/mlton-stubs/mlton-root.sig M lib/stubs/mlton-stubs/mlton.sig M lib/stubs/mlton-stubs/mlton.sml R lib/stubs/mlton-stubs/platform.sig A lib/stubs/mlton-stubs/platform.sig R lib/stubs/mlton-stubs/profile.sig A lib/stubs/mlton-stubs/profile.sig R lib/stubs/mlton-stubs/random.sig A lib/stubs/mlton-stubs/random.sig R lib/stubs/mlton-stubs/random.sml A lib/stubs/mlton-stubs/random.sml R lib/stubs/mlton-stubs/rusage.sig A lib/stubs/mlton-stubs/rusage.sig M lib/stubs/mlton-stubs/sources.cm M lib/stubs/mlton-stubs/sources.mlb R lib/stubs/mlton-stubs/vector.sig A lib/stubs/mlton-stubs/vector.sig Log Message: ----------- Share Basis Library implementation of `structure MLton` with stubs Commit: 7bd81582b8909854500f7d76adfcfbd8a918291a https://github.com/MLton/mlton/commit/7bd81582b8909854500f7d76adfcfbd8a918291a Author: Matthew Fluet <mat...@gm...> Date: 2022-01-05 (Wed, 05 Jan 2022) Changed paths: M basis-library/build/sources.mlb R basis-library/mlton/platform-extra.sml A basis-library/mlton/platform-post.sml A basis-library/mlton/platform-pre.sml M basis-library/mlton/platform.sml Log Message: ----------- Reorganize `structure MLtonPlatform` to enable sharing with stubs Commit: 956299c1e838c1510220550b14f8b1d905327fa5 https://github.com/MLton/mlton/commit/956299c1e838c1510220550b14f8b1d905327fa5 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-05 (Wed, 05 Jan 2022) Changed paths: M lib/stubs/mlton-stubs/mlton.sml A lib/stubs/mlton-stubs/platform.sml A lib/stubs/mlton-stubs/pre-mlton.sml A lib/stubs/mlton-stubs/pre-sources.cm M lib/stubs/mlton-stubs/sources.cm M lib/stubs/mlton-stubs/sources.mlb R lib/stubs/mlton-stubs/text-io.sig A lib/stubs/mlton-stubs/text-io.sig M lib/stubs/polyml/mlton/mlton.sml M lib/stubs/smlnj/mlton/mlton.sml Log Message: ----------- Share Basis Library implementation of `structure MLtonPlatform` with stubs Commit: 90b46659b2ee327c8a3c87126616f2e462732092 https://github.com/MLton/mlton/commit/90b46659b2ee327c8a3c87126616f2e462732092 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-06 (Thu, 06 Jan 2022) Changed paths: A lib/stubs/mlton-stubs/.gitignore M lib/stubs/mlton-stubs/mlton.sml R lib/stubs/mlton-stubs/pre-mlton.sml A lib/stubs/mlton-stubs/pre-mlton_sml.src M lib/stubs/polyml/mlton/mlton.sml M lib/stubs/smlnj/mlton/mlton.sml M mlton/Makefile Log Message: ----------- Derive stubs `structure MLton` from `MLTON_DEBUG`, `HOST_ARCH`, and `HOST_OS` Commit: 43b6452ab97821cc69cb57cf1648b95349a66bef https://github.com/MLton/mlton/commit/43b6452ab97821cc69cb57cf1648b95349a66bef Author: Matthew Fluet <mat...@gm...> Date: 2022-01-06 (Thu, 06 Jan 2022) Changed paths: A lib/stubs/common/basis/pack-real32-dummy.sml A lib/stubs/common/basis/pack-real64-dummy.sml A lib/stubs/common/basis/pack-word64-dummy.sml A lib/stubs/common/basis/real32-via-real.sml A lib/stubs/common/basis/real64-via-real.sml A lib/stubs/common/basis/unsafe.sig A lib/stubs/common/basis/unsafe.sml R lib/stubs/common/mlton-process-via-fork-exec.sml A lib/stubs/common/mlton/process-via-fork-exec.sml R lib/stubs/polyml/basis/pack-real.sml R lib/stubs/polyml/basis/pack-word.sml R lib/stubs/polyml/basis/real.sml M lib/stubs/polyml/basis/sources.use R lib/stubs/polyml/basis/unsafe.sig R lib/stubs/polyml/basis/unsafe.sml M lib/stubs/polyml/mlton/sources.use R lib/stubs/smlnj/basis/pack-word64.sml M lib/stubs/smlnj/basis/real.sml M lib/stubs/smlnj/basis/sources.cm M lib/stubs/smlnj/mlton/sources.cm Log Message: ----------- Share common stub Basis Library implementations Commit: ff7b84e6a03577399e97cf3b0fff3e7fdbaed43b https://github.com/MLton/mlton/commit/ff7b84e6a03577399e97cf3b0fff3e7fdbaed43b Author: Matthew Fluet <mat...@gm...> Date: 2022-01-06 (Thu, 06 Jan 2022) Changed paths: A lib/stubs/common/basis/IEEE-real-dummy.sml A lib/stubs/common/basis/IEEE-real.sig A lib/stubs/common/basis/real.sig A lib/stubs/smlnj/basis/IEEE-real.sml R lib/stubs/smlnj/basis/ieee-real.sml M lib/stubs/smlnj/basis/real.sml M lib/stubs/smlnj/basis/sources.cm Log Message: ----------- Share more common stub Basis Library implementation details Commit: ab65e5e696ba44c9932eee16461305da2cdc582b https://github.com/MLton/mlton/commit/ab65e5e696ba44c9932eee16461305da2cdc582b Author: Matthew Fluet <mat...@gm...> Date: 2022-01-06 (Thu, 06 Jan 2022) Changed paths: M lib/stubs/common/basis/real.sig Log Message: ----------- Sort specs in `signature REAL` Commit: cde9998b163cbfc90279650ad17f093ca26d6990 https://github.com/MLton/mlton/commit/cde9998b163cbfc90279650ad17f093ca26d6990 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-07 (Fri, 07 Jan 2022) Changed paths: M Makefile M Makefile.config M bin/mlton-script M lib/.gitignore A lib/stubs/mlkit/basis/real.sml A lib/stubs/mlkit/basis/sources.mlb A lib/stubs/mlkit/basis/timer.sml A lib/stubs/mlkit/mlton/mlton.sml A lib/stubs/mlkit/mlton/sources.mlb M mlton/.gitignore M mlton/Makefile Log Message: ----------- Add preliminary support for building with MLKit Commit: 790b2f3502dda9091a618e42a8b74868b09dad7c https://github.com/MLton/mlton/commit/790b2f3502dda9091a618e42a8b74868b09dad7c Author: Matthew Fluet <mat...@gm...> Date: 2022-01-07 (Fri, 07 Jan 2022) Changed paths: M Makefile.config Log Message: ----------- Consistently use `HAVE_CMD` in `Makefile.config` Commit: 8b128683a4b6e779b32fd4d3feb3631a323a8ac2 https://github.com/MLton/mlton/commit/8b128683a4b6e779b32fd4d3feb3631a323a8ac2 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-07 (Fri, 07 Jan 2022) Changed paths: M Makefile.config Log Message: ----------- Fix style in `Makefile.config` Commit: 2c655276cc5e8c0f7f9c4b1ae8937e616604df62 https://github.com/MLton/mlton/commit/2c655276cc5e8c0f7f9c4b1ae8937e616604df62 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-07 (Fri, 07 Jan 2022) Changed paths: R bin/Makefile R include/Makefile R lib/Makefile R lib/mlton/Makefile R lib/stubs/Makefile Log Message: ----------- Remove `Makefile`-s that only call `bin/clean` The `bin/clean` script automatically recurses into sub-directories, so a `Makefile` with only a `clean` target that calls `bin/clean` is unnecessary. Commit: 799f7dd459782e63db82f48797cab5b39f190cfd https://github.com/MLton/mlton/commit/799f7dd459782e63db82f48797cab5b39f190cfd Author: Matthew Fluet <mat...@gm...> Date: 2022-01-07 (Fri, 07 Jan 2022) Changed paths: M Makefile.config M basis-library/Makefile M basis-library/libs/basis-2002/top-level/Makefile M benchmark/Makefile M doc/guide/Makefile M lib/ckit-lib/Makefile M lib/mllpt-lib/Makefile M lib/mlnlffi-lib/Makefile M lib/mlrisc-lib/Makefile R lib/mlton/basic/Makefile M lib/smlnj-lib/Makefile M man/Makefile M mllex/Makefile M mllex/doc/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/Makefile M mlyacc/Makefile M mlyacc/doc/Makefile R regression/library/Makefile M runtime/Makefile M util/cm2mlb/Makefile Log Message: ----------- Share common goals in `Makefile`s Commit: 427a80b39897ea19a23f32e659b52a3719ec1ead https://github.com/MLton/mlton/commit/427a80b39897ea19a23f32e659b52a3719ec1ead Author: Matthew Fluet <mat...@gm...> Date: 2022-01-07 (Fri, 07 Jan 2022) Changed paths: R doc/library-guide/.gitignore R doc/library-guide/Makefile R doc/library-guide/abstract.tex R doc/library-guide/macros.tex R doc/library-guide/main.tex Log Message: ----------- Remove nonexistent MLton Library guide Commit: f4c85f71917bb6b3e37eabc44baaa67a1123ae46 https://github.com/MLton/mlton/commit/f4c85f71917bb6b3e37eabc44baaa67a1123ae46 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-07 (Fri, 07 Jan 2022) Changed paths: M doc/mlb-formal/Makefile Log Message: ----------- Update `doc/mlb-formal/Makefile` Commit: 4ef876b3769bfe572a582cb7f1512bc6603783f7 https://github.com/MLton/mlton/commit/4ef876b3769bfe572a582cb7f1512bc6603783f7 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-08 (Sat, 08 Jan 2022) Changed paths: M Makefile M Makefile.config M benchmark/tests/Makefile M regression/Makefile Log Message: ----------- Extend common `clean` goal to handle extensions, excludes, and executables Commit: a4c40d2c7762353db2306bb66c69f08dac46c010 https://github.com/MLton/mlton/commit/a4c40d2c7762353db2306bb66c69f08dac46c010 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-08 (Sat, 08 Jan 2022) Changed paths: M doc/examples/Makefile M doc/examples/ffi/Makefile M doc/examples/finalizable/Makefile M doc/examples/profiling/Makefile M doc/examples/save-world/Makefile A doc/examples/size/.gitignore A doc/examples/size/Makefile A doc/examples/thread/.gitignore A doc/examples/thread/Makefile Log Message: ----------- Use `Makefile.config` in `doc/examples{,*}/Makefile`-s Commit: 807fb4d629b879d6db0e5c7c7df2278d7882c375 https://github.com/MLton/mlton/commit/807fb4d629b879d6db0e5c7c7df2278d7882c375 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-08 (Sat, 08 Jan 2022) Changed paths: M doc/hacker-guide/Makefile M doc/style-guide/Makefile Log Message: ----------- Use `Makefile.config` in `doc/{hacker,style}-guide/Makefile`-s Commit: a7973a641ab45d58ad3bf2131a71d49b42688acd https://github.com/MLton/mlton/commit/a7973a641ab45d58ad3bf2131a71d49b42688acd Author: Matthew Fluet <mat...@gm...> Date: 2022-01-08 (Sat, 08 Jan 2022) Changed paths: M bin/clean A bin/find-ignore R bin/ls-ignore Log Message: ----------- Rename `bin/ls-ignore` to `bin/find-ignore` and support action on found files Now, `bin/clean` can use `-exec rm -rf '{}' +` rather than `| xargs rm -rf` to more efficiently delete files. Commit: 82e86341bb25be4736140f753fefe9ff3fc9bb35 https://github.com/MLton/mlton/commit/82e86341bb25be4736140f753fefe9ff3fc9bb35 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-08 (Sat, 08 Jan 2022) Changed paths: M Makefile.config M bin/clean M bin/find-ignore Log Message: ----------- Use `Makefile` variables in `bin/{clean,find-ignore}` Commit: b66746841dbc259b403f9cfdaf6441d68b852b19 https://github.com/MLton/mlton/commit/b66746841dbc259b403f9cfdaf6441d68b852b19 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-08 (Sat, 08 Jan 2022) Changed paths: M Makefile.config Log Message: ----------- Quote paths Commit: c7b003475c4d3ed408f06d86cebdbb38316cfcd6 https://github.com/MLton/mlton/commit/c7b003475c4d3ed408f06d86cebdbb38316cfcd6 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-09 (Sun, 09 Jan 2022) Changed paths: M bin/regression Log Message: ----------- Use a `MAKE` shell variable rather than `./bin/mmake` in `./bin/regression` Commit: 79fb0755d99de309eee8860721fa46f2c5507f26 https://github.com/MLton/mlton/commit/79fb0755d99de309eee8860721fa46f2c5507f26 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-09 (Sun, 09 Jan 2022) Changed paths: R bin/mmake Log Message: ----------- Remove (now) unused `./bin/mmake` script Commit: dbb1ac8241875874c4e1811931c7371aa169a4b5 https://github.com/MLton/mlton/commit/dbb1ac8241875874c4e1811931c7371aa169a4b5 Author: Matthew Fluet <mat...@gm...> Date: 2022-01-09 (Sun, 09 Jan 2022) Changed paths: M bin/regression Log Message: ----------- Use new style command substitution syntax Commit: 46d7ad655168d5b68604cc62d907a842d3970af7 https://github.com/MLton/mlton/commit/46d7ad655168d5b68604cc62d907a842d3970af7 Author: Matthew Fluet <Mat...@gm...> Date: 2022-01-10 (Mon, 10 Jan 2022) Changed paths: M Makefile M Makefile.config M basis-library/Makefile M basis-library/build/sources.mlb M basis-library/libs/basis-2002/top-level/Makefile M basis-library/mlton/array.sig A basis-library/mlton/mlton-root.sig M basis-library/mlton/mlton.sig A basis-library/mlton/platform-post.sml A basis-library/mlton/platform-pre.sml M basis-library/mlton/platform.sml M basis-library/mlton/random.sml M basis-library/mlton/thread.sig M basis-library/mlton/vector.sig M basis-library/primitive/prim-mlton.sml M benchmark/Makefile M benchmark/main.sml M benchmark/tests/Makefile R bin/Makefile M bin/clean A bin/find-ignore R bin/ls-ignore A bin/mlbdeps M bin/mlton-script R bin/mmake M bin/regression M doc/examples/Makefile M doc/examples/ffi/Makefile M doc/examples/finalizable/Makefile M doc/examples/profiling/Makefile M doc/examples/save-world/Makefile A doc/examples/size/.gitignore A doc/examples/size/Makefile A doc/examples/thread/.gitignore A doc/examples/thread/Makefile M doc/guide/Makefile M doc/hacker-guide/Makefile R doc/library-guide/.gitignore R doc/library-guide/Makefile R doc/library-guide/abstract.tex R doc/library-guide/macros.tex R doc/library-guide/main.tex M doc/mlb-formal/Makefile M doc/style-guide/Makefile R include/Makefile M lib/.gitignore R lib/Makefile M lib/ckit-lib/Makefile M lib/mllpt-lib/Makefile M lib/mlnlffi-lib/Makefile M lib/mlrisc-lib/Makefile R lib/mlton/Makefile R lib/mlton/basic/Makefile M lib/mlton/basic/assert.sml A lib/mlton/basic/command-line.sig A lib/mlton/basic/command-line.sml M lib/mlton/basic/date.sig A lib/mlton/basic/fix-word.fun M lib/mlton/basic/function.sig M lib/mlton/basic/function.sml M lib/mlton/basic/hash-set.sml M lib/mlton/basic/popt.sml A lib/mlton/basic/process-extra.sig A lib/mlton/basic/process-extra.sml M lib/mlton/basic/process.sig M lib/mlton/basic/process.sml M lib/mlton/basic/property-list.fun M lib/mlton/basic/ref.sig M lib/mlton/basic/ref.sml M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/basic/word8.sml M lib/mlton/env/sources.cm M lib/mlton/pervasive/pervasive.sml M lib/mlton/pervasive/sources.cm M lib/mlton/set/sources.cm M lib/mlton/sources.cm M lib/mlton/sources.mlb M lib/smlnj-lib/Makefile R lib/stubs/Makefile R lib/stubs/basis-stubs-for-polyml/int.sml R lib/stubs/basis-stubs-for-polyml/real.sml R lib/stubs/basis-stubs-for-polyml/sources.use R lib/stubs/basis-stubs-for-polyml/unsafe.sig R lib/stubs/basis-stubs-for-polyml/unsafe.sml R lib/stubs/basis-stubs-for-polyml/word.sml R lib/stubs/basis-stubs-for-smlnj/Makefile R lib/stubs/basis-stubs-for-smlnj/char.sml R lib/stubs/basis-stubs-for-smlnj/ieee-real.sml R lib/stubs/basis-stubs-for-smlnj/int-inf.sml R lib/stubs/basis-stubs-for-smlnj/pack-real32.sml R lib/stubs/basis-stubs-for-smlnj/pack-real64.sml R lib/stubs/basis-stubs-for-smlnj/pack-word64.sml R lib/stubs/basis-stubs-for-smlnj/pervasive.cm R lib/stubs/basis-stubs-for-smlnj/pervasive.sml R lib/stubs/basis-stubs-for-smlnj/real.sml R lib/stubs/basis-stubs-for-smlnj/sources.cm R lib/stubs/basis-stubs-for-smlnj/string.sml A lib/stubs/common/basis/IEEE-real-dummy.sml A lib/stubs/common/basis/IEEE-real.sig A lib/stubs/common/basis/pack-real32-dummy.sml A lib/stubs/common/basis/pack-real64-dummy.sml A lib/stubs/common/basis/pack-word64-dummy.sml A lib/stubs/common/basis/real.sig A lib/stubs/common/basis/real32-via-real.sml A lib/stubs/common/basis/real64-via-real.sml A lib/stubs/common/basis/unsafe.sig A lib/stubs/common/basis/unsafe.sml A lib/stubs/common/mlton/process-via-fork-exec.sml A lib/stubs/mlkit/basis/real.sml A lib/stubs/mlkit/basis/sources.mlb A lib/stubs/mlkit/basis/timer.sml A lib/stubs/mlkit/mlton/mlton.sml A lib/stubs/mlkit/mlton/sources.mlb R lib/stubs/mlton-stubs-for-polyml/mlton.sml R lib/stubs/mlton-stubs-for-polyml/sources.use R lib/stubs/mlton-stubs-for-smlnj/Makefile R lib/stubs/mlton-stubs-for-smlnj/mlton.sml R lib/stubs/mlton-stubs-for-smlnj/sources.cm A lib/stubs/mlton-stubs/.gitignore R lib/stubs/mlton-stubs/Makefile R lib/stubs/mlton-stubs/array.sig A lib/stubs/mlton-stubs/array.sig R lib/stubs/mlton-stubs/bin-io.sig R lib/stubs/mlton-stubs/cont.sig M lib/stubs/mlton-stubs/exn.sig R lib/stubs/mlton-stubs/finalizable.sig M lib/stubs/mlton-stubs/gc.sig M lib/stubs/mlton-stubs/io.sig R lib/stubs/mlton-stubs/itimer.sig A lib/stubs/mlton-stubs/mlton-root.sig M lib/stubs/mlton-stubs/mlton.sig M lib/stubs/mlton-stubs/mlton.sml R lib/stubs/mlton-stubs/platform.sig A lib/stubs/mlton-stubs/platform.sig A lib/stubs/mlton-stubs/platform.sml A lib/stubs/mlton-stubs/pre-mlton_sml.src A lib/stubs/mlton-stubs/pre-sources.cm R lib/stubs/mlton-stubs/proc-env.sig M lib/stubs/mlton-stubs/process.sig R lib/stubs/mlton-stubs/profile.sig A lib/stubs/mlton-stubs/profile.sig R lib/stubs/mlton-stubs/random.sig A lib/stubs/mlton-stubs/random.sig R lib/stubs/mlton-stubs/random.sml A lib/stubs/mlton-stubs/random.sml R lib/stubs/mlton-stubs/rusage.sig A lib/stubs/mlton-stubs/rusage.sig R lib/stubs/mlton-stubs/signal.sig M lib/stubs/mlton-stubs/sources.cm M lib/stubs/mlton-stubs/sources.mlb R lib/stubs/mlton-stubs/text-io.sig A lib/stubs/mlton-stubs/text-io.sig R lib/stubs/mlton-stubs/thread.sig R lib/stubs/mlton-stubs/thread.sml R lib/stubs/mlton-stubs/vector.sig A lib/stubs/mlton-stubs/vector.sig R lib/stubs/mlton-stubs/weak.sig R lib/stubs/mlton-stubs/word.sig R lib/stubs/mlton-stubs/world.sig A lib/stubs/polyml/basis/sources.use A lib/stubs/polyml/mlton/mlton.sml A lib/stubs/polyml/mlton/sources.use A lib/stubs/smlnj/basis/IEEE-real.sml A lib/stubs/smlnj/basis/char.sml A lib/stubs/smlnj/basis/int-inf.sml A lib/stubs/smlnj/basis/pack-real32.sml A lib/stubs/smlnj/basis/pack-real64.sml A lib/stubs/smlnj/basis/pervasive.cm A lib/stubs/smlnj/basis/pervasive.sml A lib/stubs/smlnj/basis/real.sml A lib/stubs/smlnj/basis/sources.cm A lib/stubs/smlnj/basis/string.sml A lib/stubs/smlnj/mlton/mlton.sml A lib/stubs/smlnj/mlton/sources.cm M man/Makefile M mllex/Makefile M mllex/doc/Makefile M mllex/main.sml M mlnlffigen/Makefile M mlnlffigen/gen.sml M mlnlffigen/main.sml M mlnlffigen/sources.mlb M mlprof/Makefile M mlprof/main.sml M mlton/.gitignore M mlton/Makefile M mlton/control/system.sml A mlton/front-end/ml.grm.sig.boot A mlton/front-end/ml.grm.sml.boot A mlton/front-end/ml.lex.sml.boot A mlton/front-end/mlb.grm.sig.boot A mlton/front-end/mlb.grm.sml.boot A mlton/front-end/mlb.lex.sml.boot M mlton/front-end/sources.mlb M mlton/main/main.fun M mlyacc/Makefile M mlyacc/doc/Makefile M mlyacc/main.sml A mlyacc/src/yacc.grm.sig.boot A mlyacc/src/yacc.grm.sml.boot A mlyacc/src/yacc.lex.sml.boot M regression/Makefile R regression/library/Makefile M runtime/Makefile M util/cm2mlb/Makefile Log Message: ----------- Merge pull request #469 from MatthewFluet/bootstrap-updates Updates to bootstrapping and Makefiles Closes MLton/mlton#461 (albeit only with respect to the `BOOTSTRAP_MLTON` `Makefile` variable issue; the `bin/mlton-script` quoting issue could not be reproduced). Highlights: * 6e24fcfe2 - improve SML/NJ build by using proper dependency analysis (via `ml-makedepend`) and suppress polymorphic equality warnings with multiple CM servers by using the `CONTROL_POLY_EQ_WARN` environment variable. * f074a9a41 - include generated `mllex` and `mlyacc` files for bootstrapping (when there is no available `mllex` or `mlyacc`) * 4e6d34804 - improve Poly/ML build by using `polyc` * c04fd03eb, 7a3c477fd - add a simple `mlbdeps` shell script that understand enough of (stylized) MLB files in order to build `mlton-polyml.sml` * a9ae848b3 - don't force `val Assert.debug = true` with non-MLton host compilers; when wanted, can be set via the `MLTON_DEBUG` `Makefile` variable * 2f4b32dc9 - minimize MLton Library implementation and exports * 5dc6f7dcd - minimize stub `structure MLton` implementation * 2c6a65419 - use old-MLton `structure MLton.Process` for stubs and only emulate `MLton.Process.spawn{,e,p}` via `Posix.Process.fork`/`Posix.Process.exec{e,p}` on non-MLton compilers * 47af5749d, ba99895c4, a85fb4ff7, 28625e205, 31d65fea0, 7bd81582b, 956299c1e - reorganize Basis Library implementation of `structure MLton : MLTON` to share with stubs * cde9998b1 - add preliminary support for building with MLKit * 2c655276c, 799f7dd45, 427a80b39, f4c85f719, 4ef876b37, a4c40d2c7, 807fb4d62, a7973a641, 82e86341b - clean up `Makefile`-s to share a common implementation of `clean` goal via an implementation in `./Makefile.config` Compare: https://github.com/MLton/mlton/compare/f42ca8ca9227...46d7ad655168 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2022-01-04 13:34:53
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: ac9d2d3dea60b8b68b698f4a195d2f8b540bf698 https://github.com/MLton/mlton/commit/ac9d2d3dea60b8b68b698f4a195d2f8b540bf698 Author: Martin <my...@ho...> Date: 2022-01-03 (Mon, 03 Jan 2022) Changed paths: M doc/guide/src/References.adoc Log Message: ----------- fix broken link Commit: f42ca8ca92271902ab3bc6e4a5f1f5c2066d2cbf https://github.com/MLton/mlton/commit/f42ca8ca92271902ab3bc6e4a5f1f5c2066d2cbf Author: Matthew Fluet <Mat...@gm...> Date: 2022-01-04 (Tue, 04 Jan 2022) Changed paths: M doc/guide/src/References.adoc Log Message: ----------- Merge pull request #468 from devMYC/ref-link-fix fix broken link Compare: https://github.com/MLton/mlton/compare/1e2d2b11bbd2...f42ca8ca9227 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-12-30 17:19:19
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: a03139dda11c57842ce3ab7def4f459ab4e225e6 https://github.com/MLton/mlton/commit/a03139dda11c57842ce3ab7def4f459ab4e225e6 Author: Evgeny Ermakov <evg...@gm...> Date: 2021-12-30 (Thu, 30 Dec 2021) Changed paths: M Makefile M doc/guide/src/CrossCompiling.adoc Log Message: ----------- Fix comment in Makefile and CrossCompiling.adoc Commit: 1e2d2b11bbd23938a0077c31379a995d06360fdf https://github.com/MLton/mlton/commit/1e2d2b11bbd23938a0077c31379a995d06360fdf Author: Matthew Fluet <Mat...@gm...> Date: 2021-12-30 (Thu, 30 Dec 2021) Changed paths: M Makefile M doc/guide/src/CrossCompiling.adoc Log Message: ----------- Merge pull request #467 from unspecd/fix-comments Fix comment in Makefile and CrossCompiling.adoc Compare: https://github.com/MLton/mlton/compare/3c58e22ac14b...1e2d2b11bbd2 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-12-18 00:36:29
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: d030db8be00fb2c81b06e8f03124d057280eff8c https://github.com/MLton/mlton/commit/d030db8be00fb2c81b06e8f03124d057280eff8c Author: Matthew Fluet <mat...@gm...> Date: 2021-12-17 (Fri, 17 Dec 2021) Changed paths: M CHANGELOG.adoc M mlton/ssa/constant-propagation.fun Log Message: ----------- Fix bug in `ConstantPropagation` with vector literals. Closes MLton/mlton#462 Commit: 3c58e22ac14be8dc1f87f40d28e7e20db0a2e0e4 https://github.com/MLton/mlton/commit/3c58e22ac14be8dc1f87f40d28e7e20db0a2e0e4 Author: Matthew Fluet <Mat...@gm...> Date: 2021-12-17 (Fri, 17 Dec 2021) Changed paths: M CHANGELOG.adoc M mlton/ssa/constant-propagation.fun Log Message: ----------- Merge pull request #466 from MatthewFluet/bug-462 Fix bug in `ConstantPropagation` with vector literals. Compare: https://github.com/MLton/mlton/compare/718f00279eb1...3c58e22ac14b |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-12-17 20:50:47
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 950fa093fd1cc4658b084f88f051ce65801c1270 https://github.com/MLton/mlton/commit/950fa093fd1cc4658b084f88f051ce65801c1270 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-08 (Mon, 08 Nov 2021) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Introduce `-force-handles-signals {false|true}` control This control will be used to force the insertion of signal checks (in a program that doesn't actually use signals) to evaluate the overhead. Commit: 6829943704076b2d8d4d0fdd7de6319bd254a08c https://github.com/MLton/mlton/commit/6829943704076b2d8d4d0fdd7de6319bd254a08c Author: Matthew Fluet <mat...@gm...> Date: 2021-11-08 (Mon, 08 Nov 2021) Changed paths: M mlton/backend/ssa2-to-rssa.fun M mlton/closure-convert/closure-convert.fun Log Message: ----------- Use `Control.forceHandlesSignals` in `ClosureConvert` and `Ssa2ToRssa` passes Commit: ef9f3a9a87e5a7915abf1e45942b9220795679a2 https://github.com/MLton/mlton/commit/ef9f3a9a87e5a7915abf1e45942b9220795679a2 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-08 (Mon, 08 Nov 2021) Changed paths: M runtime/gc/gc_state.h M runtime/gc/world.c Log Message: ----------- Fields accessed in `GC_handler` should be `volatile`. Technically, according to C11, a handler should only access `volatile sig_atomic_t` variables. Commit: a6c44cb429464f7020e7cd68e3a3a5684587b636 https://github.com/MLton/mlton/commit/a6c44cb429464f7020e7cd68e3a3a5684587b636 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-08 (Mon, 08 Nov 2021) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Add `volatile: bool` field to `Machine.Operand.Offset` variant In particular, the `AtomicState`, `CurSourceSeqIndex`, `Limit`, and `SignalIsPending` fields of the `GCState` are volatile. Commit: 4580f8a7b67f4ebece4924868a59fc8afbcab0a3 https://github.com/MLton/mlton/commit/4580f8a7b67f4ebece4924868a59fc8afbcab0a3 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-09 (Tue, 09 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Inline single use of `lessThan` in `LimitCheck.insertFunction` Commit: dd0ec16dbe7d2117784f8a731f00c77fec682b05 https://github.com/MLton/mlton/commit/dd0ec16dbe7d2117784f8a731f00c77fec682b05 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-09 (Tue, 09 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Use `List.push` Commit: 32b7b9ff3205db1ac628c53910f288c81a6966b7 https://github.com/MLton/mlton/commit/32b7b9ff3205db1ac628c53910f288c81a6966b7 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-09 (Tue, 09 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Revise variable names Commit: 4e915f603935d2092e79a298d5e80bffa1ec14a0 https://github.com/MLton/mlton/commit/4e915f603935d2092e79a298d5e80bffa1ec14a0 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-10 (Wed, 10 Nov 2021) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Avoid creating unreachable blocks for `Thread_atomic{Begin,End}` in Ssa2ToRssa Commit: 950b18106becc8dd56ecc54784816bd7075c5b24 https://github.com/MLton/mlton/commit/950b18106becc8dd56ecc54784816bd7075c5b24 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-10 (Wed, 10 Nov 2021) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Reverse checks for switching to signal in `Thread_atomicEnd` On some architectures, the `gcState.atomicState--` may leave an `isZero` flag in a status register, allowing an immediate `0 == gcState.atomicState` to be executed by a simple conditional jump (without an explicit condition instruction). Commit: ea4a3206c3e18d5a5115af9d285549f913bd5bc3 https://github.com/MLton/mlton/commit/ea4a3206c3e18d5a5115af9d285549f913bd5bc3 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-10 (Wed, 10 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Don't conflate "dynamic" bytes allocated with "big" bytes allocated Commit: 5c63c0cb6ad697846fee0f66c442e51035b62ae3 https://github.com/MLton/mlton/commit/5c63c0cb6ad697846fee0f66c442e51035b62ae3 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-11 (Thu, 11 Nov 2021) Changed paths: M mlton/backend/rssa-tree.fun Log Message: ----------- Generalize `Rssa.Transfer.{ifBool{,E},isZero}` Allow arbitrary word sizes (not just `WordSize.bool`) for tests in `Rssa.Transfer.{ifBool{,E},isZero}`. Commit: 1b916f07d7f9e3aade657e0a3349d6baaadda7c9 https://github.com/MLton/mlton/commit/1b916f07d7f9e3aade657e0a3349d6baaadda7c9 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Refactor `LimitCheck.insertFunction` Clarify the logic for limit (and stack) check insertion and prepare for combining with signal check insertion. Commit: 2cfba2e765678b0dd9c49a87723b3b1807f0d73b https://github.com/MLton/mlton/commit/2cfba2e765678b0dd9c49a87723b3b1807f0d73b Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Remove unnecessary `datatype z = datatype Transfer.t` Commit: 6f3d52ac00201468cb79fd4d26e6eb2ae5661ca9 https://github.com/MLton/mlton/commit/6f3d52ac00201468cb79fd4d26e6eb2ae5661ca9 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Move `structure LimitCheck` into `Control` Commit: 793c8f5448f16f5c4aa5564b6ea0a204d401b193 https://github.com/MLton/mlton/commit/793c8f5448f16f5c4aa5564b6ea0a204d401b193 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Refactor `List.push (newBlocks, ...)` with helper function Commit: 6c98969d7c7e2d7cd517c7c5443b8de3fea88e0e https://github.com/MLton/mlton/commit/6c98969d7c7e2d7cd517c7c5443b8de3fea88e0e Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Perform `insertFunction` in `transform` Also refactor `insertPerBlock` to `limitCheckPerBlock` and `insertCoalesce` to `limitCheckCoalesce`; the new functions simply compute the necessary information for limit check insertion, Commit: a8dde0f503ac7b4e5ab57d580a5d3aad15a9903a https://github.com/MLton/mlton/commit/a8dde0f503ac7b4e5ab57d580a5d3aad15a9903a Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Consolidate `Control.diagnostic` for `maxPath` Commit: 187c13e79e8e787e1fc715fde5350b78ed0e9832 https://github.com/MLton/mlton/commit/187c13e79e8e787e1fc715fde5350b78ed0e9832 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Prepare to merge `SignalCheck` into `LimitCheck` Commit: 2f45dcf395134773a2c11350e34a903ba5fd607f https://github.com/MLton/mlton/commit/2f45dcf395134773a2c11350e34a903ba5fd607f Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Simplify logic for `signalCheckAtLimitCheck` Commit: 3305aff21950ed3f2b259c2680405a6bf3eb871a https://github.com/MLton/mlton/commit/3305aff21950ed3f2b259c2680405a6bf3eb871a Author: Matthew Fluet <mat...@gm...> Date: 2021-11-12 (Fri, 12 Nov 2021) Changed paths: A mlton/backend/insert-checks.fun R mlton/backend/limit-check.fun M mlton/backend/rssa-simplify.fun R mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb Log Message: ----------- Merge `SignalCheck` into `LimitCheck` and rename to `InsertChecks` Signal-check insertion is now performed at the same time as limit-check and stack-check insertions. Many redundant checks were inserted when signal checks were inserted after limit and stack checks: at function start (always gets a stack check) and at loop headers (usually gets a limit check). Each of these redundant checks induced an additional (static) call to `GC_collect` and associated control flow. Commit: 2b390d65f625941917ff4950b74bdab6eeebfbf0 https://github.com/MLton/mlton/commit/2b390d65f625941917ff4950b74bdab6eeebfbf0 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-15 (Mon, 15 Nov 2021) Changed paths: M mlton/backend/insert-checks.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add signal check controls Add `-signal-check {if-handles-signals|always}`, `-signal-check-at-limit-check {true|false}`, `-signal-check-expect {none|false|true}`, controls for fine-grained handling of signal-check insertion. Commit: 2192b784ec784ac7107e5842a31d3dcee0955780 https://github.com/MLton/mlton/commit/2192b784ec784ac7107e5842a31d3dcee0955780 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-15 (Mon, 15 Nov 2021) Changed paths: M mlton/backend/insert-checks.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Refactor limit check controls and add stack check controls Rename `-gc-expect {none|false|true}` to `-limit-check-expect {none|false|true}` and add `-stack-check-expect {none|false|true}` for fine-grained handling of limit-check and stack-check conditionals. Commit: 1d07911b8ec61277f4f75e844e88ba5e5a12a2fd https://github.com/MLton/mlton/commit/1d07911b8ec61277f4f75e844e88ba5e5a12a2fd Author: Matthew Fluet <mat...@gm...> Date: 2021-11-16 (Tue, 16 Nov 2021) Changed paths: M include/amd64-main.h M include/c-main.h M include/x86-main.h M mlton/atoms/word-size.fun M mlton/atoms/word-size.sig M mlton/backend/insert-checks.fun M mlton/backend/rep-type.fun M mlton/backend/runtime.fun M mlton/backend/ssa2-to-rssa.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M runtime/gc/atomic.c M runtime/gc/gc_state.h M runtime/gc/handler.c M runtime/gc/signals.h M runtime/gc/world.c M runtime/gen/gen-constants.c M runtime/gen/gen-types.c Log Message: ----------- Simplify signal handling A POSIX-compliant signal handler should only read and write `volatile sig_atomic_t` objects and call async-safe functions. This simplifies signal handling, because it removes the invariant that `signalIsPending && atomicState == 0` iff `limit = 0`. It also allows `atomicState` and `limit` to be non-`volatile`. On the other hand, it slightly increases the overhead of signal handling, because a signal check cannot be combined with the common `frontier < limit` limit check (when `bytesRequested < LIMIT_SLOP`); instead, an explicit `signalIsPending && atomicState == 0` must be performed. With the default compile-time options, the signal check is inserted at every loop header and anywhere a limit check would be inserted. Commit: 195e3a611e8532cde67ecd0039c5443b5c755604 https://github.com/MLton/mlton/commit/195e3a611e8532cde67ecd0039c5443b5c755604 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-10 (Fri, 10 Dec 2021) Changed paths: M include/amd64-main.h M include/c-main.h M include/x86-main.h M mlton/atoms/word-size.fun M mlton/atoms/word-size.sig M mlton/backend/insert-checks.fun M mlton/backend/rep-type.fun M mlton/backend/runtime.fun M mlton/backend/ssa2-to-rssa.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M runtime/gc/atomic.c M runtime/gc/gc_state.h M runtime/gc/handler.c M runtime/gc/signals.h M runtime/gc/world.c M runtime/gen/gen-constants.c M runtime/gen/gen-types.c Log Message: ----------- Revert "Simplify signal handling" This reverts commit 1d07911b8ec61277f4f75e844e88ba5e5a12a2fd. Commit: 9e44668bdf0a3607adaed88cb5bca8e0736a0f65 https://github.com/MLton/mlton/commit/9e44668bdf0a3607adaed88cb5bca8e0736a0f65 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-10 (Fri, 10 Dec 2021) Changed paths: M mlton/backend/rssa-simplify.fun Log Message: ----------- Perform an `RssaShrink` after `InsertChecks` and before `BounceVars` Commit: ac4d126bc7080610f162601123f12606d18ddc53 https://github.com/MLton/mlton/commit/ac4d126bc7080610f162601123f12606d18ddc53 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-13 (Mon, 13 Dec 2021) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Further revise checks for switching to signal in `Thread_atomicEnd` Revise from gcState.atomicState--; if (0 == gcState.atomicState and gcState.signalsInfo.signalIsPending) gc; to tmp = gcState.atomicState - 1; gcState.atomicState = tmp; if (0 == tmp and gcState.signalsInfo.signalIsPending) gc; Since `gcState.atomicState` is `volatile`, it may be necessary to reload and perform an explicit comparison with zero, rather than using the `isZero` flag of the status register from the `gcState.atomicState--`. However, since a signal handler only ever reads `gcState.atomicState` (and never writes it), the value of that reload will always be equal to `gcState.atomicState - 1`. Commit: 718f00279eb191deb6477e30a3aab2890d1b8b53 https://github.com/MLton/mlton/commit/718f00279eb191deb6477e30a3aab2890d1b8b53 Author: Matthew Fluet <Mat...@gm...> Date: 2021-12-17 (Fri, 17 Dec 2021) Changed paths: M mlton/backend/backend.fun A mlton/backend/insert-checks.fun R mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rssa-simplify.fun M mlton/backend/rssa-tree.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig R mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa2-to-rssa.fun M mlton/closure-convert/closure-convert.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M runtime/gc/gc_state.h M runtime/gc/world.c Log Message: ----------- Merge pull request #465 from MatthewFluet/signal-checks Updates to signal handling Address two (minor) issues with signal handling. First, data accessed by a signal handler should be `volatile`, but only the `signalsInfo.signalIsPending` field of `struct GC_state` was qualified `volatile` and the codegens did not treat that field any differently than non-`volatile` qualified fields. To address this issue, the `limit` and `atomicState` fields of `struct GC_state` are qualified `volatile` (ef9f3a9a8) and the MachineIR and the C and LLVM codegens are extended to handle `Machine.Operand.Offset` that are `volatile` (a6c44cb42). Second, when signal checks are inserted independently of stack and limit checks, then many redundant checks are inserted. To address this issue, the `SignalCheck` pass is merged with `LimitCheck` pass and renamed to `InsertChecks` (187c13e79, 2f45dcf39, 3305aff21). In order to evaluate the impact of these changes, a `-force-handles-signals {false|true}` compile-time option is added (950fa093f), which is used in the `ClosureConvert` and `Ssa2ToRssa` passes (682994370). In addition to cleanup and refactoring of the stack- and limit-check insertion pass (4580f8a7b, dd0ec16db, 32b7b9ff3, ea4a3206c, 1b916f07d, 2cfba2e76, 6f3d52ac0, 793c8f544, 6c98969d7, a8dde0f50), a number of other compile-time options are added (`-signal-check {if-handles-signals|always}`, `-signal-check-at-limit-check {true|false}`, `-signal-check-expect {none|false|true}`, `-limit-check-expect {none|false|true}` (renamed from `-gc-expect {none|false|true}`), and `-stack-check-expect {none|false|true}`) for fine-grained handling of check insertion and conditionals (2b390d65f, 2192b784e). Also, the checks in the `Ssa2ToRssa` expansion of the `Thread_atomicEnd` primitive are reversed so that the `0 == atomicState` condition is executed immediately following the decrement of `atomicState` (950b18106, ac4d126bc). As an experiment, signal handling is further simplified to only write to the `signalsInfo.signalIsPending` field of `struct GC_state` and not set the `limit` field to `0` (1d07911b8). This allows the `atomicState` and `limit` fields to be non-`volatile`, but does increase the overhead of signal handling, because a signal check cannot be combined with the common `limit < frontier` limit check. However, the increase in overhead is substantial for some benchmarks, so the experiment has been reverted (195e3a611). To evaluate, benchmarks are run with both `-force-handles-signals false` and `-force-handles-signals true`, with all three codegens (`amd64`, `c` (gcc 9.3), and `llvm` (llvm 13.0)), and at the following commits: * 682994370 - baseline, simply adding and using `-force-handles-signals` * a6c44cb42 - make `limit` and `atomicState` runtime operands `volatile` * 950b18106 - reverse checks for `Thread_atomicEnd` primitive * 2192b784e - combine signal-check insertion with stack- and limit-check insertion (plus additional cleanup and refactoring) * 1d07911b8 - experiment with signal handling using only `signalIsPending` * 9e44668bd - perform an `RssaShrink` after `InsertChecks` (and revert 1d07911b8) * ac4d126bc - further revise checks for `Thread_atomicEnd` primitive We first compare 682994370 to a6c44cb42, which measures the overhead of the `volatile` qualifier on the `limit` and `signalIsPending` fields. Note that the `amd64` codegen was not updated to handle `volatile` `Machine.Operand.Offset` (it already had rudimentary support for conservatively treating various `struct GC_state` fields), so the difference in performance with the `amd64` codegen should primarily measure the impact of the `volatile` qualifier on the `limit` and `signalIsPending` fields in the runtime (which is very minimal): config command C00 /home/mtf/devel/mlton/builds/g682994370/bin/mlton -codegen amd64 -force-handles-signals false C01 /home/mtf/devel/mlton/builds/g682994370/bin/mlton -codegen amd64 -force-handles-signals true C02 /home/mtf/devel/mlton/builds/g682994370/bin/mlton -codegen c -force-handles-signals false C03 /home/mtf/devel/mlton/builds/g682994370/bin/mlton -codegen c -force-handles-signals true C04 /home/mtf/devel/mlton/builds/g682994370/bin/mlton -codegen llvm -force-handles-signals false C05 /home/mtf/devel/mlton/builds/g682994370/bin/mlton -codegen llvm -force-handles-signals true C06 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen amd64 -force-handles-signals false C07 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen amd64 -force-handles-signals true C08 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen c -force-handles-signals false C09 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen c -force-handles-signals true C10 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen llvm -force-handles-signals false C11 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen llvm -force-handles-signals true task_clock ratio_means.fieller@0.95 (2-level) program `C06/C00` `C07/C01` `C08/C02` `C09/C03` `C10/C04` `C11/C05` barnes-hut 1.023 0.9805 0.9631 0.9878 0.9949 1.000 boyer 1.035 1.020 1.026 1.012 1.011 0.9850 checksum 0.9947 1.001 1.002 0.9921 0.9957 0.9933 count-graphs 1.006 1.002 1.006 0.9999 1.005 1.003 DLXSimulator 1.003 0.9862 0.9857 1.001 0.9971 0.9907 even-odd 0.9975 1.001 1.003 0.9002 0.9878 0.9787 fft 1.010 1.035 0.9840 0.9937 1.016 0.9911 fib 1.000 0.9988 1.001 0.9961 1.009 0.9984 flat-array 0.9946 1.000 0.9501 0.9965 0.9788 0.9920 hamlet 0.9966 0.9956 1.001 1.003 1.011 1.015 imp-for 1.000 0.9995 0.9967 0.9977 1.018 1.017 knuth-bendix 1.005 1.008 1.002 1.002 0.9960 1.003 lexgen 1.000 0.9843 0.9708 0.9969 0.9907 0.9861 life 0.9988 0.9999 1.004 0.9979 0.9853 1.003 logic 0.9830 1.001 1.001 0.9962 1.005 1.012 mandelbrot 1.000 1.000 0.9552 1.034 1.003 0.9941 matrix-multiply 0.9785 0.9838 1.017 0.9819 0.9884 1.011 md5 1.004 0.9909 0.9967 1.007 1.013 1.012 merge 1.004 0.9676 0.9785 1.008 0.9917 1.008 mlyacc 1.001 0.9669 1.013 1.005 0.9740 0.9916 model-elimination 0.9980 0.9997 0.9981 1.003 1.008 0.9954 mpuz 1.006 1.001 0.9856 0.9961 1.031 1.002 nucleic 0.9945 0.9975 1.011 0.9954 1.006 0.9917 output1 0.9987 0.9987 1.001 0.9896 0.9947 0.9920 peek 1.005 0.9961 1.051 1.001 1.019 1.001 pidigits 0.9845 0.9940 0.9680 0.9781 1.002 0.9530 psdes-random 0.9997 1.002 0.9960 0.9928 0.9990 0.9980 ratio-regions 1.009 1.012 1.026 1.004 0.9933 1.017 ray 1.000 1.008 1.002 1.005 1.007 1.002 raytrace 0.9993 1.003 1.004 0.9916 0.9998 0.9990 simple 0.9996 1.005 0.9993 1.014 0.9925 1.005 smith-normal-form 1.004 0.9699 0.9933 0.9799 0.9896 0.9874 string-concat 0.9975 1.000 0.9634 0.9963 1.003 1.001 tailfib 0.9995 0.9996 0.9815 1.008 1.008 0.9950 tailmerge 0.9699 0.9959 0.9706 1.016 1.004 1.012 tak 1.001 1.001 1.014 0.9898 1.007 1.001 tensor 0.9997 1.000 1.001 0.9811 1.004 0.9986 tsp 1.021 1.054 0.9731 0.9761 1.014 0.9987 tyan 1.006 1.003 1.009 1.025 1.074 1.036 vector-rev 1.003 1.005 0.9879 0.9956 0.9898 0.9923 vector32-concat 1.008 1.012 0.9924 0.9697 0.9935 0.9877 vector64-concat 1.067 0.9977 1.083 1.006 0.9791 0.9619 vliw 0.9674 0.9755 0.9800 0.9630 0.9970 0.9809 wc-input1 1.001 0.9962 1.014 0.8995 1.006 1.005 wc-scanStream 0.9926 1.002 0.9933 0.9802 0.9935 0.9967 zebra 1.009 1.000 1.015 1.004 1.002 1.009 zern 0.9762 1.013 1.002 0.9599 0.9757 0.9912 MIN 0.9674 0.9669 0.9501 0.8995 0.9740 0.9530 GMEAN 1.001 0.9991 0.9970 0.9918 1.001 0.9977 MAX 1.067 1.054 1.083 1.034 1.074 1.036 On (geometric) average, there is no significant difference. While the runtime ratio for an individual benchmark can be as high as 1.083, only for `tsp` `C01/C07` and `tyan` `C04/C10` does the 95% confidence interval of the ratio of the means fall above 1.0 (and a number of times, the 95% confidence interval falls below 1.0). We next compare a6c44cb42 to 950b18106, which measures the effect of reversing the checks in the translation of the `Thread_atomicEnd` primitive. Note that when signals are not handled, then no checks are included in the expansion. config command C06 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen amd64 -force-handles-signals false C07 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen amd64 -force-handles-signals true C08 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen c -force-handles-signals false C09 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen c -force-handles-signals true C10 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen llvm -force-handles-signals false C11 /home/mtf/devel/mlton/builds/ga6c44cb42/bin/mlton -codegen llvm -force-handles-signals true C12 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen amd64 -force-handles-signals false C13 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen amd64 -force-handles-signals true C14 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen c -force-handles-signals false C15 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen c -force-handles-signals true C16 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen llvm -force-handles-signals false C17 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen llvm -force-handles-signals true task_clock ratio_means.fieller@0.95 (2-level) program `C12/C06` `C13/C07` `C14/C08` `C15/C09` `C16/C10` `C17/C11` barnes-hut 0.9833 1.006 1.004 0.9941 0.9882 0.9983 boyer 1.030 1.006 0.9988 0.9761 0.9885 1.011 checksum 0.9543 0.9973 0.9765 1.002 1.015 1.005 count-graphs 0.9833 0.9963 1.001 0.9953 1.015 0.9972 DLXSimulator 0.9981 0.9987 1.004 1.014 1.043 1.018 even-odd 0.9999 1.000 1.005 1.004 0.9996 1.007 fft 1.016 0.9587 0.9905 0.9874 0.9673 0.9857 fib 1.005 0.9992 0.9816 1.001 1.009 0.9965 flat-array 0.9733 0.9973 1.029 0.9999 1.002 1.001 hamlet 0.9977 1.005 1.028 0.9977 1.017 0.9863 imp-for 1.015 0.9985 0.9645 0.9960 0.9957 0.9972 knuth-bendix 1.002 0.9883 1.021 0.9975 1.011 0.9948 lexgen 0.9905 0.9957 1.012 1.005 0.9726 0.9987 life 0.9989 0.9993 0.9948 1.003 1.010 1.001 logic 0.9988 0.9945 0.9885 0.9714 0.9791 0.9862 mandelbrot 0.9995 0.9995 1.020 0.9979 0.9957 0.9987 matrix-multiply 1.115 1.053 1.002 1.063 1.011 1.039 md5 0.9958 1.012 1.002 1.015 1.008 0.9882 merge 0.9804 1.012 0.9464 0.9549 0.9978 0.9950 mlyacc 0.9873 1.001 1.013 0.9906 0.9781 1.004 model-elimination 0.9945 0.9959 1.010 0.9965 1.002 0.9925 mpuz 1.009 0.9998 1.003 0.9987 0.9737 0.9943 nucleic 1.002 0.9999 0.9804 1.006 1.003 1.015 output1 1.010 0.9961 0.9978 0.9968 1.000 0.9975 peek 1.002 0.9995 0.9585 0.9990 0.9880 0.9997 pidigits 1.035 1.000 1.007 0.9851 0.9919 1.016 psdes-random 1.031 0.9983 1.001 1.002 1.000 0.9994 ratio-regions 0.9963 1.002 1.006 1.010 0.9984 0.9653 ray 1.001 0.9979 0.9947 0.9988 0.9839 1.001 raytrace 0.9982 0.9917 0.9985 1.006 0.9926 0.9988 simple 0.9994 0.9976 0.9751 0.9906 1.031 1.002 smith-normal-form 1.029 1.007 1.007 1.017 0.9989 1.001 string-concat 1.000 1.000 0.9811 0.9993 1.003 1.000 tailfib 0.9998 0.9998 1.046 1.001 1.020 1.001 tailmerge 1.048 1.003 1.022 0.9757 1.006 0.9995 tak 0.9994 1.001 0.9862 1.000 1.007 0.9933 tensor 1.000 0.9977 0.9965 1.001 0.7839 1.001 tsp 0.9830 0.9905 0.9970 1.014 1.008 0.9935 tyan 0.9843 0.9790 1.023 0.9820 0.9564 0.9809 vector-rev 1.002 1.001 0.9984 0.9979 0.9531 1.010 vector32-concat 0.9807 0.9907 1.036 0.9951 0.9765 1.005 vector64-concat 0.9782 1.026 0.9499 0.9859 1.045 0.9854 vliw 0.9787 0.9800 0.9840 1.011 1.006 1.010 wc-input1 1.000 1.003 1.008 0.9938 0.9869 1.003 wc-scanStream 0.9851 0.9928 1.014 1.000 0.9950 1.012 zebra 0.9996 1.003 0.9871 0.9962 0.9995 0.9983 zern 0.9996 0.9974 0.9848 0.9930 1.013 1.002 MIN 0.9543 0.9587 0.9464 0.9549 0.7839 0.9653 GMEAN 1.001 0.9993 0.9984 0.9982 0.9934 0.9996 MAX 1.115 1.053 1.046 1.063 1.045 1.039 Once again, on (geometric) average, there is no significant difference. Curiously, the most significant differences (`matrix-multiply` `C12/C06` and `tensor` `C16/C10`) occur with `-force-handles-signals false`, which omits the code to check and transfer to the runtime in the translation of `Thread_atomicEnd`. A difference from a6c44cb42 to 950b18106 is that at 4e915f603, we avoid even creating blocks for `Thread_atomic{Begin,End}` when `handlesSignals = false`, which would be dead code. These blocks are eventually dropped, but they do perturb the labels. The `tensor` benchmark does have a curious bimodal performance profile and the 950b18106 simply seems to trigger a few more seeds/runs to fall into the faster category, sufficiently shifting the mean. In any case, considering that `atomicState` has been made `volatile`, then it is probably not the case that `atomicState -= 1; if (atomicState == 0) { ... }` can be executed with a conditional jump except possibly by the `amd64` codegen. A better translation might be `tmp = atomicState - 1; atomicState = tmp; if (tmp == 0) { ... }`. We next compare 950b18106 to 2192b784e, which aims to eliminate the redundant signal checks by inserting signal checks along with stack and limit checks. By comparing code size, we can confim that a number of redundant checks were removed: config command C12 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen amd64 -force-handles-signals false C13 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen amd64 -force-handles-signals true C14 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen c -force-handles-signals false C15 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen c -force-handles-signals true C16 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen llvm -force-handles-signals false C17 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen llvm -force-handles-signals true C18 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen amd64 -force-handles-signals false C19 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen amd64 -force-handles-signals true C20 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen c -force-handles-signals false C21 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen c -force-handles-signals true C22 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen llvm -force-handles-signals false C23 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen llvm -force-handles-signals true size ratio_means.fieller@0.95 (2-level) program `C18/C12` `C19/C13` `C20/C14` `C21/C15` `C22/C16` `C23/C17` barnes-hut 1.000 0.9811 1.000 0.9759 1.001 0.9776 boyer 1.000 0.9879 1.000 0.9819 1.000 0.9870 checksum 1.001 0.9896 1.000 0.9858 1.001 0.9882 count-graphs 1.004 0.9617 1.003 0.9459 1.003 0.9575 DLXSimulator 1.008 0.9521 1.001 0.9374 1.005 0.9493 even-odd 1.001 0.9882 1.000 0.9829 1.001 0.9857 fft 1.000 0.9831 1.000 0.9795 0.9999 0.9806 fib 1.001 0.9888 1.000 0.9848 1.001 0.9857 flat-array 1.001 0.9897 1.000 0.9863 1.001 0.9872 hamlet 0.9995 0.9134 0.9984 0.8894 0.9986 0.9134 imp-for 1.001 0.9887 1.000 0.9860 1.001 0.9860 knuth-bendix 1.001 0.9640 1.002 0.9495 0.9996 0.9623 lexgen 0.9990 0.9314 0.9975 0.9106 1.000 0.9302 life 1.001 0.9431 1.001 0.9198 1.000 0.9400 logic 1.000 0.9241 1.000 0.8906 0.9991 0.9167 mandelbrot 1.001 0.9894 1.000 0.9862 1.001 0.9866 matrix-multiply 1.001 0.9897 1.000 0.9864 1.000 0.9867 md5 1.001 0.9700 1.001 0.9593 0.9974 0.9695 merge 1.001 0.9801 1.000 0.9761 1.000 0.9778 mlyacc 0.9770 0.8894 0.9840 0.8660 0.9757 0.8965 model-elimination 0.9986 0.8498 0.9999 0.8207 0.9992 0.8528 mpuz 1.001 0.9825 1.001 0.9808 1.001 0.9783 nucleic 1.000 0.9768 1.000 0.9655 0.9995 0.9725 output1 1.000 0.9704 1.000 0.9536 1.001 0.9655 peek 1.001 0.9876 1.000 0.9841 1.000 0.9843 pidigits 0.9990 0.9753 1.000 0.9651 1.000 0.9766 psdes-random 1.001 0.9893 1.001 0.9854 1.001 0.9856 ratio-regions 1.000 0.9714 0.9997 0.9689 1.001 0.9693 ray 1.003 0.9491 1.002 0.9319 1.003 0.9444 raytrace 1.001 0.9439 1.001 0.9266 0.9992 0.9487 simple 1.001 0.8965 1.002 0.8716 0.9991 0.9043 smith-normal-form 0.9992 0.9717 1.001 0.9578 0.9994 0.9724 string-concat 1.001 0.9874 1.001 0.9838 1.001 0.9848 tailfib 1.001 0.9896 1.000 0.9861 1.001 0.9868 tailmerge 1.001 0.9816 1.000 0.9759 1.000 0.9787 tak 1.001 0.9890 1.000 0.9840 1.001 0.9873 tensor 0.9980 0.9635 0.9981 0.9548 0.9992 0.9610 tsp 1.001 0.9827 1.001 0.9685 1.001 0.9767 tyan 1.001 0.9325 1.001 0.9121 1.003 0.9272 vector-rev 1.001 0.9894 1.000 0.9861 1.001 0.9882 vector32-concat 1.001 0.9887 1.000 0.9839 1.000 0.9854 vector64-concat 1.001 0.9885 1.000 0.9836 1.000 0.9860 vliw 1.006 0.8664 1.007 0.8471 1.007 0.8704 wc-input1 0.9990 0.9537 0.9982 0.9406 1.002 0.9583 wc-scanStream 0.9995 0.9468 1.001 0.9307 1.001 0.9434 zebra 1.001 0.9645 1.001 0.9547 1.002 0.9592 zern 0.9992 0.9845 1.001 0.9715 1.001 0.9813 MIN 0.9770 0.8498 0.9840 0.8207 0.9757 0.8528 GMEAN 1.000 0.9628 1.000 0.9513 1.000 0.9610 MAX 1.008 0.9897 1.007 0.9864 1.007 0.9882 For `-force-handles-signals true`, we observe a modest reduction in code size. config command C12 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen amd64 -force-handles-signals false C13 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen amd64 -force-handles-signals true C14 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen c -force-handles-signals false C15 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen c -force-handles-signals true C16 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen llvm -force-handles-signals false C17 /home/mtf/devel/mlton/builds/g950b18106/bin/mlton -codegen llvm -force-handles-signals true C18 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen amd64 -force-handles-signals false C19 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen amd64 -force-handles-signals true C20 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen c -force-handles-signals false C21 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen c -force-handles-signals true C22 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen llvm -force-handles-signals false C23 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen llvm -force-handles-signals true task_clock ratio_means.fieller@0.95 (2-level) program `C18/C12` `C19/C13` `C20/C14` `C21/C15` `C22/C16` `C23/C17` barnes-hut 0.9969 0.9831 0.9737 0.9814 0.9919 1.020 boyer 0.9610 1.058 0.9965 1.099 0.9954 1.109 checksum 1.031 1.007 1.034 1.011 0.9992 0.9925 count-graphs 1.001 1.001 1.002 1.007 0.9807 1.009 DLXSimulator 0.9935 1.027 1.001 0.9959 0.9652 1.006 even-odd 1.001 0.9981 0.9956 1.074 1.000 0.9397 fft 1.001 0.9921 1.030 1.000 1.005 1.011 fib 0.9939 0.8204 0.9979 1.087 1.018 0.9978 flat-array 1.043 1.017 0.9764 1.002 1.011 0.9816 hamlet 0.9937 0.9408 1.022 0.9706 1.006 1.004 imp-for 0.9631 1.032 1.026 1.015 0.9886 0.9438 knuth-bendix 0.9994 1.001 1.013 0.9444 1.014 0.9554 lexgen 1.031 1.012 1.043 1.018 1.052 1.018 life 1.007 0.9900 1.004 0.9630 0.9894 0.9922 logic 0.9903 0.9914 0.9947 1.010 0.9881 0.9987 mandelbrot 1.000 0.9999 1.017 0.8896 1.001 0.9622 matrix-multiply 0.9784 1.012 0.9815 1.005 1.010 1.031 md5 1.004 1.001 1.026 0.9887 0.9849 0.9869 merge 0.9883 1.014 1.030 1.027 0.9679 0.9825 mlyacc 0.9577 0.9475 0.9509 1.015 1.016 0.9850 model-elimination 1.020 0.9610 0.9916 0.9791 1.002 0.9865 mpuz 1.003 1.114 0.9944 1.003 1.011 0.9853 nucleic 0.9973 1.053 1.003 1.011 0.9971 1.014 output1 0.9936 1.093 1.001 1.097 1.002 1.068 peek 1.034 1.017 1.010 1.005 0.9992 1.006 pidigits 0.9724 0.9866 0.9710 1.043 1.058 1.011 psdes-random 0.9774 1.003 0.9998 1.000 1.002 0.9931 ratio-regions 1.013 1.066 0.9782 1.003 0.9877 1.038 ray 1.005 1.005 1.012 1.007 1.038 1.000 raytrace 1.004 0.9697 1.019 0.9930 1.001 1.076 simple 1.010 0.9292 1.012 0.9498 0.9522 0.9672 smith-normal-form 0.9749 0.9824 0.9773 0.9655 0.9629 0.9680 string-concat 0.9984 0.9973 1.001 0.9286 0.9846 1.002 tailfib 0.9950 1.001 0.9601 0.9882 1.022 1.000 tailmerge 1.006 1.027 1.020 1.013 0.9862 1.017 tak 0.9859 0.8443 0.9953 1.032 0.9762 1.062 tensor 1.001 1.001 1.001 0.9976 1.221 0.9996 tsp 0.9982 1.018 1.018 1.038 1.029 1.030 tyan 0.9957 1.023 0.9878 0.9808 1.008 1.013 vector-rev 1.007 1.056 1.012 0.9941 1.029 1.004 vector32-concat 1.015 1.026 1.022 1.027 1.024 1.100 vector64-concat 0.9882 0.9018 1.033 0.9901 0.8882 1.141 vliw 0.9846 0.9828 0.9650 1.012 0.9485 0.9424 wc-input1 1.032 0.8688 1.008 0.9368 1.023 0.8773 wc-scanStream 1.011 0.9718 1.025 0.9580 0.9992 1.065 zebra 0.9928 0.9998 0.9993 0.9918 0.9933 1.021 zern 0.9873 1.045 1.037 1.075 1.012 1.017 MIN 0.9577 0.8204 0.9509 0.8896 0.8882 0.8773 GMEAN 0.9985 0.9940 1.003 1.002 1.002 1.006 MAX 1.043 1.114 1.043 1.099 1.221 1.141 Once again, there is a surprising amount of variation for `-force-handles-signals true`, which should have almost no code change from 950b18106 to 2192b784e, since no signal checks are inserted. One consequence of the cleanup and refactoring of the stack- and limit-check insertion pass is that, rather than falling through to the initial check, there is a `Goto` transfer to a block that performs the initial check. Ultimately, the extraneous `Goto` is eliminated by the `RssaShrink` pass, but it does perturb the variable shuffling performed by the `BounceVars` pass. It may be advisable to perform an `RssaShrink` pass before `BounceVars`. (The worst slowdown, `tensor` `C22/C16` is another instance of its bimodal performance profile.) Surprisingly, there is no clear speedup for `-force-handles-signals true`. For particular benchmarks, there can be a modest speedup, but they are balanced out by similar slowdowns for other benchmarks. We next compare 2192b784e to 1d07911b8, which is an experiment in further simplifying signal handling to only write to the `signalsInfo.signalIsPending` field of `struct GC_state`: config command C18 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen amd64 -force-handles-signals false C19 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen amd64 -force-handles-signals true C20 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen c -force-handles-signals false C21 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen c -force-handles-signals true C22 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen llvm -force-handles-signals false C23 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen llvm -force-handles-signals true C24 /home/mtf/devel/mlton/builds/g1d07911b8/bin/mlton -codegen amd64 -force-handles-signals false C25 /home/mtf/devel/mlton/builds/g1d07911b8/bin/mlton -codegen amd64 -force-handles-signals true C26 /home/mtf/devel/mlton/builds/g1d07911b8/bin/mlton -codegen c -force-handles-signals false C27 /home/mtf/devel/mlton/builds/g1d07911b8/bin/mlton -codegen c -force-handles-signals true C28 /home/mtf/devel/mlton/builds/g1d07911b8/bin/mlton -codegen llvm -force-handles-signals false C29 /home/mtf/devel/mlton/builds/g1d07911b8/bin/mlton -codegen llvm -force-handles-signals true task_clock ratio_means.fieller@0.95 (2-level) program `C24/C18` `C25/C19` `C26/C20` `C27/C21` `C28/C22` `C29/C23` barnes-hut 1.020 1.036 1.037 1.024 0.9851 1.046 boyer 1.027 1.036 1.001 1.077 1.055 1.088 checksum 1.011 0.9878 0.9845 0.9944 0.9996 1.008 count-graphs 0.9931 1.030 1.010 1.031 1.011 1.035 DLXSimulator 1.015 1.118 1.005 1.301 0.9817 1.287 even-odd 1.000 0.9962 1.014 0.9973 0.9992 1.041 fft 0.9983 1.014 0.9954 1.008 0.9720 1.006 fib 1.002 1.127 1.025 1.018 0.9769 1.114 flat-array 0.9447 1.004 1.007 0.9991 0.9834 1.018 hamlet 1.021 1.057 0.9816 1.073 0.9811 1.087 imp-for 1.009 0.9660 1.022 1.030 0.9831 1.004 knuth-bendix 0.9941 0.9909 0.9780 1.017 1.001 1.040 lexgen 1.015 1.040 0.9858 1.031 0.9878 1.051 life 1.002 1.090 0.9958 1.027 1.004 1.031 logic 1.033 1.047 1.022 1.053 1.046 1.030 mandelbrot 0.9997 1.001 1.002 0.8585 0.9995 1.037 matrix-multiply 0.9800 0.9862 1.018 0.9791 0.9782 1.080 md5 0.9990 0.9921 1.003 1.006 1.027 1.005 merge 1.035 0.9685 0.9847 0.9870 1.004 0.9860 mlyacc 1.009 1.056 0.9952 1.003 0.9888 1.001 model-elimination 0.9918 1.060 1.018 1.057 1.004 1.042 mpuz 0.9939 1.027 1.011 0.9772 1.008 1.000 nucleic 1.011 1.003 0.9996 1.006 1.009 1.023 output1 1.004 0.9674 1.002 0.9858 1.006 1.008 peek 0.9799 0.9954 1.011 0.9909 0.9908 0.9970 pidigits 1.003 1.009 1.050 0.9771 1.037 1.017 psdes-random 0.9857 0.9994 1.004 1.003 0.9982 1.011 ratio-regions 0.9980 0.9715 1.006 1.019 0.9891 0.9915 ray 0.9953 0.9991 0.9658 1.006 0.9912 1.007 raytrace 0.9995 1.016 0.9782 1.000 1.002 0.9782 simple 0.9992 1.248 1.004 1.209 1.011 1.262 smith-normal-form 0.9616 1.010 1.011 1.008 1.009 1.010 string-concat 1.004 1.005 1.018 0.9990 1.027 0.9939 tailfib 0.9987 0.9969 0.9949 1.019 0.9708 1.002 tailmerge 0.9751 0.9896 0.9858 0.9984 0.9990 0.9980 tak 0.9863 1.123 1.044 1.197 1.028 1.113 tensor 0.9990 0.9982 1.002 0.9999 1.082 1.002 tsp 1.004 1.010 1.001 0.9987 1.021 0.9851 tyan 1.041 1.027 1.028 1.014 0.9763 1.048 vector-rev 0.9721 1.799 0.9449 1.802 0.8714 1.965 vector32-concat 0.9947 1.080 0.9587 0.9909 0.9364 0.8929 vector64-concat 0.9592 0.9595 0.9585 0.9461 0.9964 0.8558 vliw 0.9755 1.140 0.9945 1.134 0.9789 1.184 wc-input1 0.9990 1.000 0.9542 0.9699 0.9871 0.9619 wc-scanStream 0.9850 1.025 1.071 1.048 1.016 0.9550 zebra 1.002 1.000 1.005 1.014 1.013 1.019 zern 1.016 0.9725 0.9909 0.9879 1.004 1.018 MIN 0.9447 0.9595 0.9449 0.8585 0.8714 0.8558 GMEAN 0.9986 1.037 1.001 1.033 0.9980 1.042 MAX 1.041 1.799 1.071 1.802 1.082 1.965 There should be no significant effect with `-force-handles-signals false`, except possibly an improvement due to making the `limit` and `atomicState` fields of `struct GC_state` non-`volatile` qualified. Unfortunately, with `-force-handles-signals true`, there is a significant slowdown on `vector-rev` and also moderate slowdown on some other benchmarks (and also some moderate speedups). The slowdown in `vector-rev` is somewhat surprising, because the main computation is a non-allocating loop and the signal check is revised from `limit < frontier` to `signalIsPending && atomicState == 0`. However, both `limit` and `signalIsPending` are `volatile` qualified fields, so the cost of accessing them would seem to be equivalent. We next compare 2192b784e to 9e44668bd, which reverts 1d07911b8 and peforms an additional `RssaShrink` pass after `InsertChecks` and before `BounceVars`: config command C18 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen amd64 -force-handles-signals false C19 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen amd64 -force-handles-signals true C20 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen c -force-handles-signals false C21 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen c -force-handles-signals true C22 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen llvm -force-handles-signals false C23 /home/mtf/devel/mlton/builds/g2192b784e/bin/mlton -codegen llvm -force-handles-signals true C30 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen amd64 -force-handles-signals false C31 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen amd64 -force-handles-signals true C32 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen c -force-handles-signals false C33 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen c -force-handles-signals true C34 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen llvm -force-handles-signals false C35 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen llvm -force-handles-signals true task_clock ratio_means.fieller@0.95 (2-level) program `C30/C18` `C31/C19` `C32/C20` `C33/C21` `C34/C22` `C35/C23` barnes-hut 0.9429 0.9297 0.9778 0.9493 0.9727 0.9497 boyer 0.9224 0.9520 0.9342 0.9342 0.9443 0.9708 checksum 1.042 1.004 1.022 1.002 1.075 1.002 count-graphs 1.012 1.002 0.9889 0.9966 0.9971 0.9935 DLXSimulator 0.9011 0.8959 0.8976 0.9383 0.9945 0.9963 even-odd 1.002 1.006 1.021 1.001 0.9995 0.9827 fft 0.8709 0.9413 0.9090 0.9361 0.9418 0.9963 fib 0.9984 0.9889 1.002 1.012 0.9719 0.9702 flat-array 0.9073 0.9777 0.8852 0.9821 0.9258 0.9837 hamlet 1.008 1.003 0.9699 1.021 0.9812 1.010 imp-for 0.9993 1.026 0.9749 1.018 0.9618 1.008 knuth-bendix 0.9739 0.9716 0.9621 1.017 0.9690 1.003 lexgen 1.063 1.028 0.9599 1.002 0.9614 0.9979 life 1.020 1.018 1.012 1.008 1.011 0.9905 logic 0.9436 0.9451 0.9539 0.9722 0.9719 0.9834 mandelbrot 0.9957 0.9944 1.008 1.098 1.004 1.007 matrix-multiply 0.8718 0.8371 0.9849 0.8436 0.9717 1.001 md5 0.9882 0.9877 0.9556 0.9714 0.9976 0.9801 merge 0.9037 0.8925 0.9293 0.9128 0.9454 0.9298 mlyacc 1.012 1.053 0.9906 1.002 1.020 1.013 model-elimination 1.026 1.066 1.064 1.038 1.020 0.9971 mpuz 0.9841 0.9944 1.031 1.024 0.9824 1.106 nucleic 1.026 1.004 1.022 1.012 1.003 1.008 output1 0.9967 0.9265 0.9984 0.9076 1.004 0.9336 peek 0.9955 0.9948 1.049 1.001 1.010 1.001 pidigits 1.045 0.9164 0.9465 0.9039 0.9662 0.9412 psdes-random 1.013 0.9963 0.9932 0.9962 0.9972 0.9996 ratio-regions 0.9864 1.040 0.9751 1.057 0.9808 1.037 ray 1.006 1.017 0.9928 0.9898 0.9704 0.9922 raytrace 1.008 1.000 0.9768 0.9994 0.9968 0.9663 simple 0.9844 0.9621 1.016 0.9539 0.9912 0.9736 smith-normal-form 0.9803 1.004 0.9894 0.9884 0.9701 0.9590 string-concat 1.009 1.002 1.021 1.019 1.037 1.009 tailfib 1.001 1.000 1.000 1.008 0.9513 0.9957 tailmerge 0.9487 0.9575 0.9196 0.9612 0.9342 0.9534 tak 0.9915 1.003 1.016 1.015 1.018 1.038 tensor 0.9994 1.000 1.007 0.9978 0.9484 1.004 tsp 0.9801 0.9100 0.9308 0.9395 0.9556 0.9563 tyan 0.9951 0.9557 1.000 0.9810 1.009 0.9860 vector-rev 0.9150 0.9399 0.8778 0.9537 0.8831 0.9281 vector32-concat 0.9601 1.002 0.9422 1.069 1.059 1.055 vector64-concat 0.9711 0.8496 1.103 1.088 1.194 1.024 vliw 0.9940 1.013 0.9969 1.024 1.012 1.126 wc-input1 0.9788 1.508 0.9641 1.069 1.031 1.109 wc-scanStream 1.019 1.037 1.110 1.031 1.018 0.9835 zebra 1.004 0.9992 1.013 1.005 1.027 1.027 zern 1.054 1.000 0.9967 0.9703 1.050 1.068 MIN 0.8709 0.8371 0.8778 0.8436 0.8831 0.9281 GMEAN 0.9830 0.9871 0.9838 0.9908 0.9912 0.9980 MAX 1.063 1.508 1.110 1.098 1.194 1.126 Once again, on (geometric) average, there is no significant difference. The slowdown with `wc-input1` with the `amd64` codegen and `-force-handles-signals true` is interesting. Finally, we compare 9e44668bd to ac4d126bc, which revises the expansion of `Thread_atomicEnd` from `atomicState -= 1; if (0 == atomicState) { ... }` to `tmp = atomicState - 1; atomicState = tmp; if (0 == tmp) { ... }`. Since `atomicState` is volatile (but never written to in the signal handler) this avoids rereading the `atomicState` field and might be implemented by a conditional jump using the status register from the `atomicState - 1` computation. config command C30 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen amd64 -force-handles-signals false C31 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen amd64 -force-handles-signals true C32 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen c -force-handles-signals false C33 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen c -force-handles-signals true C34 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen llvm -force-handles-signals false C35 /home/mtf/devel/mlton/builds/g9e44668bd/bin/mlton -codegen llvm -force-handles-signals true C36 /home/mtf/devel/mlton/builds/gac4d126bc/bin/mlton -codegen amd64 -force-handles-signals false C37 /home/mtf/devel/mlton/builds/gac4d126bc/bin/mlton -codegen amd64 -force-handles-signals true C38 /home/mtf/devel/mlton/builds/gac4d126bc/bin/mlton -codegen c -force-handles-signals false C39 /home/mtf/devel/mlton/builds/gac4d126bc/bin/mlton -codegen c -force-handles-signals true C40 /home/mtf/devel/mlton/builds/gac4d126bc/bin/mlton -codegen llvm -force-handles-signals false C41 /home/mtf/devel/mlton/builds/gac4d126bc/bin/mlton -codegen llvm -force-handles-signals true task_clock ratio_means.fieller@0.95 (2-level) program `C36/C30` `C37/C31` `C38/C32` `C39/C33` `C40/C34` `C41/C35` barnes-hut 0.9957 1.038 1.005 1.062 1.043 1.071 boyer 1.001 1.010 1.075 1.098 1.134 1.002 checksum 1.013 1.002 1.012 1.007 1.068 1.007 count-graphs 0.9981 0.9961 1.010... [truncated message content] |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-12-17 18:29:37
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 54bf6098b8fbf6abc4e45ac30192cfb425ca9fd9 https://github.com/MLton/mlton/commit/54bf6098b8fbf6abc4e45ac30192cfb425ca9fd9 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-17 (Fri, 17 Dec 2021) Changed paths: M runtime/gc/gc_state.c M runtime/gc/gc_state.h Log Message: ----------- Use 32-bit `Bool_t` rather than 8-bit `bool` for `_import`-ed GC fns There was a mismatch between the C types and SML types for a number of `_import`-ed functions that read and write boolean fields of the `struct GC_state`. In rare circumstances, this would lead to erroneous behavior due to mismatch in the calling convention (e.g., https://github.com/MLton/mlton/runs/4538320144?check_suite_focus=true). For example, gcc 9.30 and clang 13.0 compile bool GC_getAmOriginal (GC_state s_ } return s->amOriginal; } to movzbl 0x31(%rdi),%eax ret Although `bool` is 8-bit, the result is nonetheless zero extended to %eax when returning. However, clang 11.0 compiles the above function to movb 0x31(%rdi),%al ret In either case, the SML code assumes that a 32-bit value is being returned and compares the value with 0. In many scenarios, this was masked because the native codegen always sets %eax to an unsigned (typically 0) value when calling a C function (see https://github.com/MLton/mlton/blob/4a86efc5ed82abeb183cb999bd955339caa8d53a/mlton/codegen/amd64-codegen/amd64-generate-transfers.fun#L1325) and presumably for the C and llvm codegens, it is often the case that %eax has zero in the upper bits. However, if the high bits of %eax are not zero at the call of `GC_getAmOriginal`, then a `false` result will erroneously be interpreted as `true` (and, in the case of the `world*` regression tests, leads to fork-bomb behavior). This commit simply uses the (32-bit) `Bool_t` in the C code to establish the expected calling convention. Commit: 76c2b4066661a379d2d55eb13339dc2436398c03 https://github.com/MLton/mlton/commit/76c2b4066661a379d2d55eb13339dc2436398c03 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-17 (Fri, 17 Dec 2021) Changed paths: M basis-library/primitive/prim-mlton.sml Log Message: ----------- Use (default) `impure` attribute for many `_import`-ed `GC_*` fs Many of the `_import "GC_*"` functions from `prim-mlton.sml` do not need to use the `runtime` attribute (which defaults to `mayGC = true`, `modifiesFrontier = true`, `readsStackTop = true`, `writesStackTop = true`), since they simply read or write fields of `struct GC_state`. This (slightly) lowers the overhead of calling these functions. Commit: b7a7f677386e6ba9cca3fa15c451f1709f708ba9 https://github.com/MLton/mlton/commit/b7a7f677386e6ba9cca3fa15c451f1709f708ba9 Author: Matthew Fluet <mat...@gm...> Date: 2021-12-17 (Fri, 17 Dec 2021) Changed paths: M CHANGELOG.adoc Log Message: ----------- Update CHANGELOG.adoc Commit: 85fe3b6682a63ba594c638fd1405eba7c8955684 https://github.com/MLton/mlton/commit/85fe3b6682a63ba594c638fd1405eba7c8955684 Author: Matthew Fluet <Mat...@gm...> Date: 2021-12-17 (Fri, 17 Dec 2021) Changed paths: M CHANGELOG.adoc M basis-library/primitive/prim-mlton.sml M runtime/gc/gc_state.c M runtime/gc/gc_state.h Log Message: ----------- Merge pull request #464 from MatthewFluet/update-runtime-fns Updates to `_import`-ed runtime functions * Fix mismatch in C and SML types for some `_import`-ed runtime functions. * Use (default) `impure` attribute for many `_import`-ed runtime functions. Compare: https://github.com/MLton/mlton/compare/4a86efc5ed82...85fe3b6682a6 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-11-01 20:40:06
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7699a91b60fb5d67267908746579925135c5b362 https://github.com/MLton/mlton/commit/7699a91b60fb5d67267908746579925135c5b362 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/scripts/setup_ssh.sh Log Message: ----------- Remove empty private keys in `setup_ssh.sh` script Commit: 4a86efc5ed82abeb183cb999bd955339caa8d53a https://github.com/MLton/mlton/commit/4a86efc5ed82abeb183cb999bd955339caa8d53a Author: Matthew Fluet <Mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/scripts/setup_ssh.sh Log Message: ----------- Merge pull request #460 from MatthewFluet/guide-updates Remove empty private keys in `setup_ssh.sh` script Compare: https://github.com/MLton/mlton/compare/881cf8dc1635...4a86efc5ed82 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-11-01 20:37:18
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7f46a6812e61657df3c49c4536b4d8fc817118b8 https://github.com/MLton/mlton/commit/7f46a6812e61657df3c49c4536b4d8fc817118b8 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/scripts/setup_ssh.sh Log Message: ----------- Remove empty private keys in `setup_ssh.sh` script Commit: 881cf8dc1635c184cf725af150c7cd5936aeb04b https://github.com/MLton/mlton/commit/881cf8dc1635c184cf725af150c7cd5936aeb04b Author: Matthew Fluet <Mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/scripts/setup_ssh.sh Log Message: ----------- Merge pull request #459 from MatthewFluet/guide-updates Remove empty private keys in `setup_ssh.sh` script Compare: https://github.com/MLton/mlton/compare/fdc502700401...881cf8dc1635 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-11-01 19:15:55
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: bb7b2bc65161041fe1e14cf1c67fb9b01a65da19 https://github.com/MLton/mlton/commit/bb7b2bc65161041fe1e14cf1c67fb9b01a65da19 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/scripts/setup_ssh.sh Log Message: ----------- Remove empty private keys in `setup_ssh.sh` script Commit: fdc502700401ac581e04a2ff0289760d4177f3a4 https://github.com/MLton/mlton/commit/fdc502700401ac581e04a2ff0289760d4177f3a4 Author: Matthew Fluet <Mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/scripts/setup_ssh.sh Log Message: ----------- Merge pull request #458 from MatthewFluet/guide-updates Remove empty private keys in `setup_ssh.sh` script Compare: https://github.com/MLton/mlton/compare/2ec956fb4360...fdc502700401 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-11-01 19:07:49
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: b75d028f8e0f951ea06c2d3e343158009e35232c https://github.com/MLton/mlton/commit/b75d028f8e0f951ea06c2d3e343158009e35232c Author: Matthew Fluet <mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/workflows/guide.yml Log Message: ----------- Shorten name of GitHub Action for publishing website/guide Commit: 593d0880d03c445a05b108625b25ddd29a6f671e https://github.com/MLton/mlton/commit/593d0880d03c445a05b108625b25ddd29a6f671e Author: Matthew Fluet <mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/workflows/guide.yml Log Message: ----------- Fetch entire history when publishing guide via GitHub Action The entire history is needed to properly set the "Last updated ..." footer. Commit: 4b7c7621e3d3e95ec10ee20ec174d24a45ba7ed2 https://github.com/MLton/mlton/commit/4b7c7621e3d3e95ec10ee20ec174d24a45ba7ed2 Author: Matthew Fluet <mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M doc/guide/Makefile Log Message: ----------- Make mlton.sourceforge.io rsync user configurable Commit: 9e1b7aea3aef5b8ac4d599c49371068ff69105ea https://github.com/MLton/mlton/commit/9e1b7aea3aef5b8ac4d599c49371068ff69105ea Author: Matthew Fluet <mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/scripts/setup_ssh.sh M .github/workflows/guide.yml Log Message: ----------- Use limited account for uploading mlton.sourceforge.io Commit: 2ec956fb4360a1f4189583b878cce1834055a99e https://github.com/MLton/mlton/commit/2ec956fb4360a1f4189583b878cce1834055a99e Author: Matthew Fluet <Mat...@gm...> Date: 2021-11-01 (Mon, 01 Nov 2021) Changed paths: M .github/scripts/setup_ssh.sh M .github/workflows/guide.yml M doc/guide/Makefile Log Message: ----------- Merge pull request #457 from MatthewFluet/guide-updates Updates to GitHub action to publish guide Compare: https://github.com/MLton/mlton/compare/8c3895aa8779...2ec956fb4360 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-10-29 21:44:12
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7fc82ef76f273a5ae8f137393aab7eddafdc2512 https://github.com/MLton/mlton/commit/7fc82ef76f273a5ae8f137393aab7eddafdc2512 Author: Matthew Fluet <mat...@gm...> Date: 2021-10-29 (Fri, 29 Oct 2021) Changed paths: M Makefile.config Log Message: ----------- Add `RSYNC := rsync` to `Makefile.config` Commit: 63953529bd775cf52954b6a6e5652a8931ab19af https://github.com/MLton/mlton/commit/63953529bd775cf52954b6a6e5652a8931ab19af Author: Matthew Fluet <mat...@gm...> Date: 2021-10-29 (Fri, 29 Oct 2021) Changed paths: M doc/guide/Makefile Log Message: ----------- Use `$(RSYNC)` in `doc/guide/Makefile` `upload_mlton.sourceforge.io` target Commit: 7a7e17e18d9b01a6ead24d45a5c4a5f62de66700 https://github.com/MLton/mlton/commit/7a7e17e18d9b01a6ead24d45a5c4a5f62de66700 Author: Matthew Fluet <mat...@gm...> Date: 2021-10-29 (Fri, 29 Oct 2021) Changed paths: A .github/scripts/setup_ssh.sh A .github/workflows/guide.yml Log Message: ----------- Create a GitHub Action to build and publish website/guide Commit: 8c3895aa87790a0afc491d4be5a943e4d9695bff https://github.com/MLton/mlton/commit/8c3895aa87790a0afc491d4be5a943e4d9695bff Author: Matthew Fluet <Mat...@gm...> Date: 2021-10-29 (Fri, 29 Oct 2021) Changed paths: A .github/scripts/setup_ssh.sh A .github/workflows/guide.yml M Makefile.config M doc/guide/Makefile Log Message: ----------- Merge pull request #454 from MatthewFluet/guide-action Create a GitHub Action to build and publish website/guide Compare: https://github.com/MLton/mlton/compare/3c40b7be0bfe...8c3895aa8779 |
From: 'Matthew F. v. MLton-c. <mlt...@ml...> - 2021-10-27 15:36:26
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: c26a969d720dfb43bd3724344b24d9b7a3a43c76 https://github.com/MLton/mlton/commit/c26a969d720dfb43bd3724344b24d9b7a3a43c76 Author: Matthew Fluet <mat...@gm...> Date: 2021-10-27 (Wed, 27 Oct 2021) Changed paths: M runtime/gc/object.h Log Message: ----------- Fix `COUNTER_BITS` definition in `object.h` Closes MLton/mlton#449. Commit: 3c40b7be0bfe73ec5c6f81c3cd7c83df11784ad3 https://github.com/MLton/mlton/commit/3c40b7be0bfe73ec5c6f81c3cd7c83df11784ad3 Author: Matthew Fluet <Mat...@gm...> Date: 2021-10-27 (Wed, 27 Oct 2021) Changed paths: M runtime/gc/object.h Log Message: ----------- Merge pull request #453 from MatthewFluet/gc-header-counter-bits Fix `COUNTER_BITS` definition in `object.h` Compare: https://github.com/MLton/mlton/compare/50e40f6bc40f...3c40b7be0bfe |