Skip to content

Commit

Permalink
Merge pull request #396 from MatthewFluet/20200722-release
Browse files Browse the repository at this point in the history
20200722 release
  • Loading branch information
MatthewFluet committed Jul 22, 2020
2 parents a267e64 + a9bdfc8 commit 6c6e239
Show file tree
Hide file tree
Showing 23 changed files with 139 additions and 45 deletions.
4 changes: 2 additions & 2 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
= CHANGELOG

== Version YYYYMMDD
== Version 20200722

Here are the changes from version 20180206 to version YYYYMMDD.
Here are the changes from version 20180206 to version 20200722.

=== Summary

Expand Down
15 changes: 0 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,6 @@ dirs:

.PHONY: docs
docs:
$(MAKE) -C "$(SRC)/mllex" docs
$(MAKE) -C "$(SRC)/mlyacc" docs
$(MAKE) -C "$(SRC)/doc/guide"

define LIBRARIES_NO_CHECK_TEMPLATE
Expand Down Expand Up @@ -433,15 +431,6 @@ install-docs:
if [ -d "$(SRC)/doc/guide/localhost" ]; then \
$(CP) "$(SRC)/doc/guide/localhost" "$(TDOC)/guide"; \
fi
if [ -r "$(SRC)/doc/guide/mlton-guide.pdf" ]; then \
$(CP) "$(SRC)/doc/guide/mlton-guide.pdf" "$(TDOC)/"; \
fi
if [ -r "mllex/mllex.pdf" ]; then \
$(CP) "mllex/mllex.pdf" "$(TDOC)/"; \
fi
if [ -r "mlyacc/mlyacc.pdf" ]; then \
$(CP) "mlyacc/mlyacc.pdf" "$(TDOC)/"; \
fi
( \
cd "$(SRC)/util" && \
$(FIND) cm2mlb -type f '!' -name .gitignore \
Expand All @@ -458,10 +447,6 @@ install-docs:
source-release:
$(MAKE) clean
$(MAKE) MLTON_VERSION=$(MLTON_VERSION) version
( cd "$(SRC)/mllex" ; latexmk -pdf lexgen ; latexmk -c lexgen )
$(MAKE) -C "$(SRC)/mllex" mllex.pdf
( cd "$(SRC)/mlyacc/doc"; latexmk -pdf mlyaccc ; latexmk -c mlyacc )
$(MAKE) -C "$(SRC)/mlyacc" mlyacc.pdf
$(MAKE) -C doc/guide
$(TAR) cvzf ../mlton-$(MLTON_VERSION).src.tgz \
--exclude .git --exclude package \
Expand Down
1 change: 0 additions & 1 deletion bin/mlton-script
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ doit "$lib" \
-cc-opt '-foptimize-sibling-calls' \
-cc-opt '-w' \
-cc-opt-quote "-I$lib/include" \
-link-opt '-lm -lgmp' \
$gmpCCOpts $gmpLinkOpts \
-llvm-llc-opt '-O2' \
-llvm-opt-opt '-mem2reg -O2' \
Expand Down
13 changes: 5 additions & 8 deletions doc/guide/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export LC_ALL = C
NULL :=

ASCIIDOC := asciidoc
ifneq ($(shell which $(ASCIIDOC) 2> /dev/null),)
ifeq (true, $(call HAVE_CMD,$(ASCIIDOC)))
ASCIIDOC_CONF_DIR := $(shell $(ASCIIDOC) -v /dev/null 2>&1 | head -n 1 | sed 's|.*reading: \(.*\)/asciidoc.conf|\1|')
else
ASCIIDOC_CONF_DIR :=
Expand Down Expand Up @@ -45,23 +45,20 @@ LOCALHOST_TORM := $(filter-out $(LOCALHOST),$(shell if [ -d localhost ]; then fi


ALL :=
ifneq ($(shell which $(ASCIIDOC) 2> /dev/null),)
ifneq ($(shell which pygmentize 2> /dev/null),)
ifeq (true, $(call HAVE_CMD,$(ASCIIDOC)))
ifeq (true, $(call HAVE_CMD,pygmentize))
ALL += $(LOCALHOST) localhost-rm
endif
ifneq ($(shell which $(DBLATEX) 2> /dev/null),)
ALL += mlton-guide.pdf
endif
endif


all: $(ALL)


ifneq ($(shell which gm 2> /dev/null),)
ifeq (true, $(call HAVE_CMD,gm))
CONVERT := gm convert
else
ifneq ($(shell which convert 2> /dev/null),)
ifeq (true, $(call HAVE_CMD,convert))
CONVERT := convert
else
CONVERT := no-convert
Expand Down
8 changes: 4 additions & 4 deletions doc/guide/bin/InclGitFile.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env python
#!/usr/bin/env python3

import sys
import urllib
import urllib.request
import re

i = 1
Expand All @@ -12,7 +12,7 @@
src = sys.argv[i]
i += 1
url = 'https://raw.github.com/MLton/' + repo + '/' + branch + '/' + src
response = urllib.urlopen(url)
response = urllib.request.urlopen(url)
buff = response.readlines()

if len(sys.argv) > i:
Expand All @@ -30,5 +30,5 @@
i += 1
buff = newbuff

sys.stdout.writelines(buff)
sys.stdout.buffer.writelines(buff)
sys.stdout.flush()
5 changes: 5 additions & 0 deletions doc/guide/src/Bugs20200722.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Bugs20200722
============

Here are the known bugs in <:Release20200722:MLton 20200722>, listed
in reverse chronological order of date reported.
4 changes: 3 additions & 1 deletion doc/guide/src/Home.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ a lexer generator, a parser generator, and a profiler.

== What's new? ==

* 20200722: Please try out our latest release, <:Release20200722:MLton 20200722>.

* 20180207: Please try out our latest release, <:Release20180207:MLton 20180207>.

* 20140730: http://www.cs.rit.edu/%7emtf[Matthew Fluet] and
Expand All @@ -36,7 +38,7 @@ a lexer generator, a parser generator, and a profiler.
* Read about MLton's <:Features:>.
* Look at <:Documentation:>.
* See some <:Users:> of MLton.
* https://sourceforge.net/projects/mlton/files/mlton/20180207[Download] MLton.
* Download MLton from https://sourceforge.net/projects/mlton/files/mlton/20200722[SourceForge] or https://github.com/MLton/mlton/releases/tag/on-20200722-release[GitHub].
* Meet the MLton <:Developers:>.
* Get involved with MLton <:Development:>.
* User-maintained <:FAQ:>.
Expand Down
6 changes: 6 additions & 0 deletions doc/guide/src/References.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,11 @@ ____
David MacQueen, Gordon Plotkin, Ravi Sethi.
<:#POPL:> 1984.

* <!Anchor(MacQueenEtAl20)>
https://doi.org/10.1145/3386336[The History of Standard ML].
David MacQueen, Robert Harper, and John Reppy.
<:#HOPL:> 2020.

* <!Anchor(Matthews91)>
http://www.lfcs.inf.ed.ac.uk/reports/91/ECS-LFCS-91-174[A Distributed Concurrent Implementation of Standard ML].
David Matthews.
Expand Down Expand Up @@ -944,6 +949,7 @@ ____
* <!Anchor(ESOP)> ESOP = European Symposium on Programming
* <!Anchor(FLOPS)> FLOPS = Symposium on Functional and Logic Programming
* <!Anchor(FPCA)> FPCA = Conference on Functional Programming Languages and Computer Architecture
* <!Anchor(HOPL)> HOPL = History of Programming Languages
* <!Anchor(HOSC)> HOSC = Higher-Order and Symbolic Computation
* <!Anchor(IC)> IC = Information and Computation
* <!Anchor(ICCL)> ICCL = IEEE International Conference on Computer Languages
Expand Down
2 changes: 1 addition & 1 deletion doc/guide/src/Release20180207.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Release20180207
===============

Here you can download the latest public release of MLton, version 20180207.
This is an archived public release of MLton, version 20180207.

== Changes since the last public release ==

Expand Down
80 changes: 80 additions & 0 deletions doc/guide/src/Release20200722.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
Release20200722
===============

Here you can download the latest public release of MLton, version 20200722.

== Changes since the last public release ==

* 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
<!ViewGitFile(mlton,on-20200722-release,CHANGELOG.adoc)> and
<:Bugs20180297:>.

== 20200722 binary packages ==

* AMD64 (aka "x86-64" or "x64")
** https://sourceforge.net/projects/mlton/files/mlton/20200722/mlton-20200722-1.amd64-darwin.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/20200722/mlton-20200722-1.amd64-darwin.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/20200722/mlton-20200722-1.amd64-linux.tgz[Linux], glibc 2.27 (Ubuntu 18.04)

== 20200722 source packages ==

* https://sourceforge.net/projects/mlton/files/mlton/20200722/mlton-20200722.src.tgz[mlton-20200722.src.tgz]

== Also see ==

* <:Bugs20200722:>
* http://www.mlton.org/guide/20200722/[MLton Guide (20200722)].
+
A snapshot of the MLton website at the time of release.
1 change: 0 additions & 1 deletion doc/guide/src/ReleaseChecklist.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ wget http://sourceforge.net/projects/mlton/files/mlton/YYYYMMDD/mlton-YYYYMMDD.s
tar xzvf mlton-YYYYMMDD.src.tgz
cd mlton-YYYYMMDD
make binary-release
cd ..
----

* Upload `mlton-YYYYMMDD-1.ARCH-OS.tgz`:
Expand Down
1 change: 1 addition & 0 deletions doc/guide/src/Releases.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ Releases

Public releases of MLton:

* <:Release20200722:>
* <:Release20180207:>
* <:Release20130715:>
* <:Release20100608:>
Expand Down
2 changes: 1 addition & 1 deletion doc/guide/src/SplitTypes.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
SplitTypes
================
==========

<:SplitTypes:> is an optimization pass for the <:SSA:> <:IntermediateLanguage:>,
invoked from <:SSASimplify:>.
Expand Down
5 changes: 4 additions & 1 deletion doc/guide/src/StandardMLHistory.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ StandardMLHistory

<:StandardML:Standard ML> grew out of <:ML:> in the early 1980s.

For an excellent overview of SML's history, see Appendix F of the
For an excellent overview of SML's history, see <!Cite(MacQueenEtAl20,The
History of Standard ML)>.

For an abbreviated overview of SML's history, see Appendix F of the
<:DefinitionOfStandardML:Definition>.

For an overview if its history before 1982, see <!Cite(Milner82, How
Expand Down
2 changes: 1 addition & 1 deletion man/mllex.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH mllex 1 "February 6, 2018"
.TH mllex 1 "July 22, 2020"
.SH NAME
\fBmllex\fP \- lexer generator for use with Standard ML and MLton
.SH SYNOPSIS
Expand Down
2 changes: 1 addition & 1 deletion man/mlnlffigen.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH mlnlffigen 1 "February 6, 2018"
.TH mlnlffigen 1 "July 22, 2020"
.SH NAME
\fBmlnlffigen\fP \- glue-code generator for use with the new "NLFFI" foreign function interface for Standard ML and MLton
.SH SYNOPSIS
Expand Down
2 changes: 1 addition & 1 deletion man/mlprof.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH mlprof 1 "February 6, 2018"
.TH mlprof 1 "July 22, 2020"
.SH NAME
\fBmlprof\fP \- display profiling information for a MLton-compiled executable
.SH SYNOPSIS
Expand Down
2 changes: 1 addition & 1 deletion man/mlton.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH mlton 1 "February 6, 2018"
.TH mlton 1 "July 22, 2020"
.SH NAME
\fBmlton\fP \- whole-program compiler for the Standard ML (SML) programming
language
Expand Down
2 changes: 1 addition & 1 deletion man/mlyacc.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH mlyacc 1 "February 6, 2018"
.TH mlyacc 1 "July 22, 2020"
.SH NAME
\fBmlyacc\fP \- parser generator for use with Standard ML and MLton
.SH SYNOPSIS
Expand Down
8 changes: 4 additions & 4 deletions mllex/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ clean:

PDFLATEX := pdflatex

doc/ml-lex.pdf:
$(MAKE) -C doc ml-lex.pdf
doc/mllex.pdf:
$(MAKE) -C doc mllex.pdf

mllex.pdf: doc/ml-lex.pdf
$(CP) doc/ml-lex.pdf mllex.pdf
mllex.pdf: doc/mllex.pdf
$(CP) doc/mllex.pdf mllex.pdf

DOCS :=
ifneq ($(shell which $(PDFLATEX) 2> /dev/null),)
Expand Down
6 changes: 6 additions & 0 deletions mllex/doc/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@
/ml-lex.pdf
/ml-lex.ps
/ml-lex.toc
/mllex.aux
/mllex.dvi
/mllex.log
/mllex.pdf
/mllex.ps
/mllex.toc
1 change: 1 addition & 0 deletions mllex/doc/mllex.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
\input{ml-lex}
12 changes: 11 additions & 1 deletion mlton/main/main.fun
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ val cc: string list ref = ref ["cc"]
val arScript: string ref = ref "<unset>"
val asOpts: {opt: string, pred: OptPred.t} list ref = ref []
val ccOpts: {opt: string, pred: OptPred.t} list ref = ref []
val mathLinkOpt: string ref = ref "-lm"
val gmpLinkOpt: string ref = ref "-lgmp"
val linkOpts: {opt: string, pred: OptPred.t} list ref = ref []
val llvm_as: string ref = ref "llvm-as"
val llvm_asOpts: {opt: string, pred: OptPred.t} list ref = ref []
Expand Down Expand Up @@ -471,6 +473,9 @@ fun makeOptions {usage} =
boolRef globalizeSmallIntInf),
(Expert, "globalize-small-type", " {0|1|2|3|4|9}", "globalize small type",
intRef globalizeSmallType),
(Expert, "gmp-link-opt", " <opt>", "link option for GMP library",
(SpaceString o tokenizeOpt)
(fn s => gmpLinkOpt := s)),
(Normal, "ieee-fp", " {false|true}", "use strict IEEE floating-point",
boolRef Native.IEEEFP),
(Expert, "indentation", " <n>", "indentation level in ILs",
Expand Down Expand Up @@ -621,6 +626,9 @@ fun makeOptions {usage} =
else usage (concat ["invalid -loop-unswitch-limit: ", Int.toString i]))),
(Expert, "mark-cards", " {true|false}", "mutator marks cards",
boolRef markCards),
(Expert, "math-link-opt", " <opt>", "link option for math library",
(SpaceString o tokenizeOpt)
(fn s => mathLinkOpt := s)),
(Expert, "max-function-size", " <n>", "max function size (blocks)",
intRef maxFunctionSize),
(Normal, "mlb-path-map", " <file>", "additional MLB path map",
Expand Down Expand Up @@ -1139,7 +1147,9 @@ fun commandLine (args: string list): unit =
val ccOpts = addTargetOpts ccOpts
val linkOpts = addTargetOpts linkOpts
val linkOpts =
List.map (["mlton", "gdtoa"], fn lib => "-l" ^ mkLibName lib) @ linkOpts
List.map (["mlton", "gdtoa"], fn lib => "-l" ^ mkLibName lib)
@ [!mathLinkOpt, !gmpLinkOpt]
@ linkOpts
val linkOpts = ("-L" ^ targetLibDir) :: linkOpts

val linkArchives =
Expand Down

0 comments on commit 6c6e239

Please sign in to comment.