diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 1672ab55af..c179ac3884 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -1,11 +1,17 @@ = CHANGELOG -== Version YYYYMMDD +== Version 20200817 -Here are the changes from version 20200722 to version YYYYMMDD. +Here are the changes from version 20200722 to version 20200817 === Summary +* Compiler + ** Fixed bug in `RssaShrink` optimization that would result in an unbound + variable and an internal compiler error. +* Other. + ** Fixes for Solaris and MinGW platforms. + === Details * 2020-07-30 diff --git a/doc/guide/src/Bugs20200817.adoc b/doc/guide/src/Bugs20200817.adoc new file mode 100644 index 0000000000..343f1d308e --- /dev/null +++ b/doc/guide/src/Bugs20200817.adoc @@ -0,0 +1,5 @@ +Bugs20200817 +============ + +Here are the known bugs in <:Release20200817:MLton 20200817>, listed +in reverse chronological order of date reported. diff --git a/doc/guide/src/Home.adoc b/doc/guide/src/Home.adoc index c35bbb88fb..6c9911b99d 100644 --- a/doc/guide/src/Home.adoc +++ b/doc/guide/src/Home.adoc @@ -17,6 +17,8 @@ a lexer generator, a parser generator, and a profiler. == What's new? == +* 20200817: Please try out our latest release, <:Release20200817:MLton 20200817>. + * 20200722: Please try out our latest release, <:Release20200722:MLton 20200722>. * 20180207: Please try out our latest release, <:Release20180207:MLton 20180207>. diff --git a/doc/guide/src/Release20200722.adoc b/doc/guide/src/Release20200722.adoc index a3b8ee39bd..dee751b562 100644 --- a/doc/guide/src/Release20200722.adoc +++ b/doc/guide/src/Release20200722.adoc @@ -3,7 +3,7 @@ Release20200722 Here you can download the latest public release of MLton, version 20200722. -== Changes since the last public release == +== Changes since <:Release20180207:MLton 20180207> == * Compiler. ** Added expert `-pi-style {default|npi|pic|pie}` and diff --git a/doc/guide/src/Release20200817.adoc b/doc/guide/src/Release20200817.adoc new file mode 100644 index 0000000000..5d3b9241a1 --- /dev/null +++ b/doc/guide/src/Release20200817.adoc @@ -0,0 +1,95 @@ +Release20200817 +=============== + +Here you can download the latest public release of MLton, version 20200817. + +== Changes since <:Release20200722:MLton 20200722> == + +* Compiler. + ** Fixed bug in `RssaShrink` optimization that would result in an unbound + variable and an internal compiler error. +* Other. + ** Fixes for Solaris and MinGW platforms. + +For a complete list of changes and bug fixes since +<:Release20180207:>, see the + and +<:Bugs20180207:>. + +== Changes since <:Release20180207:MLton 20180207> == + +* Compiler. + ** Added expert `-pi-style {default|npi|pic|pie}` and + `-native-pic {false|true}` options, which can be used to override a + target-determined default. + ** Fix a number of instances of excessive live data during + compilation. + ** Disable `Zone` SSA optimization pass by default; the `Zone` pass + is known to not be safe-for-space. + ** Statically allocate and initialize some global objects. + ** Many updates and improvements to C and LLVM codegens. + ** Add new `BounceVars` RSSA optimization pass to split the live + ranges of RSSA variables. + ** Improve `RssaShrink` optimization. + ** Add support for alternate globalization strategies in + `ConstantPropagation`. + ** Strengthen `Useless` optimization with respect to a number of + primitives. + ** Add new `DuplicateGlobals` and `SplitTypes` SSA optimization + passes. + ** Introduce new `Overflow`-checking primitives and remove old + `Overflow`-checking primitives and special-case code required (e.g., + `Arith` transfers in IRs) to support them. + ** Add parsers for XML, SXML, SSA, and SSA2 IRs. +* Runtime. + ** Detect and report incompatible use of ASLR/PIE on `load-world`. + ** Added support for RISC-V architecture. +* Language. +* Libraries. + ** Basis Library. + *** Change `OS.IO.poll` to not be restarted when interrupted by a + signal. (This is consistent with `Socket.select`.) + *** Add `MLton.sizeAll: unit -> IntInf.int` that returns the size + of reachable live data. + *** Change type of `MLton.size` from `'a -> int` to + `'a -> IntInf.int`, because with 64-bit systems, the size of a + single object can exceed that representable by a signed 32-bit + integer. + ** Other libraries. + *** Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library +* Tools. +* Other. + ** Updates to simplify porting MLton. + ** Support parallel build (i.e., `make -j`). This mainly supports + platforms/packagers that use a parallel `make` by default; it does + not obtain significant build speedups. + ** Various updates to `Makefile`-s. See `Makefile.config` for + common and user-customizable configuration. + ** Characterize MLton-LICENSE as an instance of the Historical + Permission Notice and Disclaimer (HPND) license, rather than + BSD-style. + +For a complete list of changes and bug fixes since +<:Release20180207:>, see the + and +<:Bugs20180207:>. + +== 20200817 binary packages == + +* AMD64 (aka "x86-64" or "x64") +** https://sourceforge.net/projects/mlton/files/mlton/20200817/mlton-20200817-1.amd64-darwin-19.6.gmp-homebrew.tgz[Darwin (.tgz)] 19.6 (Mac OS X Catalina), dynamically linked against <:GMP:> in `/usr/local/lib` (suitable for https://brew.sh/[Homebrew] install of <:GMP:>) +** https://sourceforge.net/projects/mlton/files/mlton/20200817/mlton-20200817-1.amd64-darwin-19.6.gmp-static.tgz[Darwin (.tgz)] 19.6 (Mac OS X Catalina), statically linked against <:GMP:> (but requires <:GMP:> for generated executables) +** https://sourceforge.net/projects/mlton/files/mlton/20200817/mlton-20200817-1.amd64-darwin-17.7.gmp-homebrew.tgz[Darwin (.tgz)] 17.7 (Mac OS X High Sierra), dynamically linked against <:GMP:> in `/usr/local/lib` (suitable for https://brew.sh/[Homebrew] install of <:GMP:>) +** https://sourceforge.net/projects/mlton/files/mlton/20200817/mlton-20200817-1.amd64-darwin-17.7.gmp-static.tgz[Darwin (.tgz)] 17.7 (Mac OS X High Sierra), statically linked against <:GMP:> (but requires <:GMP:> for generated executables) +** https://sourceforge.net/projects/mlton/files/mlton/20200817/mlton-20200817-1.amd64-linux.tgz[Linux], glibc 2.27 (Ubuntu 18.04) + +== 20200817 source packages == + + * https://sourceforge.net/projects/mlton/files/mlton/20200817/mlton-20200817.src.tgz[mlton-20200817.src.tgz] + +== Also see == + +* <:Bugs20200817:> +* http://www.mlton.org/guide/20200817/[MLton Guide (20200817)]. ++ +A snapshot of the MLton website at the time of release. diff --git a/doc/guide/src/ReleaseChecklist.adoc b/doc/guide/src/ReleaseChecklist.adoc index 081f0c7ca5..a74f5d760d 100644 --- a/doc/guide/src/ReleaseChecklist.adoc +++ b/doc/guide/src/ReleaseChecklist.adoc @@ -52,8 +52,8 @@ ReleaseChecklist git clone http://github.com/MLton/mlton mlton.git cd mlton.git git checkout master -git tag -a -m "Tagging YYYYMMDD release" on-YYYYMMDD-release master -git push origin on-YYYYMMDD-release +git tag -a -m "Tagging ${YYYYMMDD} release" on-${YYYYMMDD}-release master +git push origin on-${YYYYMMDD}-release ---- == Packaging == @@ -75,25 +75,25 @@ sftp> quit ---- git clone http://github.com/MLton/mlton mlton cd mlton -git checkout on-YYYYMMDD-release -make MLTON_VERSION=YYYYMMDD source-release +git checkout on-${YYYYMMDD}-release +make MLTON_VERSION=${YYYYMMDD} source-release cd .. ---- + or + ---- -wget https://github.com/MLton/mlton/archive/on-YYYYMMDD-release.tar.gz -tar xzvf on-YYYYMMDD-release.tar.gz -cd mlton-on-YYYYMMDD-release -make MLTON_VERSION=YYYYMMDD source-release +wget https://github.com/MLton/mlton/archive/on-${YYYYMMDD}-release.tar.gz +tar xzvf on-${YYYYMMDD}-release.tar.gz +cd mlton-on-${YYYYMMDD}-release +make MLTON_VERSION=${YYYYMMDD} source-release cd .. ---- * Upload `mlton-YYYYMMDD.src.tgz`: + ----- -scp mlton-YYYYMMDD.src.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/YYYYMMDD/ +scp mlton-${YYYYMMDD}.src.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/${YYYYMMDD}/ ----- * Update *ReleaseYYYYMMDD* with `mlton-YYYYMMDD.src.tgz` link. @@ -103,16 +103,16 @@ scp mlton-YYYYMMDD.src.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlto * Build and create `mlton-YYYYMMDD-1.ARCH-OS.tgz`: + ---- -wget http://sourceforge.net/projects/mlton/files/mlton/YYYYMMDD/mlton-YYYYMMDD.src.tgz -tar xzvf mlton-YYYYMMDD.src.tgz -cd mlton-YYYYMMDD +wget http://sourceforge.net/projects/mlton/files/mlton/${YYYYMMDD}/mlton-${YYYYMMDD}.src.tgz +tar xzvf mlton-${YYYYMMDD}.src.tgz +cd mlton-${YYYYMMDD} make binary-release ---- * Upload `mlton-YYYYMMDD-1.ARCH-OS.tgz`: + ----- -scp mlton-YYYYMMDD-1.ARCH-OS.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/YYYYMMDD/ +scp mlton-${YYYYMMDD}-1.ARCH-OS.tgz user@frs.sourceforge.net:/home/frs/project/mlton/mlton/${YYYYMMDD}/ ----- * Update *ReleaseYYYYMMDD* with `mlton-YYYYMMDD-1.ARCH-OS.tgz` link. @@ -123,14 +123,14 @@ scp mlton-YYYYMMDD-1.ARCH-OS.tgz user@frs.sourceforge.net:/home/frs/project/mlto * Shell commands: + ---- -wget http://sourceforge.net/projects/mlton/files/mlton/YYYYMMDD/mlton-YYYYMMDD.src.tgz -tar xzvf mlton-YYYYMMDD.src.tgz -cd mlton-YYYYMMDD +wget http://sourceforge.net/projects/mlton/files/mlton/${YYYYMMDD}/mlton-${YYYYMMDD}.src.tgz +tar xzvf mlton-${YYYYMMDD}.src.tgz +cd mlton-${YYYYMMDD} cd doc/guide -cp -prf localhost YYYYMMDD -tar czvf guide-YYYYMMDD.tgz YYYYMMDD -rsync -avzP --delete -e ssh YYYYMMDD user@web.sourceforge.net:/home/project-web/mlton/htdocs/guide/ -rsync -avzP --delete -e ssh guide-YYYYMMDD.tgz user@web.sourceforge.net:/home/project-web/mlton/htdocs/guide/ +cp -prf localhost ${YYYYMMDD} +tar czvf guide-${YYYYMMDD}.tgz ${YYYYMMDD} +rsync -avzP --delete -e ssh ${YYYYMMDD} user@web.sourceforge.net:/home/project-web/mlton/htdocs/guide/ +rsync -avzP --delete -e ssh guide-${YYYYMMDD}.tgz user@web.sourceforge.net:/home/project-web/mlton/htdocs/guide/ ---- == Announce release == diff --git a/man/mllex.1 b/man/mllex.1 index 2ff6bcd053..1fb282b333 100644 --- a/man/mllex.1 +++ b/man/mllex.1 @@ -1,4 +1,4 @@ -.TH mllex 1 "July 22, 2020" +.TH mllex 1 "August 17, 2020" .SH NAME \fBmllex\fP \- lexer generator for use with Standard ML and MLton .SH SYNOPSIS diff --git a/man/mlnlffigen.1 b/man/mlnlffigen.1 index df456ba973..2fb53c9681 100644 --- a/man/mlnlffigen.1 +++ b/man/mlnlffigen.1 @@ -1,4 +1,4 @@ -.TH mlnlffigen 1 "July 22, 2020" +.TH mlnlffigen 1 "August 17, 2020" .SH NAME \fBmlnlffigen\fP \- glue-code generator for use with the new "NLFFI" foreign function interface for Standard ML and MLton .SH SYNOPSIS diff --git a/man/mlprof.1 b/man/mlprof.1 index 38f5a2ae69..6e670414bb 100644 --- a/man/mlprof.1 +++ b/man/mlprof.1 @@ -1,4 +1,4 @@ -.TH mlprof 1 "July 22, 2020" +.TH mlprof 1 "August 17, 2020" .SH NAME \fBmlprof\fP \- display profiling information for a MLton-compiled executable .SH SYNOPSIS diff --git a/man/mlton.1 b/man/mlton.1 index 5f0138edfe..46e59a6200 100644 --- a/man/mlton.1 +++ b/man/mlton.1 @@ -1,4 +1,4 @@ -.TH mlton 1 "July 22, 2020" +.TH mlton 1 "August 17, 2020" .SH NAME \fBmlton\fP \- whole-program compiler for the Standard ML (SML) programming language diff --git a/man/mlyacc.1 b/man/mlyacc.1 index 76360f7466..a81acf74de 100644 --- a/man/mlyacc.1 +++ b/man/mlyacc.1 @@ -1,4 +1,4 @@ -.TH mlyacc 1 "July 22, 2020" +.TH mlyacc 1 "August 17, 2020" .SH NAME \fBmlyacc\fP \- parser generator for use with Standard ML and MLton .SH SYNOPSIS