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
(1) |
Dec
(14) |
2025 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Matthew F. <no...@gi...> - 2020-01-23 10:24:05
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 57427bad8bfa0405127aa42287224cdfdd9e29a0 https://github.com/MLton/mlton/commit/57427bad8bfa0405127aa42287224cdfdd9e29a0 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M mlton/codegen/amd64-codegen/amd64-allocate-registers.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/x86-codegen/x86-allocate-registers.fun M mlton/codegen/x86-codegen/x86-generate-transfers.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 Log Message: ----------- Add `-native-pic {false,true}` option Can be used to override a platform-determined default. See MLton/mlton#191 Commit: 4f08d540b401a10615ecf45a576b01546220ddd6 https://github.com/MLton/mlton/commit/4f08d540b401a10615ecf45a576b01546220ddd6 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M CHANGELOG.adoc Log Message: ----------- Update `CHANGELOG.adoc` Commit: 749b0b598660e0c2ddd3056befb4cad2415868ea https://github.com/MLton/mlton/commit/749b0b598660e0c2ddd3056befb4cad2415868ea Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M mlton/main/main.fun Log Message: ----------- Drop unused `-DPIC` when compiling `.c` to `.o` by `mlton` Commit: daa5eb350fc462d2f29675a6200796f2bd54bf44 https://github.com/MLton/mlton/commit/daa5eb350fc462d2f29675a6200796f2bd54bf44 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M CHANGELOG.adoc M mlton/main/main.fun Log Message: ----------- Add `-pic-runtime {false,true}` option Can be used to override a target-determined default. See MLton/mlton#191 Commit: b1d58141c8d4853134fc881f908fb8f4c70772eb https://github.com/MLton/mlton/commit/b1d58141c8d4853134fc881f908fb8f4c70772eb Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Tweak order of `DBGXCFLAGS` in `runtime/Makefile` Commit: ac9da14cf08842bef9f005250268c977ad771c3f https://github.com/MLton/mlton/commit/ac9da14cf08842bef9f005250268c977ad771c3f Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M bin/travis-ci M runtime/Makefile Log Message: ----------- Build `libmlton{,-dbg}{,-npi,-pic,-pie}.a` variants Build all variants of the runtime along two axes: - mode - opt (no suffix) - debug (-dbg) - position independent - default (no suffix) - non-pi (-npi) - pic (-pic) - pie (-pie) One of `%-npi.a`, `%-pic.a`, and `%-pie.a` will be copied from `%.a`, depending on the default behavior of the C compiler. Commit: 6d4b7b2474817e2de631c83950565a0a5d27063e https://github.com/MLton/mlton/commit/6d4b7b2474817e2de631c83950565a0a5d27063e Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M runtime/gen/gen-constants.c Log Message: ----------- Save default `__pie__` and `__pic__` values in `constants` file Commit: 82967ed8df3cc5d20a1b2d3aacd7ee7f2b48509d https://github.com/MLton/mlton/commit/82967ed8df3cc5d20a1b2d3aacd7ee7f2b48509d Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M Makefile.config Log Message: ----------- Tweak `show-config` Commit: bfaabe354ddde8898d3c38cc0f14a3e7a597ba10 https://github.com/MLton/mlton/commit/bfaabe354ddde8898d3c38cc0f14a3e7a597ba10 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M CHANGELOG.adoc M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-pi-style {default|npi|pic|pie}` option Can be used to override a target-determined default. Also, remove `-pic-runtime {false|true}` option. See MLton/mlton#191 Commit: a6eccef1d5957f64d074954c2fc3a2bad8a0ddeb https://github.com/MLton/mlton/commit/a6eccef1d5957f64d074954c2fc3a2bad8a0ddeb Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Drop unnecessary `\` line continuations from `runtime/Makefile` Commit: 48ea79b66ac299058e742fe9cad67dddd07ae90f https://github.com/MLton/mlton/commit/48ea79b66ac299058e742fe9cad67dddd07ae90f Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Copy `libmlton.a` from appropriate `libmlton-{npi,pic,pie}.a` Commit: a5e16a05bb4a797402ae55bce5e9a8e63db34e19 https://github.com/MLton/mlton/commit/a5e16a05bb4a797402ae55bce5e9a8e63db34e19 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Link with `-fPIE -pie` with `-pi-style pie` Commit: 3e77f74e2a6371a7010b7c89598e3d0f157bc079 https://github.com/MLton/mlton/commit/3e77f74e2a6371a7010b7c89598e3d0f157bc079 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M mlton/main/main.fun Log Message: ----------- Make `-format {library,libarchive}` imply `-pi-style pic` by default Commit: dd8107a35c12a4629710d639113e12db9b070acd https://github.com/MLton/mlton/commit/dd8107a35c12a4629710d639113e12db9b070acd Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M mlton/main/main.fun Log Message: ----------- Use `-fPIC -shared` for `-format library` Commit: b5a40b0f55998b2383ac68d8e768313981e05230 https://github.com/MLton/mlton/commit/b5a40b0f55998b2383ac68d8e768313981e05230 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M Makefile.config M bin/travis-ci M runtime/Makefile Log Message: ----------- Only build `libmlton{,dbg}.a` for development Commit: 4664557952a9277fa9ba5c47b477e63f645c0eb6 https://github.com/MLton/mlton/commit/4664557952a9277fa9ba5c47b477e63f645c0eb6 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M Makefile Log Message: ----------- Simplify `version` target of `Makefile` Commit: 745aa0e63159665785f0ad7e08e553ad18367269 https://github.com/MLton/mlton/commit/745aa0e63159665785f0ad7e08e553ad18367269 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M CHANGELOG.adoc Log Message: ----------- Update `CHANGELOG.adoc` Commit: 3f00f6cf5c6ccc119d66019347b14077c63ffaca https://github.com/MLton/mlton/commit/3f00f6cf5c6ccc119d66019347b14077c63ffaca Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Restore necessary `\` line continuations in `runtime/Makefile` Commit: 7daaad2d3f6b9bdfdd13d2684fb1277c0121026f https://github.com/MLton/mlton/commit/7daaad2d3f6b9bdfdd13d2684fb1277c0121026f Author: Matthew Fluet <mat...@gm...> Date: 2020-01-22 (Wed, 22 Jan 2020) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml Log Message: ----------- Remove unused `ControlFlags.PositionIndependentStyle.compare` Commit: af68d22ac06cb01b4a64dd2c2480fdc6c8798ca4 https://github.com/MLton/mlton/commit/af68d22ac06cb01b4a64dd2c2480fdc6c8798ca4 Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-23 (Thu, 23 Jan 2020) Changed paths: M CHANGELOG.adoc M Makefile M Makefile.config M bin/travis-ci M mlton/codegen/amd64-codegen/amd64-allocate-registers.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/x86-codegen/x86-allocate-registers.fun M mlton/codegen/x86-codegen/x86-generate-transfers.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/Makefile M runtime/gen/gen-constants.c Log Message: ----------- Merge pull request #365 from MatthewFluet/pic-updates Add options to control position-independent code Add `-native-pic {false,true}` and `-pi-style {default|npi|pic|pie}` expert options that can be used to override the target-determined default. Along with `-cc-opt`, `-llvm-lc-opt`, and `-link-opt`, most configurations can be explicitly achieved. Building on the changes in MLton/mlton#361, a total of 12 `libmlton{,-dbg}{-npi,-pic,-pie}.a` configurations can be built, along two axes: - mode: opt (no suffix) and `-dbg` - position-independent style: `-npi` (built with `-fno-pic -fno-pie`), `-pic` (built with `-fPIC`), `-pie` (built with `-fPIE`) The explicit `-fno-pic -fno-pie` for `%-npi.a` libraries are necessary if the C compiler's default is to generate PIE (e.g., Ubuntu `gcc` configured with `--enable-default-pie`) or PIC. The `runtime/Makefile` determines the default behavior of the C compiler by observing the expansions of `__pic__` and `__pie__` with `-f{,no-}{pic,pie}` and only builds the meaningful libraries. (For example, `-npi` and `-pie` are not meaningful on MacOS.) Furthermore, the `%.a` libraries are copied from one of the `%-npi.a`, `%-pic.a`, or `%-pie.a` libraries. The default behavior of the C compiler is also written to the target-specific `constants` file, which makes it available to the compiler proper. Compiling with one of `-pi-style {npi,pic,pie}` forces a particular style: - `npi`: `Control.Native.pic` is set to `false` (unless overridden by an explicit `-native-pic true`), `.c` files are compiled with `-fno-pic -fno-pie`, `.ll`/`.bc` files are compiled with no extra flags (using the default `--relocation-model=static`), executables are linked with `-no-pie`, and archives, libraries, and libarchives are linked with no extra flags. - `pic`: `Control.Native.pic` is set to `true` (unless overridden by an explicit `-native-pic false`), `.c` files are compiled with `-fPIC`, `.ll`/`.bc` files are compiled with `--relocation-model=pic`, executables are linked with `-no-pie`, and archives, libraries, and libarchives are linked with no extra flags. - `pie`: `Control.Native.pic` is set to `true` (unless overridden by an explicit `-native-pic false`), `.c` files are compiled with `-fPIE`, `.ll`/`.bc` files are compiled with `--relocation-model=pic`, executables are linked with `-fPIE -pie`, and archives, libraries, and libarchives are linked with no extra flags. Compiling with one of `-format {executable,archive}` and with `-pi-style default` attempts to follow the default behavior of the C compiler (as recorded in the target-specific `constants` file). - `__pic__ == 0 && __pie__ == 0`: `Control.Native.pic` is set to `false` (unless overridden by an explicit `-native-pic true`) and `.ll`/`.bc` files are compiled with no extra flags (using the default `--relocation-model=static`). - `__pic__ > 0 || __pie__ > 0`: `Control.Native.pic` is set to `true` (unless overridden by an explicit `-native-pic false`) and `.ll`/`.bc` files are compiled with `--relocation-model=pic`. - `.c` files are compiled with no extra flags and executables and archives are linked with no extra flags. Compiling with one of `-format {library,libarchive}` (on non-Windows platforms) and with `-pi-style default` behaves like `-pi-style pic`. Note that user-supplied `-cc-opt`, `-llvm-llc-opt`, and `-link-opt` options are placed last in the generated command; hence, they can be used to override specific behavior. For example, compiling with `-pi-style pie -link-opt -no-pie` will result in `.c` files being compiled with `-fPIC` but executables being linked with `-no-pie -pie` (effectively, `-pie`). Native codegen and LLVM codegen support for `-pi-style pie` may be limited. The `gcc` manual states that `-fPIC` generates position-independent code suitable for dynamic linking and that `-fPIE` generates position-independent code only to be linked into executables. On amd64-linux, `gcc` will compile a `.c` file to different assembly with `-fPIC` and `-fPIE`. However, the native codegens do not generate different assembly for `-pi-style pic` and `-pi-style pie`. Similarly, the LLVM codegen does not generate different LLVM IR for `-pi-style pic` and `-pi-style pie` and `llc` is invoked with `--relocation-model=pic` for both `-pi-style pic` and `-pi-style pie`. Nonetheless, amd64-linux seems forgiving about linking native codegen and LLVM codedgen object files with `-pie`. As can be surmised, the non-PI vs PIC vs PIC is complex and there are certainly other variants (e.g., `-fno-plt` in `gcc` and `clang`, `--relocation-model={dynamic-no-pic,ropi,rwpi,ropi-rwpi}` in `llc`, `dso_local` runtime preemption specifier in LLVM IR). The approach taken here is to make the default case follow the behavior of the C compiler (that was used to build the runtime) when compiling an executable. There may be (small) issues with downstream packaging and/or binary releases. In particular, if the C compiler used to build a package or binary release was not configured with `--enable-default-pie`, then `libmlton.a` will not be position-independent code and the native and LLVM codegens will not generate position-independent code. If this package or binary release is then used on a system where the C compiler is configured with `--enable-default-pie`, then the linking command will have no extra flags (but will have an implicit `-pie`) and the link will fail with an error. Nonetheless, the control afforded by `-pi-style`, `-native-pic`, `-cc-opt`, `-llvm-llc-opt`, and `-link-opt` should suffice to work around such situations. Moreover, a binary release could be "updated" to work with the new C compiler by updating the `default::pie` and `default::pic` entries of the target-specific `constants` file and overwriting `libmlton.a` with `libmlton-pie.a`. Closes MLton/mlton#191 Compare: https://github.com/MLton/mlton/compare/234bc624eb74...af68d22ac06c |
From: Matthew F. <no...@gi...> - 2020-01-21 18:59:56
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: a0fc421c382177c3317be45dc59424d7dad73650 https://github.com/MLton/mlton/commit/a0fc421c382177c3317be45dc59424d7dad73650 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M doc/guide/Makefile Log Message: ----------- Use `Makefile.config` in `doc/guide/Makefile` Commit: 1dcb8e3a691ce3cd72ea8dcfd7ca571595c191d0 https://github.com/MLton/mlton/commit/1dcb8e3a691ce3cd72ea8dcfd7ca571595c191d0 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M Makefile Log Message: ----------- Need (only) update `Makefile.config` in `make version` Commit: 83099bb9d426e7223b016b5c03f8eed5b9516711 https://github.com/MLton/mlton/commit/83099bb9d426e7223b016b5c03f8eed5b9516711 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M doc/guide/src/Home.adoc Log Message: ----------- Add "official" text description to `Home` page in guide Commit: 68c1380cc498d889b44a2a2004addf27030b7950 https://github.com/MLton/mlton/commit/68c1380cc498d889b44a2a2004addf27030b7950 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M doc/guide/conf/mlton-html5.conf Log Message: ----------- Update Google Custom Search Commit: 234bc624eb747301cf8c07a78d7383285b5d9363 https://github.com/MLton/mlton/commit/234bc624eb747301cf8c07a78d7383285b5d9363 Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M Makefile M doc/guide/Makefile M doc/guide/conf/mlton-html5.conf M doc/guide/src/Home.adoc Log Message: ----------- Merge pull request #364 from MatthewFluet/guide-updates Guide updates Compare: https://github.com/MLton/mlton/compare/fb22ac70c530...234bc624eb74 |
From: Matthew F. <no...@gi...> - 2020-01-21 16:59:11
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 417e5baa367ecb202a62a84abc12131292d72da5 https://github.com/MLton/mlton/commit/417e5baa367ecb202a62a84abc12131292d72da5 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M Makefile Log Message: ----------- Add missing `profiled:` target in `Makefile` Commit: bc923363a96f5525903d4211fc93538d98a051f4 https://github.com/MLton/mlton/commit/bc923363a96f5525903d4211fc93538d98a051f4 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M Makefile Log Message: ----------- Omit `install-docs` from `install` target of `Makefile` Commit: 636126060df82df3625427b377ce55d744995f11 https://github.com/MLton/mlton/commit/636126060df82df3625427b377ce55d744995f11 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M Makefile Log Message: ----------- Perform separate `$(MAKE)` calls for sequential steps in `Makefile` Commit: b526979a0bb4202a76894114b4f8f8698571cee5 https://github.com/MLton/mlton/commit/b526979a0bb4202a76894114b4f8f8698571cee5 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M mlton/Makefile M mlton/control/.gitignore Log Message: ----------- Improve handling of `control/version.sml` in `mlton/Makefile` Commit: f72f7b76460ccf6736c234d90fa7226f535e391d https://github.com/MLton/mlton/commit/f72f7b76460ccf6736c234d90fa7226f535e391d Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M bin/travis-ci Log Message: ----------- Use `make -j4` in `bin/travis-ci` Commit: fb22ac70c530b089607df0a1d06c0b4ef8a2e22e https://github.com/MLton/mlton/commit/fb22ac70c530b089607df0a1d06c0b4ef8a2e22e Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M Makefile M bin/travis-ci M mlton/Makefile M mlton/control/.gitignore Log Message: ----------- Merge pull request #363 from MatthewFluet/parallel-make Support parallel builds (i.e., `make -j`) Simply perform separate `$(MAKE)` commands for sequential steps in `Makefile`; in particular, for the `all` rule, perform `$(MAKE) dirs; $(MAKE) runtime` rather than `$(MAKE) dirs runtime` and similarly for other places where recursive `$(MAKE)` was invoked with multiple (`.PHONY`) targets. This mainly supports platforms/packagers that use a parallel make by default; it does not obtain significant build speedups. The main (time consuming) self-compile is necessarily sequential. On the other hand, the runtime system can be built in parallel. Closes MLton/mlton#132 Closes MLton/mlton#348 Compare: https://github.com/MLton/mlton/compare/581c2e9715a0...fb22ac70c530 |
From: Matthew F. <no...@gi...> - 2020-01-21 13:30:00
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 36659f896dd1d66da682d880f9f553e01b56b375 https://github.com/MLton/mlton/commit/36659f896dd1d66da682d880f9f553e01b56b375 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-18 (Sat, 18 Jan 2020) Changed paths: M runtime/gen/basis-ffi.h.chk M runtime/gen/basis-ffi.sml.chk M runtime/gen/gen-basis-ffi.sml Log Message: ----------- Add `_symconst : <ty>` form to `runtime/gen/gen-basis-ffi.sml` The `<name> = _symconst : <ty>` form becomes const <cty> <name>; in `basis-ffi.h` and becomes #1 (_symbol "<name>" : (unit -> <ty>) * (<ty> -> unit);) () in `basis-ffi.sml`. Commit: ce0aae28c0f1e6f4282d8f757ba2be9074a67000 https://github.com/MLton/mlton/commit/ce0aae28c0f1e6f4282d8f757ba2be9074a67000 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-19 (Sun, 19 Jan 2020) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml Log Message: ----------- Add `structure Control.StrMap` for `name = value` maps Commit: 7a5b661e9324a92bcf745b87fadd08c303eb5252 https://github.com/MLton/mlton/commit/7a5b661e9324a92bcf745b87fadd08c303eb5252 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-19 (Sun, 19 Jan 2020) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Use `Control.StrMap.load` for `./lib/mlton/targets/<tgt>/sizes` Commit: 6068e55c00481e69cdaa23d67851974ab6935dea https://github.com/MLton/mlton/commit/6068e55c00481e69cdaa23d67851974ab6935dea Author: Matthew Fluet <mat...@gm...> Date: 2020-01-19 (Sun, 19 Jan 2020) Changed paths: M Makefile M mlton/control/control-flags.sml M runtime/Makefile M runtime/gen/.gitignore A runtime/gen/gen-rconsts.c R runtime/gen/gen-sizes.c Log Message: ----------- Rename `sizes` to `rconsts` (runtime constants) Commit: 0c61ae8bbb21a37c60f26f624cfcfc648b977f7f https://github.com/MLton/mlton/commit/0c61ae8bbb21a37c60f26f624cfcfc648b977f7f Author: Matthew Fluet <mat...@gm...> Date: 2020-01-19 (Sun, 19 Jan 2020) Changed paths: M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/compile.fun M mlton/main/lookup-constant.fun M runtime/gen/gen-rconsts.c Log Message: ----------- Use `Control.Target.rconsts` for `Runtime.GCField.offset` Commit: 091166df3b886dccdcdda6e765886bed64380b86 https://github.com/MLton/mlton/commit/091166df3b886dccdcdda6e765886bed64380b86 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-20 (Mon, 20 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Use macro for `gen-basis-ffi` targets in `runtime/Makefile` Commit: c592c6a17247c75739e310ddbda89e1abc3872fd https://github.com/MLton/mlton/commit/c592c6a17247c75739e310ddbda89e1abc3872fd Author: Matthew Fluet <mat...@gm...> Date: 2020-01-20 (Mon, 20 Jan 2020) Changed paths: M runtime/Makefile M runtime/gen/basis-ffi.h.chk M runtime/gen/basis-ffi.sml.chk A runtime/gen/gen-basis-ffi-consts.c A runtime/gen/gen-basis-ffi-consts.c.chk M runtime/gen/gen-basis-ffi.sml M runtime/gen/gen-rconsts.c Log Message: ----------- Generate `basis-ffi.def` constants at `make runtime` This commit begins migrating the `make constants` functionality from the compiler proper to the runtime. Almost all `_const`-s in the Basis Library are derived from `basis-ffi.def` and can be generated at the time that the runtime is built. The `make constants` step is awkward and complicates porting. Commit: 333e91fa8bb580bcabc4ff57a40272ee0ccbd8b1 https://github.com/MLton/mlton/commit/333e91fa8bb580bcabc4ff57a40272ee0ccbd8b1 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-20 (Mon, 20 Jan 2020) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/compile.fun Log Message: ----------- Eliminate `Control.Target.setBigEndian` Commit: be522e3f7344a683a0fc04f58efff69c1fbe063c https://github.com/MLton/mlton/commit/be522e3f7344a683a0fc04f58efff69c1fbe063c Author: Matthew Fluet <mat...@gm...> Date: 2020-01-20 (Mon, 20 Jan 2020) Changed paths: M mlton/main/compile.fun Log Message: ----------- Use `rconsts` rather than `constants` for `_const` elaboration Commit: b9d8cbfe60c0c3b79390a6586ee28909ae5d4bcb https://github.com/MLton/mlton/commit/b9d8cbfe60c0c3b79390a6586ee28909ae5d4bcb Author: Matthew Fluet <mat...@gm...> Date: 2020-01-20 (Mon, 20 Jan 2020) Changed paths: M Makefile M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/lookup-constant.fun M mlton/main/lookup-constant.sig M mlton/main/main.fun Log Message: ----------- Eliminate `make constants` Commit: 10abbf49fca2faca00fc60314e0ed9920eb06882 https://github.com/MLton/mlton/commit/10abbf49fca2faca00fc60314e0ed9920eb06882 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-20 (Mon, 20 Jan 2020) Changed paths: M Makefile M mlton/backend/runtime.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/compile.fun M runtime/Makefile M runtime/gen/.gitignore A runtime/gen/gen-constants.c R runtime/gen/gen-rconsts.c Log Message: ----------- Rename `rconsts` to `constants` Commit: ebb6f0e68d6c39db75d546b2fddc3e1f0dda80f1 https://github.com/MLton/mlton/commit/ebb6f0e68d6c39db75d546b2fddc3e1f0dda80f1 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-20 (Mon, 20 Jan 2020) Changed paths: M mlton/backend/runtime.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `Control.{build,commandLine}Consts: StrMap.t` This will (eventually) replace `LookupConstant`. Commit: 1888febd1d97d5fa13ede531ab22ce7de1cfcf11 https://github.com/MLton/mlton/commit/1888febd1d97d5fa13ede531ab22ce7de1cfcf11 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-20 (Mon, 20 Jan 2020) Changed paths: M mlton/atoms/ffi.fun M mlton/atoms/ffi.sig M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/lookup-constant.fun Log Message: ----------- Move `Ffi.numExports: unit -> int` to `ControlFlags.numExports: int ref` Commit: 69376cb069958cb8267e804d7eb4c399e0bc65e6 https://github.com/MLton/mlton/commit/69376cb069958cb8267e804d7eb4c399e0bc65e6 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: R mlton/atoms/const-type.fun R mlton/atoms/const-type.sig M mlton/atoms/const.fun M mlton/atoms/const.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/elaborate/elaborate-core.fun M mlton/elaborate/sources.cm M mlton/elaborate/sources.mlb M mlton/main/compile.fun M mlton/main/compile.sig R mlton/main/lookup-constant.fun R mlton/main/lookup-constant.sig M mlton/main/main.fun M mlton/main/sources.cm M mlton/main/sources.mlb Log Message: ----------- Eliminate `functor LookupConstant` and `val Const.lookup` Commit: 346fb076aa304d2db23bd917bc81848522b3b85a https://github.com/MLton/mlton/commit/346fb076aa304d2db23bd917bc81848522b3b85a Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Tweak the parsing of `constants` file Commit: 2b98557d10488629e9f7a614b402731ffdb102b3 https://github.com/MLton/mlton/commit/2b98557d10488629e9f7a614b402731ffdb102b3 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M mlton/control/control-flags.sml M mlton/elaborate/elaborate-core.fun M runtime/gen/gen-constants.c Log Message: ----------- Use prefix to distinguish `_{,build+,command_line_}const` Commit: 581c2e9715a0d74dd75951263d20c3a2f7bb490f https://github.com/MLton/mlton/commit/581c2e9715a0d74dd75951263d20c3a2f7bb490f Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-21 (Tue, 21 Jan 2020) Changed paths: M Makefile R mlton/atoms/const-type.fun R mlton/atoms/const-type.sig M mlton/atoms/const.fun M mlton/atoms/const.sig M mlton/atoms/ffi.fun M mlton/atoms/ffi.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/elaborate/elaborate-core.fun M mlton/elaborate/sources.cm M mlton/elaborate/sources.mlb M mlton/main/compile.fun M mlton/main/compile.sig R mlton/main/lookup-constant.fun R mlton/main/lookup-constant.sig M mlton/main/main.fun M mlton/main/sources.cm M mlton/main/sources.mlb M runtime/Makefile M runtime/gen/.gitignore M runtime/gen/basis-ffi.h.chk M runtime/gen/basis-ffi.sml.chk A runtime/gen/gen-basis-ffi-consts.c A runtime/gen/gen-basis-ffi-consts.c.chk M runtime/gen/gen-basis-ffi.sml A runtime/gen/gen-constants.c R runtime/gen/gen-sizes.c Log Message: ----------- Merge pull request #362 from MatthewFluet/runtime-constants Refactor gen and use of `constants` file Migrate the `make constants` functionality from the compiler proper to the runtime. All `_const`-s in the Basis Library are derived `from basis-ffi.def` and are generated at the time that the runtime is built. Eliminate the `make constants` step, which is awkward and complicates porting. Compare: https://github.com/MLton/mlton/compare/f1316a51a8b2...581c2e9715a0 |
From: Matthew F. <no...@gi...> - 2020-01-18 05:09:19
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 304873dbdca7e66b404e0778cafeffd9c1b48e4b https://github.com/MLton/mlton/commit/304873dbdca7e66b404e0778cafeffd9c1b48e4b Author: Matthew Fluet <mat...@gm...> Date: 2020-01-15 (Wed, 15 Jan 2020) Changed paths: M Makefile Log Message: ----------- Fix `BOOTSTRAP_STYLE=3` comment in `Makefile` Commit: 45041d9ad21f29d00cb6fc54428b338d6caa3c25 https://github.com/MLton/mlton/commit/45041d9ad21f29d00cb6fc54428b338d6caa3c25 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/Makefile M runtime/gen/.gitignore M runtime/gen/gen-sizes.c Log Message: ----------- Use better `runtime/Makefile` rules for `gen/sizes` Avoid using `.stamp` file. Commit: 36494b08c4f0aee3284150e8379b4fbf4676e848 https://github.com/MLton/mlton/commit/36494b08c4f0aee3284150e8379b4fbf4676e848 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/.gitignore M runtime/Makefile Log Message: ----------- Generate (some) proper dependencies in `/runtime/Makefile` Commit: ac1651a6eec9f15c5e3f09c4d6f64f4dd175a2ff https://github.com/MLton/mlton/commit/ac1651a6eec9f15c5e3f09c4d6f64f4dd175a2ff Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/Makefile M runtime/gen/.gitignore M runtime/gen/gen-types.c Log Message: ----------- Use better `runtime/Makefile` rules for `gen/{ml-types.h,c-types.{c,sml}}` Avoid using `.stamp` files and generate proper `Makefile` dependencies. Commit: 6a37cc31545726c161f22cba2d8971ac88089a73 https://github.com/MLton/mlton/commit/6a37cc31545726c161f22cba2d8971ac88089a73 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/Makefile M runtime/basis-ffi.h M runtime/gen/basis-ffi.h M runtime/gen/gen-basis-ffi.sml R runtime/gen/gen-basis-ffi.stamp Log Message: ----------- Use better `runtime/Makefile` rules for `gen/basis-ffi.{h,sml}` Avoid using `.stamp` files. Commit: a8b30a806c35d956b8ec57c6ed9d6ae66998f147 https://github.com/MLton/mlton/commit/a8b30a806c35d956b8ec57c6ed9d6ae66998f147 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M Makefile.config Log Message: ----------- Improve behavior of `Makefile.config` if no `mlton` installed Commit: 76da64cce88db48ddb0c6eff14ce20a7663c9c25 https://github.com/MLton/mlton/commit/76da64cce88db48ddb0c6eff14ce20a7663c9c25 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/Makefile A runtime/gen/basis-ffi.h.chk A runtime/gen/basis-ffi.sml.chk Log Message: ----------- Avoid building `runtime/gen/basis-ffi.{h,sml}` with clean sources 6a466d9fd was a previous attempt to avoid building `runtime/gen/basis-ffi.{h,sml}` when building from clean sources. This avoids the need for a working `mlton` when building the runtime, which is convenient for cross-compiling and porting. It typically worked, because a fresh `git clone` or `tar x` would create the `runtime/gen/basis-ffi.{h,sml}` and `runtime/gen/gen-basis-ffi.{sml,stamp}` files with sufficiently close timestamps that `make` wouldn't consider anything to be out of date. However, this is not guaranteed. This commit removes `runtime/gen/gen-basis-ffi.stamp` and adds `runtime/gen/basis-ffi.{h,sml}.chk` files, which are SHA checksums of the inputs and outputs of `runtime/gen/basis-ffi.{h,sml}`. If the checksum of the current sources matches the saved checksum, then the targets can be brought up to date with a simple `touch`. If an input has changed, then the targets (and the checksum) are updated by building and running the `runtime/gen/gen-basis-ffi` tool. Commit: eeee00f81b8514530e175735ebee2fb842940750 https://github.com/MLton/mlton/commit/eeee00f81b8514530e175735ebee2fb842940750 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/Makefile M runtime/gdtoa.hide-private-fns.patch A runtime/gdtoa.include-arith.patch A runtime/gdtoa.include-gd_qnan.patch Log Message: ----------- Use automatic dependencies in `runtime/Makefile` Commit: 2eae46ba19b3cef8220e43d0e886cf23f56aa8a6 https://github.com/MLton/mlton/commit/2eae46ba19b3cef8220e43d0e886cf23f56aa8a6 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Use pattern rule for `runtime/gen/gen-{sizes,types}.d` Commit: 02846c1c139f46e9cc52456215222c37842d972b https://github.com/MLton/mlton/commit/02846c1c139f46e9cc52456215222c37842d972b Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/Makefile R runtime/gdtoa.include-arith.patch R runtime/gdtoa.include-gd_qnan.patch A runtime/gdtoa.include-via-gdtoa.patch Log Message: ----------- Use pattern rules for `runtime/gdtoa` files Commit: 73a8d5da7ffa9e50dfd480ddcd8de822e0401f43 https://github.com/MLton/mlton/commit/73a8d5da7ffa9e50dfd480ddcd8de822e0401f43 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Use one line for short variable defns in `runtime/Makefile` Commit: 7691cde29df34b6ed53e11fa74e60dcaab8aed4f https://github.com/MLton/mlton/commit/7691cde29df34b6ed53e11fa74e60dcaab8aed4f Author: Matthew Fluet <mat...@gm...> Date: 2020-01-16 (Thu, 16 Jan 2020) Changed paths: M runtime/basis/Real/Real.c M runtime/basis/Word/Word.c M runtime/basis/coerce.c M runtime/basis/cpointer.c Log Message: ----------- Use `#include` paths relative to `/runtime` Commit: 2c7bf00ef2009a58680267215bba52a3b14558a0 https://github.com/MLton/mlton/commit/2c7bf00ef2009a58680267215bba52a3b14558a0 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Use common dependencies for `.o`, `-dbg.o`, and `-pic.o`. Commit: be5ac5a26881eb52108a22f784fcb30954e161c3 https://github.com/MLton/mlton/commit/be5ac5a26881eb52108a22f784fcb30954e161c3 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Update custom warning flags Commit: 13d51172da5edffccadf26782db0c82eb7b492ee https://github.com/MLton/mlton/commit/13d51172da5edffccadf26782db0c82eb7b492ee Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Simplify flags for phases of compilation in `runtime/Makefile` Commit: f48ab65bd7d7fb1ab12a503dd5e29d46593a5e28 https://github.com/MLton/mlton/commit/f48ab65bd7d7fb1ab12a503dd5e29d46593a5e28 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Use `$(CP)` and `$(RM)` in `runtime/Makefile` Commit: 9fab70fd2a3cb75bc2c59985e9915a13dd9bb804 https://github.com/MLton/mlton/commit/9fab70fd2a3cb75bc2c59985e9915a13dd9bb804 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M Makefile.config M runtime/Makefile Log Message: ----------- Use `$(SHASUM)` in `runtime/Makefile` Commit: dcca8d0d2abbcb59b459fcea50854ff23157ecee https://github.com/MLton/mlton/commit/dcca8d0d2abbcb59b459fcea50854ff23157ecee Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M mlton/main/main.fun M runtime/Makefile Log Message: ----------- Rename `libmlton-gdb.a` to `libmlton-dbg.a` Commit: 7e0a65eb1774f84f151967dc046244649255e4ec https://github.com/MLton/mlton/commit/7e0a65eb1774f84f151967dc046244649255e4ec Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M mlton/main/main.fun M runtime/Makefile Log Message: ----------- Build `lib{mlton,gdtao}-dbg-pic.a` The runtime library variants of `-dbg` and `-pic` are orthogonal, so a `-dbg-pic` variant should be allowed. Commit: 18c6f0c5fd2c72d6688f2496ef4b684cd6cd9f59 https://github.com/MLton/mlton/commit/18c6f0c5fd2c72d6688f2496ef4b684cd6cd9f59 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Add and use `WITH_{DBG,PIC}_RUNTIME` in `runtime/Makefile` On Win32/Win64 platforms, set `WITH_PIC_RUNTIME` to false to avoid redundantly building `%-pic.a` libraries that are identical to `%.a` libraries. Setting `WITH_DBG_RUNTIME` to false avoids building debugging libraries. Commit: 84d48612d1fd0bfe65929bc73f5eae0b81a357bf https://github.com/MLton/mlton/commit/84d48612d1fd0bfe65929bc73f5eae0b81a357bf Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M bin/travis-ci Log Message: ----------- Build with `WITH_DBG_RUNTIME=false` in `./bin/travis-ci` The debug runtimes are unused on TravisCI; this avoids unnecessary build time. Commit: a864e2c846afa2f293149ade2198af3bf664ee2d https://github.com/MLton/mlton/commit/a864e2c846afa2f293149ade2198af3bf664ee2d Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M runtime/Makefile Log Message: ----------- Copy `%-pic.a` from `%.a` when PIC enabled by default When position independent code is generated by the C compiler by default, then the `%.a` libraries can be used as `%-pic.a` libraries. This avoids redundant compiles of the runtime system. Commit: 78a857ae5fecf591cbdccd0d151160dc145ccc55 https://github.com/MLton/mlton/commit/78a857ae5fecf591cbdccd0d151160dc145ccc55 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-17 (Fri, 17 Jan 2020) Changed paths: M runtime/Makefile M runtime/platform/aix.c M runtime/platform/cygwin.c M runtime/platform/darwin.c M runtime/platform/freebsd.c M runtime/platform/hpux.c M runtime/platform/hpux.h M runtime/platform/hurd.c M runtime/platform/linux.c M runtime/platform/mingw.c M runtime/platform/netbsd.c M runtime/platform/openbsd.c M runtime/platform/solaris.c M runtime/platform/solaris.h M runtime/platform/use-mmap.c Log Message: ----------- Use `#include` paths relative to `/runtime` Commit: f1316a51a8b2e982568a94ef984388b0eb1ba782 https://github.com/MLton/mlton/commit/f1316a51a8b2e982568a94ef984388b0eb1ba782 Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-18 (Sat, 18 Jan 2020) Changed paths: M Makefile M Makefile.config M bin/travis-ci M mlton/main/main.fun M runtime/.gitignore M runtime/Makefile M runtime/basis-ffi.h M runtime/basis/Real/Real.c M runtime/basis/Word/Word.c M runtime/basis/coerce.c M runtime/basis/cpointer.c M runtime/gdtoa.hide-private-fns.patch A runtime/gdtoa.include-via-gdtoa.patch M runtime/gen/.gitignore M runtime/gen/basis-ffi.h A runtime/gen/basis-ffi.h.chk A runtime/gen/basis-ffi.sml.chk M runtime/gen/gen-basis-ffi.sml R runtime/gen/gen-basis-ffi.stamp M runtime/gen/gen-sizes.c M runtime/gen/gen-types.c M runtime/platform/aix.c M runtime/platform/cygwin.c M runtime/platform/darwin.c M runtime/platform/freebsd.c M runtime/platform/hpux.c M runtime/platform/hpux.h M runtime/platform/hurd.c M runtime/platform/linux.c M runtime/platform/mingw.c M runtime/platform/netbsd.c M runtime/platform/openbsd.c M runtime/platform/solaris.c M runtime/platform/solaris.h M runtime/platform/use-mmap.c Log Message: ----------- Merge pull request #361 from MatthewFluet/make-runtime-updates Updates to `make runtime` Highlights: * Use proper Makefile rules for `/runtime/gen/sizes`, `/runtime/gen/ml-types.h`, `/runtime/gen/c-types.{h,sml}`, and `/runtime/gen/basis-ffi.{h,sml}`, making the generator executables a dependency, updating the generator programs to emit each file separately (according to program argument), and eliminating the use of `.stamp` files (45041d9ad, 36494b08c, ac1651a6e, 6a37cc315). * Avoid building `runtime/gen/basis-ffi.{h,sml}` with clean sources (76da64cce). * Use automatic dependencies via `cc -MM` and `.d`-files (eeee00f81). * Add and use `WITH_{DBG,PIC}_RUNTIME` in `runtime/Makefile` (18c6f0c5f). * Build with `WITH_DBG_RUNTIME=false` in `./bin/travis-ci` (84d48612d). * Copy `%-pic.a` from `%.a` when PIC enabled by default (a864e2c84). The last two, in particular, allow TravisCI to only build one variant of the runtime, rather than 3. The goal had been to bring some order to `runtime/Makefile` and potentially better understand how to handle non-PI vs PIC vs PIE (see MLton/mlton#191). Compare: https://github.com/MLton/mlton/compare/432866ece813...f1316a51a8b2 |
From: Matthew F. <no...@gi...> - 2020-01-11 16:57:55
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: c65f0aa5de54bfad422a236f6e9feb94330db854 https://github.com/MLton/mlton/commit/c65f0aa5de54bfad422a236f6e9feb94330db854 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/real-x.fun M mlton/atoms/word-x.fun M mlton/atoms/word-x.sig M mlton/backend/backend.fun M mlton/backend/collect-statics.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/objptr-tycon.fun M mlton/backend/packed-representation.fun M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86.fun M mlton/match-compile/match-compile.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/poly-hash.fun M mlton/ssa/useless.fun M mlton/xml/xml-tree.fun Log Message: ----------- Add and use `WordX.from{Bits,Int,Word}` Commit: 432866ece8131671b89eb79a9e348b0c980b939b https://github.com/MLton/mlton/commit/432866ece8131671b89eb79a9e348b0c980b939b Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/real-x.fun M mlton/atoms/word-x.fun M mlton/atoms/word-x.sig M mlton/backend/backend.fun M mlton/backend/collect-statics.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/objptr-tycon.fun M mlton/backend/packed-representation.fun M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86.fun M mlton/match-compile/match-compile.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/poly-hash.fun M mlton/ssa/useless.fun M mlton/xml/xml-tree.fun Log Message: ----------- Merge pull request #360 from MatthewFluet/wordx-from-fns Add and use `WordX.from{Bits,Int,Word}` Compare: https://github.com/MLton/mlton/compare/bbca86855ce2...432866ece813 |
From: Matthew F. <no...@gi...> - 2020-01-11 13:42:50
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 02dee753a8dd9f57f51427c7bdddee707d4c30b3 https://github.com/MLton/mlton/commit/02dee753a8dd9f57f51427c7bdddee707d4c30b3 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/main/compile.fun M mlton/main/lookup-constant.fun Log Message: ----------- Remove unused `Runtime.GCField.{setSizes,size}` The sizes of GC fields are implied by `RepType.ofGCField`. Commit: 70667c27f0e193f4c03e95df143ebf7ae72269c9 https://github.com/MLton/mlton/commit/70667c27f0e193f4c03e95df143ebf7ae72269c9 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Alphabetize fields in `ControlFlags.Target.Size.setSizes` Commit: f3d7da6799f880fa480d8074e09fcd02f9fbc36e https://github.com/MLton/mlton/commit/f3d7da6799f880fa480d8074e09fcd02f9fbc36e Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Alphabetize defns in `structure ControlFlags.Target.Size` Commit: bbca86855ce2ff74a76c022ae7bb202d7d85e0c3 https://github.com/MLton/mlton/commit/bbca86855ce2ff74a76c022ae7bb202d7d85e0c3 Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/control/control-flags.sml M mlton/main/compile.fun M mlton/main/lookup-constant.fun Log Message: ----------- Merge pull request #359 from MatthewFluet/remove-gcfield-sizes Remove unused `Runtime.GCField.{setSizes,size}` Compare: https://github.com/MLton/mlton/compare/462280e41e98...bbca86855ce2 |
From: Matthew F. <no...@gi...> - 2020-01-11 11:42:41
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7c60453d989328796509edf3b45c4df9cc6a07b6 https://github.com/MLton/mlton/commit/7c60453d989328796509edf3b45c4df9cc6a07b6 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M LICENSE Log Message: ----------- Bump copyright year in `LICENSE` Commit: 57be796567ab0fa333fcef12cee29e2ad07a39b4 https://github.com/MLton/mlton/commit/57be796567ab0fa333fcef12cee29e2ad07a39b4 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M CHANGELOG.adoc Log Message: ----------- Fix some AsciiDoc markup in `CHANGELOG` Commit: 168718832668114fa6b7fdb2f2b9ffa831d69f62 https://github.com/MLton/mlton/commit/168718832668114fa6b7fdb2f2b9ffa831d69f62 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M README.adoc Log Message: ----------- Replace `the GMP` with `GMP` in `README.adoc` Commit: 9208f61ce9fdcf51b26807ae4bc055a22df086f8 https://github.com/MLton/mlton/commit/9208f61ce9fdcf51b26807ae4bc055a22df086f8 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M README.adoc Log Message: ----------- Drop long (and outdated) list of platforms in `README.adoc` Commit: 76d8e5be43d153064326fcf90823fea6c2a96ce9 https://github.com/MLton/mlton/commit/76d8e5be43d153064326fcf90823fea6c2a96ce9 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M README.adoc Log Message: ----------- Minor tweaks to `README.adoc` Commit: d70d276904c08fc2bde2c8db6d6a806f48a8b3d0 https://github.com/MLton/mlton/commit/d70d276904c08fc2bde2c8db6d6a806f48a8b3d0 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M README.adoc Log Message: ----------- Add "official" text description to `README.adoc` Commit: a5f528ae56edae98f8dcce75fe98290fbc2e9735 https://github.com/MLton/mlton/commit/a5f528ae56edae98f8dcce75fe98290fbc2e9735 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M README.adoc Log Message: ----------- Add links to `Features` list in `README.adoc` Commit: 9e7e4d3cdd4eec8a09b06ff2aa08f5a94ad1ad4a https://github.com/MLton/mlton/commit/9e7e4d3cdd4eec8a09b06ff2aa08f5a94ad1ad4a Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M doc/guide/src/Features.adoc Log Message: ----------- Update `Features.adoc` in guide Commit: 1918c4a3e123b0c91368e8db537d1f2a95a44ba4 https://github.com/MLton/mlton/commit/1918c4a3e123b0c91368e8db537d1f2a95a44ba4 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M doc/guide/src/FAQ.adoc M doc/guide/src/Features.adoc A doc/guide/src/GMP.adoc R doc/guide/src/GnuMP.adoc M doc/guide/src/MLtonIntInf.adoc M doc/guide/src/PortingMLton.adoc M doc/guide/src/Release20070826.adoc M doc/guide/src/Release20100608.adoc M doc/guide/src/Release20130715.adoc M doc/guide/src/Release20180207.adoc M doc/guide/src/RunningOnAMD64.adoc M doc/guide/src/RunningOnDarwin.adoc M doc/guide/src/RunningOnIA64.adoc M doc/guide/src/RunningOnMinGW.adoc M doc/guide/src/RunningOnPowerPC.adoc M doc/guide/src/RunningOnPowerPC64.adoc M doc/guide/src/SelfCompiling.adoc Log Message: ----------- Replace `GnuMP` with `GMP` in guide Commit: 5cf0089f5da33afaf0d25e9ba0d774f50d36bdc6 https://github.com/MLton/mlton/commit/5cf0089f5da33afaf0d25e9ba0d774f50d36bdc6 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M README.adoc Log Message: ----------- Tweaks to `README.adoc` Commit: 462280e41e9827139b662bc84cb77ef84f262af8 https://github.com/MLton/mlton/commit/462280e41e9827139b662bc84cb77ef84f262af8 Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M CHANGELOG.adoc M LICENSE M README.adoc M doc/guide/src/FAQ.adoc M doc/guide/src/Features.adoc A doc/guide/src/GMP.adoc R doc/guide/src/GnuMP.adoc M doc/guide/src/MLtonIntInf.adoc M doc/guide/src/PortingMLton.adoc M doc/guide/src/Release20070826.adoc M doc/guide/src/Release20100608.adoc M doc/guide/src/Release20130715.adoc M doc/guide/src/Release20180207.adoc M doc/guide/src/RunningOnAMD64.adoc M doc/guide/src/RunningOnDarwin.adoc M doc/guide/src/RunningOnIA64.adoc M doc/guide/src/RunningOnMinGW.adoc M doc/guide/src/RunningOnPowerPC.adoc M doc/guide/src/RunningOnPowerPC64.adoc M doc/guide/src/SelfCompiling.adoc Log Message: ----------- Merge pull request #358 from MatthewFluet/doc-updates Documentation updates Compare: https://github.com/MLton/mlton/compare/7e08585301bc...462280e41e98 |
From: Matthew F. <no...@gi...> - 2020-01-11 10:36:43
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 299c347cf19e02f77b2064757ce3c634c18100f5 https://github.com/MLton/mlton/commit/299c347cf19e02f77b2064757ce3c634c18100f5 Author: Matthew Fluet <mat...@gm...> Date: 2019-12-23 (Mon, 23 Dec 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/packed-representation.fun M mlton/backend/rssa-restore.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun Log Message: ----------- Add `init` field to `RssaTree.Statement.Object` Previously, the initialization of an object was accomplished by a sequence of `Move` statements following the `Object` statement. This obscures the initialization and led to MLton/mlton#328 duplicating logic in `functor PackedRepresentation` and `functor Ssa2ToRssa`; see https://github.com/MLton/mlton/pull/328#issuecomment-526980429. Commit: 85e8c17fcf2d5917bbd40a73e48b271350fcf4f2 https://github.com/MLton/mlton/commit/85e8c17fcf2d5917bbd40a73e48b271350fcf4f2 Author: Matthew Fluet <mat...@gm...> Date: 2019-12-23 (Mon, 23 Dec 2019) Changed paths: M mlton/control/bits.sml Log Message: ----------- Add `Bytes.*: Bytes.t * IntInf.int -> Bytes.t` Commit: a7d9db1efdf3e3602b41a6223e1f5e9ee74cb52a https://github.com/MLton/mlton/commit/a7d9db1efdf3e3602b41a6223e1f5e9ee74cb52a Author: Matthew Fluet <mat...@gm...> Date: 2019-12-23 (Mon, 23 Dec 2019) Changed paths: M mlton/backend/runtime.fun M mlton/backend/runtime.sig Log Message: ----------- Add `Runtime.sequenceCounter{Offset,Size}: unit -> Bytes.t` Commit: b33d735d7ed4ce6d72642df04dbb867c2fbfc39a https://github.com/MLton/mlton/commit/b33d735d7ed4ce6d72642df04dbb867c2fbfc39a Author: Matthew Fluet <mat...@gm...> Date: 2019-12-23 (Mon, 23 Dec 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rep-type.fun M mlton/backend/rssa-restore.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun Log Message: ----------- Add `RssaTree.Statement.Sequence` for direct allocation of sequences Like `RssaTree.Statement.Object`, `RssaTree.Statement.Sequence` corresponds to a direct allocation of a sequence, including initialization of elements. Commit: a2f08b45b8faa5ac960180f959902b13094b0336 https://github.com/MLton/mlton/commit/a2f08b45b8faa5ac960180f959902b13094b0336 Author: Matthew Fluet <mat...@gm...> Date: 2019-12-25 (Wed, 25 Dec 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun M mlton/ssa/analyze2.fun M mlton/ssa/analyze2.sig M mlton/ssa/deep-flatten.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/shrink2.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/ssa/type-check2.fun Log Message: ----------- Add `SsaTree2.Exp.Sequence` for direct allocation of sequences Like `SsaTree2.Exp.Object`, `SsaTree2.Exp.Sequence` corresponds to a direct allocation of a sequence, including initialization of elements. At `toSsa2`, the `Vector_vector` primitive is translated to `SsaTree2.Exp.Sequence`, rather than being translated to an `Array_alloc` `Array_update` `Array_toVector` sequence. Commit: eff2af1e0e41ba8941ff72e71d66f609784bce5b https://github.com/MLton/mlton/commit/eff2af1e0e41ba8941ff72e71d66f609784bce5b Author: Matthew Fluet <mat...@gm...> Date: 2019-12-25 (Wed, 25 Dec 2019) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/closure-convert/abstract-value.fun M mlton/closure-convert/closure-convert.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/split-types.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/useless.fun Log Message: ----------- Add `Array_array` primitive for literal arrays. The `Array_array` primitive is like the `Vector_vector` primitive, although the latter has source syntax `#[e1,...,en]` and the former does not (yet). The intention is that compilation might find opportunities to optimize explicit array allocation and initialization into the `Array_array` primitive. Like the `Vector_vector` primitive, at `toSsa2`, the `Array_array` primitive is translated to `SsaTree2.Exp.Sequence`. Commit: b50e02b14e2b5b3e5f1a4ee54d630e2e810cbacd https://github.com/MLton/mlton/commit/b50e02b14e2b5b3e5f1a4ee54d630e2e810cbacd Author: Matthew Fluet <mat...@gm...> Date: 2019-12-25 (Wed, 25 Dec 2019) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/ssa/share-zero-vec.fun Log Message: ----------- Use `Array_array` prim (rather than `Array_alloc`) in `ShareZeroVec` Commit: 412770365feadc2d4fc4cbedfc122dc2696bc8eb https://github.com/MLton/mlton/commit/412770365feadc2d4fc4cbedfc122dc2696bc8eb Author: Matthew Fluet <mat...@gm...> Date: 2019-12-26 (Thu, 26 Dec 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Alphabetize `Global`, `StackOffset`, and `Temporary` strs in `Machine : MACHINE` Commit: 9e461f47ed4650a28c9878d630ac4b6f8249baf4 https://github.com/MLton/mlton/commit/9e461f47ed4650a28c9878d630ac4b6f8249baf4 Author: Matthew Fluet <mat...@gm...> Date: 2019-12-28 (Sat, 28 Dec 2019) Changed paths: M include/c-chunk.h 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: ----------- Introduce `Machine.StaticHeap.{Kind,Ref}` The `StaticHeap.Kind.t` enumeration defines three types of static heaps: `Immutable`, `Mutable`, and `Root`. The `Immutable` static heap will hold immutable objects (and will be marked `const` so as to be placed in a read-only section). The `Mutable` static heap will hold objects with mutable non-objptr fields; such objects need not be traced by the garbage collector (since they can only refer to other static heap objects). The `Root` static heap will hold objects with mutable objptr fields; such objects need to be traced by the garbage collector (since they can be updated to refer to dynamic heap objects). The `StaticHeap.Ref.t` type corresponds to a reference to an object in a static heap, represented by a byte offset. Commit: 738e6e03f5ff495f7d7b78132e94fb1caf9462c1 https://github.com/MLton/mlton/commit/738e6e03f5ff495f7d7b78132e94fb1caf9462c1 Author: Matthew Fluet <mat...@gm...> Date: 2019-12-30 (Mon, 30 Dec 2019) Changed paths: M include/common-main.h M mlton/codegen/c-codegen/c-codegen.fun M runtime/gc.h M runtime/gc/foreach.c M runtime/gc/gc_state.h M runtime/gc/heap_predicates.c A runtime/gc/static-heaps.h M runtime/gc/world.c Log Message: ----------- Runtime support for static heaps Commit: aeefb2d4091ccea21e6a67beff8ec041373fd97d https://github.com/MLton/mlton/commit/aeefb2d4091ccea21e6a67beff8ec041373fd97d Author: Matthew Fluet <mat...@gm...> Date: 2020-01-03 (Fri, 03 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun Log Message: ----------- Introduce `Machine.StaticHeap.Object` and `Machine.Program.T#staticHeaps` The `Machine.StaticHeap.Object.t` datatype represents a static object (either `Normal` or `Sequence`), including initialization. The `Machine.Program.T#staticHeaps` is a function of type `StaticHeap.Kind.t -> StaticHeap.Object.vector`. Commit: fc6dc59ae3f17d1a50129c81bbc69a7c7ed4a70b https://github.com/MLton/mlton/commit/fc6dc59ae3f17d1a50129c81bbc69a7c7ed4a70b Author: Matthew Fluet <mat...@gm...> Date: 2020-01-03 (Fri, 03 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/packed-representation.fun M mlton/backend/rssa-restore.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun Log Message: ----------- Refactor `RssaTree.Statement.{Object,Sequence}` to `RssaTree.Object.t` Extract the `Object` and `Sequence` variants of `RssaTree.Statement.t` to an `RssaTree.Object.t` datatype. Often times, both variants are treated similarly, so this reduces some code duplication. More importantly, only `RssaTree.Object.t` variants are suitable for static allocation/initialization and a subsequent commit will introduce a `RssaTree.Program.T#statics: RssaTree.Object.t vector` field. Commit: 0b5d16fd8649e4e0fde02b598a0f66f3503cb49a https://github.com/MLton/mlton/commit/0b5d16fd8649e4e0fde02b598a0f66f3503cb49a Author: Matthew Fluet <mat...@gm...> Date: 2020-01-04 (Sat, 04 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/rssa-restore.fun M mlton/backend/rssa-restore.sig M mlton/backend/rssa-shrink.fun M mlton/backend/rssa-shrink.sig M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun M mlton/backend/signal-check.fun M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Introduce `RssaTree.Program.T#statics: RssaTree.Object.t vector` `RssaTree.Program.T#statics: RssaTree.Object.t vector` will collect objects suitable for static allocation/initialization. Commit: 54549bc8fa64a4398c8fd59f2683de0a378dd9aa https://github.com/MLton/mlton/commit/54549bc8fa64a4398c8fd59f2683de0a378dd9aa Author: Matthew Fluet <mat...@gm...> Date: 2020-01-04 (Sat, 04 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/packed-representation.fun M mlton/backend/rssa-restore.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig Log Message: ----------- Refactor/Simplify `RssaTree.Object.t` Commit: efaac63d8727b02b1415f719eb32b16f22bab5fa https://github.com/MLton/mlton/commit/efaac63d8727b02b1415f719eb32b16f22bab5fa Author: Matthew Fluet <mat...@gm...> Date: 2020-01-05 (Sun, 05 Jan 2020) Changed paths: M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/backend/static.fun M mlton/backend/static.sig Log Message: ----------- Add and use `ObjptrTycon.toHeader: t -> WordX.t` Commit: 09767d599725b2ce6e2d35b53a560a0e7838d15c https://github.com/MLton/mlton/commit/09767d599725b2ce6e2d35b53a560a0e7838d15c Author: Matthew Fluet <mat...@gm...> Date: 2020-01-05 (Sun, 05 Jan 2020) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Refactor/Simplify `Machine.StaticHeap.Object.t` Commit: cc9a3a65940a854b122c174f478c12fe553a540e https://github.com/MLton/mlton/commit/cc9a3a65940a854b122c174f478c12fe553a540e Author: Matthew Fluet <mat...@gm...> Date: 2020-01-05 (Sun, 05 Jan 2020) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Translate RSSA statics to Machine static heaps in `Backend` Commit: 70d49af2b56afa7fbbb8556b668a98b980449d38 https://github.com/MLton/mlton/commit/70d49af2b56afa7fbbb8556b668a98b980449d38 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-05 (Sun, 05 Jan 2020) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Use `Type.toCType` for cast in `CCodegen.StaticHeaps.Ref.toC` Commit: 097dca5eda19d3b273ee99e5bccf1c99b43b8092 https://github.com/MLton/mlton/commit/097dca5eda19d3b273ee99e5bccf1c99b43b8092 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-05 (Sun, 05 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add `ty: Type.t` field to `init` fields of `Machine.StaticHeaps.Object.t` Commit: 63e017c30d3da201c5ea1070c6afdebefc243fa8 https://github.com/MLton/mlton/commit/63e017c30d3da201c5ea1070c6afdebefc243fa8 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-05 (Sun, 05 Jan 2020) Changed paths: M mlton/backend/rssa-restore.fun M mlton/backend/rssa-shrink.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/switch.fun M mlton/backend/switch.sig Log Message: ----------- Generalize RSSA `replace{Var,Labels,Uses}` functions Commit: b72621f411f3598fcae7e9388bf40104d9a44afa https://github.com/MLton/mlton/commit/b72621f411f3598fcae7e9388bf40104d9a44afa Author: Matthew Fluet <mat...@gm...> Date: 2020-01-05 (Sun, 05 Jan 2020) Changed paths: M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig Log Message: ----------- Add `WordXVector.toVectorMap` Commit: 516e09627e4a1c677b43a3aef096231d6a723767 https://github.com/MLton/mlton/commit/516e09627e4a1c677b43a3aef096231d6a723767 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-06 (Mon, 06 Jan 2020) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Initialize padding in static heaps Quells gcc/clang warnings. Commit: 9f721d143d58bbebffe8524b3e46fb8af3c75032 https://github.com/MLton/mlton/commit/9f721d143d58bbebffe8524b3e46fb8af3c75032 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-06 (Mon, 06 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add and use `Machine.StaticHeap.Object.Elem.Cast` variant A cast is required when a tagged word is used as an objptr. Commit: 09d9709340910436447fb4e9bc2beaacb17da2b1 https://github.com/MLton/mlton/commit/09d9709340910436447fb4e9bc2beaacb17da2b1 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-06 (Mon, 06 Jan 2020) Changed paths: M mlton/atoms/c-type.fun Log Message: ----------- Change `CType.seqIndex` to return an unsigned word This is consistent with the type of `GC_sequenceLength`. Commit: 99aeefc6385c56bcad08d58713877eb164554761 https://github.com/MLton/mlton/commit/99aeefc6385c56bcad08d58713877eb164554761 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-06 (Mon, 06 Jan 2020) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Declare CSymbols used in static heap declaration Commit: 138dcdceecf585f2cde431c1d7674dbba57b8a4c https://github.com/MLton/mlton/commit/138dcdceecf585f2cde431c1d7674dbba57b8a4c Author: Matthew Fluet <mat...@gm...> Date: 2020-01-06 (Mon, 06 Jan 2020) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Fix `'static' is not at beginning of declaration` gcc/clang warning Commit: 158ebdc4c02137193b8fcb52e13b53189cd7314b https://github.com/MLton/mlton/commit/158ebdc4c02137193b8fcb52e13b53189cd7314b Author: Matthew Fluet <mat...@gm...> Date: 2020-01-06 (Mon, 06 Jan 2020) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Tweak display of static heaps in Machine IR output Commit: 7c4e2d3a6ee2b1944a682cca2f4ea8515304b107 https://github.com/MLton/mlton/commit/7c4e2d3a6ee2b1944a682cca2f4ea8515304b107 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-06 (Mon, 06 Jan 2020) Changed paths: A mlton/backend/collect-statics.fun M mlton/backend/rssa-simplify.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb Log Message: ----------- Add `CollectStatics.{Globals,{Real,WordXVector}Consts}` passes The `CollectStatics.WordXVectorConsts` pass replaces `WordXVector` constants with `Var` operands to equivalent static `Sequence` objects. The `CollectStatics.RealConsts` pass accumulates `Real` constants into static `Sequence` objects and replaces them with an appropriate `SequenceOffset` operands. This is an alternative to the lifting of `Real` constants to `Global` operands in `Backend`. (`Real` constants are not propagated through the Machine IR program because the native codegens do not support real literals (x86 and amd64 do not have convenient floating-point literal instructions; floating-point values must be loaded from memory) and the C and LLVM codegens incorrectly constant-fold floating-point operations when the rounding mode may change.) The `CollectStatics.Globals` pass lifts `Object` and `Sequence` objects in the `main` (`initGlobals`) function to statics. Commit: abcf8760d628dcbc7e2afac5cb5eeaa6f7f6e2c5 https://github.com/MLton/mlton/commit/abcf8760d628dcbc7e2afac5cb5eeaa6f7f6e2c5 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-07 (Tue, 07 Jan 2020) Changed paths: M mlton/backend/ssa2-to-rssa.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-static-alloc-and-init {true|false}` This control determines whether or not RSSA `Static` operands are introduced at `toRssa` by `translateGlobalStatics`. Commit: d96d7da2adb8563a9db70f22b1bba5152be5bb47 https://github.com/MLton/mlton/commit/d96d7da2adb8563a9db70f22b1bba5152be5bb47 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-07 (Tue, 07 Jan 2020) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Don't emit empty string constants for initialization Using an empty string constant for initialization triggers an "internal compiler error: in output_constructor_regular_field, at varasm.c" in gcc-7 and gcc-8. Commit: 03b3ec5ab4def59afaae71d065ee30512782389b https://github.com/MLton/mlton/commit/03b3ec5ab4def59afaae71d065ee30512782389b Author: Matthew Fluet <mat...@gm...> Date: 2020-01-07 (Tue, 07 Jan 2020) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Simplify construction of string literal Commit: 89d942ea07445ab998ecd16a919c0653cd017a40 https://github.com/MLton/mlton/commit/89d942ea07445ab998ecd16a919c0653cd017a40 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-07 (Tue, 07 Jan 2020) Changed paths: M mlton/backend/machine.fun M mlton/backend/rssa-tree.fun Log Message: ----------- Layout `init` of some `Sequence` objects as string literals Commit: 7acd391a43178469866e103db21844749cacf9b7 https://github.com/MLton/mlton/commit/7acd391a43178469866e103db21844749cacf9b7 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-07 (Tue, 07 Jan 2020) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Allocate empty mutable sequences in mutable static heap Commit: 8beddf606e2a945b3946e6bf4b7241708aaab7c9 https://github.com/MLton/mlton/commit/8beddf606e2a945b3946e6bf4b7241708aaab7c9 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-07 (Tue, 07 Jan 2020) Changed paths: M mlton/backend/collect-statics.fun Log Message: ----------- Avoid collecting objects with mutable `Objptr` fields as statics A static object that is updated with an `Objptr` would trigger a card marking, but the address of a static object would not map to a valid card slot. Commit: 8be9df1ed415f4c4b165f609e605347faa08182b https://github.com/MLton/mlton/commit/8be9df1ed415f4c4b165f609e605347faa08182b Author: Matthew Fluet <mat...@gm...> Date: 2020-01-09 (Thu, 09 Jan 2020) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml Log Message: ----------- Simplify LLVM TBAA A `Static` operand is not an lvalue. Commit: 6eff56bc23e19c4147608c09e6415ff9dce0edad https://github.com/MLton/mlton/commit/6eff56bc23e19c4147608c09e6415ff9dce0edad Author: Matthew Fluet <mat...@gm...> Date: 2020-01-09 (Thu, 09 Jan 2020) Changed paths: M mlton/backend/rssa-simplify.fun M mlton/control/control-flags.sml Log Message: ----------- Default to using static heaps (rather than static objects) See https://github.com/MLton/mlton/pull/328#issuecomment-526980429. Commit: a9fd24bc677b598e71506e14ffd283178ffed08b https://github.com/MLton/mlton/commit/a9fd24bc677b598e71506e14ffd283178ffed08b Author: Matthew Fluet <mat...@gm...> Date: 2020-01-09 (Thu, 09 Jan 2020) Changed paths: M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig Log Message: ----------- Add `RssaTree.Operand.one: WordSize.t -> t` Commit: b0349e16df94e808a746252d491820ed75b24f9d https://github.com/MLton/mlton/commit/b0349e16df94e808a746252d491820ed75b24f9d Author: Matthew Fluet <mat...@gm...> Date: 2020-01-09 (Thu, 09 Jan 2020) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Refactor `-gc-check first` implementation Rather than using a collection of `bool ref`s implemented as mutable static objects, use a `bool array` implemented as an object in the mutable static heap. Commit: c202e87936dccd17b5f115f7fd1bae1500a16207 https://github.com/MLton/mlton/commit/c202e87936dccd17b5f115f7fd1bae1500a16207 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-09 (Thu, 09 Jan 2020) Changed paths: M mlton/backend/collect-statics.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig Log Message: ----------- Add and use `RssaTree.Object.fromWordXVector` Commit: 763a9cb24a8dc6d045c19ce447a5990f4afe34e5 https://github.com/MLton/mlton/commit/763a9cb24a8dc6d045c19ce447a5990f4afe34e5 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-09 (Thu, 09 Jan 2020) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Translate `WordXVector`s to objs in imm static heap in `Backend` Commit: 08cc5bc13afcc95f7fb9d6f64a8abb758c419909 https://github.com/MLton/mlton/commit/08cc5bc13afcc95f7fb9d6f64a8abb758c419909 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-09 (Thu, 09 Jan 2020) Changed paths: M include/amd64-main.h M include/c-chunk.h M include/c-main.h M include/common-main.h M include/x86-main.h M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa2-to-rssa.fun R mlton/backend/static.fun R mlton/backend/static.sig M mlton/codegen/amd64-codegen/amd64-codegen.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-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun M runtime/gc/gc_state.h M runtime/gc/init-world.c M runtime/gc/init-world.h Log Message: ----------- Remove "static objects" implementation in favor of "static heaps" See https://github.com/MLton/mlton/pull/328#issuecomment-526980429. Commit: 53f8c092357b51c151193a25be255008ce27ece7 https://github.com/MLton/mlton/commit/53f8c092357b51c151193a25be255008ce27ece7 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Add and use `Machine.StaticRef.Kind.memoize` Commit: a89291070b436252f39fbebe3a1a44867327dbd0 https://github.com/MLton/mlton/commit/a89291070b436252f39fbebe3a1a44867327dbd0 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M mlton/main/main.fun Log Message: ----------- Fix documented default for `-globalize-small-int-inf` Commit: ee356a3e0d5ce85109713ccc32804e06d489810b https://github.com/MLton/mlton/commit/ee356a3e0d5ce85109713ccc32804e06d489810b Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M include/common-main.h M mlton/backend/backend.fun M mlton/backend/collect-statics.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M runtime/gc/init-world.c M runtime/gc/static-heaps.h M runtime/gc/translate.c Log Message: ----------- Use `staticHeapD` to collect the initial dynamic heap objects When the mutator marks cards, `staticHeapR` cannot be used for objects with mutable objptr fields, because the address of an object in `staticHeapR` won't map to a valid card slot for the write barrier. Such global objects with mutable objptr fields must be placed in the dynamic heap and referenced indirectly via a `Global` operand. However, it is still possible to collect all such objects into a static heap, which is copied to the initial dynamic heap, rather than initializing them via the `initGlobals` function. See https://github.com/MLton/mlton/pull/328#issuecomment-527693766. Commit: 16c65b4186423b47c18af901a54e02a599da5035 https://github.com/MLton/mlton/commit/16c65b4186423b47c18af901a54e02a599da5035 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/collect-statics.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/packed-representation.fun M mlton/backend/rssa-restore.fun M mlton/backend/rssa-restore.sig M mlton/backend/rssa-shrink.fun M mlton/backend/rssa-shrink.sig M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun Log Message: ----------- Remove `dst: Var.t * Type.t` field from `RssaTree.Object.t` variants Commit: 29c925b0f2d51ec7a8140acf0c678527ef2447ff https://github.com/MLton/mlton/commit/29c925b0f2d51ec7a8140acf0c678527ef2447ff Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Remove controls associated with static objects Commit: 0952ff8a6148faa62a53ab07fc461b85c4e5dacf https://github.com/MLton/mlton/commit/0952ff8a6148faa62a53ab07fc461b85c4e5dacf Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig A mlton/backend/object.fun A mlton/backend/object.sig M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add `functor Object: OBJECT` This shares code for object representation between the RSSA and Machine IRs. Commit: b3da3dbb1d4450e1866340f4341ea1db59b28270 https://github.com/MLton/mlton/commit/b3da3dbb1d4450e1866340f4341ea1db59b28270 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M mlton/backend/object.fun M mlton/backend/object.sig M mlton/backend/rssa-type-check.fun Log Message: ----------- Add and use `Object.isOk` (replacing `objectOk` in `RssaTypeCheck`) Commit: 40d1dd48dd3775c74536be1384235ddeb14ef820 https://github.com/MLton/mlton/commit/40d1dd48dd3775c74536be1384235ddeb14ef820 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M mlton/backend/machine.fun M mlton/backend/object.fun M mlton/backend/object.sig Log Message: ----------- Check `staticHeaps` in `Machine.typeCheck` Commit: 5a170a022f6517be6579a6bbfcae7ce4510582c4 https://github.com/MLton/mlton/commit/5a170a022f6517be6579a6bbfcae7ce4510582c4 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M mlton/backend/backend.fun M mlton/backend/collect-statics.fun M mlton/backend/limit-check.fun M mlton/backend/machine.sig M mlton/backend/object.fun M mlton/backend/object.sig M mlton/backend/packed-representation.fun M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Simplify `init` fields of `Object` variants Commit: 5850966a1d814f9cc4e1a6f9df55d134f2391430 https://github.com/MLton/mlton/commit/5850966a1d814f9cc4e1a6f9df55d134f2391430 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M include/common-main.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Tweak C-side computation of static heap sizes A "packed" `struct` may still have padding at the end, which is included in C's `sizeof` calculation. However, for `memcpy`-ing and `foreachObjptrInRange`-ing a static heap, we need a byte accurate size. We include a sentinel `struct {} end;` field in the static heap structs to explicitly compute the size of a static heap as `(pointer)&staticHeap.end - (pointer)&staticHeap`. Commit: 530ff501a247c7242fbaedba3f619c275e2abc86 https://github.com/MLton/mlton/commit/530ff501a247c7242fbaedba3f619c275e2abc86 Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M runtime/gc/foreach.c M runtime/gc/foreach.h M runtime/gc/heap_predicates.c M runtime/gc/invariant.c M runtime/gc/invariant.h M runtime/gc/static-heaps.h Log Message: ----------- Reenable heap connectivity checks in `invariantForGC` We check the following allowed references between heap objects: I(immutable) -> {I,M,R} M(mutable) -> {I,M,R} R(root) -> {I,M,R,H} H(runtime) -> {I,M,R,H} Commit: b721cb56783dd6213bd995326e0a67bbfdf6ddaa https://github.com/MLton/mlton/commit/b721cb56783dd6213bd995326e0a67bbfdf6ddaa Author: Matthew Fluet <mat...@gm...> Date: 2020-01-10 (Fri, 10 Jan 2020) Changed paths: M CHANGELOG.adoc Log Message: ----------- Note revised impl of static alloc/init of globals in CHANGELOG.adoc Commit: 7e08585301bc9da5a0dc310305b4c47358ab4e5c https://github.com/MLton/mlton/commit/7e08585301bc9da5a0dc310305b4c47358ab4e5c Author: Matthew Fluet <Mat...@gm...> Date: 2020-01-11 (Sat, 11 Jan 2020) Changed paths: M CHANGELOG.adoc M include/amd64-main.h M include/c-chunk.h M include/c-main.h M include/common-main.h M include/x86-main.h M mlton/atoms/c-type.fun M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun A mlton/backend/collect-statics.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig A mlton/backend/object.fun A mlton/backend/object.sig M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/representation.sig M mlton/backend/rssa-restore.fun M mlton/backend/rssa-restore.sig M mlton/backend/rssa-shrink.fun M mlton/backend/rssa-shrink.sig M mlton/backend/rssa-simplify.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa-type-check.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa2-to-rssa.fun R mlton/backend/static.fun R mlton/backend/static.sig M mlton/backend/switch.fun M mlton/backend/switch.sig M mlton/closure-convert/abstract-value.fun M mlton/closure-convert/closure-convert.fun M mlton/codegen/amd64-codegen/amd64-codegen.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-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun M mlton/control/bits.sml M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/analyze2.fun M mlton/ssa/analyze2.sig M mlton/ssa/constant-propagation.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/share-zero-vec.fun M mlton/ssa/shrink2.fun M mlton/ssa/split-types.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/ssa/type-check2.fun M mlton/ssa/useless.fun M runtime/gc.h M runtime/gc/foreach.c M runtime/gc/foreach.h M runtime/gc/gc_state.h M runtime/gc/heap_predicates.c M runtime/gc/init-world.c M runtime/gc/init-world.h M runtime/gc/invariant.c M runtime/gc/invariant.h A runtime/gc/static-heaps.h M runtime/gc/translate.c M runtime/gc/world.c Log Message: ----------- Merge pull request #357 from MatthewFluet/static-heaps Revised implementation of static allocation/initialization of globals Heavily inspired and based on a previous implementation by Jason Carr; see MLton/mlton#328. MLton/mlton#328 introduced static allocation/initialization of globals, but some complexities and issues with the implementation were noted during review: * https://github.com/MLton/mlton/pull/328#issuecomment-526980429 * https://github.com/MLton/mlton/pull/328#issuecomment-527693766 * https://github.com/MLton/mlton/pull/328#issuecomment-530901572 This revised implementation tries to simplify the complexities and address the issues: * The RSSA IR loses the `Operand.Static {static: Var.t Static.t, ty: Type.t}` variant and gains a `statics: {dst: Var.t * Type.t, obj: Object.t} vector` field in `Program.T`. The `PackedRepresentation` and `Ssa2ToRssa` passes are simplified, because the initial RSSA program is created with an empty `statics` field. The `rssaShrink1` pass takes care of constant-folding and copy-propagating of object initialization. New `collectStatics.{Globals,{WordXVector,Real}Consts}` passes introduce objects into the `statics` field. * The Machine IR gains a `staticsHeaps: StaticHeap.Kind -> StaticHeap.Object.t vector` field in `Program.T`. Each "kind" of static heap is emitted to the main `.c` file as a statically initialized data definition that "looks" like an ML heap. There are four kinds of heaps: * `Immutable`: for immutable objects; such objects need never be traversed by the GC. (Note that global `unit ref` objects can be placed in the `Immutable` static heap, since they will never actually be mutated.) * `Mutable`: for objects with mutable non-objptr fields; such objects may be mutated, but need never be traversed by the GC. (Note that global empty mutable sequences can be placed in the `Mutable` static heap, since, even if they have mutable objptr fields, since the elements will never actually be mutated.) * `Root`: when the mutator does not mark cards, for objects with mutable objptr fields; such objects may be mutated and need to be traversed by the GC (because they may be updated to point to objects in the runtime heap). However, if card marking is used by the mutator, then the `Root` static heap cannot be used, because the write barrier with a base object in the `Root` static heap will attempt to write to an invalid card slot index. It would be possible to make the write barrier more expensive, by dynamically checking if the base is in the `Root` static heap. * `Dynamic`: when the mutator marks cards, for objects with mutable objptr fields, such objects may be mutated and need to be traversed by the GC. The `Dynamic` static heap is copied to the initial runtime heap at runtime initialization. In `Backend`, each RSSA `static` is placed in an appropriate "kind" of static heaps. For objects placed in the `Dynamic` static heap, they are accessed by the rest of the program via `Global` operands (and incur a level of indirection). * The `Mutable` and `Root` heaps are properly saved and loaded by `MLton.World`. Other notable aspects of the PR: * The SSA2 IR gains an `Exp.Sequence of {args: Var.t vector vector}` variant to represent direct allocation of arrays and vectors, including initialization of elements. At `toSsa2`, the `Vector_vector` primitive is translated to `SsaTree2.Exp.Sequence`, rather than being translated to an `Array_alloc` `Array_update` `Array_toVector` sequence. At `Ssa2ToRssa`, a `SsaTree2.Exp.Sequence` is translated to an `Rssa.Object.Sequence` (via updates to `PackedRepresentation`). This allows global `Vector_vector` objects to be collected to statics. * A new `Array_array` primitive for literal arrays was introduced. The intention is that compilation might find opportunities to optimize explicit array allocation and initialization into the `Array_array` primitive. Currently, there is not support for "empty" static objects. In the previous static allocation/initialization implementation, a global `Array_alloc` (necessarily with a constant length operand) would be translated to a special kind of static that would be placed in the BSS segment of the executable and dynamically initialized. A future PR could restore this functionality as follows: * Introduce `MutableEmpty`, `RootEmpty`, and `DynamicEmpty` static heap kinds that simply specify a heap size, along with `mutableEmptyInit`, `rootEmptyInit`, and `dynamicEmptyInit` data to properly initialize the headers. * Don't lower `Array_alloc` prims in `Ssa2ToRssa`. After `rssaShrink1`, it will be possible to read off the `Array_alloc`'s with constant size. All such `Array_alloc`s in the `initGlobals` function can be lifted to RSSA `statics`. Meanwhile, such `Array_alloc`s in other functions can be more cheaply implemented via direct allocation by the mutator, rather than via the `GC_sequenceAllocate` runtime call (which induces a GC safe point). However, "empty" static objects are only created with the (non-default) `-globalize-arrays true`, and so weren't exercised by default in the previous implementation. Compare: https://github.com/MLton/mlton/compare/8b27d88df2d2...7e08585301bc |
From: Matthew F. <no...@gi...> - 2019-12-22 22:36:33
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 2f0db2eb7b26a25ae2ef03b0249605f0b0824a09 https://github.com/MLton/mlton/commit/2f0db2eb7b26a25ae2ef03b0249605f0b0824a09 Author: Matthew Fluet <mat...@gm...> Date: 2019-12-22 (Sun, 22 Dec 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Fix unresolved flex records in SplitTypes for SML/NJ build Commit: 8b27d88df2d2578ae8d068953bbc11b10c0e565d https://github.com/MLton/mlton/commit/8b27d88df2d2578ae8d068953bbc11b10c0e565d Author: Matthew Fluet <Mat...@gm...> Date: 2019-12-22 (Sun, 22 Dec 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Merge pull request #356 from MatthewFluet/split-types-hash-speedup--fix-smlnj-build Fix unresolved flex records in SplitTypes for SML/NJ build Compare: https://github.com/MLton/mlton/compare/4fa546018e55...8b27d88df2d2 |
From: Matthew F. <no...@gi...> - 2019-12-19 13:23:48
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 519585b15c79a9b2fe23c8f6387927578b38b6d9 https://github.com/MLton/mlton/commit/519585b15c79a9b2fe23c8f6387927578b38b6d9 Author: Jason Carr <jca...@gm...> Date: 2019-12-07 (Sat, 07 Dec 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Improve split-types HashTable performance Before, the fresh types were hashed only by tycon, so were put into rather large buckets. They now generate hashes Commit: 4fa546018e558c8c3392b3f1ab80cc929be9ce43 https://github.com/MLton/mlton/commit/4fa546018e558c8c3392b3f1ab80cc929be9ce43 Author: Matthew Fluet <Mat...@gm...> Date: 2019-12-19 (Thu, 19 Dec 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Merge pull request #355 from jasoncarr0/split-types-hash-speedup Minor compile-time improvement: Improve split-types HashTable performance Compare: https://github.com/MLton/mlton/compare/44c5b9e12c92...4fa546018e55 |
From: Matthew F. <no...@gi...> - 2019-11-27 12:00:09
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: d8a211ed7836e32e75c01f7278fa4badd07b1391 https://github.com/MLton/mlton/commit/d8a211ed7836e32e75c01f7278fa4badd07b1391 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-25 (Mon, 25 Nov 2019) Changed paths: M basis-library/primitive/basis-ffi.sml M basis-library/primitive/check-real.sml M basis-library/primitive/prim-real.sml M runtime/basis-ffi.h R runtime/basis/Real/Real-consts.c M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Initialize `Real<N>.Math.{e,pi}` via constant (rather than symbol) Commit: eb882cdc44bc41399c19b8ffcec7252d2fac0981 https://github.com/MLton/mlton/commit/eb882cdc44bc41399c19b8ffcec7252d2fac0981 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-25 (Mon, 25 Nov 2019) Changed paths: M include/amd64-main.h M include/c-main.h M include/x86-main.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Statically initialize `globalReal<N>` array Commit: bdba7a6b3a27eaec1c7f66e48a14ac4c5fd0a218 https://github.com/MLton/mlton/commit/bdba7a6b3a27eaec1c7f66e48a14ac4c5fd0a218 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-25 (Mon, 25 Nov 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Tweak `CCodegen.RealX.toC` Commit: 03a95e235f3647203c1c28f610a07defdfd45706 https://github.com/MLton/mlton/commit/03a95e235f3647203c1c28f610a07defdfd45706 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-25 (Mon, 25 Nov 2019) Changed paths: M mlton/atoms/word-size.fun M mlton/atoms/word-size.sig Log Message: ----------- Add `WordSize.{fromPrim,primOpt}` Commit: 2b6f492ef4d1bf5191538269deef8f460e0b53e2 https://github.com/MLton/mlton/commit/2b6f492ef4d1bf5191538269deef8f460e0b53e2 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-25 (Mon, 25 Nov 2019) Changed paths: M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig Log Message: ----------- Change `ObjptrTycon.wordVector` arg from `Bits.t` to `WordSize.t` Commit: cd3b10a64b6e685195fcf12fabf370af8bfe3da9 https://github.com/MLton/mlton/commit/cd3b10a64b6e685195fcf12fabf370af8bfe3da9 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-25 (Mon, 25 Nov 2019) Changed paths: M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M runtime/gc/object.h Log Message: ----------- Add `ObjptrTycon.realVector: RealSize.t -> t` with reserved type indices Commit: 2e826cdf7a43852f12fa4b3e0d4a39d0741d0a52 https://github.com/MLton/mlton/commit/2e826cdf7a43852f12fa4b3e0d4a39d0741d0a52 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-26 (Tue, 26 Nov 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Fix `LLVMCodegen.LLVM.Value.real` for negs, infs, and nans Commit: 44c5b9e12c929ca65ea14bac23837d09cb5d7482 https://github.com/MLton/mlton/commit/44c5b9e12c929ca65ea14bac23837d09cb5d7482 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-27 (Wed, 27 Nov 2019) Changed paths: M basis-library/primitive/basis-ffi.sml M basis-library/primitive/check-real.sml M basis-library/primitive/prim-real.sml 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/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M runtime/basis-ffi.h R runtime/basis/Real/Real-consts.c M runtime/gc/object.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Merge pull request #354 from MatthewFluet/real-consts Update handling of real constants * Initialize `Real<N>.Math.{e,pi}` via literal (rather than symbol) * Statically initialize `globalReal<N>` array and eliminate `real_init()` function * Add `ObjptrTycon.realVector: RealSize.t -> t` with reserved type indices The last was to support collecting and referencing the real constants as a static vector, but it isn't straightforward to do so in the `toMachine` pass and a dedicated RSSA pass seems overkill. Compare: https://github.com/MLton/mlton/compare/56fcc0ebdae3...44c5b9e12c92 |
From: Matthew F. <no...@gi...> - 2019-11-24 17:24:09
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 2416b2fb44536c5d70d813b6761c786921e9f98f https://github.com/MLton/mlton/commit/2416b2fb44536c5d70d813b6761c786921e9f98f Author: Matthew Fluet <mat...@gm...> Date: 2019-11-24 (Sun, 24 Nov 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Declare `_address` symbols using `Word8` rather than `void`. Quells a gcc warning (`taking address of expression of type ‘void’`). Commit: c92da2760e01c4df1d440131a62a05c7337cefda https://github.com/MLton/mlton/commit/c92da2760e01c4df1d440131a62a05c7337cefda Author: Matthew Fluet <mat...@gm...> Date: 2019-11-24 (Sun, 24 Nov 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Include semicolon after each field of static metadata Quells a gcc warning (`no semicolon at end of struct or union`). Commit: 481ccf74348c8a504e48ce77d96d2248337550a2 https://github.com/MLton/mlton/commit/481ccf74348c8a504e48ce77d96d2248337550a2 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-24 (Sun, 24 Nov 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Emit `magic` value as Word32 constant Quells a gcc warning (`large integer implicitly truncated to unsigned type`) when using SML/NJ 64-bit, which uses a 63-bit `word` type. Commit: 9778ee4e917cd5defedf55a886254c298a111b2a https://github.com/MLton/mlton/commit/9778ee4e917cd5defedf55a886254c298a111b2a Author: Matthew Fluet <mat...@gm...> Date: 2019-11-24 (Sun, 24 Nov 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Mark `FILE *f` parameter of `{save,load}Globals` unused Quells a gcc warning (`unused parameter ‘f’`). Commit: 85423c663a9b1ef16efdec7b158349c0c6ac5d53 https://github.com/MLton/mlton/commit/85423c663a9b1ef16efdec7b158349c0c6ac5d53 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-24 (Sun, 24 Nov 2019) Changed paths: M mlton/main/lookup-constant.fun Log Message: ----------- Use `int main(void)` prototype for `build-constants.c` Quells gcc warnings (`unused parameter ‘argc’` and `unused parameter ‘argv’`). Commit: 56fcc0ebdae3246e806199b2e3da242fa5ed4bd2 https://github.com/MLton/mlton/commit/56fcc0ebdae3246e806199b2e3da242fa5ed4bd2 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-24 (Sun, 24 Nov 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M mlton/main/lookup-constant.fun Log Message: ----------- Merge pull request #353 from MatthewFluet/c-codegen-warnings Quell a number of `gcc` warnings with generated code Compare: https://github.com/MLton/mlton/compare/486344705482...56fcc0ebdae3 |
From: Matthew F. <no...@gi...> - 2019-11-24 13:42:27
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0c1c72fbd0be013d7c3e48e209a872ede4c407da https://github.com/MLton/mlton/commit/0c1c72fbd0be013d7c3e48e209a872ede4c407da Author: Matthew Fluet <mat...@gm...> Date: 2019-11-22 (Fri, 22 Nov 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig A mlton/atoms/c-symbol-scope.fun A mlton/atoms/c-symbol-scope.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb Log Message: ----------- Extract `CFunction.SymbolScope` to `functor CSymbolScope` Commit: 2ff48d5f466e4186b8480da7f406513184beb3a4 https://github.com/MLton/mlton/commit/2ff48d5f466e4186b8480da7f406513184beb3a4 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-22 (Fri, 22 Nov 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/c-symbol-scope.fun M mlton/atoms/c-symbol-scope.sig A mlton/atoms/c-symbol.fun A mlton/atoms/c-symbol.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-mlton.fun M mlton/elaborate/elaborate-core.fun Log Message: ----------- Add `structure Atoms.CSymbol : C_SYMBOL` Commit: cc9f5dd02f01fa4c76fee6212857eef03dd5e8bf https://github.com/MLton/mlton/commit/cc9f5dd02f01fa4c76fee6212857eef03dd5e8bf Author: Matthew Fluet <mat...@gm...> Date: 2019-11-22 (Fri, 22 Nov 2019) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/rep-type.fun M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-mlton.fun M mlton/elaborate/elaborate-core.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/split-types.fun M mlton/ssa/useless.fun Log Message: ----------- Rename `Prim.{FFI,FFI_Symbol}` to `Prim.{CFunction,CSymbol}` Commit: ccea1326a12e967127e34fb71ee446acfec1a944 https://github.com/MLton/mlton/commit/ccea1326a12e967127e34fb71ee446acfec1a944 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-23 (Sat, 23 Nov 2019) Changed paths: M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/limit-check.fun M mlton/backend/packed-representation.fun M mlton/backend/ssa2-to-rssa.fun M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Generalize `Static.Data.Elem.{Real,Word}` to `Const of Const.t` Currently, this allows `Const.Null` as an additional `Static.Data.Elem.t` value. It will also allow `Static.Data.Elem.t` to support a forthcoming `Const.CSymbol` (migrating `CSymbol` from `Prim` to `Const`). Commit: 19f78b78fa620a15d9257055f182b8366cd7a71e https://github.com/MLton/mlton/commit/19f78b78fa620a15d9257055f182b8366cd7a71e Author: Matthew Fluet <mat...@gm...> Date: 2019-11-23 (Sat, 23 Nov 2019) Changed paths: M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/rssa-tree.fun Log Message: ----------- Add `RepType.ofRealX` Commit: bfa3ff888551fcf9fa9716864077dcde2c2be40a https://github.com/MLton/mlton/commit/bfa3ff888551fcf9fa9716864077dcde2c2be40a Author: Matthew Fluet <mat...@gm...> Date: 2019-11-23 (Sat, 23 Nov 2019) 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: ----------- Generalize `Machine.Operand.{Null,Real,Word}` to `Const of Const.t` Commit: 8889991dd0280e2aa42c36cea73bb5669ccc0ca0 https://github.com/MLton/mlton/commit/8889991dd0280e2aa42c36cea73bb5669ccc0ca0 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-23 (Sat, 23 Nov 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/const.fun M mlton/atoms/const.sig M mlton/atoms/hash-type.fun M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/machine.fun M mlton/backend/rep-type.fun M mlton/backend/rssa-tree.fun M mlton/codegen/amd64-codegen/amd64-mlton.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-mlton.fun M mlton/codegen/x86-codegen/x86-translate.fun M mlton/elaborate/elaborate-core.fun M mlton/match-compile/match-compile.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Remove `Prim.CSymbol` and add `Const.CSymbol` Changing `CSymbol` from a primitive to a constant allows it to be copy-propagated by RSSA and avoids an unnecessary indirection through `globalCPointer`. Commit: 4863447054825a784f9167f54cd4e0817e472859 https://github.com/MLton/mlton/commit/4863447054825a784f9167f54cd4e0817e472859 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-24 (Sun, 24 Nov 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig A mlton/atoms/c-symbol-scope.fun A mlton/atoms/c-symbol-scope.sig A mlton/atoms/c-symbol.fun A mlton/atoms/c-symbol.sig M mlton/atoms/const.fun M mlton/atoms/const.sig M mlton/atoms/hash-type.fun M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/rssa-tree.fun M mlton/backend/ssa2-to-rssa.fun M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/amd64-codegen/amd64-mlton.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-mlton.fun M mlton/codegen/x86-codegen/x86-translate.fun M mlton/elaborate/elaborate-core.fun M mlton/match-compile/match-compile.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/split-types.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/useless.fun Log Message: ----------- Merge pull request #352 from MatthewFluet/symbol-const Refactor representation of `_address` from primitive to constant Changing the internal representation of an `_address` from a primitive (`Prim.FFI_Symbol`) to a constant (`Const.CSymbol`) allows it to be copy-propagated by RSSA and avoids an unnecessary indirection through `globalCPointer`. Also: * Rename `Prim.FFI` to `Prim.CFunction`. * Generalize `Static.Data.Elem.{Real,Word}` to `Const of Const.t` (which allow `Const.Null` and `Const.CSymbol` to be data elements of statics) * Generalize `Machine.Operand.{Null,Real,Word}` to `Const of Const.t` Compare: https://github.com/MLton/mlton/compare/7ab49d024ab3...486344705482 |
From: Matthew F. <no...@gi...> - 2019-11-22 14:24:00
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 67e2743ddedada1853b9fda9ac7005bb421c64b8 https://github.com/MLton/mlton/commit/67e2743ddedada1853b9fda9ac7005bb421c64b8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-22 (Sat, 22 Jun 2019) Changed paths: M include/c-chunk.h M include/c-common.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Add and use `ChunkFn_t` and `ChunkFnPtr_t` typedefs Commit: 8eca49d47e0cd4caa60c3d1c3c777e7a129b33b9 https://github.com/MLton/mlton/commit/8eca49d47e0cd4caa60c3d1c3c777e7a129b33b9 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Simplify passing of `Control.chunkTailCall` to `c-chunk.h` Commit: 654c557d6b7981b9191bf10dd9e39071e64574a7 https://github.com/MLton/mlton/commit/654c557d6b7981b9191bf10dd9e39071e64574a7 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig Log Message: ----------- Add `Machine.Program.rflow` for `{returns,raises}To` control flow Commit: 1b3b7b88d10fc1e34b6128244a1c378db91a6129 https://github.com/MLton/mlton/commit/1b3b7b88d10fc1e34b6128244a1c378db91a6129 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M mlton/backend/chunkify.fun Log Message: ----------- Use `Machine.Program.rflow` in `functor Chunkify` Commit: cf8e487a298c2521e5105278b1b7f53bcedc3e86 https://github.com/MLton/mlton/commit/cf8e487a298c2521e5105278b1b7f53bcedc3e86 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) 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 `{raises,returns}To` information to Machine IL `Raise/Return` transfers Commit: 793afa222c20558602aaf1155947548ab9866124 https://github.com/MLton/mlton/commit/793afa222c20558602aaf1155947548ab9866124 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Avoid `doSwitchNextBlock` when `Raise/Return` must be inter-chunk Commit: b9bdff12828e24bb12b4bb5537d9ea92eebeaba8 https://github.com/MLton/mlton/commit/b9bdff12828e24bb12b4bb5537d9ea92eebeaba8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Simplify `c-chunk.h` macros Commit: 423b9ada59e5dae75a538bb71af97c6f05f34add https://github.com/MLton/mlton/commit/423b9ada59e5dae75a538bb71af97c6f05f34add Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Use more descriptive parameters in `FarCall` macro in `c-chunk.h` Commit: 677145eceb648b70328662a0936534e60afa03f7 https://github.com/MLton/mlton/commit/677145eceb648b70328662a0936534e60afa03f7 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Move `goto doSwitchBlock;` from `ChunkSwitch` to `Chunk` macro in `c-chunk.h` Commit: df561505e6271c350841583b210ca23f53c133b6 https://github.com/MLton/mlton/commit/df561505e6271c350841583b210ca23f53c133b6 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Add and use `LeaveChunk` macro in `c-chunk.h` Commit: eb9c62abe1ae00c92f96abdde33d43903131cb90 https://github.com/MLton/mlton/commit/eb9c62abe1ae00c92f96abdde33d43903131cb90 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Use `LeaveChunk` macro in `Return` in `c-chunk.h` Rather than using `goto doLeaveChunk;`. Commit: bf9fe5989876678c3ba6095cad1f4142159a9b42 https://github.com/MLton/mlton/commit/bf9fe5989876678c3ba6095cad1f4142159a9b42 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Make `ChunkSwitch` exhaustive On `Return`, use mustReturnToSelf || (mayReturnToSelf && (nextChunks[nextBlock] == selfChunk)) to guard `goto doSwitchNextBlock`; this guarantees that the `ChunkSwitch` will only be entered with a block found in the chunk. Commit: 7c10c7071cd44ddd36b7cda831e447207799192e https://github.com/MLton/mlton/commit/7c10c7071cd44ddd36b7cda831e447207799192e Author: Matthew Fluet <mat...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Use direct call in `Return` when exactly one non-self target chunk Commit: e232b8ac6a93338cca011c149810cec253b87c34 https://github.com/MLton/mlton/commit/e232b8ac6a93338cca011c149810cec253b87c34 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-26 (Wed, 26 Jun 2019) Changed paths: M include/c-chunk.h M include/c-common.h Log Message: ----------- Remove `DefineChunk` macro from `c-common.h` Commit: b45e5ef333434ed5c2f69c6d3a1e7b736a754003 https://github.com/MLton/mlton/commit/b45e5ef333434ed5c2f69c6d3a1e7b736a754003 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-26 (Wed, 26 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Add and use `SwitchNextBlock` macro in `c-chunk.h` Commit: dcb28738bbbbaaeee23a2bdf18f0f46bd0579628 https://github.com/MLton/mlton/commit/dcb28738bbbbaaeee23a2bdf18f0f46bd0579628 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-26 (Wed, 26 Jun 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add `ChunkSwitchCase` to `c-chunk.h` Commit: 8e0dd2dc08c5b658a85040118d2ef92eeab5896c https://github.com/MLton/mlton/commit/8e0dd2dc08c5b658a85040118d2ef92eeab5896c Author: Matthew Fluet <mat...@gm...> Date: 2019-06-26 (Wed, 26 Jun 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-chunk-jump-table {false|true}` compile-time option Commit: b3a3ab0064220f3935ba40a8da5491565826a78d https://github.com/MLton/mlton/commit/b3a3ab0064220f3935ba40a8da5491565826a78d Author: Matthew Fluet <mat...@gm...> Date: 2019-06-26 (Wed, 26 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Reorganize `c-chunk.h` Commit: f29a65fcd793f0c23742d7105cd83c11a88b5a2b https://github.com/MLton/mlton/commit/f29a65fcd793f0c23742d7105cd83c11a88b5a2b Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Silence C compiler warnings about unused parameters/variables Some chunk functions may not use `gcState`, `stackTop`, `frontier`, or `selfChunk`. Commit: 5b6439b73b9eb0ae35a5d33fe80154f516729d36 https://github.com/MLton/mlton/commit/5b6439b73b9eb0ae35a5d33fe80154f516729d36 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Experiment with forcing jump table for C codegen Using GCC's label address and computed goto features (https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html#Labels-as-Values), one can force the generation of a jump table for the chunk switch. Although GCC and clang will typically implement dense `switch` statements into a jump table, consider the following: switch (nextBlock) { case 5: goto L_5; case 6: goto L_6; ... case 29: goto L_29; default: __builtin_unreachable(); } GCC-7 (and earlier) and clang appear to implement this as: int t = nextBlock - 5 if (t > 24) goto L_29; else goto *jumpTable[i]; That is, it still performs a range comparison. With an explicit jump table, GCC and clang will implement this as: goto *jumpTable[nextBlock - 5]; (where the -5 can be incorporated into the address computation). Unfortunately, the performance impact seems negligible. Commit: 62f07c513cd378c2bffb0fa658c317b93cb2eaa7 https://github.com/MLton/mlton/commit/62f07c513cd378c2bffb0fa658c317b93cb2eaa7 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Silence C compiler warning about addresses always evaluating to `true` Commit: b6456a2262d5bf26fbae5d7d5308d0feec0699f2 https://github.com/MLton/mlton/commit/b6456a2262d5bf26fbae5d7d5308d0feec0699f2 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Add and use `%ChunkFn{,Ptr{,Arr}}_t` typedefs in LLVM codegen Commit: 1ea83b587a1d2d986beed61a9c7224081bcbc715 https://github.com/MLton/mlton/commit/1ea83b587a1d2d986beed61a9c7224081bcbc715 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-28 (Fri, 28 Jun 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Share code for `Raise` and `Return` in C codegen Commit: edbf6c9b079dc8903b6670f7d4393e1787632b47 https://github.com/MLton/mlton/commit/edbf6c9b079dc8903b6670f7d4393e1787632b47 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-01 (Mon, 01 Jul 2019) Changed paths: M include/c-common.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Eliminate `DeclareChunk` macro Commit: 25138bcb7573686d98700813cd383e4bf02ce512 https://github.com/MLton/mlton/commit/25138bcb7573686d98700813cd383e4bf02ce512 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-01 (Mon, 01 Jul 2019) Changed paths: M include/c-chunk.h M include/c-common.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Eliminate `ChunkName` and `Chunkp` macros Commit: 69d4444dda46fb6c7043072672d6ebe97f202553 https://github.com/MLton/mlton/commit/69d4444dda46fb6c7043072672d6ebe97f202553 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Update LLVM codegen to match C codegen * Make `ChunkSwitch` exhaustive * Use direct call in `Return` when exactly one non-self target chunk Commit: 25b1991c67fc5d30597a2d6021a22d3c11bace10 https://github.com/MLton/mlton/commit/25b1991c67fc5d30597a2d6021a22d3c11bace10 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Add and use `Machine.Operand.gcField` Commit: 869c4a2bd860b16cd33e62e36bcc88d0dfa7c411 https://github.com/MLton/mlton/commit/869c4a2bd860b16cd33e62e36bcc88d0dfa7c411 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Perform `StackTop = StackBottom + ExnStack` in C codegen Commit: 8212ae35721713e17d9477a409e6c6fdcee961a9 https://github.com/MLton/mlton/commit/8212ae35721713e17d9477a409e6c6fdcee961a9 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- "%Pointer" type defn is not used by LLVM codegen Commit: fb54dcfba8ed2ed5cf0ad43b7898810c98ead851 https://github.com/MLton/mlton/commit/fb54dcfba8ed2ed5cf0ad43b7898810c98ead851 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Eliminate unnecessary cast in translation of SetExnStackLocal Commit: 91feb4fe55a28019a12c213e3e13d37578eb953c https://github.com/MLton/mlton/commit/91feb4fe55a28019a12c213e3e13d37578eb953c Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/rep-type.fun M runtime/gc/gc_state.h M runtime/gc/thread.c M runtime/gc/thread.h Log Message: ----------- Change `exnStack` field from `size_t` to `ptrdiff_t` The `exnStack` field stores the difference between `stackTop` and `stackBottom`. Commit: 40de2c413782ca8aef5b23cbb73b8e9424227d29 https://github.com/MLton/mlton/commit/40de2c413782ca8aef5b23cbb73b8e9424227d29 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-13 (Sat, 13 Jul 2019) Changed paths: M mlton/atoms/word-x.fun M mlton/atoms/word-x.sig M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/packed-representation.fun Log Message: ----------- Add and use `WordX.fromBytes` Commit: 867f66578e3a9e0672ffcda70fc8019012400f17 https://github.com/MLton/mlton/commit/867f66578e3a9e0672ffcda70fc8019012400f17 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-13 (Sat, 13 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Perform `StackTop += (bytes)` in C codegen Commit: edc684a51ef67c70d30a8f23ba3220a048e0a668 https://github.com/MLton/mlton/commit/edc684a51ef67c70d30a8f23ba3220a048e0a668 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-14 (Sun, 14 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Simplify LLVM codegen by translating via Machine IR Statements Commit: a03514280b4bb580b8fdd3451820fc6a93010b2f https://github.com/MLton/mlton/commit/a03514280b4bb580b8fdd3451820fc6a93010b2f Author: Matthew Fluet <mat...@gm...> Date: 2019-07-14 (Sun, 14 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Disable `mustReturnToOther` opt in LLVM codegen LLVM will erroneously optimize something like: define i64 @foo (i64 %x) { entry: %ret = musttail call i64 @bar(i64 %x) ret i64 %ret } define i64 @bar (i64 %x) { entry: call void @baz(i64 0) noreturn unreachable } declare void @baz (i64) noreturn to define i64 @foo (i64 %x) noreturn { entry: %ret = musttail call i64 @bar(i64 undef) unreachable } define i64 @bar (i64 %x) noreturn { entry: tail call void @baz(i64 0) noreturn unreachable } declare void @baz (i64) noreturn and then die with musttail call must precede a ret with an optional bitcast %ret = musttail call i64 @bar(i64 undef) in function foo This can occur with `Raise` transfers to the top-level handler that does not return. Commit: 4d5abde95cdcf6c538f8ef6b844d8c4f1cafa0a6 https://github.com/MLton/mlton/commit/4d5abde95cdcf6c538f8ef6b844d8c4f1cafa0a6 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-15 (Mon, 15 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add and use `-chunk-{{must,may}-rto-self,must-rto-other}-opt` flags Commit: 4b7c6490f6aee989f6b247ea04ac170217763539 https://github.com/MLton/mlton/commit/4b7c6490f6aee989f6b247ea04ac170217763539 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Change default for `-chunk-{must,may}-rto-self-opt` Commit: 4cd0111db3c02bcba41cb1040e92b4d31b9dfa78 https://github.com/MLton/mlton/commit/4cd0111db3c02bcba41cb1040e92b4d31b9dfa78 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M include/amd64-main.h M include/c-main.h M include/x86-main.h Log Message: ----------- Share and simplify code in `<cg>-main.h` Commit: 087a5b1f937333112192fac479521a174c0e32b5 https://github.com/MLton/mlton/commit/087a5b1f937333112192fac479521a174c0e32b5 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Experiment with forcing jump table for LLVM codegen See 5b6439b73. Commit: c019ac7efefe3b9b7036bf6d5ec08a46a57129f9 https://github.com/MLton/mlton/commit/c019ac7efefe3b9b7036bf6d5ec08a46a57129f9 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/backend/machine.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Use `ChunkLabel.toString` for chunk names Commit: 2e26ebd7f80bb5425c502c65b91cb05ebd19d170 https://github.com/MLton/mlton/commit/2e26ebd7f80bb5425c502c65b91cb05ebd19d170 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Experiment using LLVM 'cc10' (aka, 'ghccc') The 'cc10' (aka, 'ghccc') calling convention has no callee-save registers. For chunks that want to use many registers, this avoids the save and restore of callee-save registers on entry and exit of the chunk. A simple "shim" function coordinates between the 'ccc' calling convention and the 'cc10' calling convention for the dispatch from `c-main.h`; with `-chunk-tail-call true`, this is the only time that a shim function is called. Commit: 3330cbe759b81fddbb5f1b386f6fc70aa7db54ad https://github.com/MLton/mlton/commit/3330cbe759b81fddbb5f1b386f6fc70aa7db54ad Author: Matthew Fluet <mat...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/backend/chunkify.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Experiment with a new chunkify strategy Commit: 8c5d09423f64282b3bd99f786ea8f3b07b7cd7a0 https://github.com/MLton/mlton/commit/8c5d09423f64282b3bd99f786ea8f3b07b7cd7a0 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-19 (Fri, 19 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Don't mark any functions as `noreturn` The only `noreturn` functions are `MLton_halt` and `MLton_bug`, which are only called at program termination, so there is no performance advantage to marking these functions as `noreturn`. As noted in a03514280, LLVM will erroneously optimize a `musttail call` to a `noreturn` function. For C calls that do not return, we simply leave the chunk with `return -2;`, much as `Thread_returnToC` does. Commit: b7bc46db74f399b3a426a814bd1211a9cd4ea2b3 https://github.com/MLton/mlton/commit/b7bc46db74f399b3a426a814bd1211a9cd4ea2b3 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-19 (Fri, 19 Jul 2019) Changed paths: M benchmark/main.sml R doc/guide/src/AllocateRegisters.adoc A doc/guide/src/AllocateVariables.adoc M doc/guide/src/CommonArg.adoc M doc/guide/src/IntermediateLanguage.adoc M doc/guide/src/Machine.adoc M doc/guide/src/ToMachine.adoc M lib/mlton/basic/counter.sig M lib/mlton/basic/counter.sml M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/directed-sub-graph.sml M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M lib/mlton/basic/regexp.sml M lib/mlton/basic/string.sml M mlton/atoms/c-function.fun M mlton/atoms/ffi.fun M mlton/atoms/id.fun M mlton/atoms/prim.fun M mlton/atoms/profile-label.fun M mlton/atoms/real-size.fun M mlton/atoms/real-size.sig M mlton/atoms/source-info.fun M mlton/atoms/symbol.fun M mlton/atoms/symbol.sig M mlton/atoms/word-size.fun M mlton/atoms/word-size.sig R mlton/backend/allocate-registers.fun R mlton/backend/allocate-registers.sig A mlton/backend/allocate-variables.fun A mlton/backend/allocate-variables.sig M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/implement-profiling.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/backend/parallel-move.fun M mlton/backend/parallel-move.sig M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/rssa-restore.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-liveness.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-liveness.fun M mlton/codegen/x86-codegen/x86-translate.fun M mlton/codegen/x86-codegen/x86.fun M mlton/control/bits.sml M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-mlbs.fun M mlton/elaborate/type-env.fun M mlton/front-end/mlb-front-end.fun M mlton/main/compile.fun M mlton/main/lookup-constant.fun M mlton/main/main.fun M mlton/ssa/common-subexp.fun M mlton/ssa/duplicate-globals.fun M mlton/ssa/global.fun M mlton/ssa/loop-unroll.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/xml/monomorphise.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun M mlton/xml/xml-tree.fun Log Message: ----------- Merge branch 'master' of github.com:MLton/mlton into c-and-llvm-codegen-updates Commit: 0c2dabcc48a08f3c09fb91991a5aa91226aab6a6 https://github.com/MLton/mlton/commit/0c2dabcc48a08f3c09fb91991a5aa91226aab6a6 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-19 (Fri, 19 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Remove `Thread_returnToC` from `c-chunk.h` Commit: 3d9c499316592ba0f49954916847d1e56f82f99d https://github.com/MLton/mlton/commit/3d9c499316592ba0f49954916847d1e56f82f99d Author: Matthew Fluet <mat...@gm...> Date: 2019-07-19 (Fri, 19 Jul 2019) Changed paths: M mlton/backend/chunkify.fun Log Message: ----------- Perform more coalescing with `-chunkify simple` Commit: 138512f9e2fc59f3889d773a1fe41a54200bcf07 https://github.com/MLton/mlton/commit/138512f9e2fc59f3889d773a1fe41a54200bcf07 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-19 (Fri, 19 Jul 2019) Changed paths: M mlton/backend/chunkify.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add and use `Control.Chunkify.fromString` Commit: f8b171562cc6be0a8fc9eaf73b0a3162ac2463b5 https://github.com/MLton/mlton/commit/f8b171562cc6be0a8fc9eaf73b0a3162ac2463b5 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-19 (Fri, 19 Jul 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Name the RSSA function that initializes globals `globals` Commit: faef16463d649d999a32e36ea806fb50e5152499 https://github.com/MLton/mlton/commit/faef16463d649d999a32e36ea806fb50e5152499 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-19 (Fri, 19 Jul 2019) Changed paths: M mlton/backend/chunkify.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml Log Message: ----------- Use `structure Parse` for `-chunkify` option and parameterize `Chunkify.Simple` Commit: 911b5d480de60ee8011e7460900090d612a7e251 https://github.com/MLton/mlton/commit/911b5d480de60ee8011e7460900090d612a7e251 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-20 (Sat, 20 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/packed-representation.fun M mlton/backend/rssa-tree.fun M mlton/backend/ssa2-to-rssa.fun M mlton/backend/switch.fun M mlton/backend/switch.sig Log Message: ----------- Add `expect: WordX.t option` to RSSA and Machine `Switch.T` Commit: e2b27ab632f62fb97db9ad8f4cf82a182773c6cf https://github.com/MLton/mlton/commit/e2b27ab632f62fb97db9ad8f4cf82a182773c6cf Author: Matthew Fluet <mat...@gm...> Date: 2019-07-20 (Sat, 20 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Use `__builtin_expect` in C codegen for `Switch.T` with `expect` Commit: 823815a740f4805c3b90c5a3176db45ac541a92d https://github.com/MLton/mlton/commit/823815a740f4805c3b90c5a3176db45ac541a92d Author: Matthew Fluet <mat...@gm...> Date: 2019-07-20 (Sat, 20 Jul 2019) Changed paths: M mlton/backend/limit-check.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-gc-expect {none|false|true}` compile-time option The option indicates the `expect` value of RSSA `Transfer.Switch`es that branch to a garbage collection. Using `gc-expect false` should indicate that performing a GC is a cold path. Commit: c3b99054c867b8416b8cd376759061069f78cbfc https://github.com/MLton/mlton/commit/c3b99054c867b8416b8cd376759061069f78cbfc Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Change `-chunk-must-rto-other-opt` default to `true`. With 8c5d09423, the LLVM bug that erroneously optimizes a `musttail call` to a `noreturn` function is avoided. Commit: 473808f07dc0ea8150099a2ce79bf82b44c9e00e https://github.com/MLton/mlton/commit/473808f07dc0ea8150099a2ce79bf82b44c9e00e Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-chunk-must-rto-sing-opt {true|false}` to optimize return/raise to a single label There are a few `Raise` transfers that can statically determine the handler label; typically, an otherwise uncaught exception can transfer directly to the top-level exception handler. Commit: 26b47f870e9657c027f8a2c82ac4f861e419ba3a https://github.com/MLton/mlton/commit/26b47f870e9657c027f8a2c82ac4f861e419ba3a Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-allocate-registers.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/x86-codegen/x86-allocate-registers.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-mlton.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 Log Message: ----------- Rename `-native-commented <n>` to `-codegen-comments <n>` Commit: efc2e64f0597225006751448faf99d0b91ff16a6 https://github.com/MLton/mlton/commit/efc2e64f0597225006751448faf99d0b91ff16a6 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Emit comments in generated C code. Commit: c9394d8b7f060b973222cbe02fdc0289bb3a3f2a https://github.com/MLton/mlton/commit/c9394d8b7f060b973222cbe02fdc0289bb3a3f2a Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Use `T<ty>_<i>` for temporaries in C and LLVM codegens Commit: af9de6b4dcb3c655e909fa946858992068421889 https://github.com/MLton/mlton/commit/af9de6b4dcb3c655e909fa946858992068421889 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Eliminate `BNZ` from `c-chunk.h` Commit: 21a245165a595c9b765eb6079ea35bcca4b15f03 https://github.com/MLton/mlton/commit/21a245165a595c9b765eb6079ea35bcca4b15f03 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Eliminate more of `c-chunk.h` Commit: 12ee2ceec1abd092489cb70146ac5f2479bd21df https://github.com/MLton/mlton/commit/12ee2ceec1abd092489cb70146ac5f2479bd21df Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M include/c-chunk.h M include/c-common.h Log Message: ----------- Only `#define DEBUG_CCODEGEN` in `c-common.h` Commit: 27bd67c64dc4ea671d170148d5e4af31925089c1 https://github.com/MLton/mlton/commit/27bd67c64dc4ea671d170148d5e4af31925089c1 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Fix formatting of `switch` with unreachable default in C codegen Commit: f4fc31fa5c626ffe679f81b006079394f7a1ff8c https://github.com/MLton/mlton/commit/f4fc31fa5c626ffe679f81b006079394f7a1ff8c Author: Matthew Fluet <mat...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Move chunk switch from `c-chunk.h` to C codegen Commit: 787b3f7ebe23a6a4bc2db8d79206228021c3d9f4 https://github.com/MLton/mlton/commit/787b3f7ebe23a6a4bc2db8d79206228021c3d9f4 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-23 (Tue, 23 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Eliminate remainder of `c-chunk.h` Commit: 01a32c933c03633e64a0ab396a01486386d8084a https://github.com/MLton/mlton/commit/01a32c933c03633e64a0ab396a01486386d8084a Author: Matthew Fluet <mat...@gm...> Date: 2019-07-23 (Tue, 23 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Mark `doSwitchNextBlock` label as potentially unused Commit: 091df97eb533fb9b33a99cbed8a2601e61775588 https://github.com/MLton/mlton/commit/091df97eb533fb9b33a99cbed8a2601e61775588 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-23 (Tue, 23 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Tweak formatting of generated C code Commit: 7777736f500dfa2a029bb01f74a948cfbc62cc95 https://github.com/MLton/mlton/commit/7777736f500dfa2a029bb01f74a948cfbc62cc95 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-24 (Wed, 24 Jul 2019) Changed paths: M include/common-main.h Log Message: ----------- The `{Load,Save}Array` macros are used as statements Commit: 5280248c49c752e8764887f9ceb54cfdbf50eb20 https://github.com/MLton/mlton/commit/5280248c49c752e8764887f9ceb54cfdbf50eb20 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-24 (Wed, 24 Jul 2019) Changed paths: M runtime/export.h Log Message: ----------- Assume C compiler supports `__attribute__((visibility("...")))` Commit: 648fd9262fadcb2d5fc5fd34c9fd221b3a55b8d7 https://github.com/MLton/mlton/commit/648fd9262fadcb2d5fc5fd34c9fd221b3a55b8d7 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-24 (Wed, 24 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/c-codegen/c-codegen.sig Log Message: ----------- Change `CCodegen.C.call{,NoSemi}` to return `string` Commit: 01b3e489025f3578ce832a164f073e8a812634ca https://github.com/MLton/mlton/commit/01b3e489025f3578ce832a164f073e8a812634ca Author: Matthew Fluet <mat...@gm...> Date: 2019-07-24 (Wed, 24 Jul 2019) Changed paths: M include/c-main.h Log Message: ----------- Fix `MLtonLibrary` macro in `c-main.h`; no longer called with a `mc` arg Commit: c0ccebb8f39a9a96f79e64383056e8a98bae339a https://github.com/MLton/mlton/commit/c0ccebb8f39a9a96f79e64383056e8a98bae339a Author: Matthew Fluet <mat...@gm...> Date: 2019-07-24 (Wed, 24 Jul 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Remove `#include <stdio.h>` from `c-chunk.h` Commit: 006269b9c48cf940ce318d80f5a642006b70c446 https://github.com/MLton/mlton/commit/006269b9c48cf940ce318d80f5a642006b70c446 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-25 (Thu, 25 Jul 2019) Changed paths: M include/c-chunk.h 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: ----------- Eliminate unused `Machine.Operand.Contents` constructor Commit: 01fe2401b38aabc6ccc8172b5f02503a9ac95007 https://github.com/MLton/mlton/commit/01fe2401b38aabc6ccc8172b5f02503a9ac95007 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-26 (Fri, 26 Jul 2019) Changed paths: M mlton/control/scale.sml Log Message: ----------- Add `Scale.toBytes` Commit: 079e7ff39816685c9d477d709517efa83e3726c8 https://github.com/MLton/mlton/commit/079e7ff39816685c9d477d709517efa83e3726c8 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-26 (Fri, 26 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Lightly refactor CCodegen Commit: 9a4cadb8b773dde18021debd6dd988680d857cc0 https://github.com/MLton/mlton/commit/9a4cadb8b773dde18021debd6dd988680d857cc0 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-26 (Fri, 26 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Remove support for `ProfileLabel` in C codegen The supporting C-side macro `ProfileLabel` was removed long ago. Commit: a6a361717f70ee9f4958dac3ffc88f6396da7da6 https://github.com/MLton/mlton/commit/a6a361717f70ee9f4958dac3ffc88f6396da7da6 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-26 (Fri, 26 Jul 2019) Changed paths: M mlton/atoms/real-size.fun M mlton/atoms/real-size.sig Log Message: ----------- Add `RealSize.compare` Commit: 31d1f93ca3c814246aa93752ec8ce06db6086796 https://github.com/MLton/mlton/commit/31d1f93ca3c814246aa93752ec8ce06db6086796 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-29 (Mon, 29 Jul 2019) Changed paths: M lib/mlton/basic/bool.sig M lib/mlton/basic/bool.sml Log Message: ----------- Add `Bool.hash` Commit: cec30c52fb6e722ad38b4c5a9ec1933c2a8cc409 https://github.com/MLton/mlton/commit/cec30c52fb6e722ad38b4c5a9ec1933c2a8cc409 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-29 (Mon, 29 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Make a major refactoring of LLVM codegen Highlights: - Introduce a `structure LLVM` with sub-structures for `Type`, `Value`, `Instr`, `MetaData`, and `ModuleContext`. While much of the LLVM codegen still uses strings, the modules enforce a more correct usage. - Unify `implementsPrim` and `primApp`. - Eliminate a number of instances of code duplication in the translation of primitives. - Eliminate awkward `Context` type, which was a form of manual closure conversion. - Favor direct output and using `AppendList.t` over constructing large strings. - More closely match the C codegen. Commit: e34905fadde7da6e1c90543a841de554eed79843 https://github.com/MLton/mlton/commit/e34905fadde7da6e1c90543a841de554eed79843 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M include/c-main.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Declare/Define `nextChunks` as `ChunkFnPtr_t const` Commit: 04af37ae12f8b9ed9052b74abddf018815bc4579 https://github.com/MLton/mlton/commit/04af37ae12f8b9ed9052b74abddf018815bc4579 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M runtime/gc/call-stack.c M runtime/gc/call-stack.h M runtime/gc/frame.h M runtime/gc/init.c M runtime/gc/object.c M runtime/gc/object.h M runtime/gc/profiling.c M runtime/gc/profiling.h M runtime/gc/sources.c M runtime/gc/sources.h Log Message: ----------- Declare/Define more static arrays as `const` Commit: 0a649f266f2400d858c4730b275e68ea5b39bff1 https://github.com/MLton/mlton/commit/0a649f266f2400d858c4730b275e68ea5b39bff1 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Include all codegen prims in `CCodegen.implementsPrim` Commit: 9b7b2bdc246e71b944b37a19a2f64a868259e92e https://github.com/MLton/mlton/commit/9b7b2bdc246e71b944b37a19a2f64a868259e92e Author: Matthew Fluet <mat...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M basis-library/real/real.sml M mlton/codegen/c-codegen/c-codegen.fun M runtime/basis/Real/Real-ops.h Log Message: ----------- Implement `Real<N>_qequal` for C codegen Commit: 7b558195760eead6cdd00c14b847d62b94ceeef7 https://github.com/MLton/mlton/commit/7b558195760eead6cdd00c14b847d62b94ceeef7 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M runtime/basis/Real/Real-ops.h Log Message: ----------- Use `is{less,lessequal}` for `Real<N>_l{t,e}` in C codegen Commit: 32606ccb5df578236c339243eb1f09864e1bfc0a https://github.com/MLton/mlton/commit/32606ccb5df578236c339243eb1f09864e1bfc0a Author: Matthew Fluet <mat...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/parallel-move.fun M mlton/backend/parallel-move.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: ----------- Eliminate `Machine.Statement.Noop` Commit: 27709ef748f49be9ee37ce3f6aec5bbbce5849d7 https://github.com/MLton/mlton/commit/27709ef748f49be9ee37ce3f6aec5bbbce5849d7 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-31 (Wed, 31 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml Log Message: ----------- Generalize LLVM type-based alias-analysis Include `Global` and `GCState` domains, distinct from `Heap`, `Stack`, and `Other`. For each domain, include optional extra information for further distinctions: * `GCState`: offset * `Global`: cty, index * `Heap`: kind, tycon, cty, offset * `Stack`: offset Not all options lead to sound alias analysis; limitations are noted in comments. Commit: b825f5633d72f590342a046cc2158495add4b7b7 https://github.com/MLton/mlton/commit/b825f5633d72f590342a046cc2158495add4b7b7 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-31 (Wed, 31 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml Log Message: ----------- Add `-llvm-aamd scope` for simple `noalias`/`alias.scope` alias-analysis metadata Commit: 311331c100387aaea35d6debf3e36c1d17c389b0 https://github.com/MLton/mlton/commit/311331c100387aaea35d6debf3e36c1d17c389b0 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-31 (Wed, 31 Jul 2019) Changed paths: M mlton/ast/ast-core.fun M mlton/ast/ast-core.sig M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/rep-type.fun M mlton/backend/ssa2-to-rssa.fun M mlton/elaborate/elaborate-core.fun M mlton/front-end/ml.grm M mlton/ssa/split-types.fun Log Message: ----------- Add `inline` attribute for `_import` This allows marking an `_import`ed C function to have its prototype emitted with the `inline` keyword. This will be used to properly mark Basis Library functions (as opposed to primitives) that are provided as `inline` to be properly annotated as such in the emitted C declarations. Commit: c86449276e3862e68708562031cb55f8d9e5e3b5 https://github.com/MLton/mlton/commit/c86449276e3862e68708562031cb55f8d9e5e3b5 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-31 (Wed, 31 Jul 2019) Changed paths: M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-real.sml M basis-library/primitive/primitive.mlb M include/c-chunk.h M runtime/basis-ffi.h M runtime/basis/Real/Real-ops.h M runtime/basis/Word/Word-ops.h M runtime/basis/coerce.h M runtime/basis/cpointer.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml M runtime/gen/gen-basis-ffi.sml M runtime/platform.h Log Message: ----------- Use C99/C11 `inline` for primitive and Basis Library functions Previously, functions meant to be inlined because they correspond to primitives or Basis Library functions (e.g., `Real<N>` and `Real<N>.Math`) were marked `static inline` when included via `c-chunk.h`. If a C compiler chooses not to inline a function (such as clang at -O1), then each .o file included its own copy of the function (and the copy of the function provided by `libmlton.a` was not linked into the final executable). Now, functions are marked `inline` when included via `c-chunk.h` (and the corresponding `_import` is given the `inline` attribute). The C99/C11 semantics of `inline` requires the C compiler to *not* include a copy of the function in the .o file (if it chooses not to inline the function) and treat the function as an external reference. The copy of the function provided by `libmlton.a` is used to satisfy the external reference when linking. Commit: 4f2d213749dd1e9be40202d78d00809afabf671f https://github.com/MLton/mlton/commit/4f2d213749dd1e9be40202d78d00809afabf671f Author: Matthew Fluet <mat...@gm...> Date: 2019-08-01 (Thu, 01 Aug 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Mark primitive and Basis Library functions as `__attribute__((always_inline))` Although the functions are small and marked `inline`, clang at -O1 does not inline the functions (even with the `-finline-functions` option). Commit: d1df0de8c00829d9edc0e2442437ec1ff2c072c2 https://github.com/MLton/mlton/commit/d1df0de8c00829d9edc0e2442437ec1ff2c072c2 Author: Matthew Fluet <mat...@gm...> Date: 2019-08-08 (Thu, 08 Aug 2019) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Use `-chunkify simple` for a `ControlFlags.Chunkify.simpleDefault` Commit: 6b738b8719dc71499b557ce7c8c8066e7d8b81e7 https://github.com/MLton/mlton/commit/6b738b8719dc71499b557ce7c8c8066e7d8b81e7 Author: Matthew Fluet <mat...@gm...> Date: 2019-08-08 (Thu, 08 Aug 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-codegen-fuse-op-and-chk {false|true}` compile-time flag It appears that GCC (and, to a lesser extent) Clang/LLVM do not always successfully fuse adjacent `Word<N>_<op>` and `Word{S,U}<N>_<op>CheckP` primitives. The performance results reported at https://github.com/MLton/mlton/pull/273 and https://github.com/MLton/mlton/pull/292 suggest that this does not always have significant impact, but a close look at the `md5` benchmark shows that the native codegen significantly outperforms the C codegen with gcc-9 due to redundant arithmetic computations (one for `Word{S,U}<N>_<op>CheckP` and another for `Word<N>_<op>`). This flag will be used to enable explicit fusing of adjacent `Word<N>_<op>` and `Word{S,U}<N>_<op>CheckP` primitives in the codegens. Commit: 3d1e89ccfec002a3f0ff6d46c4241a275e80c04f https://github.com/MLton/mlton/commit/3d1e89ccfec002a3f0ff6d46c4241a275e80c04f Author: Matthew Fluet <mat...@gm...> Date: 2019-08-08 (Thu, 08 Aug 2019) Changed paths: M runtime/basis/Word/Word-ops.h Log Message: ----------- Add `Word{S,U}<N>_{add,mul,neg,sub}AndCheck` fns to `Word-ops.h` It appears that GCC (and, to a lesser extent) Clang/LLVM do not always successfully fuse adjacent `Word<N>_<op>` and `Word{S,U}<N>_<op>CheckP` primitives. The performance results reported at https://github.com/MLton/mlton/pull/273 and https://github.com/MLton/mlton/pull/292 suggest that this does not always have significant impact, but a close look at the `md5` benchmark shows that the native codegen significantly outperforms the C codegen with gcc-9 due to redundant arithmetic computations (one for `Word{S,U}<N>_<op>CheckP` and another for `Word<N>_<op>`). These functions compute both the arithmetic result and a boolean indicating overflow (using `__builtin_<op>_overflow`). They will be used for explicit fusing of adjacent `Word<N>_<op>` and `Word{S,U}<N>_<op>CheckP` primitives in the C codegen for `-codegen-fuse-op-and-check true`. Commit: 68f8512b6b9caab6948d273ddf8cc7a917c53a3f https://github.com/MLton/mlton/commit/68f8512b6b9caab6948d273ddf8cc7a917c53a3f Author: Matthew Fluet <mat...@gm...> Date: 2019-08-08 (Thu, 08 Aug 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Implement `-codegen-fuse-op-and-check true` for C codegen It appears that GCC (and, to a lesser extent) Clang/LLVM do not always successfully fuse adjacent `Word<N>_<op>` and `Word{S,U}<N>_<op>CheckP` primitives. The performance results reported at https://github.com/MLton/mlton/pull/273 and https://github.com/MLton/mlton/pull/292 suggest that this does not always have significant impact, but a close look at the `md5` benchmark shows that the native codegen significantly outperforms the C codegen with gcc-9 due to redundant arithmetic computations (one for `Word{S,U}<N>_<op>CheckP` and another for `Word<N>_<op>`). (Note: Because the final md5 state is not used by the `md5` benchmark program, MLton actually optimizes out most of the md5 computation. What is left is a lot of arithmetic from `PackWord32Little.subVec` to check for indices that should raise `Subscript`.) For example, with `-codegen-fuse-op-and-check false` and gcc-9, the `transform` function of `md5` has the following assembly: movl %r9d, %r10d subl $1, %r10d jo .L650 leal -1(%r8), %r10d movl %r10d, %r12d addl %r10d, %edx jo .L650 addl %r10d, %r11d cmpl %eax, %r11d jnb .L656 movl %ebp, %edx addl $1, %edx jo .L659 leal 1(%rcx), %edx movl %edx, %r11d imull %r9d, %r11d jo .L650 imull %r8d, %edx movl %edx, %r11d addl %r10d, %r11d jo .L650 leal (%rdx,%r10), %r11d cmpl %eax, %r11d jnb .L665 What seems to have happened is that gcc has arranged for equivalent values to be in `%r8` and `%r9`. In the first three lines, there is an implementation of `WordS32_subCheckP (X, 1)` using `subl/jo`, while in the fourth line, there is an implementation of `Word32_sub (X, 1)` using `lea` with an offset of `-1`. Notice that `%r10` is used for the result of both, so the fourth line is redundant (the value is already in `%r10`). On the other hand, with `-codegen-fuse-op-and-check true` and gcc-9, the `transform` function of `md5` has the following assembly: movl %r8d, %r9d subl $1, %r9d jo .L645 addl %r9d, %ecx jo .L645 cmpl %edx, %ecx jnb .L651 movl %eax, %ecx addl $1, %ecx jo .L654 imull %r8d, %ecx jo .L645 addl %r9d, %ecx jo .L645 cmpl %edx, %ecx jnb .L660 Commit: d7853bce4f920f85255ff20c727e902e00bcf42a https://github.com/MLton/mlton/commit/d7853bce4f920f85255ff20c727e902e00bcf42a Author: Matthew Fluet <mat...@gm...> Date: 2019-08-16 (Fri, 16 Aug 2019) Changed paths: M include/c-common.h M include/c-main.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Obscure returns from `Chunk<N>` fns in C and LLVM codegens On some small programs (with all `Chunk<N>` fns in the same compilation unit), Clang could observe that all `Chunk<N>` fns return the value `-2` (arising from a C call with no return point). With this knowledge, it would replace a tail call from one `Chunk<N>` fn to a `Chunk<M>` fn with a non-tail call and an explicit `ret -2`. Breaking the tail call and not performing tail-call optimization leads to unbounded C stack growth and segmentation faults. LLVM could make the same optimization, but the LLVM codegen did not exhibit the same problem (perhaps it requires a specific LLVM optimization pass that is requested by Clang at `-O1`, but not included by default by opt at `-O2`). Obscuring the manifest result value by using a function call seems to prevent the problem (though, Clang could observe that all `Chunk<N>` fns return the value `MLton_unreachable()` and make the same transformation, but presumable propagating a function call is considered more expensive than propagating a constant). It could arise again with aggressive link-time optimization. Commit: 82c019f4f49615a58827f2a13c9a83df034ecad9 https://github.com/MLton/mlton/commit/82c019f4f49615a58827f2a13c9a83df034ecad9 Author: Matthew Fluet <mat...@gm...> Date: 2019-08-16 (Fri, 16 Aug 2019) Changed paths: M basis-library/primitive/prim1.sml M mlton/codegen/amd64-codegen/amd64-simplify.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-simplify.fun Log Message: ----------- Add comments about fusing of adjacent `Word<N>_<op>` and `Word{S,U}<N>_<op>CheckP` primitives Commit: 44de25ddaf8d066d56e07c3425fd882efeb39706 https://github.com/MLton/mlton/commit/44de25ddaf8d066d56e07c3425fd882efeb39706 Author: Matthew Fluet <mat...@gm...> Date: 2019-08-16 (Fri, 16 Aug 2019) Changed paths: M mlton/main/main.fun Log Message: ----------- Eliminate redundant debug flags in `compileC` and `compileS` Commit: 79e7c8126c07cd8ae03ad859338ff1d211e0d091 https://github.com/MLton/mlton/commit/79e7c8126c07cd8ae03ad859338ff1d211e0d091 Author: Matthew Fluet <mat...@gm...> Date: 2019-08-16 (Fri, 16 Aug 2019) Changed paths: M mlton/main/main.fun Log Message: ----------- Add `-relocation-model=pic` to `llc` options when `positionIndependent` See MLton/mlton#190 and MLton/mlton#191 On systems (e.g., gcc 7.04 on Ubuntu 18.04) that error when linking PIC and non-PIC code, the default behavior of `llc` to generate non-PIC code leads to link-time errors. Commit: 61de560b08ce46298d3a8b427a01f3b9cde264aa https://github.com/MLton/mlton/commit/61de560b08ce46298d3a8b427a01f3b9cde264aa Author: Matthew Fluet <mat...@gm...> Date: 2019-08-16 (Fri, 16 Aug 2019) Changed paths: M basis-library/primitive/prim1.sml M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Implement `-codegen-fuse-op-and-check true` for LLVM codegen Commit: 53631992f4d1f67807c5d97c36910b10278a4d07 https://github.com/MLton/mlton/commit/53631992f4d1f67807c5d97c36910b10278a4d07 Author: Matthew Fluet <mat...@gm...> Date: 2019-08-17 (Sat, 17 Aug 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Use manifest temps for `Word{S,U}<N>_<op>AndCheck` calls in C codegen When a Machine IR temp is used as a destination for `Word{S,U}<N>_<op>AndCheck`, by having its address taken, Clang sometimes fails to turn the `alloca` introduced for the C local variable into an SSA variable. Moreover, Clang introduces `@llvm.lifetime.{start,end}` intrinsic calls at chunk entry and exit; the call at the chunk exit (although they are no-ops) inhibit tail call optimization. Using a manifest temporary C local variable for the results of `Word{S,U}<N>_<op>AndCheck` and then copying them into Machine IR destination operands seems avoid the problem. Commit: 74b77ea5fa61aeeeae280c6ad816cb777db1b225 https://github.com/MLton/mlton/commit/74b77ea5fa61aeeeae280c6ad816cb777db1b225 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Avoid `fneg` LLVM instruction (not present prior to LLVM 8.0) Commit: 098009d4965eb08ed74da72f882608d7a18c3ff9 https://github.com/MLton/mlton/commit/098009d4965eb08ed74da72f882608d7a18c3ff9 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M .travis.yml M CHANGELOG.adoc M Makefile M Makefile.config M basis-library/mlton/call-stack.sml M basis-library/mlton/mlton.sig M basis-library/mlton/mlton.sml M basis-library/primitive/prim-mlton.sml M basis-library/system/io.sml M benchmark/main.sml M benchmark/tests/DLXSimulator.sml M benchmark/tests/flat-array.sml M benchmark/tests/md5.sml M benchmark/tests/peek.sml M benchmark/tests/pidigits.sml A benchmark/tests/tailmerge.sml M benchmark/tests/tak.sml M benchmark/update-counts.sh M bin/regression M bin/travis-ci M doc/examples/size/size.sml M doc/guide/src/MLtonStructure.adoc M include/amd64-main.h M include/c-chunk.h M include/c-main.h M include/common-main.h M include/x86-main.h M lib/stubs/basis-stubs-for-smlnj/char.sml M lib/stubs/basis-stubs-for-smlnj/int-inf.sml R lib/stubs/basis-stubs-for-smlnj/int.sml A lib/stubs/basis-stubs-for-smlnj/pack-real32.sml A lib/stubs/basis-stubs-for-smlnj/pack-real64.sml A lib/stubs/basis-stubs-for-smlnj/pack-word64.sml M lib/stubs/basis-stubs-for-smlnj/pervasive.sml M lib/stubs/basis-stubs-for-smlnj/real.sml M lib/stubs/basis-stubs-for-smlnj/sources.cm M lib/stubs/basis-stubs-for-smlnj/string.sml R lib/stubs/basis-stubs-for-smlnj/word.sml M lib/stubs/mlton-stubs-for-polyml/mlton.sml M lib/stubs/mlton-stubs-for-smlnj/mlton.sml M lib/stubs/mlton-stubs/mlton.sig M lib/stubs/mlton-stubs/mlton.sml M mlton/Makefile M mlton/ast/sources.cm M mlton/atoms/cases.fun M mlton/atoms/cases.sig M mlton/atoms/con-.fun M mlton/atoms/hash-type.fun M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/atoms/tycon.fun M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/representation.sig M mlton/backend/rssa-live.fun M mlton/backend/rssa-live.sig M mlton/backend/rssa-restore.fun M mlton/backend/rssa-restore.sig A mlton/backend/rssa-shrink.fun A mlton/backend/rssa-shrink.sig M mlton/backend/rssa-simplify.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig A mlton/backend/rssa-type-check.fun A mlton/backend/rssa-type-check.sig M mlton/backend/rssa.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa2-to-rssa.fun A mlton/backend/static.fun A mlton/backend/static.sig M mlton/closure-convert/closure-convert.fun M mlton/closure-convert/sources.cm M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/amd64-codegen/sources.cm M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/c-codegen/sources.cm M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/llvm-codegen/sources.cm M mlton/codegen/sources.cm M mlton/codegen/x86-codegen/sources.cm M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-mlton-basic.fun M mlton/codegen/x86-codegen/x86-mlton-basic.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sml M mlton/control/sources.cm M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton... [truncated message content] |
From: Matthew F. <no...@gi...> - 2019-11-06 19:52:47
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 033757145571dbc2f0fa0c1d743d20b1f187f45b https://github.com/MLton/mlton/commit/033757145571dbc2f0fa0c1d743d20b1f187f45b Author: Nick Kostyria <kos...@gm...> Date: 2019-11-06 (Wed, 06 Nov 2019) Changed paths: M doc/guide/src/Features.adoc M runtime/platform/freebsd.c Log Message: ----------- Add support for ARM FreeBSD and ARM64 (AArch64) FreeBSD. Commit: 60b338bbd9c3247dd0a4d4a4fa040721ad2b2b23 https://github.com/MLton/mlton/commit/60b338bbd9c3247dd0a4d4a4fa040721ad2b2b23 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-06 (Wed, 06 Nov 2019) Changed paths: M doc/guide/src/Features.adoc M runtime/platform/freebsd.c Log Message: ----------- Merge pull request #349 from kni/master Add support for ARM FreeBSD and ARM64 (AArch64) FreeBSD. Compare: https://github.com/MLton/mlton/compare/89891a4114b9...60b338bbd9c3 |
From: Matthew F. <no...@gi...> - 2019-11-05 21:43:00
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: e222d44d8bca2ab7ad106013795f4221e4fd0d91 https://github.com/MLton/mlton/commit/e222d44d8bca2ab7ad106013795f4221e4fd0d91 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M CHANGELOG.adoc Log Message: ----------- Update `CHANGELOG.adoc` Commit: 89891a4114b92affb39f111449c940c2c5be8d41 https://github.com/MLton/mlton/commit/89891a4114b92affb39f111449c940c2c5be8d41 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M CHANGELOG.adoc Log Message: ----------- Merge pull request #347 from MatthewFluet/changelog-updates Update `CHANGELOG.adoc` Compare: https://github.com/MLton/mlton/compare/aeda3eab16ee...89891a4114b9 |
From: Matthew F. <no...@gi...> - 2019-11-05 20:59:43
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: ec15a237d598d0477d2d5a04c01ec5605d18c410 https://github.com/MLton/mlton/commit/ec15a237d598d0477d2d5a04c01ec5605d18c410 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M basis-library/system/io.sml Log Message: ----------- Do not implement `OS.IO.poll` as a restartable system call Closes MLton/mlton#326. See https://sourceforge.net/p/mlton/mailman/message/36490863/. Commit: aeda3eab16eeaedc08c5597ae36a28ac40eb3217 https://github.com/MLton/mlton/commit/aeda3eab16eeaedc08c5597ae36a28ac40eb3217 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M basis-library/system/io.sml Log Message: ----------- Merge pull request #346 from MatthewFluet/poll-restartable Do not implement `OS.IO.poll` as a restartable system call Compare: https://github.com/MLton/mlton/compare/c6bee2036ab7...aeda3eab16ee |
From: Matthew F. <no...@gi...> - 2019-11-05 20:27:18
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: f1d958ebf37d8c056ce82df50edcc031985c90d6 https://github.com/MLton/mlton/commit/f1d958ebf37d8c056ce82df50edcc031985c90d6 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/tests/DLXSimulator.sml Log Message: ----------- Update `DLXSimulator.sml` benchmark Generalize implementation of I/O instructions and only output the last run of each DLX program in the benchmark; avoid excess I/O during benchmark execution. Commit: d24ac176b5e60457b166cd9b80bfe9419c896482 https://github.com/MLton/mlton/commit/d24ac176b5e60457b166cd9b80bfe9419c896482 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/tests/pidigits.sml Log Message: ----------- Fix reference to `MainShootout` in `pidigits.sml` benchmark Commit: 7aba61d02dab68ced7d9ccfe645fcaf59da0097f https://github.com/MLton/mlton/commit/7aba61d02dab68ced7d9ccfe645fcaf59da0097f Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/tests/tak.sml Log Message: ----------- Verify result in `tak.sml` benchmark. Commit: 9c20d423b702f8bd73f899029a76b90f8875ac81 https://github.com/MLton/mlton/commit/9c20d423b702f8bd73f899029a76b90f8875ac81 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/tests/flat-array.sml Log Message: ----------- Verify result in `flat-array.sml` benchmark. The C and LLVM codegens, at sufficiently high optimization levels, are able to eliminate the arithmetic computation from the benchmark. Presumably, the LLVM and C compilers are able to observe that the `sum` value is unused and the `Vector.foldl` loop must terminate. See MLton/mlton#71. Commit: d1ac6a6047ad6ec353333f96e94b3349250db36e https://github.com/MLton/mlton/commit/d1ac6a6047ad6ec353333f96e94b3349250db36e Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/main.sml A benchmark/tests/tailmerge.sml Log Message: ----------- Add a `tailmerge.sml` benchmark See MLton/mlton#299. Commit: 11518ba0edbe703a1d079698cd86c0e87db22ad2 https://github.com/MLton/mlton/commit/11518ba0edbe703a1d079698cd86c0e87db22ad2 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/tests/peek.sml Log Message: ----------- Avoid excess I/O during `peek.sml` benchmark Commit: 020e8bf210df1d65eb9339536a224bc67f80c492 https://github.com/MLton/mlton/commit/020e8bf210df1d65eb9339536a224bc67f80c492 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/tests/peek.sml Log Message: ----------- Make `peek.sml` benchmark more realistic Closes MLton/mlton#312. Create multiple properties, with multiple types and values, on multiple property lists. Previously, with exactly one property with one value created on one list, `ConstantPropagation` was able to propagate the value through the program, so that by the end of ssa, the function is a simple loop, subtracting 1 from one argument, and adding 13 to the other. Commit: 2daaebfda443074582dce644222f0688c0d12cbf https://github.com/MLton/mlton/commit/2daaebfda443074582dce644222f0688c0d12cbf Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/tests/md5.sml Log Message: ----------- Update `md5.sml` benchmark to use final md5 state Previously, the final md5 state was not used by the `md5` benchmark program, and MLton actually optimized out most of the md5 computation. What was left was a lot of arithmetic from `PackWord32Little.subVec` to check for indices that should raise `Subscript`.) Commit: 154dca637c1ae7d7bde3893860c54ee286c5b359 https://github.com/MLton/mlton/commit/154dca637c1ae7d7bde3893860c54ee286c5b359 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/main.sml M benchmark/update-counts.sh Log Message: ----------- Update benchmark iteration counts Commit: c6bee2036ab70c6dc1a296b915344a9fe7a47ded https://github.com/MLton/mlton/commit/c6bee2036ab70c6dc1a296b915344a9fe7a47ded Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-05 (Tue, 05 Nov 2019) Changed paths: M benchmark/main.sml M benchmark/tests/DLXSimulator.sml M benchmark/tests/flat-array.sml M benchmark/tests/md5.sml M benchmark/tests/peek.sml M benchmark/tests/pidigits.sml A benchmark/tests/tailmerge.sml M benchmark/tests/tak.sml M benchmark/update-counts.sh Log Message: ----------- Merge pull request #345 from MatthewFluet/benchmark-updates Updates to benchmark infrastructure Compare: https://github.com/MLton/mlton/compare/ba9a39fb7434...c6bee2036ab7 |
From: Matthew F. <no...@gi...> - 2019-11-04 17:11:06
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7aefe2dcdbee7142a0f1e47fc1599d59a73076dd https://github.com/MLton/mlton/commit/7aefe2dcdbee7142a0f1e47fc1599d59a73076dd Author: Matthew Fluet <mat...@gm...> Date: 2019-11-04 (Mon, 04 Nov 2019) Changed paths: M runtime/gc/world.c Log Message: ----------- Cleanup comments and error messages in `runtime/gc/world.c` Commit: 79e58257864fb667f80f62e2d5e614c15ddacc87 https://github.com/MLton/mlton/commit/79e58257864fb667f80f62e2d5e614c15ddacc87 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-04 (Mon, 04 Nov 2019) Changed paths: M runtime/gc/world.c Log Message: ----------- Detect incompatible use of ASLR/PIE on load-world This is more helpful than a segmentation fault. Commit: faebe121bcd3efa335cc986eb0561250b15229de https://github.com/MLton/mlton/commit/faebe121bcd3efa335cc986eb0561250b15229de Author: Matthew Fluet <mat...@gm...> Date: 2019-11-04 (Mon, 04 Nov 2019) Changed paths: M bin/regression Log Message: ----------- Compile `world*` regression tests with `-link-opt -no-pie` Commit: ba9a39fb7434bb2be52bbe90568951b2758d6ef1 https://github.com/MLton/mlton/commit/ba9a39fb7434bb2be52bbe90568951b2758d6ef1 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-04 (Mon, 04 Nov 2019) Changed paths: M bin/regression M runtime/gc/world.c Log Message: ----------- Merge pull request #343 from MatthewFluet/world-detect-pie Detect incompatible use of ASLR/PIE on `load-world` Compare: https://github.com/MLton/mlton/compare/31689bc2724f...ba9a39fb7434 |
From: Matthew F. <no...@gi...> - 2019-11-04 12:02:49
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 3e4ffca93cabc5d5b847c3535bb2d5b87705973e https://github.com/MLton/mlton/commit/3e4ffca93cabc5d5b847c3535bb2d5b87705973e Author: Matthew Fluet <mat...@gm...> Date: 2019-11-04 (Mon, 04 Nov 2019) Changed paths: M regression/size.rep32a4.ok M regression/size.rep32a8.ok M regression/size.rep64a4.ok M regression/size.rep64a8.ok M regression/size.sml Log Message: ----------- Tweak `size.sml` regression to demonstrate bug in `GC_size` `GC_size` (and `GC_share`) can be called with object-pointer-sized but non-pointer values (e.g., the `NONE` variant of a `int list option`). Commit: dc545ded80bceecf42e0e6ae0f2e9752ec1ff16a https://github.com/MLton/mlton/commit/dc545ded80bceecf42e0e6ae0f2e9752ec1ff16a Author: Matthew Fluet <mat...@gm...> Date: 2019-11-04 (Mon, 04 Nov 2019) Changed paths: M runtime/gc/share.c M runtime/gc/size.c Log Message: ----------- Fix bug in `GC_{share,size}` with non-pointer roots `GC_size` and `GC_share` can be called with object-pointer-sized but non-pointer values (e.g., the `NONE` variant of a `int list option`). Commit: 31689bc2724f7168610053f307e0d7b5eb164b7d https://github.com/MLton/mlton/commit/31689bc2724f7168610053f307e0d7b5eb164b7d Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-04 (Mon, 04 Nov 2019) Changed paths: M regression/size.rep32a4.ok M regression/size.rep32a8.ok M regression/size.rep64a4.ok M regression/size.rep64a8.ok M regression/size.sml M runtime/gc/share.c M runtime/gc/size.c Log Message: ----------- Merge pull request #342 from MatthewFluet/size-and-share-nonptr-bug Fix bug in `GC_{share,size}` with non-pointer roots `GC_size` and `GC_share` can be called with object-pointer-sized but non-pointer values (e.g., the `NONE` variant of a `int list option`). Compare: https://github.com/MLton/mlton/compare/4d3c61931ff0...31689bc2724f |
From: Matthew F. <no...@gi...> - 2019-11-02 14:10:11
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: f08665fec133e80c1fc98c4516f27233fe2ef831 https://github.com/MLton/mlton/commit/f08665fec133e80c1fc98c4516f27233fe2ef831 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-02 (Sat, 02 Nov 2019) Changed paths: M basis-library/mlton/call-stack.sml M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Fix whitespace Commit: 4d3c61931ff02de955ba8b77400ea67bb2d716eb https://github.com/MLton/mlton/commit/4d3c61931ff02de955ba8b77400ea67bb2d716eb Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-02 (Sat, 02 Nov 2019) Changed paths: M basis-library/mlton/call-stack.sml M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Merge pull request #341 from MatthewFluet/init-globals-rssa-main Fix whitespace Compare: https://github.com/MLton/mlton/compare/debc48964f44...4d3c61931ff0 |
From: Matthew F. <no...@gi...> - 2019-11-02 13:57:47
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: fcbf9177f21b9401f8dd449d37f64db2abc5aedd https://github.com/MLton/mlton/commit/fcbf9177f21b9401f8dd449d37f64db2abc5aedd Author: Matthew Fluet <mat...@gm...> Date: 2019-11-02 (Sat, 02 Nov 2019) Changed paths: M basis-library/mlton/call-stack.sml M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Tail call from RSSA initGlobals to translated SSA2 main function Commit: debc48964f4490bdbe7b9b7cda25644f7ab20821 https://github.com/MLton/mlton/commit/debc48964f4490bdbe7b9b7cda25644f7ab20821 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-02 (Sat, 02 Nov 2019) Changed paths: M basis-library/mlton/call-stack.sml M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Merge pull request #340 from MatthewFluet/init-globals-rssa-main Tail call from RSSA initGlobals to translated SSA2 main function Compare: https://github.com/MLton/mlton/compare/8a130836ee27...debc48964f44 |
From: Matthew F. <no...@gi...> - 2019-11-02 11:11:44
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 2d7bd28f67bd63368813c1c6fac2aff85efff5d9 https://github.com/MLton/mlton/commit/2d7bd28f67bd63368813c1c6fac2aff85efff5d9 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/int.sml M lib/stubs/basis-stubs-for-smlnj/pervasive.sml M lib/stubs/basis-stubs-for-smlnj/sources.cm M lib/stubs/basis-stubs-for-smlnj/word.sml Log Message: ----------- Drop `Int31` and `Word31` from SML/NJ Basis Library stubs Commit: a893892c84dd87374db901f1308cb41960bcad27 https://github.com/MLton/mlton/commit/a893892c84dd87374db901f1308cb41960bcad27 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/char.sml M lib/stubs/basis-stubs-for-smlnj/sources.cm M lib/stubs/basis-stubs-for-smlnj/string.sml Log Message: ----------- Conditionally drop `Char`/`String` fixes from SML/NJ BasisLib stubs Commit: 7f5a2669d82454a4d29ce008d52156ef47041d70 https://github.com/MLton/mlton/commit/7f5a2669d82454a4d29ce008d52156ef47041d70 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/sources.cm M lib/stubs/basis-stubs-for-smlnj/word.sml Log Message: ----------- Drop `Word` fixes from SML/NJ BasisLib stubs Fixed in SML/NJ 110.57. Commit: ceee731869feb0343bdca7025d6412cc1b5c063f https://github.com/MLton/mlton/commit/ceee731869feb0343bdca7025d6412cc1b5c063f Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/int.sml M lib/stubs/basis-stubs-for-smlnj/sources.cm Log Message: ----------- Drop `Int` fixes from SML/NJ BasisLib stubs Fixed in SML/NJ 110.57, although not for `LargeInt.fmt` or `IntInf.fmt`. Commit: 31a900fb67a5fa4b34f29ae381a4c7d807b583a7 https://github.com/MLton/mlton/commit/31a900fb67a5fa4b34f29ae381a4c7d807b583a7 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: A lib/stubs/basis-stubs-for-smlnj/pack-word64.sml M lib/stubs/basis-stubs-for-smlnj/sources.cm R lib/stubs/basis-stubs-for-smlnj/word.sml Log Message: ----------- Conditionally include `PackWord64{Big,Little}` in SML/NJ BasisLib stubs Commit: 3390644b68e2730200e10caffd4bfc22c7d3799f https://github.com/MLton/mlton/commit/3390644b68e2730200e10caffd4bfc22c7d3799f Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: A lib/stubs/basis-stubs-for-smlnj/pack-real32.sml A lib/stubs/basis-stubs-for-smlnj/pack-real64.sml M lib/stubs/basis-stubs-for-smlnj/real.sml M lib/stubs/basis-stubs-for-smlnj/sources.cm Log Message: ----------- Conditionally include `PackReal64{Big,Little}` in SML/NJ BasisLib stubs Commit: 53f735514ff987c526305e0213380454c173635c https://github.com/MLton/mlton/commit/53f735514ff987c526305e0213380454c173635c Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/real.sml Log Message: ----------- Drop `Real.fmt` fix for leading `~` for `~0.0` in SML/NJ BasisLib stubs Fixed in SML/NJ 110.73. Commit: f8d0ab558eecb7be5cc7624918250b8511844bec https://github.com/MLton/mlton/commit/f8d0ab558eecb7be5cc7624918250b8511844bec Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/real.sml Log Message: ----------- Refactor `Real.fromString` in SML/NJ BasisLib stubs Note that the SML/NJ bug (raises `Overflow` on large exponents) was fixed in SML/NJ 118.83. However, it is too awkward to only conditionally apply the fix and the performance overhead is negligible. Commit: 645055fd2570e030360a6c679f39d9029bba67c4 https://github.com/MLton/mlton/commit/645055fd2570e030360a6c679f39d9029bba67c4 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/real.sml Log Message: ----------- Add comment in `structure Real` in SML/NJ BasisLib stubs Commit: d16dc1828bc82591b488a4e73f673d41265b7cfd https://github.com/MLton/mlton/commit/d16dc1828bc82591b488a4e73f673d41265b7cfd Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/int-inf.sml R lib/stubs/basis-stubs-for-smlnj/int.sml M lib/stubs/basis-stubs-for-smlnj/sources.cm Log Message: ----------- Reorganize `IntInf` fixes for SML/NJ BasisLib stubs Commit: 67bb6eb6acaca7f1d26689dd918d65d2bc7c1b0c https://github.com/MLton/mlton/commit/67bb6eb6acaca7f1d26689dd918d65d2bc7c1b0c Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/int-inf.sml Log Message: ----------- Drop `IntInf.~>>` fixes in SML/NJ BasisLib stubs Fixed in SML/NJ 110.77 Commit: 19dc538cfb40c40157f934db82e88d21f1e470c0 https://github.com/MLton/mlton/commit/19dc538cfb40c40157f934db82e88d21f1e470c0 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/sources.cm Log Message: ----------- Reorganize `sources.cm` for SML/NJ BasisLib stubs Sort files by likelyhood of being fixed upstream. Commit: d6c99ecae1ec18cf56c187a35b16a38d7f99775f https://github.com/MLton/mlton/commit/d6c99ecae1ec18cf56c187a35b16a38d7f99775f Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M mlton/ast/sources.cm M mlton/atoms/sources.cm M mlton/backend/sources.cm M mlton/closure-convert/sources.cm M mlton/codegen/amd64-codegen/sources.cm M mlton/codegen/c-codegen/sources.cm M mlton/codegen/llvm-codegen/sources.cm M mlton/codegen/sources.cm M mlton/codegen/x86-codegen/sources.cm M mlton/control/sources.cm M mlton/core-ml/sources.cm M mlton/defunctorize/sources.cm M mlton/elaborate/sources.cm M mlton/front-end/sources.cm M mlton/main/sources.cm M mlton/match-compile/sources.cm M mlton/mlton-smlnj.cm M mlton/sources.cm M mlton/ssa/sources.cm M mlton/xml/sources.cm Log Message: ----------- Use `Library` rather than `Group` for `.cm` files Commit: f8161e61f0332d35c0599413279fc19e6c665ff2 https://github.com/MLton/mlton/commit/f8161e61f0332d35c0599413279fc19e6c665ff2 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/sources.cm M mlton/Makefile Log Message: ----------- Avoid obsolete CM preprocessor operators Commit: 8a130836ee27ef5b414e7075874cf8e1482a2ea5 https://github.com/MLton/mlton/commit/8a130836ee27ef5b414e7075874cf8e1482a2ea5 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-02 (Sat, 02 Nov 2019) Changed paths: M lib/stubs/basis-stubs-for-smlnj/char.sml M lib/stubs/basis-stubs-for-smlnj/int-inf.sml R lib/stubs/basis-stubs-for-smlnj/int.sml A lib/stubs/basis-stubs-for-smlnj/pack-real32.sml A lib/stubs/basis-stubs-for-smlnj/pack-real64.sml A lib/stubs/basis-stubs-for-smlnj/pack-word64.sml M lib/stubs/basis-stubs-for-smlnj/pervasive.sml M lib/stubs/basis-stubs-for-smlnj/real.sml M lib/stubs/basis-stubs-for-smlnj/sources.cm M lib/stubs/basis-stubs-for-smlnj/string.sml R lib/stubs/basis-stubs-for-smlnj/word.sml M mlton/Makefile M mlton/ast/sources.cm M mlton/atoms/sources.cm M mlton/backend/sources.cm M mlton/closure-convert/sources.cm M mlton/codegen/amd64-codegen/sources.cm M mlton/codegen/c-codegen/sources.cm M mlton/codegen/llvm-codegen/sources.cm M mlton/codegen/sources.cm M mlton/codegen/x86-codegen/sources.cm M mlton/control/sources.cm M mlton/core-ml/sources.cm M mlton/defunctorize/sources.cm M mlton/elaborate/sources.cm M mlton/front-end/sources.cm M mlton/main/sources.cm M mlton/match-compile/sources.cm M mlton/mlton-smlnj.cm M mlton/sources.cm M mlton/ssa/sources.cm M mlton/xml/sources.cm Log Message: ----------- Merge pull request #339 from MatthewFluet/smlnj-updates Updates for SML/NJ build Compare: https://github.com/MLton/mlton/compare/6bf311aef8cc...8a130836ee27 |
From: Matthew F. <no...@gi...> - 2019-11-01 12:39:06
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 2bcff6496ca846c5d0f3f6a3577f061dacc28cc2 https://github.com/MLton/mlton/commit/2bcff6496ca846c5d0f3f6a3577f061dacc28cc2 Author: Matthew Fluet <mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M mlton/closure-convert/closure-convert.fun Log Message: ----------- Use function name with `Env` for constructor in `ClosureConvert` Commit: 6bf311aef8cccdedd991fe5d75553e312bbb3e98 https://github.com/MLton/mlton/commit/6bf311aef8cccdedd991fe5d75553e312bbb3e98 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M mlton/closure-convert/closure-convert.fun Log Message: ----------- Merge pull request #338 from MatthewFluet/closure-convert-env-constr Use function name with `Env` for constructor in `ClosureConvert` Compare: https://github.com/MLton/mlton/compare/ac7730c57cbd...6bf311aef8cc |