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: GitHub <no...@gi...> - 2018-02-03 10:54:24
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 68ae4399cdd77b6a699d4a7d02126facefd8b76e https://github.com/MLton/mlton/commit/68ae4399cdd77b6a699d4a7d02126facefd8b76e Author: Matthew Fluet <mat...@gm...> Date: 2018-02-03 (Sat, 03 Feb 2018) Changed paths: M CHANGELOG.adoc M runtime/gdtoa.hide-private-fns.patch M runtime/gdtoa.hide-public-fns.patch M runtime/gdtoa.may_alias-unions.patch M runtime/gdtoa.rename-public-fns.patch M runtime/gdtoa.tgz Log Message: ----------- Update gdtoa.tgz Commit: 85b3b6bbf11aa48c0c2bf949d9bd384b274f1ef2 https://github.com/MLton/mlton/commit/85b3b6bbf11aa48c0c2bf949d9bd384b274f1ef2 Author: Matthew Fluet <Mat...@gm...> Date: 2018-02-03 (Sat, 03 Feb 2018) Changed paths: M CHANGELOG.adoc M runtime/gdtoa.hide-private-fns.patch M runtime/gdtoa.hide-public-fns.patch M runtime/gdtoa.may_alias-unions.patch M runtime/gdtoa.rename-public-fns.patch M runtime/gdtoa.tgz Log Message: ----------- Merge pull request #240 from MatthewFluet/gdtoa-update Update gdtoa.tgz Compare: https://github.com/MLton/mlton/compare/e3e7aa39d1b6...85b3b6bbf11a |
From: GitHub <no...@gi...> - 2018-02-03 03:21:51
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 5924136fed0c841fdf59cf2db8d8e524b1931a06 https://github.com/MLton/mlton/commit/5924136fed0c841fdf59cf2db8d8e524b1931a06 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M CHANGELOG.adoc M doc/guide/src/CompileTimeOptions.adoc M mlton/main/main.fun Log Message: ----------- Extend `-target-*-opt` options to support `arch-os` pairs Commit: 67e393c6a89e45a2925cbcedda59c1bd53b98012 https://github.com/MLton/mlton/commit/67e393c6a89e45a2925cbcedda59c1bd53b98012 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M bin/mlton-script.in Log Message: ----------- Use `-target-{cc,link}-opt ia64-hpux -mlp64` in `mlton` script Commit: 6135a9afdf53be6bff242d4a389e65c6f5fa94c1 https://github.com/MLton/mlton/commit/6135a9afdf53be6bff242d4a389e65c6f5fa94c1 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M bin/mlton-script.in Log Message: ----------- Remove outdated comment about `-malign-{functions,jumps,loops}` Commit: 9348f13e6e8a9b44f0790b5cea5ad677559542cb https://github.com/MLton/mlton/commit/9348f13e6e8a9b44f0790b5cea5ad677559542cb Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M CHANGELOG.adoc M Makefile.in R package/rpm/mlton.spec Log Message: ----------- Remove `./package/rpm/*` and corresponding targets in `./Makefile` Upstream MLton has not produced RPMs for years. Commit: d68b3ff872cc160164c1d991b2161027c067da1b https://github.com/MLton/mlton/commit/d68b3ff872cc160164c1d991b2161027c067da1b Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Use `$(SED)` rather than `sed` for various `mlton` script transforms Commit: cb8c16ab7b6cf752030169599a974a1cfe7755b3 https://github.com/MLton/mlton/commit/cb8c16ab7b6cf752030169599a974a1cfe7755b3 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Whitespace cleanup Commit: dc2ff420cd988dcbc72fe75fc839edb3a633ef5e https://github.com/MLton/mlton/commit/dc2ff420cd988dcbc72fe75fc839edb3a633ef5e Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: R Makefile-auto.am M configure.ac Log Message: ----------- Drop `AC_PROG_INSTALL` and `AM_INIT_AUTOMAKE` from `configure.ac` Build does not use automake; there is no need to unnecessarily include unused components. Commit: c85a765f11606fd2d705fe25d8deee7a661fdce4 https://github.com/MLton/mlton/commit/c85a765f11606fd2d705fe25d8deee7a661fdce4 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M configure.ac Log Message: ----------- Simplify `configure.ac` The `./configure` step is not performing an exhaustive compatibility check. Don't muddy the waters by checking for only a subset of the necessary headers and types. Commit: e3300dac494b0317994621f707c3388b300ebbd7 https://github.com/MLton/mlton/commit/e3300dac494b0317994621f707c3388b300ebbd7 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M Makefile.in M bin/mlton-script.in Log Message: ----------- Set GMP include/lib dir in `mlton-script` at `./configure` time Commit: 7274670e2909040c61813646c803f8d0e11b60d4 https://github.com/MLton/mlton/commit/7274670e2909040c61813646c803f8d0e11b60d4 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M configure.ac Log Message: ----------- Include webpage in AC_INIT Commit: 0924d389eb3c9c4c13726fd6bea7995d4e52165c https://github.com/MLton/mlton/commit/0924d389eb3c9c4c13726fd6bea7995d4e52165c Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M mlton/Makefile.in Log Message: ----------- Remove unnecessary variable from `./mlton/Makefile` Commit: d5ec21d063c731723974c178b7e310137a0c4bcb https://github.com/MLton/mlton/commit/d5ec21d063c731723974c178b7e310137a0c4bcb Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M configure.ac M runtime/Makefile.in Log Message: ----------- Simplify `configure.ac` Commit: 1f6b771abbc194f241820f849190345b4971f92e https://github.com/MLton/mlton/commit/1f6b771abbc194f241820f849190345b4971f92e Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M configure.ac Log Message: ----------- Simplify GMP checks in `./configure` Closes MLton/mlton#227. Commit: 1a12823b72d6e09b13df611ec0cd0b75fec398e1 https://github.com/MLton/mlton/commit/1a12823b72d6e09b13df611ec0cd0b75fec398e1 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M README.adoc M bin/mlton-script.in M configure.ac Log Message: ----------- Drop `XCFLAGS` adn `XLDFLAGS` from `./configure` and `mlton` script Such functionality was not previously supported, and the use case is unclear. Commit: 68a2941f6b983cde64a0e1cbc40095f6828e655d https://github.com/MLton/mlton/commit/68a2941f6b983cde64a0e1cbc40095f6828e655d Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M CHANGELOG.adoc M bin/mlton-script.in M mlton/main/main.fun Log Message: ----------- Propagate C compiler from `./configure` to `mlton` script. Tokenize `-cc` compile-time option to allow `-cc "gcc -std=gnu99"` to work. Commit: 847ed76b1e8d08b87f8a266eeb647ca69a15ce22 https://github.com/MLton/mlton/commit/847ed76b1e8d08b87f8a266eeb647ca69a15ce22 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M CHANGELOG.adoc M mlton/main/main.fun Log Message: ----------- Remove (expert, undocumented) `-debug-format` option. The same effect can be achieved with `-cc-opt` and `-as-opt`. Commit: fe482130e6a41f1395807bcd740df2cae22bab74 https://github.com/MLton/mlton/commit/fe482130e6a41f1395807bcd740df2cae22bab74 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M mlton/main/main.fun Log Message: ----------- Misc cleanup of directories and options for as, cc, and ld Commit: 19a24fab5b0c3845ef30d9796d1608fc4c42cd4b https://github.com/MLton/mlton/commit/19a24fab5b0c3845ef30d9796d1608fc4c42cd4b Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Add `{basis,libraries}-check` targets to `./Makefile` Commit: 695ac376bf9cedbce3fa3088d2b01b18ef3bb572 https://github.com/MLton/mlton/commit/695ac376bf9cedbce3fa3088d2b01b18ef3bb572 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Use same build order for `all-no-docs` and `{smlnj,polyml}-mlton` Commit: 87d69125faa7c6a38bc059f9a0ef5a15f0159b94 https://github.com/MLton/mlton/commit/87d69125faa7c6a38bc059f9a0ef5a15f0159b94 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Rename `boostrap-nj` target to `bootstrap-smlnj` in `./.Makefile` Commit: 6f0a3cf5927582208bd99d54baafef12478a0069 https://github.com/MLton/mlton/commit/6f0a3cf5927582208bd99d54baafef12478a0069 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Add `bootstrap-polyml` target in `./.Makefile` Commit: 8fff72eee688b01366a1dde353ecbd4912b408b7 https://github.com/MLton/mlton/commit/8fff72eee688b01366a1dde353ecbd4912b408b7 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M configure.ac Log Message: ----------- Make missing GMP library an error in `./configure` Commit: fa99fa6e4049055f4514e4d8fc1e491618ef3672 https://github.com/MLton/mlton/commit/fa99fa6e4049055f4514e4d8fc1e491618ef3672 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-25 (Thu, 25 Jan 2018) Changed paths: M configure.ac Log Message: ----------- Simplify scanner/parser generator checks in `./configure` Don't check for `ml-lex` if `mllex` is found and don't check for `ml-yacc` if `mlyacc` is found. Commit: 3b90024820703f1ff76c011e7b10f110a0dd6796 https://github.com/MLton/mlton/commit/3b90024820703f1ff76c011e7b10f110a0dd6796 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Simplify `tools` target and add `tools-clean` target in `./Makefile` Commit: a9c5ef6d497e5dc95f90d0241a3e769cfbbed8de https://github.com/MLton/mlton/commit/a9c5ef6d497e5dc95f90d0241a3e769cfbbed8de Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Tweaks to bootstrap in `all-no-docs` target in `./Makefile` Commit: 911e8ebb48f161e8b0e51f2f77967f33bd8a11a1 https://github.com/MLton/mlton/commit/911e8ebb48f161e8b0e51f2f77967f33bd8a11a1 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M configure.ac R package/freebsd/.gitignore A package/freebsd/Makefile R package/freebsd/Makefile.in R package/mingw/.gitignore A package/mingw/Makefile R package/mingw/Makefile.in Log Message: ----------- Revert `./configure` processing of `./package/{freebsd,mingw}` files Downstream packaging should not be changed. Commit: 51cc7f5b53dcc8eb7f218c9cc15fc49a01b13356 https://github.com/MLton/mlton/commit/51cc7f5b53dcc8eb7f218c9cc15fc49a01b13356 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M Makefile.in M benchmark/.gitignore A benchmark/Makefile R benchmark/Makefile.in M configure.ac M mlton/Makefile.in M mlyacc/.gitignore A mlyacc/Makefile R mlyacc/Makefile.in Log Message: ----------- Drop `AC_PROG_MAKE_SET` from `./configure.ac` Revert `Makefile -> Makefile.in` moves for `./benchmark/Makefile` and `./mlyacc/Makefile`, which only added `@SET_MAKE@`. Commit: c1fddf3782e528a08c844096dd80a92f8a668604 https://github.com/MLton/mlton/commit/c1fddf3782e528a08c844096dd80a92f8a668604 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M .gitignore Log Message: ----------- Clean automake specific items from `./.gitignore` Commit: 45f025a96122c85ffc37558591e59f3fb5cfe110 https://github.com/MLton/mlton/commit/45f025a96122c85ffc37558591e59f3fb5cfe110 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Remove `ranlib` processing from `./Makefile` The `./runtime/Makefile` (and via `make runtime` of `./Makefile`) performs `ranlib` processing. Commit: d32f82c32ef7d994f0f05c69fe92f816cf345d8a https://github.com/MLton/mlton/commit/d32f82c32ef7d994f0f05c69fe92f816cf345d8a Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M Makefile.in R bin/.gitignore A bin/mlton-script R bin/mlton-script.in M configure.ac Log Message: ----------- Set CC and GMP inc/lib dir in `mlton-script` at `make script` time Commit: 0874316036e59697191d1eddb3c698fc43d9ef65 https://github.com/MLton/mlton/commit/0874316036e59697191d1eddb3c698fc43d9ef65 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M bin/regression Log Message: ----------- Don't skip `hamlet` in `./bin/regression` Commit: 68aac7ebaf17431445af1d96e51e54fc1e82c9c8 https://github.com/MLton/mlton/commit/68aac7ebaf17431445af1d96e51e54fc1e82c9c8 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M .travis.yml M bin/travis-ci Log Message: ----------- Simplify TravisCI Commit: e1825071074a499d96fc592063d9431bde6191c3 https://github.com/MLton/mlton/commit/e1825071074a499d96fc592063d9431bde6191c3 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M runtime/util.c Log Message: ----------- Properly `#include "util.h"` in `./runtime/util.c` Commit: bf96a96a3faa1698dfba458eb053dd2181d8dfdb https://github.com/MLton/mlton/commit/bf96a96a3faa1698dfba458eb053dd2181d8dfdb Author: Matthew Fluet <mat...@gm...> Date: 2018-01-26 (Fri, 26 Jan 2018) Changed paths: M Makefile.in M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/Makefile.in M mlyacc/Makefile M package/debian/rules Log Message: ----------- Use `{,BOOTSTRAP_}MLTON_{RUNTIME,COMPILE}_ARGS` in `Makefile`-s Rationalize the use of variables to control compilation: * `MLTON_{RUNTIME,COMPILE}_ARGS` are used when compiling (a self-compiled) `mlton`, `mllex`, `mlyacc`, `mlprof`, and `mlnlffigen`; i.e., all of the MLton compiled tools. * `BOOTSTRAP_MLTON_{RUNTIME,COMPILE}_ARGS` are used when compiling a bootstrap `mlton`; if not explicitly defined, use `MLTON_{RUNTIME,COMPILE}_ARGS`. For example, make MLTON_COMPILE_ARGS="-codegen llvm" BOOTSTRAP_MLTON_COMPILE_ARGS="" can be used to bootstrap with an old `mlton` (that does not understand `-codegen llvm`), but then compile the tools and the (stubless) `mlton` with `-codegen llvm`. Commit: f487e5ccaff3ba0cbdb1a2bbf0d52550fa414a39 https://github.com/MLton/mlton/commit/f487e5ccaff3ba0cbdb1a2bbf0d52550fa414a39 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-27 (Sat, 27 Jan 2018) Changed paths: M .travis.yml M Makefile.in M bin/travis-ci Log Message: ----------- Test different codegens via TravisCI Note that regression tests are omitted from slow codegens on TravisCI; the non-native codegens are slow enough that the TravisCI job time limit of 50 minutes can be exceeded. Commit: 27c1a19088d2eba61f0e5c3e5afa833e07200bd4 https://github.com/MLton/mlton/commit/27c1a19088d2eba61f0e5c3e5afa833e07200bd4 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-27 (Sat, 27 Jan 2018) Changed paths: M lib/ckit-lib/Makefile M lib/mllpt-lib/Makefile M lib/mlrisc-lib/Makefile M lib/smlnj-lib/Makefile Log Message: ----------- Eliminate use of `tar` option `--exclude` Partly closes MLton/mlton#146 This commit elminates the use of the `--exclude` option to `tar` during a simple, top-level `make all`. The remaining uses of `--exclude` are in the top-level `make release`, but that should not matter for BSD users. Commit: f6a29f3643a47dda6c78fdd07388002d3cbf358b https://github.com/MLton/mlton/commit/f6a29f3643a47dda6c78fdd07388002d3cbf358b Author: Matthew Fluet <mat...@gm...> Date: 2018-01-27 (Sat, 27 Jan 2018) Changed paths: M bin/ls-ignore Log Message: ----------- Eliminate use of `find` primary `-false` Partly closes MLton/mlton#146 This commit eliminates the use of the `-false` primary to `find` with the equivalent, but slower, `-exec false ;` primary. Commit: 16b3f401914e1aed355c4030c6c0a5a65df2e33a https://github.com/MLton/mlton/commit/16b3f401914e1aed355c4030c6c0a5a65df2e33a Author: Matthew Fluet <mat...@gm...> Date: 2018-01-27 (Sat, 27 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Replace shell `for` loops with make `call` templates in `./Makefile` Commit: 410500cef9c45af47ded717c0d9db19c042b4011 https://github.com/MLton/mlton/commit/410500cef9c45af47ded717c0d9db19c042b4011 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-28 (Sun, 28 Jan 2018) Changed paths: M Makefile.in Log Message: ----------- Streamline fixpoint check in `./Makefile` Commit: fd25db37a3d85b3478983ac30236d677f50559ce https://github.com/MLton/mlton/commit/fd25db37a3d85b3478983ac30236d677f50559ce Author: Matthew Fluet <mat...@gm...> Date: 2018-01-28 (Sun, 28 Jan 2018) Changed paths: M Makefile.in M bin/travis-ci M package/debian/rules Log Message: ----------- Require explicit `BOOSTRAP_MLTON_{RUNTIME,COMPILE}_ARGS` Commit: ad1cb8ecf97ca0d1e7772a2e82f27ec3e53511c4 https://github.com/MLton/mlton/commit/ad1cb8ecf97ca0d1e7772a2e82f27ec3e53511c4 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-28 (Sun, 28 Jan 2018) Changed paths: M mlton/Makefile.in Log Message: ----------- Quiet `def-use` target in `./mlton/Makefile` The `def-use` target is used frequently in interactive development, so quell extraneous output. Commit: e80a6652044082d7c88011bbd29ee7cba1a5790a https://github.com/MLton/mlton/commit/e80a6652044082d7c88011bbd29ee7cba1a5790a Author: Matthew Fluet <mat...@gm...> Date: 2018-01-30 (Tue, 30 Jan 2018) Changed paths: M bin/mlton-script Log Message: ----------- Update `./bin/mlton-script` Commit: 3664159b1bedc9b74d4af4cfca67a918d6085ecd https://github.com/MLton/mlton/commit/3664159b1bedc9b74d4af4cfca67a918d6085ecd Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: M Makefile.in M lib/ckit-lib/Makefile M lib/mllpt-lib/Makefile M lib/mlrisc-lib/Makefile M lib/smlnj-lib/Makefile M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/Makefile.in M mlton/front-end/Makefile M mlyacc/Makefile M runtime/Makefile.in Log Message: ----------- Make major revisions to `Makefile`s Try to simplify and clarify the various `Makefile`s and their interdependencies. In particular, preface each `Makefile` with a clear listing of user-configurable variables; in `./Makefile`, there is additional commentary about the indended meaning/purpose of these variables. Commit: 9e10758d51129085cffb0a9b6dffa96357ed726d https://github.com/MLton/mlton/commit/9e10758d51129085cffb0a9b6dffa96357ed726d Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: R bin/msed Log Message: ----------- Remove unused `./bin/msed` script. Commit: dbe51c42bf1c1fbf8f9877218d6249377dc02ff4 https://github.com/MLton/mlton/commit/dbe51c42bf1c1fbf8f9877218d6249377dc02ff4 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: M .gitignore M .travis.yml M CHANGELOG.adoc M Dockerfile A Makefile R Makefile.in M bin/travis-ci R configure.ac M lib/mlnlffi-lib/.gitignore A lib/mlnlffi-lib/Makefile R lib/mlnlffi-lib/Makefile.in M mlton/.gitignore A mlton/Makefile R mlton/Makefile.in M runtime/.gitignore A runtime/Makefile R runtime/Makefile.in Log Message: ----------- Revert rudimentary support for `./configure` The support was so minimal that it seems unhelpful to pretend that there are exhaustive compatibility checks being performed. All of the basic configuration can be accomplished with simple `make` variable definitions. Commit: 373a89a661a62b1c63b0edb3f8db46b844bfb497 https://github.com/MLton/mlton/commit/373a89a661a62b1c63b0edb3f8db46b844bfb497 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: M mlton/.gitignore Log Message: ----------- Update `./mlton/.gitignore` Ignore executables created by `make debugged`, `make profile-alloc`, `make profile-count`, `make profile-time`, and `make traced`. Commit: 20a3da9a0e3a71efc8be54328526fd7ea82ea6ef https://github.com/MLton/mlton/commit/20a3da9a0e3a71efc8be54328526fd7ea82ea6ef Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: M .gitignore Log Message: ----------- Update `./gitignore` Commit: 071769f506b23e137647dce75efb413b02f41cf6 https://github.com/MLton/mlton/commit/071769f506b23e137647dce75efb413b02f41cf6 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: M Dockerfile Log Message: ----------- Drop `apt-get install autotools` from `./Dockerfile` Commit: aa2e75090bddeb70449cdfa033c0333fbf8181df https://github.com/MLton/mlton/commit/aa2e75090bddeb70449cdfa033c0333fbf8181df Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: M .travis.yml M CHANGELOG.adoc M bin/mlton-script M runtime/Makefile Log Message: ----------- Use C compiler with `-std=gnu11` Previously, `-std=gnu99` was used for C compiler. Commit: 4caacdb498fd87b07a571bef42cfa83e17d1f0e2 https://github.com/MLton/mlton/commit/4caacdb498fd87b07a571bef42cfa83e17d1f0e2 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: M Makefile M lib/ckit-lib/Makefile M lib/mllpt-lib/Makefile M lib/mlrisc-lib/Makefile M lib/smlnj-lib/Makefile Log Message: ----------- Add `-prune` to `find` commands that may delete directories Commit: 2acf7950b70be60992804da9c70d94abae47dc02 https://github.com/MLton/mlton/commit/2acf7950b70be60992804da9c70d94abae47dc02 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-31 (Wed, 31 Jan 2018) Changed paths: M mlton/Makefile Log Message: ----------- Add `BOOTSTRAP_MLTON` variable to `./mlton/Makefile` Commit: 6e161009bbb80c8b2d98db1e8e2793ae3a5148b0 https://github.com/MLton/mlton/commit/6e161009bbb80c8b2d98db1e8e2793ae3a5148b0 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M Makefile Log Message: ----------- Make `bootstrap-{smlnj,polyml}` targets of `./Makefile` more robust Commit: ebd52904483b3a2dafc46a60ea06f68a70e0ade3 https://github.com/MLton/mlton/commit/ebd52904483b3a2dafc46a60ea06f68a70e0ade3 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M Makefile M README.adoc Log Message: ----------- Update build and install instructions in `./README.adoc` Commit: 8c6bc7e401e72458d816ec6eca86d8726a4a50dc https://github.com/MLton/mlton/commit/8c6bc7e401e72458d816ec6eca86d8726a4a50dc Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M mllex/.gitignore M mllex/Makefile M mlyacc/doc/.gitignore M mlyacc/doc/Makefile Log Message: ----------- Drop HTML documentation for mllex and mlyacc Commit: 12fa1e10c7637a711933d755ed6ab76c9433e4f5 https://github.com/MLton/mlton/commit/12fa1e10c7637a711933d755ed6ab76c9433e4f5 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M mllex/Makefile M mlyacc/doc/Makefile Log Message: ----------- Add another round of pdflatex to reach fixpoint Commit: f52fbeba791700351d03f337198108ef26b24a46 https://github.com/MLton/mlton/commit/f52fbeba791700351d03f337198108ef26b24a46 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M Makefile M bin/travis-ci Log Message: ----------- Remove docs from `all` target of `./Makefile` This eliminates the `all-no-docs` target. Commit: 3df05906ae5c292217fc0611d64e8ae167e56fc4 https://github.com/MLton/mlton/commit/3df05906ae5c292217fc0611d64e8ae167e56fc4 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M Makefile Log Message: ----------- Remove docs from `install` target of `./Makefile` This eliminates the `install-no-docs` target. Commit: f358bf0327a8f4bb3dc5d8ac279ebbc8a7b7fabb https://github.com/MLton/mlton/commit/f358bf0327a8f4bb3dc5d8ac279ebbc8a7b7fabb Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M Makefile Log Message: ----------- Eliminate `MLTON_ROOT` MLB path variable Commit: 637db6f832bc010b1076d6c7080c8231cb3669f5 https://github.com/MLton/mlton/commit/637db6f832bc010b1076d6c7080c8231cb3669f5 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M Makefile Log Message: ----------- Cleanup in `bootstrap-{smlnj,polyml}` targets Remove SML/NJ `mlton-smlnj` heap file, SML/NJ `mlton.smlnj` script, Poly/ML `mlton-polyml` executable, and PolyML `mlton.polyml` script after bootstrapping, as those artifacts should not be installed. Commit: b3eed9e06f95cd98d61a5a94c2dfc7845aa0b144 https://github.com/MLton/mlton/commit/b3eed9e06f95cd98d61a5a94c2dfc7845aa0b144 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: R lib/mlnlffi-lib/internals/c-int.x86-linux.mlb Log Message: ----------- Remove unused `./lib/mlnlffi-lib/internals/c-int.x86-linux.mlb` file Commit: 83992f3bde7faa0989adafe80edd391200176114 https://github.com/MLton/mlton/commit/83992f3bde7faa0989adafe80edd391200176114 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M Makefile M bin/mlton-script M doc/guide/src/MLBasisPathMap.adoc M package/debian/mlton-basis.install Log Message: ----------- Set `SML_LIB` via `mlton` script, rather than `mlb-path-map` file The `$(prefix)/lib/mlton/mlb-path-map` only has a single MLB path variable, which can be set via `-mlb-path-var 'SML_LIB $(MLTON_LIB_DIR)/sml'` in the `mlton` script. Commit: cb7ee6354d505db48d590eb55b6acde3cfe35188 https://github.com/MLton/mlton/commit/cb7ee6354d505db48d590eb55b6acde3cfe35188 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M mlton/main/main.fun Log Message: ----------- Tweak `-show path-map` output Show MLB path map variables in definition order (rather than the reverse definition order that is used for lookup). Commit: 8ebcd4a29be92e5c104aa7e5791ef2a5bc3e6636 https://github.com/MLton/mlton/commit/8ebcd4a29be92e5c104aa7e5791ef2a5bc3e6636 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M Makefile M bin/mlton-script M mlnlffigen/gen-cppcmd M package/debian/mlton-compiler.install M package/freebsd/Makefile Log Message: ----------- Set EXE suffix in `mlton` script at `make script` time The host os should not change after building. This also avoids installing the `./bin/platform` script. Commit: be38657e19b07cf666f0a20ffba37ab584005893 https://github.com/MLton/mlton/commit/be38657e19b07cf666f0a20ffba37ab584005893 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M doc/guide/src/SuccessorML.adoc Log Message: ----------- Fix anchor on SuccessorML page Commit: b8ee58e8bdd1172365c47931a59262fdd8dd7b0d https://github.com/MLton/mlton/commit/b8ee58e8bdd1172365c47931a59262fdd8dd7b0d Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M doc/guide/src/PortingMLton.adoc Log Message: ----------- Fix list formatting on PortingMLton page Commit: b80679b3d64565cc822b419d6331ebba18e7e200 https://github.com/MLton/mlton/commit/b80679b3d64565cc822b419d6331ebba18e7e200 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M doc/guide/Makefile Log Message: ----------- Use development version number in development guide Commit: 7e6292a196d9318b5f3b9be0da791499fab32554 https://github.com/MLton/mlton/commit/7e6292a196d9318b5f3b9be0da791499fab32554 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-01 (Thu, 01 Feb 2018) Changed paths: M mlton/ast/ast-mlbs.fun Log Message: ----------- Use relative paths for `.mlb` files with `-stop f` Commit: 0bb721f992e3e8e4d704f4878df6f42a8905a757 https://github.com/MLton/mlton/commit/0bb721f992e3e8e4d704f4878df6f42a8905a757 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: R basis-library/integer/int1.sml R basis-library/integer/word1.sml Log Message: ----------- Remove unused files in Basis Library implementation Commit: 8ace8a0ee5e85d2bb3a4639389daad591e968bbf https://github.com/MLton/mlton/commit/8ace8a0ee5e85d2bb3a4639389daad591e968bbf Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M Makefile Log Message: ----------- Fix `TOOLS_TEMPLATE` definition to work older GNU make Commit: d8ec7e2cdb04539243cd9694e96d4fda195bd987 https://github.com/MLton/mlton/commit/d8ec7e2cdb04539243cd9694e96d4fda195bd987 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M Makefile M mlnlffigen/sources.mlb Log Message: ----------- Only copy SML code from source libraries to "installed" libraries This will avoid the need to move or remove documentation from such libraries after installing. Commit: 1fb222fb1c5e1f1c17ef124acb56df932c936f4f https://github.com/MLton/mlton/commit/1fb222fb1c5e1f1c17ef124acb56df932c936f4f Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M Makefile M package/debian/rules Log Message: ----------- Updating `install` and `install-docs` targets of `./Makefile` Commit: 1c8ed023688b8752390ae8fbd018ce2013ef7709 https://github.com/MLton/mlton/commit/1c8ed023688b8752390ae8fbd018ce2013ef7709 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M runtime/Makefile Log Message: ----------- Replace `find ... | grep ...` with `find ... -name ...` in `./runtime/Makefile` Commit: ee8631a84d821be8ed2705c13ce14cc23313a880 https://github.com/MLton/mlton/commit/ee8631a84d821be8ed2705c13ce14cc23313a880 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M bin/regression Log Message: ----------- Execute scripts from `$src/bin/` rather than add to `PATH` in `./bin/regression` Commit: 6f91185b9a97a80ea98f8dd8837bd29657d2cdf2 https://github.com/MLton/mlton/commit/6f91185b9a97a80ea98f8dd8837bd29657d2cdf2 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M .travis.yml Log Message: ----------- Test OSX via TravisCI Commit: a18db92b2a7a760d99d0e5e18831568e57b9f8ed https://github.com/MLton/mlton/commit/a18db92b2a7a760d99d0e5e18831568e57b9f8ed Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M Makefile M doc/guide/Makefile M doc/guide/conf/asciidoc-mlton.flags M mlton/Makefile M mlton/control/version_sml.src M runtime/Makefile Log Message: ----------- Use `MLTON_VERSION` in `Makefile`s to track version Commit: fc8b004a9010202a5acdccc67ce6e993aec72464 https://github.com/MLton/mlton/commit/fc8b004a9010202a5acdccc67ce6e993aec72464 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M Makefile A Makefile.binary Log Message: ----------- Update `{source,binary}-release` targets of `./Makefile` Add a `Makefile.binary` to be included in binary releases to facilitate "installing". Closes MLton/mlton#133. Commit: 480498532b398bda28354a13a4ebecd8f22ea56b https://github.com/MLton/mlton/commit/480498532b398bda28354a13a4ebecd8f22ea56b Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M .travis.yml Log Message: ----------- Update TravisCI; OSX is slow, don't run regressions Commit: b814f5f4c04262c75f62e4c7321836e06dc4278d https://github.com/MLton/mlton/commit/b814f5f4c04262c75f62e4c7321836e06dc4278d Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M doc/guide/src/SelfCompiling.adoc Log Message: ----------- Update SelfCompiling page Commit: 333514977ea528ce2b9ff36ee482b8fcd2e9f656 https://github.com/MLton/mlton/commit/333514977ea528ce2b9ff36ee482b8fcd2e9f656 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M README.adoc Log Message: ----------- Fix typo in README.adoc Commit: e470c3cdb2e446119685c9899e750864c60e2e30 https://github.com/MLton/mlton/commit/e470c3cdb2e446119685c9899e750864c60e2e30 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M doc/guide/src/GnuMP.adoc Log Message: ----------- Update GnuMP page Commit: f57454bccfd3ef1236f0c70bc5a5e3df25de7ca7 https://github.com/MLton/mlton/commit/f57454bccfd3ef1236f0c70bc5a5e3df25de7ca7 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M README.adoc Log Message: ----------- Mention `make docs` in `README.adoc` Commit: 8f13cf5bc365d1d6d086420954962ce535cfc6fb https://github.com/MLton/mlton/commit/8f13cf5bc365d1d6d086420954962ce535cfc6fb Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M Makefile Log Message: ----------- Include `CHANGELOG`, `README`, and `LICENSE` in binary release Commit: beeb3c99e6d07365239fab18c57d032e7a263575 https://github.com/MLton/mlton/commit/beeb3c99e6d07365239fab18c57d032e7a263575 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M README.adoc Log Message: ----------- Update `Build and Install (from source)` in `README.adoc` Commit: 900b45f99ae8b74520dad28284c6690a108a900d https://github.com/MLton/mlton/commit/900b45f99ae8b74520dad28284c6690a108a900d Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M Makefile.binary Log Message: ----------- Add `update` target to `./Makefile.binary` Allows updating `CC` and `GMP_{INC,LIB}_DIR` of `./bin/mlton` separate from installation (e.g., for an "in-place" install). Commit: a6070dafa4a8999ac538e7add75ebbeea2c6ed7a https://github.com/MLton/mlton/commit/a6070dafa4a8999ac538e7add75ebbeea2c6ed7a Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M README.adoc Log Message: ----------- Update `README.adoc` with "Install (from binary package)" Commit: 65a926283e800dcab26c609b30cd818e833a9b51 https://github.com/MLton/mlton/commit/65a926283e800dcab26c609b30cd818e833a9b51 Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M doc/guide/src/Installation.adoc Log Message: ----------- Update Installation page Commit: c94fd6d72259d01cd626a81db26acbbda3e602fe https://github.com/MLton/mlton/commit/c94fd6d72259d01cd626a81db26acbbda3e602fe Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M README.adoc Log Message: ----------- Update README.adoc with link for TeX Commit: f70459a7e6d50ffdbe87d5414196bf9d7091849c https://github.com/MLton/mlton/commit/f70459a7e6d50ffdbe87d5414196bf9d7091849c Author: Matthew Fluet <mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M CHANGELOG.adoc Log Message: ----------- Update CHANGELOG.adoc Commit: e3e7aa39d1b6e16bf2139d985667a0f8f8e1a935 https://github.com/MLton/mlton/commit/e3e7aa39d1b6e16bf2139d985667a0f8f8e1a935 Author: Matthew Fluet <Mat...@gm...> Date: 2018-02-02 (Fri, 02 Feb 2018) Changed paths: M .gitignore M .travis.yml M CHANGELOG.adoc M Dockerfile A Makefile R Makefile-auto.am A Makefile.binary R Makefile.in M README.adoc R basis-library/integer/int1.sml R basis-library/integer/word1.sml M benchmark/.gitignore A benchmark/Makefile R benchmark/Makefile.in R bin/.gitignore M bin/ls-ignore A bin/mlton-script R bin/mlton-script.in R bin/msed M bin/regression M bin/travis-ci R configure.ac M doc/guide/Makefile M doc/guide/conf/asciidoc-mlton.flags M doc/guide/src/CompileTimeOptions.adoc M doc/guide/src/GnuMP.adoc M doc/guide/src/Installation.adoc M doc/guide/src/MLBasisPathMap.adoc M doc/guide/src/PortingMLton.adoc M doc/guide/src/SelfCompiling.adoc M doc/guide/src/SuccessorML.adoc M lib/ckit-lib/Makefile M lib/mllpt-lib/Makefile M lib/mlnlffi-lib/.gitignore A lib/mlnlffi-lib/Makefile R lib/mlnlffi-lib/Makefile.in R lib/mlnlffi-lib/internals/c-int.x86-linux.mlb M lib/mlrisc-lib/Makefile M lib/smlnj-lib/Makefile M mllex/.gitignore M mllex/Makefile M mlnlffigen/Makefile M mlnlffigen/gen-cppcmd M mlnlffigen/sources.mlb M mlprof/Makefile M mlton/.gitignore A mlton/Makefile R mlton/Makefile.in M mlton/ast/ast-mlbs.fun M mlton/control/version_sml.src M mlton/front-end/Makefile M mlton/main/main.fun M mlyacc/.gitignore A mlyacc/Makefile R mlyacc/Makefile.in M mlyacc/doc/.gitignore M mlyacc/doc/Makefile M package/debian/mlton-basis.install M package/debian/mlton-compiler.install M package/debian/rules R package/freebsd/.gitignore A package/freebsd/Makefile R package/freebsd/Makefile.in R package/mingw/.gitignore A package/mingw/Makefile R package/mingw/Makefile.in R package/rpm/mlton.spec M runtime/.gitignore A runtime/Makefile R runtime/Makefile.in M runtime/util.c Log Message: ----------- Merge pull request #239 from MatthewFluet/build-updates Build and packaging updates Highlights: * Remove docs from `all` target of `./Makefile`; this eliminates the `all-no-docs` target (which was frequently used in favor of `all`). * Use C compiler with `-std=gnu11` (rather than `-std=gnu99`). * Revert rudimentary support for `./configure`; the support was so minimal that it seems unhelpful to pretend that there are exhaustive compatibility checks being performed. All of the basic configuration can be accomplished with simple `make` variable definitions. * Remove (expert, undocumented) `-debug-format` option; the same effect can be achieved with `-as-opt` and `-cc-opt`. * Propagate C compiler to `-cc "$CC"` in `mlton` script. * Extend `-target-*-opt` options to support `_arch_-_os_` pairs. Supersedes/closes MLton/mlton#228. Supersedes/closes MLton/mlton#225. Closes MLton/mlton#133. Closes MLton/mlton#135. Compare: https://github.com/MLton/mlton/compare/f7bc83d88da9...e3e7aa39d1b6 |
From: GitHub <no...@gi...> - 2018-01-24 13:49:28
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0ba18af405ba6f83457a88d4585743076b3bc912 https://github.com/MLton/mlton/commit/0ba18af405ba6f83457a88d4585743076b3bc912 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M CHANGELOG.adoc M basis-library/arrays-and-vectors/sequence.fun Log Message: ----------- Avoid `List.map` in some `functor Sequence` fns of Basis Library Previously, `Sequence.{concat,concatWith}` operated by performing a `List.map` on the input, converting (full) sequences to slices, and `Sequence.{tokens,fields}` operated by performing a `List.map` on the output, converting slices to (full) sequences. This unnecessarily allocated and traversed an intermediate list. We introduce `Sequence.Slice.{concat,concatWith,tokens,fields}Gen` functions that take either a `toSlice` or a `fromSlice` function to convert the input or output. For example, we now have: fun Sequence.Slice.concat sls = Sequence.Slice.concatGen (sls, fn sl => sl) fun Sequence.concat seqs = Sequence.Slice.concatGen (seqs, Sequence.Slice.full) Note that the two uses of `Sequence.Slice.concatGen` are at different (polymorphic) types. So, the two uses will be monomorphised to distinct SXML functions. Next, ClosureConvert flow analysis will determine that the `toSlice` function for the `Sequence.Slice.concat` instance is exactly `fn sl => sl` and that the `toSlice` function for the `Sequence.concat` instance is exactly `Sequence.Slice.full`. Thus, the `Sequence` instances of the functions should be as efficient as if they had been written directly for sequences (rather than indirecting through functions for slices). Commit: f7bc83d88da9e84001d016bd02a3c5b091f3b7a9 https://github.com/MLton/mlton/commit/f7bc83d88da9e84001d016bd02a3c5b091f3b7a9 Author: Matthew Fluet <Mat...@gm...> Date: 2018-01-24 (Wed, 24 Jan 2018) Changed paths: M CHANGELOG.adoc M basis-library/arrays-and-vectors/sequence.fun Log Message: ----------- Merge pull request #237 from MatthewFluet/mapless-sequence-functions Avoid `List.map` in some `functor Sequence` fns of Basis Library Compare: https://github.com/MLton/mlton/compare/5acd53bcaae6...f7bc83d88da9 |
From: GitHub <no...@gi...> - 2018-01-23 19:59:48
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: a7e2034b578b8a205bf6b731b40ecc16bfbde4fe https://github.com/MLton/mlton/commit/a7e2034b578b8a205bf6b731b40ecc16bfbde4fe Author: Matthew Fluet <mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M mllex/lexgen.sml Log Message: ----------- Apply changes from SML/NJ upstream version of ml-lex tool * Adding qualifiers to basis functions in generated code. Commit: 3c1a0385d221508155edded2458acc36b00a3ccf https://github.com/MLton/mlton/commit/3c1a0385d221508155edded2458acc36b00a3ccf Author: Matthew Fluet <mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M mllex/lexgen.sml Log Message: ----------- Apply changes from SML/NJ upstream version of ml-lex tool * removed open Array Commit: 8a668db7198e251541babd1d9d6e6b4c2f9729e7 https://github.com/MLton/mlton/commit/8a668db7198e251541babd1d9d6e6b4c2f9729e7 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M mlyacc/examples/calc/README M mlyacc/examples/fol/README Log Message: ----------- Tweak formatting of mlyacc/examples/*/README files Commit: 15fd8d41a37483608bbe19808a746fff92f4812d https://github.com/MLton/mlton/commit/15fd8d41a37483608bbe19808a746fff92f4812d Author: Matthew Fluet <mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M mlyacc/src/mkprstruct.sml Log Message: ----------- Apply changes from SML/NJ upstream version of ml-yacc tool * Add qualifiers to basis IDs. Commit: 0114d87c65827cf11c41d5570fef50137f6bc1b3 https://github.com/MLton/mlton/commit/0114d87c65827cf11c41d5570fef50137f6bc1b3 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M mlyacc/src/coreutils.sml Log Message: ----------- Apply changes from SML/NJ upstream version of ml-yacc tool * Removed use of open Commit: 6956527ce3f8a6bdaa7cd2eca977fed5d3d9fc91 https://github.com/MLton/mlton/commit/6956527ce3f8a6bdaa7cd2eca977fed5d3d9fc91 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M mlyacc/src/graph.sml M mlyacc/src/lalr.sml M mlyacc/src/look.sml M mlyacc/src/mklrtable.sml M mlyacc/src/mkprstruct.sml M mlyacc/src/shrink.sml M mlyacc/src/yacc.sml Log Message: ----------- Apply changes from SML/NJ upstream version of ml-yacc tool * Removed use of open Commit: 5acd53bcaae6d29a5e6fc1aa43b2d84ac2281d7f https://github.com/MLton/mlton/commit/5acd53bcaae6d29a5e6fc1aa43b2d84ac2281d7f Author: Matthew Fluet <Mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M mllex/lexgen.sml M mlyacc/examples/calc/README M mlyacc/examples/fol/README M mlyacc/src/coreutils.sml M mlyacc/src/graph.sml M mlyacc/src/lalr.sml M mlyacc/src/look.sml M mlyacc/src/mklrtable.sml M mlyacc/src/mkprstruct.sml M mlyacc/src/shrink.sml M mlyacc/src/yacc.sml Log Message: ----------- Merge pull request #236 from MatthewFluet/smlnj-ml-lex-and-ml-yacc-updates Apply changes from SML/NJ upstream versions of ml-lex and ml-yacc Compare: https://github.com/MLton/mlton/compare/bb8c45ed7bed...5acd53bcaae6 |
From: GitHub <no...@gi...> - 2018-01-23 17:30:58
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 4848d5a8c004364f8ad49b760938cd120715c6ec https://github.com/MLton/mlton/commit/4848d5a8c004364f8ad49b760938cd120715c6ec Author: Matthew Fluet <mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M CHANGELOG.adoc M mlton/main/main.fun Log Message: ----------- Restore, but deprecate, `-drop-pass` compile-time expert option. Some projects use `-drop-pass` to avoid performance problems with DeepFlatten and RefFlatten; see https://github.com/search?p=1&q=%22-drop-pass%22&type=Code. Restoring `-drop-pass` avoids unnecessarily breaking these projects. Commit: bb8c45ed7bed7b8edb2528c4c9ec5fe5822ac81c https://github.com/MLton/mlton/commit/bb8c45ed7bed7b8edb2528c4c9ec5fe5822ac81c Author: Matthew Fluet <Mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M CHANGELOG.adoc M mlton/main/main.fun Log Message: ----------- Merge pull request #235 from MatthewFluet/restore-drop-pass-option Restore, but deprecate, `-drop-pass` compile-time expert option. Compare: https://github.com/MLton/mlton/compare/ef945ce65d1e...bb8c45ed7bed |
From: GitHub <no...@gi...> - 2018-01-23 15:52:16
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: b3cb299fad56f170db76c2ce5069c17fbf04450d https://github.com/MLton/mlton/commit/b3cb299fad56f170db76c2ce5069c17fbf04450d Author: Matthew Fluet <mat...@gm...> Date: 2018-01-19 (Fri, 19 Jan 2018) Changed paths: M doc/license/MLton-LICENSE Log Message: ----------- Update copyright date in license Commit: 6f494f7630d95706ef9568b42f29a29bbcd34fb1 https://github.com/MLton/mlton/commit/6f494f7630d95706ef9568b42f29a29bbcd34fb1 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-20 (Sat, 20 Jan 2018) Changed paths: A doc/CHANGELOG.adoc R doc/changelog Log Message: ----------- Convert changelog to CHANGELOG.adoc Commit: 5e2754c0ec7d0f7a6a882829bedde327c0ab8f85 https://github.com/MLton/mlton/commit/5e2754c0ec7d0f7a6a882829bedde327c0ab8f85 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-20 (Sat, 20 Jan 2018) Changed paths: A CHANGELOG.adoc R doc/CHANGELOG.adoc Log Message: ----------- Move ./doc/CHANGELOG.adoc ./CHANGELOG.adoc Commit: 68f285bd9bdefb25294b67f5245870f72d29cecd https://github.com/MLton/mlton/commit/68f285bd9bdefb25294b67f5245870f72d29cecd Author: Matthew Fluet <mat...@gm...> Date: 2018-01-20 (Sat, 20 Jan 2018) Changed paths: R doc/license/gmp-LICENSE Log Message: ----------- Remove unnecessary ./doc/license/gmp-LICENSE MLton has not shipped with a copy of GMP since version 20020923. Commit: f5720244867cf026539e9cea6e2e04f10050589b https://github.com/MLton/mlton/commit/f5720244867cf026539e9cea6e2e04f10050589b Author: Matthew Fluet <mat...@gm...> Date: 2018-01-20 (Sat, 20 Jan 2018) Changed paths: R doc/x86_64-port-notes/TODO R doc/x86_64-port-notes/bench-20060527.txt R doc/x86_64-port-notes/bench-20070317.txt R doc/x86_64-port-notes/bench-20070619.txt R doc/x86_64-port-notes/exec-summary.0.txt R doc/x86_64-port-notes/exec-summary.1.txt R doc/x86_64-port-notes/mltongc.txt R doc/x86_64-port-notes/semantics.txt R doc/x86_64-port-notes/status.0.txt R doc/x86_64-port-notes/status.1.txt Log Message: ----------- Remove doc/x86_64-port-notes/* These notes are either incorporated into other documentation or are outdated. Commit: 97b8116a467032f3813ceb94eda7da0f535d9d40 https://github.com/MLton/mlton/commit/97b8116a467032f3813ceb94eda7da0f535d9d40 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-20 (Sat, 20 Jan 2018) Changed paths: A README.adoc R README.md Log Message: ----------- Convert README.md to README.adoc Commit: 959a28da014cf453ed88066347783fc4d4942d78 https://github.com/MLton/mlton/commit/959a28da014cf453ed88066347783fc4d4942d78 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-20 (Sat, 20 Jan 2018) Changed paths: A doc/CHANGELOG.adoc R doc/README A doc/README.adoc Log Message: ----------- Link to ./{CHANGELOG,README}.adoc from ./doc/ Commit: 72373d36f3b9af1296e2a1f6d102c9deff4514fa https://github.com/MLton/mlton/commit/72373d36f3b9af1296e2a1f6d102c9deff4514fa Author: Matthew Fluet <mat...@gm...> Date: 2018-01-20 (Sat, 20 Jan 2018) Changed paths: M README.adoc Log Message: ----------- Update README.adoc Clean up `Resources` section. Commit: 394b2ff628dd58219cdb6c23599f8ac0f76a6120 https://github.com/MLton/mlton/commit/394b2ff628dd58219cdb6c23599f8ac0f76a6120 Author: Matthew Fluet <mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: M CHANGELOG.adoc Log Message: ----------- Update CHANGELOG.adoc Commit: ef945ce65d1e9568bf872406b328c3ea807ddf60 https://github.com/MLton/mlton/commit/ef945ce65d1e9568bf872406b328c3ea807ddf60 Author: Matthew Fluet <Mat...@gm...> Date: 2018-01-23 (Tue, 23 Jan 2018) Changed paths: A CHANGELOG.adoc A README.adoc R README.md A doc/CHANGELOG.adoc R doc/README A doc/README.adoc R doc/changelog M doc/license/MLton-LICENSE R doc/license/gmp-LICENSE R doc/x86_64-port-notes/TODO R doc/x86_64-port-notes/bench-20060527.txt R doc/x86_64-port-notes/bench-20070317.txt R doc/x86_64-port-notes/bench-20070619.txt R doc/x86_64-port-notes/exec-summary.0.txt R doc/x86_64-port-notes/exec-summary.1.txt R doc/x86_64-port-notes/mltongc.txt R doc/x86_64-port-notes/semantics.txt R doc/x86_64-port-notes/status.0.txt R doc/x86_64-port-notes/status.1.txt Log Message: ----------- Merge pull request #234 from MatthewFluet/doc-updates Documentation updates Compare: https://github.com/MLton/mlton/compare/d830723baff4...ef945ce65d1e |
From: GitHub <no...@gi...> - 2018-01-19 14:52:19
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: af385f2097ffd5a8052dbbeb613b3d5ad4077d4a https://github.com/MLton/mlton/commit/af385f2097ffd5a8052dbbeb613b3d5ad4077d4a Author: Matthew Fluet <mat...@gm...> Date: 2018-01-19 (Fri, 19 Jan 2018) Changed paths: M lib/ckit-lib/ckit.tgz M lib/mllpt-lib/ml-lpt.tgz M lib/mlrisc-lib/MLRISC.patch M lib/mlrisc-lib/MLRISC.tgz M lib/smlnj-lib/smlnj-lib.patch M lib/smlnj-lib/smlnj-lib.tgz Log Message: ----------- Update to SML/NJ 110.81 libraries Commit: a12a845dee7a2f6f944d52332453cc78085e8e7a https://github.com/MLton/mlton/commit/a12a845dee7a2f6f944d52332453cc78085e8e7a Author: Matthew Fluet <mat...@gm...> Date: 2018-01-19 (Fri, 19 Jan 2018) Changed paths: M doc/guide/src/CKitLibrary.adoc M doc/guide/src/MLLPTLibrary.adoc M doc/guide/src/MLRISCLibrary.adoc M doc/guide/src/SMLNJLibrary.adoc M lib/ckit-lib/ckit.tgz M lib/mllpt-lib/ml-lpt.tgz M lib/mlrisc-lib/MLRISC.patch M lib/mlrisc-lib/MLRISC.tgz M lib/smlnj-lib/smlnj-lib.patch M lib/smlnj-lib/smlnj-lib.tgz Log Message: ----------- Update to SML/NJ 110.82 libraries Commit: d830723baff47987daa641195aa8f7ef2ff9a799 https://github.com/MLton/mlton/commit/d830723baff47987daa641195aa8f7ef2ff9a799 Author: Matthew Fluet <Mat...@gm...> Date: 2018-01-19 (Fri, 19 Jan 2018) Changed paths: M doc/guide/src/CKitLibrary.adoc M doc/guide/src/MLLPTLibrary.adoc M doc/guide/src/MLRISCLibrary.adoc M doc/guide/src/SMLNJLibrary.adoc M lib/ckit-lib/ckit.tgz M lib/mllpt-lib/ml-lpt.tgz M lib/mlrisc-lib/MLRISC.patch M lib/mlrisc-lib/MLRISC.tgz M lib/smlnj-lib/smlnj-lib.patch M lib/smlnj-lib/smlnj-lib.tgz Log Message: ----------- Merge pull request #233 from MatthewFluet/smlnj-110.82-libraries Update to SML/NJ 110.82 libraries Compare: https://github.com/MLton/mlton/compare/a5d65b83791b...d830723baff4 |
From: GitHub <no...@gi...> - 2017-12-29 15:52:27
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: bb3ddeb0e740bdcaabb58bb82fd120af145eb38a https://github.com/MLton/mlton/commit/bb3ddeb0e740bdcaabb58bb82fd120af145eb38a Author: Matthew Fluet <mat...@gm...> Date: 2017-12-19 (Tue, 19 Dec 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/main/compile.fun Log Message: ----------- Generalize ElaborateEnv.layout and remove ElaborateEnv.layoutCurrentScope Commit: b889e1fec26618c48935e2079739a3b3fd50840b https://github.com/MLton/mlton/commit/b889e1fec26618c48935e2079739a3b3fd50840b Author: Matthew Fluet <mat...@gm...> Date: 2017-12-19 (Tue, 19 Dec 2017) Changed paths: M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Change default of `-show-basis{def,flat}` to true Commit: 5950337a8b84cb2a0102b664c8ae44118ed34fd6 https://github.com/MLton/mlton/commit/5950337a8b84cb2a0102b664c8ae44118ed34fd6 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-19 (Tue, 19 Dec 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/main/compile.fun Log Message: ----------- Replace ElaborateEnv.layout with ElaborateEnv.output An environment can be rather large, so it is probably more efficient to output each entry immediatly, rather than accumulate a large layout object. Commit: d7b5f865aa8454b4162967f59d626c60904722c0 https://github.com/MLton/mlton/commit/d7b5f865aa8454b4162967f59d626c60904722c0 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-19 (Tue, 19 Dec 2017) Changed paths: M basis-library/libs/basis-2002/top-level/top-level.sml Log Message: ----------- Ensure that Array2.traversal is the representative tycon Commit: 57b2ca3911f1268b3c25af49584811e1edb97322 https://github.com/MLton/mlton/commit/57b2ca3911f1268b3c25af49584811e1edb97322 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-20 (Wed, 20 Dec 2017) Changed paths: M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig Log Message: ----------- Remove unused Interface.makeLayoutPrettyFlexTycon Commit: 683aaf758767fe6b23480f259ee9f25dff575550 https://github.com/MLton/mlton/commit/683aaf758767fe6b23480f259ee9f25dff575550 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-20 (Wed, 20 Dec 2017) Changed paths: M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig Log Message: ----------- Include `defn` in Interface.FlexibleTycon.layout Commit: e15f1e66282b178e864ad089e823110dd76cd88e https://github.com/MLton/mlton/commit/e15f1e66282b178e864ad089e823110dd76cd88e Author: Matthew Fluet <mat...@gm...> Date: 2017-12-20 (Wed, 20 Dec 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Investigating ElaborateEnv.functorClosure.summary Commit: 31b42786bf6c656f8c1b7fd26af89615c084dc68 https://github.com/MLton/mlton/commit/31b42786bf6c656f8c1b7fd26af89615c084dc68 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-20 (Wed, 20 Dec 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig Log Message: ----------- Fix interface of result of ElaborateEnv.functorClosure.summary ElaborateEnv.functorClosure.summary performs a functor application without re-elaboration of the functor body. Using the `instantiate` function from the `actual` dummy structure and `resultStructure` from the initial elaboration of the functor declaration, it rewrites the `resultStructure`, replacing any tycons from `formal` with the corresponding tycons from `actual` and replacing any tycons generated during the initial elaboration with fresh tycons. However, this replacement was not performed on the `interface` of `resultStructure`. This could lead to anomalies in the pretty-printing of functor closures; essentially, the tycons present in the interface were always out of scope, because they did not correspond to the tycons from the `actual` or returned structure. Currently, a structure's interface is only used for pretty-printing (to express the structure's interface in terms of a named signature) and to short-circuit signature matching (`ElaborateEnv.transparentCut`) if a structure is matched against it's own signature. Thus, the previous behavior of not properly constructing the interface of the returned structure could not be exploited as a type-checking bug. [And, in retrospect, it suggests that the short-circuiting of signature matching is never exploited, since a structure's interface is always a realized interface, but the to-be-matched interface is almost always a flexible interface.] Commit: 31e17333c97bdef1d734f862aa420a45a19db13d https://github.com/MLton/mlton/commit/31e17333c97bdef1d734f862aa420a45a19db13d Author: Matthew Fluet <mat...@gm...> Date: 2017-12-20 (Wed, 20 Dec 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig Log Message: ----------- Update pretty-printing of `signature S` and `functor F` When pretty-printing a (flexible) interface, the interface is realized with dummy tycons to replace flexible tycons. We now `setLayoutPrettyTycon` for such created dummy tycons, so that they display as "_sig.t" rather than "?._sig.t" if `prefixUnset = true`. Such tycons are not out of scope, so do not require a `?.` prefix. This affects signature definitions and functor arguments. When pretty-printing a functor closure, the result interface is generated by applying the functor-closure's `summary` to a dummy argument structure. We now `loopStr` (internally using `setLayoutPrettyTycon`) on the argument and result structure to treat the tycons generated for the argument structure and result structure as in scope. The argument structure is processed with priority 1, while the result structure is processed with priority 2, so that tycons propagated from the argument to result are expressed in terms of the argument structure. Commit: bad054a1ce641a875c1a4c81e26bab15c7b860bf https://github.com/MLton/mlton/commit/bad054a1ce641a875c1a4c81e26bab15c7b860bf Author: Matthew Fluet <mat...@gm...> Date: 2017-12-20 (Wed, 20 Dec 2017) Changed paths: M mlton/ast/ast-atoms.fun Log Message: ----------- Tweak functor argument and result pseudo-strid. Commit: d3ecc8cd5907f595d85b4e2b291d4e538062988a https://github.com/MLton/mlton/commit/d3ecc8cd5907f595d85b4e2b291d4e538062988a Author: Matthew Fluet <mat...@gm...> Date: 2017-12-28 (Thu, 28 Dec 2017) Changed paths: M mlton/ast/ast-modules.fun M mlton/ast/ast-modules.sig M mlton/ast/ast-programs.fun M mlton/elaborate/elaborate-modules.fun M mlton/front-end/ml.grm M mlton/front-end/ml.lex Log Message: ----------- Add support for `(*#showBasis "<file>"*)` directives A comment of the form `(*#showBasis "<file>"*)` is recognized as a directive to save the current basis to `<file>`. The `<file>` is interpreted relative to the source file in which it appears. The comment is lexed as a distinct token and is parsed as a structure-level declaration. [Note that treating the directive as a top-level declaration would prohibit using it inside a functor body, which would make the feature significantly less useful in the context of the MLton compiler sources (with its nearly fully functorial style).] Commit: 00ba8a82590240447cc765bd2019b3bd634fa0cb https://github.com/MLton/mlton/commit/00ba8a82590240447cc765bd2019b3bd634fa0cb Author: Matthew Fluet <mat...@gm...> Date: 2017-12-28 (Thu, 28 Dec 2017) Changed paths: M lib/.gitignore M mlton/.gitignore Log Message: ----------- Ignore *.basis files under lib/ and mlton/ Commit: 8130af9ca17df1bd2566d09969b35fc51c6fe190 https://github.com/MLton/mlton/commit/8130af9ca17df1bd2566d09969b35fc51c6fe190 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-28 (Thu, 28 Dec 2017) Changed paths: M basis-library/mlton/rlimit.sml Log Message: ----------- Explicitly bind `MLton.RLimit.RLim.t` to force def location Commit: a5d65b83791b8d345b6a71f35d79dc56559cc323 https://github.com/MLton/mlton/commit/a5d65b83791b8d345b6a71f35d79dc56559cc323 Author: Matthew Fluet <Mat...@gm...> Date: 2017-12-29 (Fri, 29 Dec 2017) Changed paths: M basis-library/libs/basis-2002/top-level/top-level.sml M basis-library/mlton/rlimit.sml M lib/.gitignore M mlton/.gitignore M mlton/ast/ast-atoms.fun M mlton/ast/ast-modules.fun M mlton/ast/ast-modules.sig M mlton/ast/ast-programs.fun M mlton/control/control-flags.sml M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/elaborate/elaborate-modules.fun M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig M mlton/front-end/ml.grm M mlton/front-end/ml.lex M mlton/main/compile.fun M mlton/main/main.fun Log Message: ----------- Merge pull request #231 from MatthewFluet/show-basis-decl Add support for `(*#showBasis "<file>"*)` directives. A comment of the form `(*#showBasis "<file>"*)` is recognized as a directive to save the current basis to `<file>`. The `<file>` is interpreted relative to the source file in which it appears. The comment is lexed as a distinct token and is parsed as a structure-level declaration. [Note that treating the directive as a top-level declaration would prohibit using it inside a functor body, which would make the feature significantly less useful in the context of the MLton compiler sources (with its nearly fully functorial style).] This feature is meant to facilitate auto-completion via company-mlton (https://github.com/MatthewFluet/company-mlton) and similar tools. Also, update pretty-printing of `signature S` and `functor F` in a shown basis and make `-show-basis-def true` and `-show-basis-flat true` the defaults. Compare: https://github.com/MLton/mlton/compare/9639222963d9...a5d65b83791b |
From: GitHub <no...@gi...> - 2017-12-20 19:52:42
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 2e933df0fe4f5e731f34db80dadfcc322c4e12e2 https://github.com/MLton/mlton/commit/2e933df0fe4f5e731f34db80dadfcc322c4e12e2 Author: Curtis Dunham <Cur...@gm...> Date: 2017-12-19 (Tue, 19 Dec 2017) Changed paths: M doc/guide/src/Performance.adoc Log Message: ----------- The Shootout as it once existed is no more Furthermore, it does not evaluate MLton. Commit: 4c795f5a87616dfc1f08aa7b807495f47904d867 https://github.com/MLton/mlton/commit/4c795f5a87616dfc1f08aa7b807495f47904d867 Author: Curtis Dunham <Cur...@gm...> Date: 2017-12-19 (Tue, 19 Dec 2017) Changed paths: M doc/guide/src/Performance.adoc Log Message: ----------- Update performance comparison Latest dev versions of each compiler except for SML/NJ which is one minor release behind the latest. Commit: 722c242f201cfa71803e2e99e00536e183a03b8d https://github.com/MLton/mlton/commit/722c242f201cfa71803e2e99e00536e183a03b8d Author: Curtis Dunham <Cur...@gm...> Date: 2017-12-19 (Tue, 19 Dec 2017) Changed paths: M benchmark/main.sml Log Message: ----------- Update benchmarking test harness Works with latest versions of the various toolchains under test. Poly/ML will evaluate the "val _" construct at compile time rather than runtime, so it needs an actual main function; did some refactoring to accommodate this. Commit: 9639222963d943c43355aced09a2e5b520cb0a69 https://github.com/MLton/mlton/commit/9639222963d943c43355aced09a2e5b520cb0a69 Author: Matthew Fluet <Mat...@gm...> Date: 2017-12-20 (Wed, 20 Dec 2017) Changed paths: M benchmark/main.sml M doc/guide/src/Performance.adoc Log Message: ----------- Merge pull request #230 from cdunham/perf Update performance comparisons on wiki Compare: https://github.com/MLton/mlton/compare/c90be33be40a...9639222963d9 |
From: GitHub <no...@gi...> - 2017-12-17 10:39:46
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 10dc22794e2c52afb0c2d00b2288da12bc30a388 https://github.com/MLton/mlton/commit/10dc22794e2c52afb0c2d00b2288da12bc30a388 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-30 (Thu, 30 Nov 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Experiment with "flat" basis output A "flat" basis output shows nested components with long identifier names in order to simplify tools. Commit: 204cb093f7106f5de829c018baff73de357b1f94 https://github.com/MLton/mlton/commit/204cb093f7106f5de829c018baff73de357b1f94 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-01 (Fri, 01 Dec 2017) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/main/compile.fun M mlton/main/main.fun Log Message: ----------- Add `-show-basis-flat {false|true}` Commit: 18ead82683915d0e522c93e7fe4d1da2f1564641 https://github.com/MLton/mlton/commit/18ead82683915d0e522c93e7fe4d1da2f1564641 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-16 (Sat, 16 Dec 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/main/compile.fun Log Message: ----------- Update "flat" basis output Simplify implementation of "flat" basis output. Include def point information with "flat" basis output. Commit: 96a02b586a4584bcd452039854592b3df68fded1 https://github.com/MLton/mlton/commit/96a02b586a4584bcd452039854592b3df68fded1 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-16 (Sat, 16 Dec 2017) Changed paths: M lib/mlton/basic/layout.sig M lib/mlton/basic/layout.sml Log Message: ----------- Add `val Layout.compact: t -> t` to force one-line output This is somewhat more efficient than `Layout.str o Layout.toString`. Commit: 76ef0006a3f147c94cd2bd414180e5ebe0652b6e https://github.com/MLton/mlton/commit/76ef0006a3f147c94cd2bd414180e5ebe0652b6e Author: Matthew Fluet <mat...@gm...> Date: 2017-12-16 (Sat, 16 Dec 2017) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/main/compile.fun M mlton/main/main.fun Log Message: ----------- Add `-show-basis-compact` and `-show-basis-def` `-show-basis-def true` appends `(* @ <region> *)` annotations to items in shown environment. `-show-basis-compact true` tries to optimize vertical space (at the expens of long lines); all value and type specifications are forced to one line and signature and structure specifications expressed as `where type` refinement of a named signature are forced to one line. Commit: fc9a657441bb5fd6af7f576b38a9feb4a0e0f600 https://github.com/MLton/mlton/commit/fc9a657441bb5fd6af7f576b38a9feb4a0e0f600 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-16 (Sat, 16 Dec 2017) Changed paths: M lib/mlton/basic/layout.sml Log Message: ----------- Update Layout.mayAlign Avoid an awkward special case where a very long first element but short subsequent elements would lead to the first element on its own line and subsequent elements together on the next line. Semantics should be more like `mayAlign` where either all elements are on the same line or all elements on separate lines. Commit: ebe6a9711463ca1d20746c6989d8e527aeb692a0 https://github.com/MLton/mlton/commit/ebe6a9711463ca1d20746c6989d8e527aeb692a0 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-16 (Sat, 16 Dec 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Tweaks to `-show-basis` output Commit: c90be33be40a64ebde3892fd2206a4dee3f41e36 https://github.com/MLton/mlton/commit/c90be33be40a64ebde3892fd2206a4dee3f41e36 Author: Matthew Fluet <Mat...@gm...> Date: 2017-12-17 (Sun, 17 Dec 2017) Changed paths: M lib/mlton/basic/layout.sig M lib/mlton/basic/layout.sml M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/main/compile.fun M mlton/main/main.fun Log Message: ----------- Merge pull request #229 from MatthewFluet/flat-basis Updates to -show-basis New functionality for `-show-basis`: - `-show-basis-flat`: Recursively expand structures in environment, displaying components with long identifiers. For example, structure Z: sig datatype t = Z1 | Z2 of Z.t (* = datatype Z.t *) val toString: Z.t -> string end datatype Z.t = Z1 | Z2 of Z.t (* = datatype Z.t *) con Z.Z1: Z.t con Z.Z2: Z.t -> Z.t val Z.toString: Z.t -> string Note that with `-show-basis-flat true`, value identifiers with constructor status are show as `con <vid>: <ty>` (rather than being omitted), and value identifiers with exception status are show as `exn <vid>: [<ty> ->] exn` (rather than as `exception <vid> [of <ty>]`). - `-show-basis-def`: Appends `(* @ <region> *)` annotations to items in shown environment. - `-show-basis-compact`: Tries to optimize vertical space (at the expense of long lines); all value and type specifications are forced to one line and signature and structure specifications expressed as `where type` refinement of a named signature are forced to one line. The intention is that this additional functionality can be used to drive auto-completion; `-show-basis-flat` makes it easy to extract completable long identifiers; `-show-basis-def` makes it easy to associate definition points with completable identifiers; `-show-basis-compact` makes it easier to associate annotations/metadata with completable identifiers. Compare: https://github.com/MLton/mlton/compare/79d4a623c2f9...c90be33be40a |
From: GitHub <no...@gi...> - 2017-12-11 11:50:22
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: cabaa6ec6b9afad906e0bdb4f5c81f6ea3960fa2 https://github.com/MLton/mlton/commit/cabaa6ec6b9afad906e0bdb4f5c81f6ea3960fa2 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-08 (Fri, 08 Dec 2017) Changed paths: M configure.ac M mlton/codegen/c-codegen/c-codegen.fun M mlton/main/main.fun M runtime/cenv.h M runtime/gen/gen-types.c Log Message: ----------- Use default compiler and c library features Drop passing "-std=gnu99" to C compiler and defining "_ISOC99_SOURCE", "_BSD_SOURCE", and "_POSIX_C_SOURCE". Recent versions of glibc have complained about defining both _BSD_SOURCE and _POSIX_C_SOURCE, suggesting that that combination should be enabled by _DEFAULT_SOURCE, which is the default. On Fedora (though, not (yet) Ubuntu), this leads to many warning messages during compilation of the runtime. Commit: 31aeba9ca4579fac40faab86ba1184c7678449b5 https://github.com/MLton/mlton/commit/31aeba9ca4579fac40faab86ba1184c7678449b5 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-08 (Fri, 08 Dec 2017) Changed paths: M configure.ac Log Message: ----------- Restore `AC_PROG_CC_STDC` to configure.ac We do require C99 (or greater) to compile the runtime system and gcc 4.8.4 on Ubuntu 14.04 (as provided by TravisCI) defaults to "-std=gnu90". Commit: 79d4a623c2f990e2c9b39db23934b0f103f73970 https://github.com/MLton/mlton/commit/79d4a623c2f990e2c9b39db23934b0f103f73970 Author: Matthew Fluet <Mat...@gm...> Date: 2017-12-11 (Mon, 11 Dec 2017) Changed paths: M configure.ac M mlton/codegen/c-codegen/c-codegen.fun M mlton/main/main.fun M runtime/cenv.h M runtime/gen/gen-types.c Log Message: ----------- Merge pull request #226 from MatthewFluet/drop-c99-and-feature-macros Drop feature macros Recent versions of glibc have complained about defining both `_BSD_SOURCE` and `_POSIX_C_SOURCE`, suggesting that that combination should be enabled by `_DEFAULT_SOURCE`, which is the default. On Fedora (though, not (yet) Ubuntu), this leads to many warning messages during compilation of the runtime. Would like to drop `-std=gnu99` and use compiler default, but MLton does require C99 (or greater) to compile the runtime system and gcc 4.8.4 on Ubuntu 14.04 (as provided by TravisCI) defaults to `-std=gnu90`. Compare: https://github.com/MLton/mlton/compare/f01ae6a6ba55...79d4a623c2f9 |
From: GitHub <no...@gi...> - 2017-12-10 10:52:33
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7f53157265745e483cd6599261fca995a9b3f94c https://github.com/MLton/mlton/commit/7f53157265745e483cd6599261fca995a9b3f94c Author: Richard Laughlin <ric...@gm...> Date: 2017-12-04 (Mon, 04 Dec 2017) Changed paths: A Dockerfile Log Message: ----------- Added a simple dockerfile to build MLton from scratch on the latest version of Ubuntu. The default entrypoint runs the regression tests. Commit: 94bd0d032abedd4d2ef6ac8d18a6f9f8541609d3 https://github.com/MLton/mlton/commit/94bd0d032abedd4d2ef6ac8d18a6f9f8541609d3 Author: Richard Laughlin <ric...@gm...> Date: 2017-12-04 (Mon, 04 Dec 2017) Changed paths: M Dockerfile Log Message: ----------- Changed the approach from rsync to overriding the PREFIX make variable. Commit: fc73ed228c6385e9b6c0f70d161981e2d4192532 https://github.com/MLton/mlton/commit/fc73ed228c6385e9b6c0f70d161981e2d4192532 Author: Maksim Yegorov <fin...@gm...> Date: 2017-12-04 (Mon, 04 Dec 2017) Changed paths: M .travis.yml M Dockerfile M Makefile.in M README.md A bin/run-docker Log Message: ----------- remove (actually suffix) left over from before autoconf conversion Commit: 661abdab1cb625d429d0d48a6c3e0c4d992ad664 https://github.com/MLton/mlton/commit/661abdab1cb625d429d0d48a6c3e0c4d992ad664 Author: Richard Laughlin <ric...@gm...> Date: 2017-12-05 (Tue, 05 Dec 2017) Changed paths: M bin/run-docker Log Message: ----------- Revised ./bin/run-docker script. Commit: 4f37d59847589a7f086796fada8fba2cbf99e2f5 https://github.com/MLton/mlton/commit/4f37d59847589a7f086796fada8fba2cbf99e2f5 Author: Richard Laughlin <ric...@gm...> Date: 2017-12-05 (Tue, 05 Dec 2017) Changed paths: M bin/run-docker Log Message: ----------- Made the docker image name less likely to conflict with an existing user tag. Commit: f01ae6a6ba559ef96e47191e8954f99ebe2d04f1 https://github.com/MLton/mlton/commit/f01ae6a6ba559ef96e47191e8954f99ebe2d04f1 Author: Matthew Fluet <Mat...@gm...> Date: 2017-12-10 (Sun, 10 Dec 2017) Changed paths: M .travis.yml A Dockerfile M README.md A bin/run-docker Log Message: ----------- Merge pull request #223 from rcythr/feature/dockerfile Added a Dockerfile Compare: https://github.com/MLton/mlton/compare/1e83d5ee945c...f01ae6a6ba55 |
From: GitHub <no...@gi...> - 2017-12-07 02:12:31
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: bb2b1aa568526fdf1eaa1a4c5c3c05989a9557c1 https://github.com/MLton/mlton/commit/bb2b1aa568526fdf1eaa1a4c5c3c05989a9557c1 Author: Richard Laughlin <ric...@gm...> Date: 2017-12-04 (Mon, 04 Dec 2017) Changed paths: M Makefile.in Log Message: ----------- Removed and variables from the Makefile.in. The user will be able to supply --prefix to ./configure and it will be honored. Commit: 1e83d5ee945c65424eeffd5329e30863e37e140b https://github.com/MLton/mlton/commit/1e83d5ee945c65424eeffd5329e30863e37e140b Author: Matthew Fluet <Mat...@gm...> Date: 2017-12-06 (Wed, 06 Dec 2017) Changed paths: M Makefile.in Log Message: ----------- Merge pull request #224 from rcythr/bugfix/removed_makefile_prefix Remove $PREFIX and $prefix Compare: https://github.com/MLton/mlton/compare/90cbe1c54c7f...1e83d5ee945c |
From: GitHub <no...@gi...> - 2017-12-03 20:11:17
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 381a47e42f14d6b508b7088c22d7e84394269517 https://github.com/MLton/mlton/commit/381a47e42f14d6b508b7088c22d7e84394269517 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-01 (Fri, 01 Dec 2017) Changed paths: M runtime/gc/heap_predicates.c M runtime/gc/invariant.c M runtime/gc/object-size.c M runtime/gc/object-size.h Log Message: ----------- Fix heap invariant predicates Previously, the `isPointerInOldGen` and `isPointerInNursery` predicates checked that the object pointer is strictly less than `s->heap.start + s->heap.oldGenSize` and `s->frontier`, respectively. With MLton/mlton#219 (forward pointer in header), 0-byte objects are allowed and the above checks are insufficient. In particular, immediately after allocating a 0-byte object, the object pointer is equal to the frontier. Now, the `isPointerInOldGen` and `isPointerInNursery` predicates are revised to check that the end of the object is less than or equal to `s->heap.start + s->heap.oldGenSize` and `s->frontier`, respectively. Commit: 437cdaa0f26716338e9020f7a030f60fad1836d3 https://github.com/MLton/mlton/commit/437cdaa0f26716338e9020f7a030f60fad1836d3 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-03 (Sun, 03 Dec 2017) Changed paths: M runtime/gc/heap_predicates.c Log Message: ----------- Fix heap invariant predicates 381a47e revised the `isPointerInOldGen` and `isPointerInNursery` predicates are revised to check that the end of the object is less than or equal to `s->heap.start + s->heap.oldGenSize` and `s->frontier`, respectively. Determining the end of the object requires using the object header (to determine the object size). However, there are (at least) two scenarios in which the pointer given to `isPointerInOldGen` or `isPointerInNursery` does not have a valid header. First, during a copying collection, `forward` asserts `isObjptrInFromSpace (s, *opp)`; if `*opp` is already forwarded, then the header has been overwritten with a forward pointer. Second, during a hash-consing dfs mark, `markIntergenerationalPointer` and `markIntergenerationalObjptr` use `isPointerInOldGen` on interior pointers (i.e., on a pointer to the slot in an object that has an object pointer). Now, the `isPointerInOldGen` and `isPointerInNursery` predicates are revised to check that the pointer less than or equal to `s->heap.start + s->heap.oldGenSize` and `s->frontier`, respectively. Commit: 30a39685263fb426743cc6849af0a3b4902f20e3 https://github.com/MLton/mlton/commit/30a39685263fb426743cc6849af0a3b4902f20e3 Author: Matthew Fluet <mat...@gm...> Date: 2017-12-03 (Sun, 03 Dec 2017) Changed paths: M runtime/gc/virtual-memory.c Log Message: ----------- Fix `GC_memmove` assertions With MLton/mlton#192 (array copy prims) a GC_memmove may be invoked with arbitrary src, dst, and size values. Commit: 90cbe1c54c7fd5410815af4f24e55e103e95832a https://github.com/MLton/mlton/commit/90cbe1c54c7fd5410815af4f24e55e103e95832a Author: Matthew Fluet <Mat...@gm...> Date: 2017-12-03 (Sun, 03 Dec 2017) Changed paths: M runtime/gc/heap_predicates.c M runtime/gc/invariant.c M runtime/gc/object-size.c M runtime/gc/object-size.h M runtime/gc/virtual-memory.c Log Message: ----------- Merge pull request #222 from MatthewFluet/heap-predicates Fix heap invariant predicates Previously, the `isPointerInOldGen` and `isPointerInNursery` predicates checked that the object pointer is strictly less than `s->heap.start + s->heap.oldGenSize` and `s->frontier`, respectively. With MLton/mlton#219 (forward pointer in header), 0-byte objects are allowed and the above checks are insufficient. In particular, immediately after allocating a 0-byte object, the object pointer is equal to the frontier. Now (381a47e and 437cdaa), the `isPointerInOldGen` and `isPointerInNursery` predicates are revised to check that the pointer less than or equal to `s->heap.start + s->heap.oldGenSize` and `s->frontier`, respectively. Previously, the `GC_memmove` function asserted that the src, dst, and size values were aligned. With MLton/mlton#192 (array copy prims) a GC_memmove may be invoked with arbitrary src, dst, and size values. Now (30a3968), the `GC_memmove` function does not assert alignment for src, dst, and size. For consistency, neither does `GC_memcpy`. Compare: https://github.com/MLton/mlton/compare/8fed932d2b76...90cbe1c54c7f |
From: GitHub <no...@gi...> - 2017-11-15 23:03:48
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 4a560a38a9d00d2719fab317bae5dedf22533ddc https://github.com/MLton/mlton/commit/4a560a38a9d00d2719fab317bae5dedf22533ddc Author: Matthew Fluet <mat...@gm...> Date: 2015-10-13 (Tue, 13 Oct 2015) Changed paths: M runtime/basis/Posix/Signal.c Log Message: ----------- Drop 'static' from 'struct sigaction sa' in Posix_Signal_handlee Commit: 16d479aed28e31f885670b07b547ab32169dfb54 https://github.com/MLton/mlton/commit/16d479aed28e31f885670b07b547ab32169dfb54 Author: Matthew Fluet <mat...@gm...> Date: 2015-10-13 (Tue, 13 Oct 2015) Changed paths: M basis-library/mlton/signal.sml M basis-library/primitive/basis-ffi.sml M runtime/basis-ffi.h M runtime/basis/Posix/Signal-consts.c M runtime/basis/Posix/Signal.c M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Drop 'static sigset_t Posix_Signal_sigset;' in runtime/basis/Posix/Signal.c Avoid the use of global mutable state for signal sets. In SML, represent an uninitialized signal set a 'Word8.word array' and an initialized signal set as a 'Word8.word vector'. These are passed across the FFI as 'unsigned char *' and cast to 'sigset_t *' for library functions. Commit: 41b49365cea6d58155087254ea974700518577a4 https://github.com/MLton/mlton/commit/41b49365cea6d58155087254ea974700518577a4 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-15 (Wed, 15 Nov 2017) Changed paths: M .gitignore A .travis.yml R Makefile A Makefile-auto.am A Makefile.in R README A README.md M basis-library/Makefile M basis-library/arrays-and-vectors/array-slice.sig M basis-library/arrays-and-vectors/array.sig M basis-library/arrays-and-vectors/array.sml M basis-library/arrays-and-vectors/array2.sml M basis-library/arrays-and-vectors/mono-array-slice.sig M basis-library/arrays-and-vectors/mono-array.sig M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence.sig M basis-library/arrays-and-vectors/sequence0.sig M basis-library/arrays-and-vectors/sequence0.sml M basis-library/arrays-and-vectors/slice.sig M basis-library/arrays-and-vectors/slice0.sig M basis-library/arrays-and-vectors/vector-slice.sig M basis-library/arrays-and-vectors/vector.sig M basis-library/arrays-and-vectors/vector.sml M basis-library/basis-1997.mlb M basis-library/basis-2002.mlb M basis-library/basis-none.mlb M basis-library/build/sources.mlb M basis-library/c-types.mlb R basis-library/config/header/header-word32.sml R basis-library/config/header/header-word64.sml A basis-library/config/metadata/array-metadata-size128.sml A basis-library/config/metadata/array-metadata-size192.sml A basis-library/config/metadata/array-metadata-size256.sml A basis-library/config/metadata/array-metadata-size96.sml A basis-library/config/metadata/normal-metadata-size128.sml A basis-library/config/metadata/normal-metadata-size32.sml A basis-library/config/metadata/normal-metadata-size64.sml M basis-library/equal.mlb M basis-library/infixes.mlb M basis-library/integer/int-inf0.sml M basis-library/io/imperative-io.fun M basis-library/libs/basis-1997/basis-1997.mlb M basis-library/libs/basis-2002/basis-2002.mlb M basis-library/libs/basis-extra/basis-extra.mlb A basis-library/maps/array-metadata-size128.map A basis-library/maps/array-metadata-size192.map A basis-library/maps/array-metadata-size256.map A basis-library/maps/array-metadata-size96.map R basis-library/maps/header-word32.map R basis-library/maps/header-word64.map A basis-library/maps/normal-metadata-size128.map A basis-library/maps/normal-metadata-size32.map A basis-library/maps/normal-metadata-size64.map M basis-library/mlton.mlb M basis-library/mlton/call-stack.sml M basis-library/mlton/io.fun M basis-library/mlton/mlton.sml M basis-library/net/socket.sml M basis-library/overloads.mlb M basis-library/pervasive-exns.mlb M basis-library/pervasive-types.mlb M basis-library/pervasive-vals.mlb M basis-library/platform/mingw.sml M basis-library/posix/file-sys.sml M basis-library/posix/io.sml M basis-library/posix/proc-env.sml M basis-library/primitive/prim-basis.mlb M basis-library/primitive/prim-mlton.sml M basis-library/primitive/prim-seq.sml M basis-library/primitive/primitive.mlb M basis-library/real/pack-real.sml M basis-library/real/real.sml M basis-library/sml-nj.mlb M basis-library/sml-nj/unsafe.sig M basis-library/sml-nj/unsafe.sml M basis-library/system/date.sml M basis-library/text/char0.sml M basis-library/unsafe.mlb M benchmark/.gitignore R benchmark/Makefile A benchmark/Makefile.in M benchmark/main.sml M benchmark/tests/.gitignore A benchmark/tests/string-concat.sml R benchmark/tests/vector-concat.sml A benchmark/tests/vector32-concat.sml A benchmark/tests/vector64-concat.sml M benchmark/update-counts.sh A bin/.gitignore M bin/add-cross R bin/mlton-script A bin/mlton-script.in M bin/regression A bin/travis-ci R bin/upgrade-basis A configure.ac A doc/README R doc/README M doc/guide/src/AdmitsEquality.adoc M doc/guide/src/CKitLibrary.adoc M doc/guide/src/CommonSubexp.adoc M doc/guide/src/CompilingWithSMLNJ.adoc M doc/guide/src/DefineTypeBeforeUse.adoc M doc/guide/src/Emacs.adoc M doc/guide/src/EqualityTypeVariable.adoc M doc/guide/src/FirstClassPolymorphism.adoc M doc/guide/src/LLVMCodegen.adoc M doc/guide/src/LanguageChanges.adoc M doc/guide/src/MLBasis.attachments/mlb-formal.pdf M doc/guide/src/MLBasisAnnotationExamples.adoc M doc/guide/src/MLBasisAnnotations.adoc M doc/guide/src/MLLPTLibrary.adoc M doc/guide/src/MLRISCLibrary.adoc M doc/guide/src/PolymorphicEquality.adoc M doc/guide/src/PortingMLton.adoc M doc/guide/src/RunTimeOptions.adoc M doc/guide/src/SMLNJDeviations.adoc M doc/guide/src/SMLNJLibrary.adoc M doc/guide/src/SSA.adoc M doc/guide/src/SelfCompiling.adoc M doc/guide/src/ShowBasis.adoc M doc/guide/src/SuccessorML.adoc M doc/guide/src/TypeChecking.adoc M doc/guide/src/TypeVariableScope.adoc M doc/guide/src/Unicode.adoc M doc/guide/src/UnresolvedBugs.adoc M doc/guide/src/ValueRestriction.adoc M doc/mlb-formal/mlb-formal.tex M lib/ckit-lib/Makefile M lib/ckit-lib/ckit.patch M lib/ckit-lib/ckit.tgz M lib/cml/cml-lib/cml-lib.mlb M lib/cml/core-cml/core-cml.mlb M lib/cml/util/util.mlb M lib/mllpt-lib/Makefile M lib/mllpt-lib/ml-lpt.patch M lib/mllpt-lib/ml-lpt.tgz M lib/mlnlffi-lib/.gitignore R lib/mlnlffi-lib/Makefile A lib/mlnlffi-lib/Makefile.in M lib/mlnlffi-lib/c.mlb M lib/mlnlffi-lib/internals/c-int.mlb M lib/mlnlffi-lib/memory/memory.unix.mlb M lib/mlrisc-lib/MLRISC.patch M lib/mlrisc-lib/MLRISC.tgz M lib/mlrisc-lib/Makefile M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/dot.sml M lib/mlton/basic/error.sig M lib/mlton/basic/error.sml M lib/mlton/basic/exn.sml M lib/mlton/basic/exn0.sml M lib/mlton/basic/layout.sig M lib/mlton/basic/layout.sml M lib/mlton/basic/list.sig M lib/mlton/basic/list.sml A lib/mlton/basic/parse-sexp.fun A lib/mlton/basic/parse-sexp.sig R lib/mlton/basic/parse.fun M lib/mlton/basic/parse.sig A lib/mlton/basic/parse.sml M lib/mlton/basic/popt.sig M lib/mlton/basic/popt.sml M lib/mlton/basic/process.sml M lib/mlton/basic/promise.sig M lib/mlton/basic/promise.sml M lib/mlton/basic/quick-sort.sml M lib/mlton/basic/random.sml M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/basic/stream.sig M lib/mlton/basic/stream.sml M lib/mlton/basic/tree.sig M lib/mlton/basic/tree.sml M lib/mlton/basic/vector.fun M lib/mlton/basic/vector.sig M lib/mlton/env/sources.mlb M lib/mlton/set/sources.mlb M lib/mlton/sources.cm M lib/mlton/sources.mlb M lib/mlyacc-lib/lrtable.sml M lib/mlyacc-lib/mlyacc-lib.mlb M lib/smlnj-lib/Makefile M lib/smlnj-lib/smlnj-lib.patch M lib/smlnj-lib/smlnj-lib.tgz M lib/stubs/mlton-stubs/README M mllex/Makefile M mlnlffigen/Makefile M mlnlffigen/gen-cppcmd M mlprof/Makefile M mlton/.gitignore R mlton/Makefile A mlton/Makefile.in M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/ast/ast-core.fun M mlton/ast/ast-core.sig M mlton/ast/ast-mlbs.fun M mlton/ast/ast-modules.fun M mlton/ast/ast-modules.sig M mlton/ast/ast-programs.fun M mlton/ast/longid.fun M mlton/atoms/const.fun M mlton/atoms/const.sig M mlton/atoms/generic-scheme.fun M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/atoms/id.fun M mlton/atoms/id.sig A mlton/atoms/layout-pretty.sml M mlton/atoms/prim-tycons.fun M mlton/atoms/prim-tycons.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/record.fun M mlton/atoms/record.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/atoms/tycon.fun M mlton/atoms/tycon.sig M mlton/atoms/type-ops.fun M mlton/atoms/tyvar.fun M mlton/atoms/tyvar.sig R mlton/atoms/use-name.fun M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig M mlton/backend/backend.fun M mlton/backend/live.fun M mlton/backend/machine.fun M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/backend/ssa-to-rssa.fun M mlton/backend/ssa-to-rssa.sig M mlton/backend/switch.fun M mlton/closure-convert/abstract-value.fun M mlton/closure-convert/abstract-value.sig M mlton/closure-convert/closure-convert.fun M mlton/closure-convert/globalize.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.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/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sml M mlton/control/pretty.sig M mlton/control/pretty.sml M mlton/control/region.sml M mlton/control/source-pos.sig M mlton/control/source-pos.sml M mlton/control/version_sml.src M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/core-ml/dead-code.fun M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-core.sig M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/elaborate/elaborate-mlbs.fun M mlton/elaborate/elaborate-mlbs.sig M mlton/elaborate/elaborate-modules.fun M mlton/elaborate/elaborate-modules.sig M mlton/elaborate/elaborate-programs.sig M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/elaborate-sigexp.sig M mlton/elaborate/elaborate.sig M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig M mlton/elaborate/precedence-parse.fun M mlton/elaborate/precedence-parse.sig M mlton/elaborate/scope.fun M mlton/elaborate/type-env.fun M mlton/elaborate/type-env.sig M mlton/front-end/ml.grm M mlton/front-end/ml.lex M mlton/front-end/mlb.lex M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig M mlton/match-compile/nested-pat.fun M mlton/match-compile/nested-pat.sig M mlton/ssa/analyze.fun M mlton/ssa/analyze2.fun M mlton/ssa/combine-conversions.fun M mlton/ssa/common-block.fun M mlton/ssa/common-subexp.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/direct-exp.fun M mlton/ssa/direct-exp2.fun M mlton/ssa/global.fun M mlton/ssa/inline.fun M mlton/ssa/known-case.fun M mlton/ssa/local-ref.fun A mlton/ssa/loop-unroll.fun A mlton/ssa/loop-unswitch.fun M mlton/ssa/poly-equal.fun M mlton/ssa/poly-hash.fun M mlton/ssa/prepasses.fun M mlton/ssa/profile.fun M mlton/ssa/profile2.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/remove-unused.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun A mlton/ssa/share-zero-vec.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify-types.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/ssa/useless.fun M mlton/ssa/zone.fun M mlton/xml/implement-exceptions.fun M mlton/xml/implement-suffix.fun M mlton/xml/monomorphise.fun A mlton/xml/parse-sxml.fun A mlton/xml/parse-sxml.sig M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/sources.cm M mlton/xml/sources.mlb M mlton/xml/sxml-simplify.fun M mlton/xml/type-check.fun M mlton/xml/xml-simplify.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig M mlyacc/.gitignore R mlyacc/Makefile A mlyacc/Makefile.in M mlyacc/examples/calc/README A mlyacc/examples/calc/calc.mlb M mlyacc/examples/calc/calc.sml R mlyacc/examples/calc/sources.cm M mlyacc/examples/fol/README A mlyacc/examples/fol/fol.mlb M mlyacc/examples/fol/parse.sml R mlyacc/examples/fol/sources.cm M mlyacc/examples/pascal/README M mlyacc/examples/pascal/parser.sml A mlyacc/examples/pascal/pascal.mlb R mlyacc/examples/pascal/sources.cm A package/freebsd/.gitignore R package/freebsd/Makefile A package/freebsd/Makefile.in A package/mingw/.gitignore R package/mingw/Makefile A package/mingw/Makefile.in M regression/fail/constant-too-big.sml A regression/fail/datatype-where-complex.1.sml A regression/fail/datatype-where-complex.2.sml R regression/fail/datatype-where-complex.sml M regression/fail/duplicate-tyvar.sml A regression/fail/infix.1.sml A regression/fail/infix.2.sml A regression/fail/infix.3.sml A regression/fail/infix.4.sml A regression/fail/infix.5.sml A regression/fail/infix.6.sml A regression/fail/special-ids.1.sml A regression/fail/special-ids.2.sml M regression/sharing.sml A regression/size3.amd64-darwin.ok A regression/size3.amd64-linux.ok A regression/size3.ok A regression/size3.sml A regression/whitelist M runtime/.gitignore R runtime/Makefile A runtime/Makefile.in M runtime/gc/align.c M runtime/gc/array-allocate.c M runtime/gc/array.c M runtime/gc/array.h M runtime/gc/cheney-copy.c M runtime/gc/controls.h M runtime/gc/dfs-mark.c M runtime/gc/done.c M runtime/gc/foreach.c M runtime/gc/forward.c M runtime/gc/forward.h M runtime/gc/garbage-collection.c M runtime/gc/hash-cons.c M runtime/gc/init-world.c M runtime/gc/init.c M runtime/gc/mark-compact.c M runtime/gc/new-object.c M runtime/gc/object-size.c M runtime/gc/object-size.h M runtime/gc/object.c M runtime/gc/object.h M runtime/gc/signals.c M runtime/gc/stack.c M runtime/gc/stack.h M runtime/gc/thread.c M runtime/gc/weak.c M runtime/gen/gen-sizes.c M runtime/platform.h M runtime/platform/aix.h M runtime/platform/cygwin.h M runtime/platform/darwin.h M runtime/platform/freebsd.h M runtime/platform/hpux.h M runtime/platform/hurd.h M runtime/platform/linux.h M runtime/platform/mingw.h M runtime/platform/mmap-protect.c M runtime/platform/netbsd.h M runtime/platform/openbsd.c M runtime/platform/openbsd.h M runtime/platform/solaris.h M util/cm2mlb/cm2mlb-map Log Message: ----------- Merge branch 'master' of github.com:MLton/mlton into signal-global-state Commit: 8fed932d2b76cf4d0e0619177d17b50d7fb4ea6f https://github.com/MLton/mlton/commit/8fed932d2b76cf4d0e0619177d17b50d7fb4ea6f Author: Matthew Fluet <Mat...@gm...> Date: 2017-11-15 (Wed, 15 Nov 2017) Changed paths: M basis-library/mlton/signal.sml M basis-library/primitive/basis-ffi.sml M runtime/basis-ffi.h M runtime/basis/Posix/Signal-consts.c M runtime/basis/Posix/Signal.c M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Merge pull request #221 from MatthewFluet/signal-global-state Eliminate the use of (some) global mutable state for signal handling. This is a backport from the CMU multiMLton project. Compare: https://github.com/MLton/mlton/compare/b7c9199e8528...8fed932d2b76 |
From: GitHub <no...@gi...> - 2017-11-15 19:52:25
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 90af72408fa61d9cb4d06f3a4938b4f452a4847b https://github.com/MLton/mlton/commit/90af72408fa61d9cb4d06f3a4938b4f452a4847b Author: Matthew Fluet <mat...@gm...> Date: 2017-11-15 (Wed, 15 Nov 2017) Changed paths: M basis-library/Makefile A basis-library/maps/array-metadata-size192.map A basis-library/maps/array-metadata-size96.map R basis-library/maps/metadata-size32.map R basis-library/maps/metadata-size64.map A basis-library/maps/normal-metadata-size32.map A basis-library/maps/normal-metadata-size64.map Log Message: ----------- Include different metadata sizes in Basis Library type-check-all Commit: 5955f725677644969935bec7fe527a53a14bf747 https://github.com/MLton/mlton/commit/5955f725677644969935bec7fe527a53a14bf747 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-15 (Wed, 15 Nov 2017) Changed paths: M basis-library/config/metadata/array-metadata-size192.sml M basis-library/config/metadata/array-metadata-size96.sml Log Message: ----------- Fix ArrayMetaDataSize values for size96 and size192 Commit: 91b3563c2d728a0b7cd814a3aa692d8f3309f26a https://github.com/MLton/mlton/commit/91b3563c2d728a0b7cd814a3aa692d8f3309f26a Author: Matthew Fluet <mat...@gm...> Date: 2017-11-15 (Wed, 15 Nov 2017) Changed paths: M basis-library/Makefile A basis-library/config/metadata/array-metadata-size128.sml A basis-library/config/metadata/array-metadata-size256.sml A basis-library/config/metadata/normal-metadata-size128.sml A basis-library/maps/array-metadata-size128.map A basis-library/maps/array-metadata-size256.map A basis-library/maps/normal-metadata-size128.map Log Message: ----------- Futureproof with other metadata sizes Commit: 98a1f64dbfa4c21224758cd0b9bae765d74664c7 https://github.com/MLton/mlton/commit/98a1f64dbfa4c21224758cd0b9bae765d74664c7 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-15 (Wed, 15 Nov 2017) Changed paths: M basis-library/config/metadata/array-metadata-size128.sml M basis-library/config/metadata/array-metadata-size192.sml M basis-library/config/metadata/array-metadata-size256.sml M basis-library/config/metadata/array-metadata-size96.sml M basis-library/config/metadata/normal-metadata-size128.sml M basis-library/config/metadata/normal-metadata-size32.sml M basis-library/config/metadata/normal-metadata-size64.sml Log Message: ----------- Remove unused `*MetaDataSize.bits` values Commit: b7c9199e85282bb14e2f7af706a67bd65df368c2 https://github.com/MLton/mlton/commit/b7c9199e85282bb14e2f7af706a67bd65df368c2 Author: Matthew Fluet <Mat...@gm...> Date: 2017-11-15 (Wed, 15 Nov 2017) Changed paths: M basis-library/Makefile A basis-library/config/metadata/array-metadata-size128.sml M basis-library/config/metadata/array-metadata-size192.sml A basis-library/config/metadata/array-metadata-size256.sml M basis-library/config/metadata/array-metadata-size96.sml A basis-library/config/metadata/normal-metadata-size128.sml M basis-library/config/metadata/normal-metadata-size32.sml M basis-library/config/metadata/normal-metadata-size64.sml A basis-library/maps/array-metadata-size128.map A basis-library/maps/array-metadata-size192.map A basis-library/maps/array-metadata-size256.map A basis-library/maps/array-metadata-size96.map R basis-library/maps/metadata-size32.map R basis-library/maps/metadata-size64.map A basis-library/maps/normal-metadata-size128.map A basis-library/maps/normal-metadata-size32.map A basis-library/maps/normal-metadata-size64.map Log Message: ----------- Merge pull request #220 from MatthewFluet/metadata-maps Extend Basis Library `type-check-all` with current and future metadata sizes. Also, fix a bug in the `ArrayMetaDataSize.{bits,bytes}` values for size96 and size192. (Not a correctness bug, since the Basis Library only uses `ArrayMetaDataSize.bytes` to calculate `bytesNeeded` for various IntInf operations; using the wrong (too large) value for `ArrayMetaDataSize.bytes` simply requested more than necessary.) Compare: https://github.com/MLton/mlton/compare/2bbabad6d786...b7c9199e8528 |
From: GitHub <no...@gi...> - 2017-11-14 20:04:49
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: b119d31b13bc7530b012f192235d5894cb9394cb https://github.com/MLton/mlton/commit/b119d31b13bc7530b012f192235d5894cb9394cb Author: Matthew Fluet <mat...@gm...> Date: 2016-06-03 (Fri, 03 Jun 2016) Changed paths: M runtime/gc/cheney-copy.c M runtime/gc/forward.c M runtime/gc/forward.h Log Message: ----------- Store forwarding pointer in object header Small change to store the forwarding pointer in an object header, rather than in the object proper. Commit: dd33bf146a52a1e44c1d0cd7abee8f9ef367671e https://github.com/MLton/mlton/commit/dd33bf146a52a1e44c1d0cd7abee8f9ef367671e Author: Matthew Fluet <mat...@gm...> Date: 2016-06-03 (Fri, 03 Jun 2016) Changed paths: M runtime/gc/array-allocate.c M runtime/gc/foreach.c M runtime/gc/mark-compact.c M runtime/gc/object-size.c Log Message: ----------- Do not reserve space for fwd ptr in arrays With forwarding pointers stored in an object header (rather than in the object proper), arrays do not need reserve space for a forwarding pointer. Commit: 98fd1dac6997d6a2e68d837862c61daff9229cdb https://github.com/MLton/mlton/commit/98fd1dac6997d6a2e68d837862c61daff9229cdb Author: Matthew Fluet <mat...@gm...> Date: 2016-06-06 (Mon, 06 Jun 2016) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Omit unnecessary initialization of padding words For alignment reasons, an object may have some 32-bit padding components after non-pointer components and before pointer components. Such components were initialized with 0x0, but never otherwise accessed. Commit: 9f045314a03a3cf0e1f8f52684732f262b628490 https://github.com/MLton/mlton/commit/9f045314a03a3cf0e1f8f52684732f262b628490 Author: Matthew Fluet <mat...@gm...> Date: 2016-06-06 (Mon, 06 Jun 2016) Changed paths: M mlton/backend/rep-type.fun Log Message: ----------- Relax RSSA type system to allow 0-byte objects Commit: 1ab2d06b0615a5be40340771ff96e34c0477fb0f https://github.com/MLton/mlton/commit/1ab2d06b0615a5be40340771ff96e34c0477fb0f Author: Matthew Fluet <mat...@gm...> Date: 2016-06-06 (Mon, 06 Jun 2016) Changed paths: M runtime/gc/array-allocate.c Log Message: ----------- Allow bytesPerElement == 0 in GC_arrayAllocate Avoid a division by zero error when checking for overflow of arraySize. Commit: b8e34fded164b2c5ff7577aa61dd4477c6d25a63 https://github.com/MLton/mlton/commit/b8e34fded164b2c5ff7577aa61dd4477c6d25a63 Author: Matthew Fluet <mat...@gm...> Date: 2016-06-06 (Mon, 06 Jun 2016) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Improve representation of 0-byte objects With forwarding pointers stored in an object header, the relaxation of the RSSA type system to allow 0-byte objects, and support for bytesPerElement == 0 in GC_arrayAllocation, normal objects and array object elements do not have a required minimum width. In particular, a "unit ref" is represented by just an object header (and no content bytes) and a "unit array" is represented by just a counter field, a length field, and an object header (and no content bytes). The "size" and "size2" regression tests are known to be broken by this commit. In particular, the size of a useless function is reported as ~8 bytes (on a 64-bit system), because the Basis Library implementation of MLton.size is: fun size x = let val refOverhead = Int.div (HeaderWord.wordSize + ObjptrWord.wordSize, 8) in C_Size.toInt (Primitive.MLton.size (ref x)) - refOverhead end Commit: 2e1d0219f8a593ef8b2311790ef66ba8fe5c1de1 https://github.com/MLton/mlton/commit/2e1d0219f8a593ef8b2311790ef66ba8fe5c1de1 Author: Matthew Fluet <mat...@gm...> Date: 2016-06-06 (Mon, 06 Jun 2016) Changed paths: M runtime/gc/init-world.c Log Message: ----------- Do not reserve space for fwd ptr in initVectors An empty initial vector would violate the heap layout invariant, because a gap would be left between the allocated vector and the next object. Commit: eac56d6d4c955e2344119e91053ee348a166a54e https://github.com/MLton/mlton/commit/eac56d6d4c955e2344119e91053ee348a166a54e Author: Matthew Fluet <mat...@gm...> Date: 2016-06-08 (Wed, 08 Jun 2016) Changed paths: M runtime/gc/cheney-copy.c M runtime/gc/forward.c M runtime/gc/forward.h Log Message: ----------- Introduce functions for accessing fwd ptr Commit: c2de5b8d5e1b86fdfac17d01571e03866823a649 https://github.com/MLton/mlton/commit/c2de5b8d5e1b86fdfac17d01571e03866823a649 Author: Matthew Fluet <mat...@gm...> Date: 2016-06-08 (Wed, 08 Jun 2016) Changed paths: M runtime/gc/align.c M runtime/gc/array-allocate.c M runtime/gc/array.h M runtime/gc/dfs-mark.c M runtime/gc/foreach.c M runtime/gc/forward.c M runtime/gc/garbage-collection.c M runtime/gc/hash-cons.c M runtime/gc/init-world.c M runtime/gc/mark-compact.c M runtime/gc/new-object.c M runtime/gc/object-size.c M runtime/gc/object-size.h M runtime/gc/object.c M runtime/gc/object.h M runtime/gc/stack.c M runtime/gc/stack.h M runtime/gc/thread.c M runtime/gc/weak.c Log Message: ----------- Distinguish size of header from size of metadata Make a distinction in the runtime system between the header field of an object and the entire metadata of an object. For Normal, Stack, and Weak objects, the metadata of an object is just the header field. For Array objects, the metadata of an object is the counter field, the length field and the header field. There is no functional difference with this commit, but it should provide better infrastructure for future extensions of object metadata. Commit: 6b139d7520ad2cf879b618b998fb0cf17e9d5703 https://github.com/MLton/mlton/commit/6b139d7520ad2cf879b618b998fb0cf17e9d5703 Author: Matthew Fluet <mat...@gm...> Date: 2016-06-08 (Wed, 08 Jun 2016) Changed paths: M mlton/backend/machine.fun M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rssa.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M runtime/gen/gen-sizes.c Log Message: ----------- Distinguish size of header from size of metadata Make a distinction in the compiler between the header field of an object and the entire metadata of an object. There is no functional difference with this commit, but it should provide better infrastructure for future extensions of object metadata. Commit: 0c56a864faaebdceb87eb3bedb114881bb4d5ed7 https://github.com/MLton/mlton/commit/0c56a864faaebdceb87eb3bedb114881bb4d5ed7 Author: Matthew Fluet <mat...@gm...> Date: 2016-06-08 (Wed, 08 Jun 2016) Changed paths: M basis-library/build/sources.mlb A basis-library/config/metadata/metadata-size32.sml A basis-library/config/metadata/metadata-size64.sml M basis-library/integer/int-inf0.sml M basis-library/mlton/mlton.sml M mlton/control/control-flags.sml Log Message: ----------- Distinguish size of header from size of metadata Make a distinction in the Basis Library implementation between the header field of an object and the entire metadata of an object. Commit: 846980b4e9e01807bd8ec8f53e5677e84da86b98 https://github.com/MLton/mlton/commit/846980b4e9e01807bd8ec8f53e5677e84da86b98 Author: Matthew Fluet <mat...@gm...> Date: 2016-06-08 (Wed, 08 Jun 2016) Changed paths: M basis-library/Makefile M basis-library/build/sources.mlb R basis-library/config/header/header-word32.sml R basis-library/config/header/header-word64.sml R basis-library/maps/header-word32.map R basis-library/maps/header-word64.map A basis-library/maps/metadata-size32.map A basis-library/maps/metadata-size64.map M basis-library/primitive/primitive.mlb M mlton/control/control-flags.sml Log Message: ----------- Remove unused HEADER_WORD MLB path variable Commit: 9c248ea0ea9839549cb412537310f4365d74caf6 https://github.com/MLton/mlton/commit/9c248ea0ea9839549cb412537310f4365d74caf6 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-10 (Fri, 10 Nov 2017) Changed paths: M .gitignore A .travis.yml R Makefile A Makefile-auto.am A Makefile.in R README A README.md M basis-library/arrays-and-vectors/array-slice.sig M basis-library/arrays-and-vectors/array.sig M basis-library/arrays-and-vectors/array.sml M basis-library/arrays-and-vectors/array2.sml M basis-library/arrays-and-vectors/mono-array-slice.sig M basis-library/arrays-and-vectors/mono-array.sig M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence.sig M basis-library/arrays-and-vectors/sequence0.sig M basis-library/arrays-and-vectors/sequence0.sml M basis-library/arrays-and-vectors/slice.sig M basis-library/arrays-and-vectors/slice0.sig M basis-library/arrays-and-vectors/vector-slice.sig M basis-library/arrays-and-vectors/vector.sig M basis-library/arrays-and-vectors/vector.sml M basis-library/basis-1997.mlb M basis-library/basis-2002.mlb M basis-library/basis-none.mlb M basis-library/build/sources.mlb M basis-library/c-types.mlb M basis-library/equal.mlb M basis-library/infixes.mlb M basis-library/integer/int-inf0.sml M basis-library/io/imperative-io.fun M basis-library/libs/basis-1997/basis-1997.mlb M basis-library/libs/basis-2002/basis-2002.mlb M basis-library/libs/basis-extra/basis-extra.mlb M basis-library/mlton.mlb M basis-library/mlton/call-stack.sml M basis-library/mlton/io.fun M basis-library/net/socket.sml M basis-library/overloads.mlb M basis-library/pervasive-exns.mlb M basis-library/pervasive-types.mlb M basis-library/pervasive-vals.mlb M basis-library/platform/mingw.sml M basis-library/posix/file-sys.sml M basis-library/posix/io.sml M basis-library/posix/proc-env.sml M basis-library/primitive/prim-basis.mlb M basis-library/primitive/prim-seq.sml M basis-library/primitive/primitive.mlb M basis-library/real/pack-real.sml M basis-library/real/real.sml M basis-library/sml-nj.mlb M basis-library/sml-nj/unsafe.sig M basis-library/sml-nj/unsafe.sml M basis-library/system/date.sml M basis-library/text/char0.sml M basis-library/unsafe.mlb M benchmark/.gitignore R benchmark/Makefile A benchmark/Makefile.in M benchmark/main.sml M benchmark/tests/.gitignore A benchmark/tests/string-concat.sml R benchmark/tests/vector-concat.sml A benchmark/tests/vector32-concat.sml A benchmark/tests/vector64-concat.sml M benchmark/update-counts.sh A bin/.gitignore M bin/add-cross R bin/mlton-script A bin/mlton-script.in M bin/regression A bin/travis-ci R bin/upgrade-basis A configure.ac A doc/README R doc/README M doc/guide/src/AdmitsEquality.adoc M doc/guide/src/CKitLibrary.adoc M doc/guide/src/CommonSubexp.adoc M doc/guide/src/CompilingWithSMLNJ.adoc M doc/guide/src/DefineTypeBeforeUse.adoc M doc/guide/src/Emacs.adoc M doc/guide/src/EqualityTypeVariable.adoc M doc/guide/src/FirstClassPolymorphism.adoc M doc/guide/src/LanguageChanges.adoc M doc/guide/src/MLBasisAnnotationExamples.adoc M doc/guide/src/MLBasisAnnotations.adoc M doc/guide/src/MLLPTLibrary.adoc M doc/guide/src/MLRISCLibrary.adoc M doc/guide/src/PolymorphicEquality.adoc M doc/guide/src/PortingMLton.adoc M doc/guide/src/RunTimeOptions.adoc M doc/guide/src/SMLNJDeviations.adoc M doc/guide/src/SMLNJLibrary.adoc M doc/guide/src/SSA.adoc M doc/guide/src/SelfCompiling.adoc M doc/guide/src/ShowBasis.adoc M doc/guide/src/SuccessorML.adoc M doc/guide/src/TypeChecking.adoc M doc/guide/src/TypeVariableScope.adoc M doc/guide/src/Unicode.adoc M doc/guide/src/UnresolvedBugs.adoc M doc/guide/src/ValueRestriction.adoc M lib/ckit-lib/ckit.patch M lib/ckit-lib/ckit.tgz M lib/cml/cml-lib/cml-lib.mlb M lib/cml/core-cml/core-cml.mlb M lib/cml/util/util.mlb M lib/mllpt-lib/ml-lpt.patch M lib/mllpt-lib/ml-lpt.tgz M lib/mlnlffi-lib/.gitignore R lib/mlnlffi-lib/Makefile A lib/mlnlffi-lib/Makefile.in M lib/mlnlffi-lib/c.mlb M lib/mlnlffi-lib/internals/c-int.mlb M lib/mlnlffi-lib/memory/memory.unix.mlb M lib/mlrisc-lib/MLRISC.patch M lib/mlrisc-lib/MLRISC.tgz M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/dot.sml M lib/mlton/basic/error.sig M lib/mlton/basic/error.sml M lib/mlton/basic/exn.sml M lib/mlton/basic/exn0.sml M lib/mlton/basic/layout.sig M lib/mlton/basic/layout.sml M lib/mlton/basic/list.sig M lib/mlton/basic/list.sml A lib/mlton/basic/parse-sexp.fun A lib/mlton/basic/parse-sexp.sig R lib/mlton/basic/parse.fun M lib/mlton/basic/parse.sig A lib/mlton/basic/parse.sml M lib/mlton/basic/popt.sig M lib/mlton/basic/popt.sml M lib/mlton/basic/process.sml M lib/mlton/basic/promise.sig M lib/mlton/basic/promise.sml M lib/mlton/basic/quick-sort.sml M lib/mlton/basic/random.sml M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/basic/stream.sig M lib/mlton/basic/stream.sml M lib/mlton/basic/tree.sig M lib/mlton/basic/tree.sml M lib/mlton/basic/vector.fun M lib/mlton/basic/vector.sig M lib/mlton/env/sources.mlb M lib/mlton/set/sources.mlb M lib/mlton/sources.cm M lib/mlton/sources.mlb M lib/mlyacc-lib/lrtable.sml M lib/mlyacc-lib/mlyacc-lib.mlb M lib/smlnj-lib/smlnj-lib.patch M lib/smlnj-lib/smlnj-lib.tgz M lib/stubs/mlton-stubs/README M mllex/Makefile M mlnlffigen/Makefile M mlnlffigen/gen-cppcmd M mlprof/Makefile M mlton/.gitignore R mlton/Makefile A mlton/Makefile.in M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/ast/ast-core.fun M mlton/ast/ast-core.sig M mlton/ast/ast-mlbs.fun M mlton/ast/ast-modules.fun M mlton/ast/ast-modules.sig M mlton/ast/ast-programs.fun M mlton/ast/longid.fun M mlton/atoms/const.fun M mlton/atoms/const.sig M mlton/atoms/generic-scheme.fun M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/atoms/id.fun M mlton/atoms/id.sig A mlton/atoms/layout-pretty.sml M mlton/atoms/prim-tycons.fun M mlton/atoms/prim-tycons.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/record.fun M mlton/atoms/record.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/atoms/tycon.fun M mlton/atoms/tycon.sig M mlton/atoms/type-ops.fun M mlton/atoms/tyvar.fun M mlton/atoms/tyvar.sig R mlton/atoms/use-name.fun M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig M mlton/backend/backend.fun M mlton/backend/live.fun M mlton/backend/machine.fun M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/ssa-to-rssa.fun M mlton/backend/ssa-to-rssa.sig M mlton/backend/switch.fun M mlton/closure-convert/abstract-value.fun M mlton/closure-convert/abstract-value.sig M mlton/closure-convert/closure-convert.fun M mlton/closure-convert/globalize.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sml M mlton/control/pretty.sig M mlton/control/pretty.sml M mlton/control/region.sml M mlton/control/source-pos.sig M mlton/control/source-pos.sml M mlton/control/version_sml.src M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/core-ml/dead-code.fun M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-core.sig M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/elaborate/elaborate-mlbs.fun M mlton/elaborate/elaborate-mlbs.sig M mlton/elaborate/elaborate-modules.fun M mlton/elaborate/elaborate-modules.sig M mlton/elaborate/elaborate-programs.sig M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/elaborate-sigexp.sig M mlton/elaborate/elaborate.sig M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig M mlton/elaborate/precedence-parse.fun M mlton/elaborate/precedence-parse.sig M mlton/elaborate/scope.fun M mlton/elaborate/type-env.fun M mlton/elaborate/type-env.sig M mlton/front-end/ml.grm M mlton/front-end/ml.lex M mlton/front-end/mlb.lex M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig M mlton/match-compile/nested-pat.fun M mlton/match-compile/nested-pat.sig M mlton/ssa/analyze.fun M mlton/ssa/analyze2.fun M mlton/ssa/combine-conversions.fun M mlton/ssa/common-block.fun M mlton/ssa/common-subexp.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/direct-exp.fun M mlton/ssa/direct-exp2.fun M mlton/ssa/global.fun M mlton/ssa/inline.fun M mlton/ssa/known-case.fun M mlton/ssa/local-ref.fun A mlton/ssa/loop-unroll.fun A mlton/ssa/loop-unswitch.fun M mlton/ssa/poly-equal.fun M mlton/ssa/poly-hash.fun M mlton/ssa/prepasses.fun M mlton/ssa/profile.fun M mlton/ssa/profile2.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/remove-unused.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun A mlton/ssa/share-zero-vec.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify-types.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/ssa/useless.fun M mlton/ssa/zone.fun M mlton/xml/implement-exceptions.fun M mlton/xml/implement-suffix.fun M mlton/xml/monomorphise.fun A mlton/xml/parse-sxml.fun A mlton/xml/parse-sxml.sig M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/sources.cm M mlton/xml/sources.mlb M mlton/xml/sxml-simplify.fun M mlton/xml/type-check.fun M mlton/xml/xml-simplify.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig M mlyacc/.gitignore R mlyacc/Makefile A mlyacc/Makefile.in M mlyacc/examples/calc/README A mlyacc/examples/calc/calc.mlb M mlyacc/examples/calc/calc.sml R mlyacc/examples/calc/sources.cm M mlyacc/examples/fol/README A mlyacc/examples/fol/fol.mlb M mlyacc/examples/fol/parse.sml R mlyacc/examples/fol/sources.cm M mlyacc/examples/pascal/README M mlyacc/examples/pascal/parser.sml A mlyacc/examples/pascal/pascal.mlb R mlyacc/examples/pascal/sources.cm A package/freebsd/.gitignore R package/freebsd/Makefile A package/freebsd/Makefile.in A package/mingw/.gitignore R package/mingw/Makefile A package/mingw/Makefile.in M regression/fail/constant-too-big.sml A regression/fail/datatype-where-complex.1.sml A regression/fail/datatype-where-complex.2.sml R regression/fail/datatype-where-complex.sml M regression/fail/duplicate-tyvar.sml A regression/fail/infix.1.sml A regression/fail/infix.2.sml A regression/fail/infix.3.sml A regression/fail/infix.4.sml A regression/fail/infix.5.sml A regression/fail/infix.6.sml A regression/fail/special-ids.1.sml A regression/fail/special-ids.2.sml M regression/sharing.sml A regression/whitelist M runtime/.gitignore R runtime/Makefile A runtime/Makefile.in M runtime/gc/array.c M runtime/gc/array.h M runtime/gc/controls.h M runtime/gc/done.c M runtime/gc/init.c M runtime/gc/signals.c M runtime/platform.h M runtime/platform/aix.h M runtime/platform/cygwin.h M runtime/platform/darwin.h M runtime/platform/freebsd.h M runtime/platform/hpux.h M runtime/platform/hurd.h M runtime/platform/linux.h M runtime/platform/mingw.h M runtime/platform/mmap-protect.c M runtime/platform/netbsd.h M runtime/platform/openbsd.h M runtime/platform/solaris.h Log Message: ----------- Merge branch 'master' of github.com:MLton/mlton into forward-pointer-in-header Commit: 10b0135c223fff891159bb24a0531529e1d85c5d https://github.com/MLton/mlton/commit/10b0135c223fff891159bb24a0531529e1d85c5d Author: Matthew Fluet <mat...@gm...> Date: 2017-11-13 (Mon, 13 Nov 2017) Changed paths: M basis-library/build/sources.mlb A basis-library/config/metadata/array-metadata-size192.sml A basis-library/config/metadata/array-metadata-size96.sml R basis-library/config/metadata/metadata-size32.sml R basis-library/config/metadata/metadata-size64.sml A basis-library/config/metadata/normal-metadata-size32.sml A basis-library/config/metadata/normal-metadata-size64.sml M basis-library/integer/int-inf0.sml M basis-library/mlton/mlton.sml M mlton/backend/machine.fun M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rssa.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M runtime/gen/gen-sizes.c Log Message: ----------- Distinguish array and normal metadata sizes Commit: cd7440559273a2c1898ec186646287de3ba2a4a5 https://github.com/MLton/mlton/commit/cd7440559273a2c1898ec186646287de3ba2a4a5 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-13 (Mon, 13 Nov 2017) Changed paths: M basis-library/mlton/mlton.sml M basis-library/primitive/prim-mlton.sml M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Eliminate MLton_size indirection via 'a ref The runtime GC_size function expects an object pointer (in order to trace the reachable objects). Previously, the Basis Library implementation of MLton.size was of the form fun size x = let val refOverhead = Int32.toInt NormalMetaDataSize.bytes + Int.div (ObjptrWord.wordSize, 8) in C_Size.toInt (Primitive.MLton.size (ref x)) - refOverhead end However, with the changes to the representation of a `unit ref` (represented by just an object header and no content bytes), this can result in negative sizes for objects that are represented by `unit` (e.g., an unused function). Now, the Basis Library implementation is of the form fun size x = C_Size.toInt (Primitive.MLton.size x) During the translation from SSA2 to RSSA, the MLton_size primitive is replaced by the constant 0 if the representation of the argument is not an object pointer. This corrects the size of objects represented by `unit`. It also (arguably) corrects the size of objects that could be flattened into the `'a ref` indirection. For example, previously, on a 64-bit platform, the size of a `word32 * word32` could be reported as 0, because the `(word32 * word32) ref` was flattened, so `- refOverhead` subtracts from the actual content bytes. Now, the size of a `word32 * word32` is reported as 16 bytes (= 8-byte header + 4 bytes (word32) + 4 bytes (word32)). Commit: 42312aa8910c07dda96806cbe43731c2e1c2e03c https://github.com/MLton/mlton/commit/42312aa8910c07dda96806cbe43731c2e1c2e03c Author: Matthew Fluet <mat...@gm...> Date: 2017-11-13 (Mon, 13 Nov 2017) Changed paths: A regression/size3.amd64-darwin.ok A regression/size3.amd64-linux.ok A regression/size3.ok A regression/size3.sml Log Message: ----------- Add regression/size3.sml This test demonstrates the reduced size of length 0 arrays and unit refs. Commit: 2bbabad6d786f33d34b518b94d3b61a05c36e2cf https://github.com/MLton/mlton/commit/2bbabad6d786f33d34b518b94d3b61a05c36e2cf Author: Matthew Fluet <Mat...@gm...> Date: 2017-11-14 (Tue, 14 Nov 2017) Changed paths: M basis-library/Makefile M basis-library/build/sources.mlb R basis-library/config/header/header-word32.sml R basis-library/config/header/header-word64.sml A basis-library/config/metadata/array-metadata-size192.sml A basis-library/config/metadata/array-metadata-size96.sml A basis-library/config/metadata/normal-metadata-size32.sml A basis-library/config/metadata/normal-metadata-size64.sml M basis-library/integer/int-inf0.sml R basis-library/maps/header-word32.map R basis-library/maps/header-word64.map A basis-library/maps/metadata-size32.map A basis-library/maps/metadata-size64.map M basis-library/mlton/mlton.sml M basis-library/primitive/prim-mlton.sml M basis-library/primitive/primitive.mlb M mlton/backend/machine.fun M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rssa.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/backend/ssa-to-rssa.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun A regression/size3.amd64-darwin.ok A regression/size3.amd64-linux.ok A regression/size3.ok A regression/size3.sml M runtime/gc/align.c M runtime/gc/array-allocate.c M runtime/gc/array.h M runtime/gc/cheney-copy.c M runtime/gc/dfs-mark.c M runtime/gc/foreach.c M runtime/gc/forward.c M runtime/gc/forward.h M runtime/gc/garbage-collection.c M runtime/gc/hash-cons.c M runtime/gc/init-world.c M runtime/gc/mark-compact.c M runtime/gc/new-object.c M runtime/gc/object-size.c M runtime/gc/object-size.h M runtime/gc/object.c M runtime/gc/object.h M runtime/gc/stack.c M runtime/gc/stack.h M runtime/gc/thread.c M runtime/gc/weak.c M runtime/gen/gen-sizes.c Log Message: ----------- Merge pull request #219 from MatthewFluet/forward-pointer-in-header Forward pointer in header Previously, MLton stored the forwarding pointer for an object in the object data and set the header to a sentinel value. This imposed a minimum size for all objects and special handling for allocating/copying arrays of very small length (which might not naturally include space for the forwarding pointer). Now, MLton stores the forwarding pointer for an object in the object header. Since a valid header always satisfies `(header & 0x1) == 1` and a forward pointer always satisfies `(fwdptr & 0x1) == 0`, it is possible to recognize the presence / absence of a forwarding pointer. As a consequence of moving the forward pointer into the header, there is no minimum size for objects. This allows for more efficient representation of 0-byte objects: a `unit ref` is now represented by just an object header (and no content bytes) and a `unit array` is represented by just a counter field, a length field, and an object header (and no content bytes). The change slightly improves compile-time allocation; `smith-normal-form` has 0.96 total allocation, while other benchmarks have 0.99 total allocation. The change slightly improves run-time time: `hamlet` has 0.94 time, `simple` has 0.95 time, `vliw` has 0.92 time; the change slightly improves run-time allocation: `hamlet` has 0.97 total allocation, `tensor` has 0.00 total allocation (yes, the total allocation goes from 281788376 to 148984; presumably, there are some arrays that are mostly useless and optimized to `unit arrays`), while other benchmarks have between 0.99 and 1.01 total allocation (the slight, but measurable increase in total allocated is likely due to perturbed GCs that shrink stacks at different times, leading to different stack growths). This is a backport from CMU multiMLton project. [Further changes in that project move the forward pointer into a separate metadata field, in order to allow an object to have a forwarding pointer installed, while still being available as a normal object.] Compare: https://github.com/MLton/mlton/compare/d7460b9a5cb3...2bbabad6d786 |
From: GitHub <no...@gi...> - 2017-11-02 13:10:28
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 677f20a57827dc00cf95f1c2b186e33bb838aa47 https://github.com/MLton/mlton/commit/677f20a57827dc00cf95f1c2b186e33bb838aa47 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-01 (Wed, 01 Nov 2017) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Rename `callReturnOperands` to `callReturnStackOffsets` Commit: 0ff673c8762c87e20af77e4d0be6655b536edb5a https://github.com/MLton/mlton/commit/0ff673c8762c87e20af77e4d0be6655b536edb5a Author: Matthew Fluet <mat...@gm...> Date: 2017-11-01 (Wed, 01 Nov 2017) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig M mlton/backend/backend.fun Log Message: ----------- Change `argOperands` argument to `formalsStackOffsets` Clarifies that formal variables are always passed via stack offsets. Commit: 42dcbaae5a395407bd8fc7a92ccabf47c0291ebd https://github.com/MLton/mlton/commit/42dcbaae5a395407bd8fc7a92ccabf47c0291ebd Author: Matthew Fluet <mat...@gm...> Date: 2017-11-01 (Wed, 01 Nov 2017) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Update comment regarding stack vs register allocation Commit: eaa41c9e7e539e0969152e89ce26d0105fd5dee3 https://github.com/MLton/mlton/commit/eaa41c9e7e539e0969152e89ce26d0105fd5dee3 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-01 (Wed, 01 Nov 2017) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Update comments regarding link/handler stack slot allocation Commit: 7ec42a1bdd7c62fb58412d5dc58cc06ace323037 https://github.com/MLton/mlton/commit/7ec42a1bdd7c62fb58412d5dc58cc06ace323037 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-01 (Wed, 01 Nov 2017) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Do not force Cont block arguments to stack Although Cont block arguments are passed via the stack (they are the return values of a call), they are copied from the stack to Cont block arguments at return. Commit: 006cab5995a14ab1714410247e416d86194963e1 https://github.com/MLton/mlton/commit/006cab5995a14ab1714410247e416d86194963e1 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-01 (Wed, 01 Nov 2017) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Trace AllocateRegisters.Allocation.Stack.get Commit: 4e02cf8e4717be301f7202f9c22ccc3ffd45a7e0 https://github.com/MLton/mlton/commit/4e02cf8e4717be301f7202f9c22ccc3ffd45a7e0 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-01 (Wed, 01 Nov 2017) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Coalesce slots in Allocation.Stack.new Commit: 31b6e294e59e118e8291379471d80035e971d387 https://github.com/MLton/mlton/commit/31b6e294e59e118e8291379471d80035e971d387 Author: Matthew Fluet <mat...@gm...> Date: 2017-11-01 (Wed, 01 Nov 2017) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Improve Allocation.Stack.get `val get: t * Type.t -> t * {offset: Bytes.t}` takes a stack allocation (list of allocated slots) and a type and returns a new stack allocation and an offset, such that the new stack allocation extends the old stack allocation with an allocated slot at `offset` suitable for an object of the given type. Previously, when the old stack allocation is non-empty, a search was made through the old stack allocation for an available slot. However, the search started after the first allocation in the old stack allocation. That is, the result `offset` was always greater than the offset of the head of the old stack allocation, even unallocated slots existed before the head of the old stack allocation. This could lead to larger than necessary stack frames. It suffices to simply initiate the search as though a dummy `{offset = Bytes.zero, size = Bytes.zero}` allocation were at the head of the old stack allocation. A small amount of logic is used to avoid including that dummy allocation in the result allocation in order to avoid accumulating unnecessary dummy allocations. Commit: d7460b9a5cb31371e16124591805000ef68d3e07 https://github.com/MLton/mlton/commit/d7460b9a5cb31371e16124591805000ef68d3e07 Author: Matthew Fluet <Mat...@gm...> Date: 2017-11-02 (Thu, 02 Nov 2017) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig M mlton/backend/backend.fun Log Message: ----------- Merge pull request #217 from MatthewFluet/misc-backend-stack-mgmt Misc. updates to stack management in backend Highlights: * Improve Allocation.Stack.get (31b6e29) * Do not force Cont block arguments to stack (7ec42a1) Compare: https://github.com/MLton/mlton/compare/a81514efaa0b...d7460b9a5cb3 |
From: GitHub <no...@gi...> - 2017-10-30 14:37:15
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 72121a241eae19aeb4ea0912892cd98aa0f56d7c https://github.com/MLton/mlton/commit/72121a241eae19aeb4ea0912892cd98aa0f56d7c Author: Matthew Fluet <mat...@gm...> Date: 2017-10-30 (Mon, 30 Oct 2017) Changed paths: M mlton/backend/ssa-to-rssa.sig Log Message: ----------- In `signature SSA_TO_RSSA_STRUCTS` share by `Rssa.Atoms = Ssa.Atoms` This is the idiom used elsewhere in the compiler, rather than sharing individual sub-structures of `Atoms`. Commit: a81514efaa0bb25c8e448bfa3904eaad8135bd4c https://github.com/MLton/mlton/commit/a81514efaa0bb25c8e448bfa3904eaad8135bd4c Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-30 (Mon, 30 Oct 2017) Changed paths: M mlton/backend/ssa-to-rssa.sig Log Message: ----------- Merge pull request #216 from MatthewFluet/ssa-to-rssa-sharing In `signature SSA_TO_RSSA_STRUCTS` share by `Rssa.Atoms = Ssa.Atoms` Compare: https://github.com/MLton/mlton/compare/dc44f8f638e8...a81514efaa0b |
From: GitHub <no...@gi...> - 2017-10-30 14:28:50
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: bd34b754f842316bd1341da6bdb330e5bb2c1be7 https://github.com/MLton/mlton/commit/bd34b754f842316bd1341da6bdb330e5bb2c1be7 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-30 (Mon, 30 Oct 2017) Changed paths: M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml Log Message: ----------- Add `DirectedGraph.dfsForest` Rename internal `DirectedGraph.dfsTrees` to `DirectedGraph.dfsForest` and export. Make arguments and results `vector` rather than `list`. Commit: a01920d15150009eca480ad5eff5d7fe940d3651 https://github.com/MLton/mlton/commit/a01920d15150009eca480ad5eff5d7fe940d3651 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-30 (Mon, 30 Oct 2017) Changed paths: M lib/mlton/basic/tree.sig M lib/mlton/basic/tree.sml Log Message: ----------- Add `structure Tree.Forest` Although `type 'a Tree.Forest.t = 'a Tree.t Tree.Seq.t`, the structure also provides convenience functions for displaying forests to match the functions for displaying trees. Commit: dc44f8f638e84597d60ef034858b3301726d0156 https://github.com/MLton/mlton/commit/dc44f8f638e84597d60ef034858b3301726d0156 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-30 (Mon, 30 Oct 2017) Changed paths: M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/tree.sig M lib/mlton/basic/tree.sml Log Message: ----------- Merge pull request #215 from MatthewFluet/lib-graph-tree Minor updates to DirectedGraph and Tree in MLton library Compare: https://github.com/MLton/mlton/compare/c6e51a9a1b59...dc44f8f638e8 |
From: GitHub <no...@gi...> - 2017-10-27 14:22:53
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0b2121e26b08ee58ddac11f47bd9183584023392 https://github.com/MLton/mlton/commit/0b2121e26b08ee58ddac11f47bd9183584023392 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-27 (Fri, 27 Oct 2017) Changed paths: M configure.ac Log Message: ----------- Drop `AC_PROG_CXX` from `configure.ac` MLton does not require a C++ compiler. Commit: c6e51a9a1b591a67bf5b8ecf7a1b6722b7db94ab https://github.com/MLton/mlton/commit/c6e51a9a1b591a67bf5b8ecf7a1b6722b7db94ab Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-27 (Fri, 27 Oct 2017) Changed paths: M configure.ac Log Message: ----------- Merge pull request #214 from MatthewFluet/configure-no-prog-cxx Drop `AC_PROG_CXX` from `configure.ac` Compare: https://github.com/MLton/mlton/compare/a622b9f93cba...c6e51a9a1b59 |
From: GitHub <no...@gi...> - 2017-10-27 14:19:28
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 2e745f444c38843f926be1d6533716d6fef9c557 https://github.com/MLton/mlton/commit/2e745f444c38843f926be1d6533716d6fef9c557 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-27 (Fri, 27 Oct 2017) Changed paths: M Makefile.in Log Message: ----------- Fix `debugged` and `traced` Makefile targets MLton/mlton#185 replaced the `-drop-pass <re>` compile-time option with `-disable-pass <re>`, but these Makefile targets were not updated. Commit: a622b9f93cbaae28f067a5be6f9340917e2f7930 https://github.com/MLton/mlton/commit/a622b9f93cbaae28f067a5be6f9340917e2f7930 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-27 (Fri, 27 Oct 2017) Changed paths: M Makefile.in Log Message: ----------- Merge pull request #213 from MatthewFluet/debugged-and-traced-Makefile-targets Fix `debugged` and `traced` Makefile targets Compare: https://github.com/MLton/mlton/compare/49b1225e6d65...a622b9f93cba |
From: GitHub <no...@gi...> - 2017-10-27 14:12:25
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: db8392aab05a0872fe8eaa3794bbfd68c6d505aa https://github.com/MLton/mlton/commit/db8392aab05a0872fe8eaa3794bbfd68c6d505aa Author: Matthew Fluet <mat...@gm...> Date: 2017-10-27 (Fri, 27 Oct 2017) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-opt-fuel <n>` expert compile-time option A useful technique for developing optimization passes is to limit the number of transformations made according to some finite "fuel". The particular transformation that triggers a bug or a performance change can be found by binary-searching through the space of fuels (`-opt-fuel 0` when the bug does not occur and `-opt-fuel 1000` when the bug does occur). A `val Control.optFuelAvailAndUse: unit -> bool` is also provided. By default, if `-opt-fuel` is not given, then "infinite" fuel is assumed. Commit: 49b1225e6d656a0e7eb625deb7e7fad77cf6e15d https://github.com/MLton/mlton/commit/49b1225e6d656a0e7eb625deb7e7fad77cf6e15d Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-27 (Fri, 27 Oct 2017) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Merge pull request #212 from MatthewFluet/opt-fuel Add `-opt-fuel <n>` expert compile-time option Compare: https://github.com/MLton/mlton/compare/7a770205534f...49b1225e6d65 |
From: GitHub <no...@gi...> - 2017-10-27 14:01:58
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: ddf72e8e2dfa2195fa46c7839e4cc06afaf11ef1 https://github.com/MLton/mlton/commit/ddf72e8e2dfa2195fa46c7839e4cc06afaf11ef1 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-27 (Fri, 27 Oct 2017) Changed paths: M mlton/ssa/restore.fun M mlton/ssa/restore2.fun Log Message: ----------- Suppress diagnostics in Restore{,2} pass The flood of Restore diagnostics can obscure the diagnostic from the invoking pass. Commit: 7a770205534f9e11a36a8c17f42463197b6758cc https://github.com/MLton/mlton/commit/7a770205534f9e11a36a8c17f42463197b6758cc Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-27 (Fri, 27 Oct 2017) Changed paths: M mlton/ssa/restore.fun M mlton/ssa/restore2.fun Log Message: ----------- Merge pull request #211 from MatthewFluet/restore-diagnostics Suppress diagnostics in Restore{,2} pass Compare: https://github.com/MLton/mlton/compare/07b126e41a66...7a770205534f |
From: GitHub <no...@gi...> - 2017-10-23 20:29:27
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 200461ffb64ddd27701f615265a9133440754477 https://github.com/MLton/mlton/commit/200461ffb64ddd27701f615265a9133440754477 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M mlton/ssa/simplify2.fun Log Message: ----------- Remove commented SSA passes from SSA2 simplify Commit: 4509a5462eec2c1174b0f83f44fee1394d0696f6 https://github.com/MLton/mlton/commit/4509a5462eec2c1174b0f83f44fee1394d0696f6 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun Log Message: ----------- Prefix names of common passes with "ssa" or "ssa2" Commit: a2b9f79fc7a46d43e7efa8c4d135d1df635c6a7d https://github.com/MLton/mlton/commit/a2b9f79fc7a46d43e7efa8c4d135d1df635c6a7d Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun Log Message: ----------- Split `-loop-passes <n>` option into `-loop-ssa-passes` and `-loop-ssa2-passes` Commit: fc5d2baa3c1914d4d83ef75fbe2ce9077927979c https://github.com/MLton/mlton/commit/fc5d2baa3c1914d4d83ef75fbe2ce9077927979c Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M lib/mlton/basic/popt.sig Log Message: ----------- Fix comments in `signature POPT` Commit: 72616f1da2014f074cb5b873809a03a39f88e836 https://github.com/MLton/mlton/commit/72616f1da2014f074cb5b873809a03a39f88e836 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M lib/mlton/basic/popt.sig M lib/mlton/basic/popt.sml Log Message: ----------- Add `con Popt.Word: (word -> unit) -> Popt.t` Commit: bf9c0102c98ec5842819b6ffc74f80e9b494f4ee https://github.com/MLton/mlton/commit/bf9c0102c98ec5842819b6ffc74f80e9b494f4ee Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M lib/mlton/basic/quick-sort.sml M lib/mlton/basic/random.sml Log Message: ----------- Avoid (untraced) calls to MLton.Random.rand Commit: ef88e67986c1cd78d6490ab3d4b62978899d4242 https://github.com/MLton/mlton/commit/ef88e67986c1cd78d6490ab3d4b62978899d4242 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M lib/mlton/basic/random.sml Log Message: ----------- Trace `Random.srand` Commit: d13e9e9db1b022d52b8e7151c412784b444337e6 https://github.com/MLton/mlton/commit/d13e9e9db1b022d52b8e7151c412784b444337e6 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M mlton/main/main.fun Log Message: ----------- Add `-seed-rand <w>` compile-time option Commit: 40455fad9a2a8e7af0f743f95f2217cb5cca68e6 https://github.com/MLton/mlton/commit/40455fad9a2a8e7af0f743f95f2217cb5cca68e6 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-23 (Mon, 23 Oct 2017) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Introduce MachineSuffle pass, disabled by default As has been well documented (Producing wrong data without doing anything obviously wrong! (Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney; ASPLOS'09); STABILIZER: statistically sound performance evaluation (Charlie Curtsinger and Emery D. Berger; ASPLOS'13); A proper performance evaluation system that summarizes code placement effects (Masahiro Yasugi, Yuki Matsuda, and Tomoharu Ugawa; PASTE'13)), seemingly trivial aspects of an experimental setup and/or a compiled program (for example, code placement) can have non-trivial impact on behavior (for example, run time). "Best practice" is to sample from the space of compiled programs (for example, randomizing code placement) and executions (for example, randomizing memory allocations), but doing so is difficult without substantial tool support. A new MachineShuffle pass can be run after generating the MachineIR program. This pass simply shuffles the collection of chunks within the program and shuffles the collection of blocks within a chunk. Combined with the previous `-seed-rand <w>` compiler option, this can yield distinct code placements. Here are some results (with amd64-codegen): MLton0 -- ~/devel/mlton/mlton.git/build/bin/mlton MLton1 -- ~/devel/mlton/mlton.git/build/bin/mlton -enable-pass machineShuffle -seed-rand 65 MLton2 -- ~/devel/mlton/mlton.git/build/bin/mlton -enable-pass machineShuffle -seed-rand C7 MLton3 -- ~/devel/mlton/mlton.git/build/bin/mlton -enable-pass machineShuffle -seed-rand 17F MLton4 -- ~/devel/mlton/mlton.git/build/bin/mlton -enable-pass machineShuffle -seed-rand 241 run time ratio benchmark MLton0 MLton1 MLton2 MLton3 MLton4 barnes-hut 1.00 0.99 0.99 0.99 0.98 boyer 1.00 0.98 0.99 0.98 0.99 checksum 1.00 1.00 1.00 1.00 0.99 count-graphs 1.00 1.00 1.01 1.02 1.01 DLXSimulator 1.00 1.01 1.00 1.00 1.00 even-odd 1.00 1.00 1.00 1.00 1.00 fft 1.00 1.00 1.01 1.00 1.00 fib 1.00 0.90 0.90 0.99 0.90 flat-array 1.00 1.00 1.00 1.00 1.00 hamlet 1.00 1.04 1.07 1.03 1.00 imp-for 1.00 1.00 0.97 1.00 0.96 knuth-bendix 1.00 0.99 0.99 0.99 1.00 lexgen 1.00 1.04 0.98 0.98 0.98 life 1.00 0.99 1.00 1.01 1.00 logic 1.00 1.00 1.01 1.00 1.01 mandelbrot 1.00 1.00 1.00 1.00 1.00 matrix-multiply 1.00 0.99 1.00 0.99 1.00 md5 1.00 1.00 1.00 1.00 0.99 merge 1.00 0.98 0.99 0.98 0.98 mlyacc 1.00 0.99 0.99 0.99 0.99 model-elimination 1.00 1.01 1.00 0.99 0.99 mpuz 1.00 0.98 1.00 1.00 1.00 nucleic 1.00 1.00 1.00 1.00 1.00 output1 1.00 1.00 1.00 1.05 1.00 peek 1.00 1.03 0.99 1.00 0.99 psdes-random 1.00 1.00 1.00 1.00 1.00 ratio-regions 1.00 1.00 1.00 1.00 0.99 ray 1.00 0.99 1.00 1.00 0.99 raytrace 1.00 1.01 1.01 1.01 1.01 simple 1.00 1.00 0.99 1.02 1.00 smith-normal-form 1.00 1.00 1.00 1.00 1.00 string-concat 1.00 1.00 1.00 1.00 1.01 tailfib 1.00 1.00 1.00 0.99 1.00 tak 1.00 1.17 1.10 1.10 1.10 tensor 1.00 1.00 1.00 1.00 1.00 tsp 1.00 1.00 1.00 1.00 1.00 tyan 1.00 1.00 1.00 1.00 1.00 vector32-concat 1.00 1.00 1.00 1.01 1.01 vector64-concat 1.00 1.00 0.99 0.99 0.99 vector-rev 1.00 1.00 1.00 1.00 1.00 vliw 1.00 1.00 1.01 1.00 1.00 wc-input1 1.00 1.00 1.00 1.00 1.00 wc-scanStream 1.00 1.00 1.00 1.00 1.00 zebra 1.00 1.00 1.00 1.01 1.00 zern 1.00 1.00 1.00 1.00 1.00 The most significant variations are: * fib: 0.90 [MLton1,MLton2,MLton3,MLton4] * hamlet: 1.07 [MLton2] * output1: 1.05 [MLton3] * tak: 1.17 [MLton1], 1.10 [MLton2,MLton3,MLton4] These large variations in fib and tak have been observed before, where it was often unclear why a particular compiler change impacted those arithmetic intensive benchmarks. Commit: 07b126e41a663bf9e141254b679ed06afd3306a7 https://github.com/MLton/mlton/commit/07b126e41a663bf9e141254b679ed06afd3306a7 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-23 (Mon, 23 Oct 2017) Changed paths: M lib/mlton/basic/popt.sig M lib/mlton/basic/popt.sml M lib/mlton/basic/quick-sort.sml M lib/mlton/basic/random.sml M mlton/backend/backend.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun Log Message: ----------- Merge pull request #210 from MatthewFluet/machine-shuffle Machine shuffle As has been well documented, seemingly trivial aspects of an experimental setup and/or a compiled program (for example, code placement) can have non-trivial impact on behavior (for example, run time). A new MachineShuffle pass can be run after generating the MachineIR program. This pass simply shuffles the collection of chunks within the program and shuffles the collection of blocks within a chunk. Combined with a new -seed-rand <w> compiler option, this can yield distinct code placements. Results in 40455fa. Compare: https://github.com/MLton/mlton/compare/c7ec0d6f7253...07b126e41a66 |