MLton 20200722
MatthewFluet
released this
22 Jul 17:39
·
477 commits
to master
since this release
http://mlton.org/Release20200722
- 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; theZone
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
andSplitTypes
SSA optimization passes. - Introduce new
Overflow
-checking primitives and remove oldOverflow
-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.
- Added expert
- Runtime.
- Detect and report incompatible use of ASLR/PIE on
load-world
. - Added support for RISC-V architecture.
- Detect and report incompatible use of ASLR/PIE on
- Language.
- Libraries.
- Basis Library.
- Change
OS.IO.poll
to not be restarted when interrupted by a signal. (This is consistent withSocket.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.
- Change
- Other libraries.
- Updated: ckit library, MLLPT library, MLRISC library, SML/NJ library
- Basis Library.
- Tools.
- Other.
- Updates to simplify porting MLton.
- Support parallel build (i.e.,
make -j
). This mainly supports platforms/packagers that use a parallelmake
by default; it does not obtain significant build speedups. - Various updates to
Makefile
s. SeeMakefile.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.