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...> - 2017-10-23 16:45:41
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 46604e3697a6daa749a07aeb3f6193aec8c4dcd5 https://github.com/MLton/mlton/commit/46604e3697a6daa749a07aeb3f6193aec8c4dcd5 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M .gitignore M Makefile.in M README.md M bin/mlton-script.in Log Message: ----------- run mlton executable from anywhere Commit: 516c7ee9f8b368cf445c3464b88d50cd62f6cb40 https://github.com/MLton/mlton/commit/516c7ee9f8b368cf445c3464b88d50cd62f6cb40 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun M mlton/ssa/simplify.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb Log Message: ----------- Merge branch 'master' into untar-anywhere Commit: 4b44360aa6bc312e0608c17d31ab610da97f87f3 https://github.com/MLton/mlton/commit/4b44360aa6bc312e0608c17d31ab610da97f87f3 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M README.md M benchmark/Makefile.in M bin/add-cross M bin/regression M doc/guide/src/PortingMLton.adoc M mllex/Makefile M mlnlffigen/Makefile M mlnlffigen/gen-cppcmd M mlprof/Makefile M mlton/Makefile.in M mlyacc/Makefile.in Log Message: ----------- updated /lib refs that I previously missed Commit: afb933f7d554e913b8d5d1c4d77cb39718be1507 https://github.com/MLton/mlton/commit/afb933f7d554e913b8d5d1c4d77cb39718be1507 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M Makefile.in M README.md Log Message: ----------- @MatthewFluet comments Commit: ad19dbfcc794424ba0b25720fc2fea7f768c41c5 https://github.com/MLton/mlton/commit/ad19dbfcc794424ba0b25720fc2fea7f768c41c5 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: 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.sml M basis-library/integer/int-inf0.sml M basis-library/io/imperative-io.fun M basis-library/mlton/call-stack.sml M basis-library/net/socket.sml 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-seq.sml M basis-library/real/pack-real.sml M basis-library/real/real.sml M basis-library/sml-nj/unsafe.sig M basis-library/sml-nj/unsafe.sml M basis-library/system/date.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.sig M mlton/backend/ssa-to-rssa.fun M mlton/closure-convert/abstract-value.fun M mlton/ssa/common-subexp.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/share-zero-vec.fun M mlton/ssa/shrink2.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/ssa/useless.fun M package/mingw/Makefile.in Log Message: ----------- Merge branch 'master' into untar-anywhere Commit: 362fdc1a2e6019331e013de25535af1fc221a643 https://github.com/MLton/mlton/commit/362fdc1a2e6019331e013de25535af1fc221a643 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-23 (Mon, 23 Oct 2017) Changed paths: M Makefile.in Log Message: ----------- Restore Makefile target dist Commit: 726bb8159deff211038b6a56c22b4442dc5ab1e4 https://github.com/MLton/mlton/commit/726bb8159deff211038b6a56c22b4442dc5ab1e4 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-23 (Mon, 23 Oct 2017) Changed paths: M Makefile.in Log Message: ----------- Include target arch and os in binary-release .tgz Commit: 4d17507fcabbb082aa2a701362414303dcb2998b https://github.com/MLton/mlton/commit/4d17507fcabbb082aa2a701362414303dcb2998b Author: Matthew Fluet <mat...@gm...> Date: 2017-10-23 (Mon, 23 Oct 2017) Changed paths: M Makefile.in Log Message: ----------- Include target arch and os is binary-release directory Commit: 199882c0ee2bf3fcc3544c108e32f5fd4306123b https://github.com/MLton/mlton/commit/199882c0ee2bf3fcc3544c108e32f5fd4306123b Author: Matthew Fluet <mat...@gm...> Date: 2017-10-23 (Mon, 23 Oct 2017) Changed paths: M Makefile.in Log Message: ----------- Avoid GNU tar options Commit: c7ec0d6f7253539078854519787d8c471615fd26 https://github.com/MLton/mlton/commit/c7ec0d6f7253539078854519787d8c471615fd26 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-23 (Mon, 23 Oct 2017) Changed paths: M .gitignore M Makefile.in M README.md M benchmark/Makefile.in M bin/add-cross M bin/mlton-script.in M bin/regression M doc/guide/src/PortingMLton.adoc M mllex/Makefile M mlnlffigen/Makefile M mlnlffigen/gen-cppcmd M mlprof/Makefile M mlton/Makefile.in M mlyacc/Makefile.in Log Message: ----------- Merge pull request #205 from myegorov/untar-anywhere Replace absolute path in `bin/mlton` script with relative path and use `./build/lib/mlton` rather than `./build/lib`. This makes it possible to use the `./build` contents for installation and allows an installation to be relocated. Compare: https://github.com/MLton/mlton/compare/8267aa5794e6...c7ec0d6f7253 |
From: GitHub <no...@gi...> - 2017-10-22 19:18:54
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 327b7c1b3e523aa7e3021d3fbf12b90beda9dd87 https://github.com/MLton/mlton/commit/327b7c1b3e523aa7e3021d3fbf12b90beda9dd87 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M package/mingw/Makefile.in Log Message: ----------- Add `../../bin/clean` to remove Autoconf generated Makefile Commit: 8267aa5794e603620edb8b915a4af9b39c26b456 https://github.com/MLton/mlton/commit/8267aa5794e603620edb8b915a4af9b39c26b456 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-22 (Sun, 22 Oct 2017) Changed paths: M package/mingw/Makefile.in Log Message: ----------- Merge pull request #208 from MatthewFluet/mingw-Makefile Add `../../bin/clean` to remove Autoconf generated Makefile Compare: https://github.com/MLton/mlton/compare/ca796af8993a...8267aa5794e6 |
From: GitHub <no...@gi...> - 2017-10-21 18:55:50
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 612eede81585db328947a093aa3291ffc8b68faa https://github.com/MLton/mlton/commit/612eede81585db328947a093aa3291ffc8b68faa Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/array.sig M basis-library/arrays-and-vectors/array2.sml 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/integer/int-inf0.sml M basis-library/io/imperative-io.fun M basis-library/mlton/call-stack.sml M basis-library/net/socket.sml 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-seq.sml M basis-library/real/pack-real.sml M basis-library/real/real.sml M basis-library/sml-nj/unsafe.sml M basis-library/system/date.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/ssa/common-subexp.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/useless.fun Log Message: ----------- Rename Prim.Array_uninit to Prim.Array_alloc Commit: 898d3a66b5dbc77d6418a95114d4d2246ef9fb56 https://github.com/MLton/mlton/commit/898d3a66b5dbc77d6418a95114d4d2246ef9fb56 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig Log Message: ----------- Update comments in prim.{fun,sig} Commit: 8663034c17a6e156b7107835ec6cd5446ae775ab https://github.com/MLton/mlton/commit/8663034c17a6e156b7107835ec6cd5446ae775ab Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig Log Message: ----------- Update comments in prim.{fun,sig} Commit: eec191dc502678ad7002081aa17b169d8af7bd6b https://github.com/MLton/mlton/commit/eec191dc502678ad7002081aa17b169d8af7bd6b Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Refactor translation of Array_toVector in SsaToRssa Commit: ee9d072bd9806226a4ef29ef826b946ecd6f0ea5 https://github.com/MLton/mlton/commit/ee9d072bd9806226a4ef29ef826b946ecd6f0ea5 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M mlton/backend/rep-type.sig Log Message: ----------- Remove outdated comment in signature REP_TYPE Commit: 884d7efd6af423c2e9f4ffb14a116ace16e4bf61 https://github.com/MLton/mlton/commit/884d7efd6af423c2e9f4ffb14a116ace16e4bf61 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M mlton/ssa/ssa-tree2.sig Log Message: ----------- Export SsaTree2.Type.deVectorOpt Commit: 1c0b24e1d402731f8069f7841124e8b0e8073a4c https://github.com/MLton/mlton/commit/1c0b24e1d402731f8069f7841124e8b0e8073a4c Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/array.sml 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.sml Log Message: ----------- Eliminate awkward `updateMk` fns in Basis Library Sequence functors Commit: 5e4b00d90b9e5f17bf6650c9184b58a9666587e3 https://github.com/MLton/mlton/commit/5e4b00d90b9e5f17bf6650c9184b58a9666587e3 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M basis-library/integer/int-inf0.sml Log Message: ----------- Use operations exported by PRIM_SEQUENCE Commit: 37c73d737cf9a3c8594685de3cb53689ba7e5a30 https://github.com/MLton/mlton/commit/37c73d737cf9a3c8594685de3cb53689ba7e5a30 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/vector.sml Log Message: ----------- Use operation exported by PRIM_SEQUENCE Commit: 2ab5d9e479808dd6e6655c1abe9c4e2c34675025 https://github.com/MLton/mlton/commit/2ab5d9e479808dd6e6655c1abe9c4e2c34675025 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/array-slice.sig M basis-library/arrays-and-vectors/mono-array-slice.sig Log Message: ----------- Export unsafeUpdate from {MONO_}ARRAY_SLICE_EXTRA Commit: 52d266c2ce73649866049416fbe5116dd911e1f1 https://github.com/MLton/mlton/commit/52d266c2ce73649866049416fbe5116dd911e1f1 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/mono-array.sig Log Message: ----------- Export unsafeAlloc from MONO_ARRAY_EXTRA Commit: d3569dbffa8fdad7f2016cf054514c2611226419 https://github.com/MLton/mlton/commit/d3569dbffa8fdad7f2016cf054514c2611226419 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-07 (Sat, 07 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml Log Message: ----------- Don't use prims after applying PrimSequence to Array and Vector Commit: 946385f0528dd0741ab3c241784fb6d964f5d5cc https://github.com/MLton/mlton/commit/946385f0528dd0741ab3c241784fb6d964f5d5cc Author: Matthew Fluet <mat...@gm...> Date: 2017-10-10 (Tue, 10 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/array-slice.sig M basis-library/arrays-and-vectors/array.sig 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/primitive/prim-seq.sml M basis-library/sml-nj/unsafe.sig M basis-library/sml-nj/unsafe.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Add `Array_uninit: 'a array * SeqInt.int -> unit` primitive The Array_uninit primitive sets all objptrs in the element at the given index to a bogus non-objptr value (0wx1). One motivation for this primitive is to support space-efficient polymorphic resizeable arrays. When shrinking a resizeable array, we would like to "NULL" out the elements that are no longer part of the logical array, in order to avoid a (logical) space leak. Commit: 1672c550b3b085dfc97a98c38011ed6951e79120 https://github.com/MLton/mlton/commit/1672c550b3b085dfc97a98c38011ed6951e79120 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-10 (Tue, 10 Oct 2017) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Add missing Array_copy{Array,Vector} cases to Prim.equals Commit: 1b87b4b35a9e98f87b2522c175205f27570edce2 https://github.com/MLton/mlton/commit/1b87b4b35a9e98f87b2522c175205f27570edce2 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-11 (Wed, 11 Oct 2017) Changed paths: M mlton/backend/packed-representation.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/shrink2.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig Log Message: ----------- Add and use SsaTree2.Prod.{allAre,someIs}{Immutable,Mutable} fns Commit: 098d606db1f594a30b33c8e24be939a88a5f5d04 https://github.com/MLton/mlton/commit/098d606db1f594a30b33c8e24be939a88a5f5d04 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-11 (Wed, 11 Oct 2017) Changed paths: M mlton/closure-convert/abstract-value.fun Log Message: ----------- Alphabetize primitives in closure-convert/abstract-value.fun Commit: 51fc022c7bde83bc31347c06da7b9b326b4ea865 https://github.com/MLton/mlton/commit/51fc022c7bde83bc31347c06da7b9b326b4ea865 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M basis-library/sml-nj/unsafe.sig Log Message: ----------- Update comments in signature UNSAFE in Basis Library Commit: 295f9cdfe2d481f8b42c55c7af1b2817641855b4 https://github.com/MLton/mlton/commit/295f9cdfe2d481f8b42c55c7af1b2817641855b4 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Update Useless optimization to handle Array_uninit primitive It is correct to not special case the Array_uninit primitive, but doing so inhibits the Useless optimization. Commit: 426baa1b61bc9beb92424adcd074fd583e96b25c https://github.com/MLton/mlton/commit/426baa1b61bc9beb92424adcd074fd583e96b25c Author: Matthew Fluet <mat...@gm...> Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/array-slice.sig M basis-library/arrays-and-vectors/array.sig 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/primitive/prim-seq.sml M basis-library/sml-nj/unsafe.sig M basis-library/sml-nj/unsafe.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/useless.fun Log Message: ----------- Add `Array_uninitIsNop: 'a array -> bool` primitive The Array_uninitIsNop primitive answers if the Array_uninit primitive applied to the same array would be a nop (i.e., if the array has no objptrs in the elements). This can be used to skip a bulk-Array_uninit loop when it is known that the Array_uninit operations would be nops. The primitive is translated to a constant by toRssa. It would be possible to introduce SSA and SSA2 optimizations that simplified Array_uninitIsNop and Array_uninit when it is clear that the array will never have objptrs in the elements. In particular, while an `(int64 * int64) array` (in SSA) might become an `int64 array` (due to Useless), the reverse can never happen. Similarly, while an `((int64 * int64)) array` (in SSA2) might become an `(int64 * int64) array` (due to DeepFlatten), the reverse can never happen. Also, RSSA shrink does not seem to simplify the switch {test = 0x0: Word32, default = None, cases = ((0x0, L_1277), (0x1, L_1276))} that results from replacing Array_uninitIsNop with a constant. Commit: af42741a18ee6fabbe6e3cdbe2483966f53d9643 https://github.com/MLton/mlton/commit/af42741a18ee6fabbe6e3cdbe2483966f53d9643 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml Log Message: ----------- Fix code formatting Commit: 1f0877239bcb621d41d3db1d98b0c40a7f1a8e28 https://github.com/MLton/mlton/commit/1f0877239bcb621d41d3db1d98b0c40a7f1a8e28 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/sequence.fun Log Message: ----------- Move `fromIntForLength` from `functor Sequence` to `structure SeqIndex` Commit: 9853172bd963757471d28e472c716f409202f07f https://github.com/MLton/mlton/commit/9853172bd963757471d28e472c716f409202f07f Author: Matthew Fluet <mat...@gm...> Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/array.sig M basis-library/arrays-and-vectors/array.sml M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence.sig M basis-library/sml-nj/unsafe.sig M basis-library/sml-nj/unsafe.sml Log Message: ----------- Omit `Size` checks in `Unsafe.*Array.{alloc,create}` functions Commit: 580da0096465ae22c41ce4f4f178a23f1ed02593 https://github.com/MLton/mlton/commit/580da0096465ae22c41ce4f4f178a23f1ed02593 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/array.sig M basis-library/arrays-and-vectors/array.sml M basis-library/arrays-and-vectors/sequence0.sml M basis-library/primitive/prim-seq.sml M basis-library/sml-nj/unsafe.sig M basis-library/sml-nj/unsafe.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/closure-convert/abstract-value.fun M mlton/ssa/common-subexp.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/useless.fun Log Message: ----------- Add `Array_allocRaw: SeqIndex.int -> 'a array` primitive The `Array_allocRaw` primitive allocates an array, but with a header that indicates that the array has no objptrs. A related `Array_toArray` primitive updates the header of an `Array_allocRaw` primitive to reveal the objptrs. Between the allocation and the cast, all elements of the array must be uninitialized (setting all objptrs in elements to a bogus non-objptr value (0wx1)). One motiviation for this primitive is that, in a parallel setting, the uninitialization of an array can be a sequential bottleneck. The `Array_allocRaw` is a constant time operation and the subsequent `Array_uninit` operations can be performed in parallel. Note that it is not safe to write non-bogus objptrs into a raw array. Because the raw array's header indicates that the array has no objptrs, non-bogus objptrs written to the array will not be traced or updated during a garbage collection. In the future, we may consider eliminating `Array_alloc` (the non-raw array allocation) and moving the uninitialization loop from the runtime to SML. To do so, though, we should ensure that arrays that do not need uninitialization are optimized early in the optimization pipeline. Commit: e5206bbd00c1935ffab8985dd87625dd9e3d404c https://github.com/MLton/mlton/commit/e5206bbd00c1935ffab8985dd87625dd9e3d404c Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Fix unused variable warning Commit: 81bb827327027216b6b992e4e2a60fd3801457e7 https://github.com/MLton/mlton/commit/81bb827327027216b6b992e4e2a60fd3801457e7 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/ssa/constant-propagation.fun M mlton/ssa/ssa-to-ssa2.fun Log Message: ----------- Generalize to "val Prim.arrayAlloc: {raw: bool} -> 'a Prim.t" Commit: 5c747df8d1b8a324ff7ab7ecab134f04acecd23c https://github.com/MLton/mlton/commit/5c747df8d1b8a324ff7ab7ecab134f04acecd23c Author: Matthew Fluet <mat...@gm...> Date: 2017-10-21 (Sat, 21 Oct 2017) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Fix latent bugs in ConstantProgagation with Array_allocRaw Currently, no arrays are globalized; see MLton/mlton#206. However, if "small" arrays were globalized, then an `Array_allocRaw[t] (l)` would be globalized as `Array_alloc[t] (l)` and the `Array_toArray` (that casts the raw array to a normal array) would be dropped. Now, the `Array` abstract value tracks whether the array is raw or normal, which is used to generate either `Array_allocRaw` or `Array_alloc` if the array is globalized. Also, `Array_toArray` creates the destination `Array` abstract value with `Birth.unknown()`, which prohibits globalization. Commit: c8c4ef601f3b00baef9a8612f3f903596b0cf92f https://github.com/MLton/mlton/commit/c8c4ef601f3b00baef9a8612f3f903596b0cf92f Author: Matthew Fluet <mat...@gm...> Date: 2017-10-21 (Sat, 21 Oct 2017) Changed paths: M Makefile.in M basis-library/arrays-and-vectors/sequence0.sml M benchmark/Makefile.in M bin/mlton-script.in 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/sources.cm M lib/mlton/basic/sources.mlb R lib/mlton/basic/stream-parser.sig R lib/mlton/basic/stream-parser.sml M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlton/front-end/ml.lex M mlton/main/compile.fun M mlton/ssa/common-subexp.fun A mlton/ssa/share-zero-vec.fun M mlton/ssa/simplify.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/xml/parse-sxml.fun M mlton/xml/parse-sxml.sig M runtime/gc/init.c Log Message: ----------- Merge branch 'master' of github.com:MLton/mlton into array-uninit ShareZeroVec only optimizes val a: t array = Array_alloc[t] (l) ... val v: t vector = Array_toVector[t] (a) not val r: t array = Array_allocRaw[t] (l) ... val a: t vector = Array_toArray[t] (r) ... val v: t vector = Array_toVector[t] (a) The latter is possibly, just requires a more sophisticated analysis to connect Array_alloc/Array_allocRaw with Array_toVector. Commit: ca796af8993a877553f4462a7ac2d1e97aa2036a https://github.com/MLton/mlton/commit/ca796af8993a877553f4462a7ac2d1e97aa2036a Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-21 (Sat, 21 Oct 2017) Changed paths: 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.sml M basis-library/integer/int-inf0.sml M basis-library/io/imperative-io.fun M basis-library/mlton/call-stack.sml M basis-library/net/socket.sml 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-seq.sml M basis-library/real/pack-real.sml M basis-library/real/real.sml M basis-library/sml-nj/unsafe.sig M basis-library/sml-nj/unsafe.sml M basis-library/system/date.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.sig M mlton/backend/ssa-to-rssa.fun M mlton/closure-convert/abstract-value.fun M mlton/ssa/common-subexp.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/deep-flatten.fun M mlton/ssa/ref-flatten.fun M mlton/ssa/share-zero-vec.fun M mlton/ssa/shrink2.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/ssa/useless.fun Log Message: ----------- Merge pull request #207 from MatthewFluet/array-uninit Unsafe operations for array uninitialization and raw arrays Highlights: * Rename `Array_uninit` primitive to `Array_alloc` (612eede) * Add `Array_uninit: 'a array * SeqInt.int -> unit` primitive (946385f) * Add `Array_uninitIsNop: 'a array -> bool` primitive` primitive (426baa1) * Add `Array_allocRaw: SeqIndex.int -> 'a array` and `Array_toArray: 'a array -> 'a array` primitives (580da00) All new primitives are implemented in `toRssa`. The `Array_uninit` primitive sets all objptrs in the element at the given index to a bogus non-objptr value (0wx1). One motivation for this primitive is to support space-efficient polymorphic resizeable arrays. When shrinking a resizeable array, we would like to "`NULL`" out the elements that are no longer part of the logical array, in order to avoid a (logical) space leak. The `Array_uninitIsNop` primitive answers if the `Array_uninit` primitive applied to the same array would be a nop (i.e., if the array has no objptrs in the elements). This can be used to skip a bulk-`Array_uninit` loop when it is known that the `Array_uninit` operations would be nops. It would be possible to introduce (pre-`toRssa`) optimizations that simplified `Array_uninitIsNop` and `Array_uninit` when it is clear that the array will never have objptrs in the elements. The `Array_allocRaw` primitive allocates an array, but with a header that indicates that the array has no objptrs. A related `Array_toArray` primitive updates the header of an `Array_allocRaw` primitive to reveal the objptrs. Between the allocation and the cast, all elements of the array must be uninitialized (setting all objptrs in elements to a bogus non-objptr value (0wx1)). One motiviation for this primitive is that, in a parallel setting, the uninitialization of an array can be a sequential bottleneck. The `Array_allocRaw` is a constant time operation and the subsequent `Array_uninit` operations can be performed in parallel. Note that it is not safe to write non-bogus objptrs into a raw array. Because the raw array's header indicates that the array has no objptrs, non-bogus objptrs written to the array will not be traced or updated during a garbage collection. In the future, we may consider eliminating `Array_alloc` (the non-raw array allocation) and moving the uninitialization loop from the runtime to SML. To do so, though, we should ensure that arrays that do not need uninitialization are optimized early in the optimization pipeline. The extended `structure Unsafe.Array` has the following signature: structure Unsafe.Array: sig (* omit Size check; * objptr(s) at elements set to bogus non-objptr value; * non-objptr(s) at elements have indeterminate value *) val alloc: int -> 'a array (* omit Size check; * elements set to initial value *) val create: int * 'a -> 'a array (* omit Subscript check *) val sub: 'a array * int -> 'a val uninitIsNop: 'a array -> bool (* omit Subscript check; * objptr(s) at element set to bogus non-objptr value *) val uninit: 'a array * int -> unit (* omit Subscript check *) val update: 'a array * int * 'a -> unit structure Raw: sig type 'a rawarr (* omit Size check; * objptr(s) at elements have indeterminate value; * non-objptr(s) at elements have indeterminate value *) val alloc: int -> 'a rawarr (* prereq: all objptr(s) at elements set to bogus * non-objptr value (via uninit) *) val toArray: 'a rawarr -> 'a array val uninitIsNop: 'a rawarr -> bool (* omit Subscript check; * objptr(s) at element set to bogus non-objptr value *) val uninit: 'a rawarr * int -> unit end end Compare: https://github.com/MLton/mlton/compare/2644a5fa7414...ca796af8993a |
From: GitHub <no...@gi...> - 2017-10-20 19:24:10
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 4569fe6b4853dd9cca419d38cc77329fb9e73c36 https://github.com/MLton/mlton/commit/4569fe6b4853dd9cca419d38cc77329fb9e73c36 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-28 (Thu, 28 Sep 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml Log Message: ----------- delete version of that uses new0 Commit: 3130bf77c95204cf43852d24dff92b93dfc27015 https://github.com/MLton/mlton/commit/3130bf77c95204cf43852d24dff92b93dfc27015 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M basis-library/basis-none.mlb M basis-library/equal.mlb 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/pervasive-vals.mlb M basis-library/primitive/primitive.mlb M doc/guide/src/AdmitsEquality.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/PolymorphicEquality.adoc M doc/guide/src/ShowBasis.adoc M doc/guide/src/TypeChecking.adoc M doc/guide/src/TypeVariableScope.adoc M doc/guide/src/ValueRestriction.adoc M lib/mlton/basic/layout.sml M lib/mlton/basic/list.sig M lib/mlton/basic/list.sml M lib/mlton/basic/promise.sig M lib/mlton/basic/promise.sml 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/hash-type.fun 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/record.fun M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/atoms/tycon.fun M mlton/atoms/tycon.sig M mlton/atoms/tyvar.fun M mlton/atoms/tyvar.sig R mlton/atoms/use-name.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/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig 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.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/match-compile/match-compile.fun A mlton/ssa/share-zero-vec.fun M mlton/ssa/simplify.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb 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 Log Message: ----------- split statement list into pre & post lists; TODO: add new blocks Commit: 803582d1fd659d15cde7bced5002b5de7093112c https://github.com/MLton/mlton/commit/803582d1fd659d15cde7bced5002b5de7093112c Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M mlton/front-end/ml.lex M runtime/gc/init.c Log Message: ----------- merging master Commit: 85b4df9848d99544eaba65ca583b13d0e4563d35 https://github.com/MLton/mlton/commit/85b4df9848d99544eaba65ca583b13d0e4563d35 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-13 (Fri, 13 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- progress commit; TODO: branching/merging blocks Commit: fba0ce71dc77ce723d4ba86b2ea00e8526170e5e https://github.com/MLton/mlton/commit/fba0ce71dc77ce723d4ba86b2ea00e8526170e5e Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- stuck on branching: Case transfer Commit: eaaf2bdacce892654ccece2ddac3054576146019 https://github.com/MLton/mlton/commit/eaaf2bdacce892654ccece2ddac3054576146019 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-17 (Tue, 17 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- try compiling Commit: b01dee51326dfb3b6f6a2939db682b24d1c4f619 https://github.com/MLton/mlton/commit/b01dee51326dfb3b6f6a2939db682b24d1c4f619 Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-17 (Tue, 17 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- TODO: add Control.diagnostics Commit: 17870ac3559fb6614731da84a64cd8b6c0b124ba https://github.com/MLton/mlton/commit/17870ac3559fb6614731da84a64cd8b6c0b124ba Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-19 (Thu, 19 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- added logging, fixed prim pattern matching bug Commit: d9346248ca0c91c5eb296367a747c41171dc2dad https://github.com/MLton/mlton/commit/d9346248ca0c91c5eb296367a747c41171dc2dad Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-19 (Thu, 19 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- cleanup Commit: f429f570a2167b396c9b0d656b52c439df72863b https://github.com/MLton/mlton/commit/f429f570a2167b396c9b0d656b52c439df72863b Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-19 (Thu, 19 Oct 2017) Changed paths: M Makefile.in M benchmark/Makefile.in M bin/mlton-script.in 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/sources.cm M lib/mlton/basic/sources.mlb R lib/mlton/basic/stream-parser.sig R lib/mlton/basic/stream-parser.sml M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlton/main/compile.fun M mlton/ssa/common-subexp.fun M mlton/xml/parse-sxml.fun M mlton/xml/parse-sxml.sig Log Message: ----------- Merge branch 'master' into share-zero-vec Commit: fe1df000aaa90b7995cbe2be6d3df63ac430d2ba https://github.com/MLton/mlton/commit/fe1df000aaa90b7995cbe2be6d3df63ac430d2ba Author: Maksim Yegorov <fin...@gm...> Date: 2017-10-19 (Thu, 19 Oct 2017) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- enable shareZeroVec pass by default Commit: d99a7dc46ab4573164d33e53be8a1ad82edb35b7 https://github.com/MLton/mlton/commit/d99a7dc46ab4573164d33e53be8a1ad82edb35b7 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/ssa/simplify.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb Log Message: ----------- Fix alphabetization errors Commit: 94ec508e4ed8eb5bdce6abbbef7c2d9e9d847a92 https://github.com/MLton/mlton/commit/94ec508e4ed8eb5bdce6abbbef7c2d9e9d847a92 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- Fix newlines (DOS to Unix) in share-zero-vec.fun Commit: e51acf94d6981082b5cc4454f3248a3b01048bb6 https://github.com/MLton/mlton/commit/e51acf94d6981082b5cc4454f3248a3b01048bb6 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- Refactor ShareZeroVec for code style Commit: 87cb78a89c4a530062ea536e4254ca30c2bbdba6 https://github.com/MLton/mlton/commit/87cb78a89c4a530062ea536e4254ca30c2bbdba6 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Move ShareZeroVec later in SSA simplify order Commit: 298814eabfd78aff7baa5d4a268841faa7f2a131 https://github.com/MLton/mlton/commit/298814eabfd78aff7baa5d4a268841faa7f2a131 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- Use existing global 0x0 (of seqIndexSize) when it exists Commit: 51efb35fa2a3ecee125eb56e3dea16ad482649f9 https://github.com/MLton/mlton/commit/51efb35fa2a3ecee125eb56e3dea16ad482649f9 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- Shrink transformed functions in ShareZeroVec Commit: 061355f1cfcab47f69dde81e03b6a83d1daee096 https://github.com/MLton/mlton/commit/061355f1cfcab47f69dde81e03b6a83d1daee096 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M mlton/ssa/share-zero-vec.fun Log Message: ----------- Use more efficient transform loop in ShareZeroVec Commit: 2644a5fa74142ea158648162b3de353c65d8d16b https://github.com/MLton/mlton/commit/2644a5fa74142ea158648162b3de353c65d8d16b Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-20 (Fri, 20 Oct 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml A mlton/ssa/share-zero-vec.fun M mlton/ssa/simplify.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb Log Message: ----------- Merge pull request #204 from myegorov/share-zero-vec SSA optimization to share zero-length vectors >From be8c5f5: > Replace the use of Array_array0Const primitive in the Basis Library implementation with a (nullary) Vector_vector primitive. > The original motivation for the Array_array0Const primitive was to share the heap space required for zero-length vectors among all vectors (of a given type). It was claimed that this optimization is important, e.g., in a self-compile, where vectors are used for lots of syntax tree elements and many of those vectors are empty. See: http://www.mlton.org/pipermail/mlton-devel/2002-February/021523.html > Curiously, the full effect of this optimization has been missing for quite some time (perhaps since the port of ConstantPropagation to the SSA IL). While ConstantPropagation has "globalized" the nullary application of the `Array_array0Const` primitive, it also simultaneously transformed it to an application of the `Array_uninit` (previously, the `Array_array`) primitive to the zero constant. The hash-consing of globals, meant to create exactly one global for each distinct constant, treats `Array_uninit` primitives as unequal (appropriately, since `Array_uninit` allocates an array with identity (though the identity may be supressed by a subsequent `Array_toVector`)), hence each distinct `Array_array0Const` primitive in the program remained as distinct globals. The limited amount of inlining prior to ConstantPropagation meant that there were typically fewer than a dozen "copies" of the same empty vector in a program for a given type. > As a "functional" primitive, a nullary `Vector_vector` is globalized by ClosureConvert, but is further recognized by ConstantPropagation and hash-consed into a unique instance for each type. However, a single, shared, global `Vector_vector ()` inhibits the coercion-based optimizations of `Useless`. For example, consider the following program: val n = valOf (Int.fromString (hd (CommandLine.arguments ()))) val v1 = Vector.tabulate (n, fn i => let val w = Word16.fromInt i in (w - 0wx1, w, w + 0wx1 + w) end) val v2 = Vector.map (fn (w1, w2, w3) => (w1, 0wx2 * w2, 0wx3 * w3)) v1 val v3 = VectorSlice.vector (VectorSlice.slice (v1, 1, SOME (n - 2))) val ans1 = Vector.foldl (fn ((w1,w2,w3),w) => w + w1 + w2 + w3) 0wx0 v1 val ans2 = Vector.foldl (fn ((_,w2,_),w) => w + w2) 0wx0 v2 val ans3 = Vector.foldl (fn ((_,w2,_),w) => w + w2) 0wx0 v3 val _ = print (concat ["ans1 = ", Word16.toString ans1, " ", "ans2 = ", Word16.toString ans2, " ", "ans3 = ", Word16.toString ans3, "\n"]) We would like `v2` and `v3` to be optimized from `(word16 * word16 * word16) vector` to `word16 vector` because only the 2nd component of the elements is needed to compute the answer. With `Array_array0Const`, each distinct occurrence of `Array_array0Const((word16 * word16 * word16))` arising from polyvariance and inlining remained a distinct `Array_uninit((word16 * word16 * word16)) (0x0)` global, which resulted in distinct occurrences for the `val v1 = Vector.tabulate ...` and for the `val v2 = Vector.map ...`. The latter could be optimized to `Array_uninit(word16) (0x0)` by `Useless`, because its result only flows to places requiring the 2nd component of the elements. With `Vector_vector ()`, the distinct occurrences of `Vector_vector((word16 * word16 * word16)) ()` arising from polyvariance are globalized during `ClosureConvert`, those global references may be further duplicated by inlining, but the distinct occurrences of `Vector_vector((word16 * word16 * word16)) ()` are merged to a single occurrence. Because this result flows to places requiring all three components of the elements, it remains `Vector_vector((word16 * word16 * word16)) ()` after `Useless`. Furthermore, because one cannot (in constant time) coerce a `(word16 * word16 * word16) vector` to a `word16 vector`, the `v2` value remains of type `(word16 * word16 * word16) vector`. One option would be to drop the 0-element vector "optimization" entirely. This costs some space (no sharing of empty vectors) and some time (allocation and garbage collection of empty vectors). Another option would be to reinstate the `Array_array0Const` primitive and associated `ConstantPropagation` treatment. But, the semantics and purpose of `Array_array0Const` was poorly understood, resulting in this break. This pull request pursues a different approach: perform the 0-element vector "optimization" as a separate optimization, after `ConstantPropagation` and `Useless`. A trivial static analysis is used to match `val v: t vector = Array_toVector(t) (a)` with corresponding `val a: array = Array_uninit(t) (l)` and the later are expanded to `val a: t array = if 0 = l then zeroArr_[t] else Array_uninit(t) (l)` with a single global `val zeroArr_[t] = Array_uninit(t) (0)~ created for each distinct type (after coercion-based optimizations). One disadvantage of this approach, compared to the `Vector_vector(t) ()` approach, is that `Array_toVector` is applied each time a vector is created, even if it is being applied to the `zeroArr_[t]` zero-length array. (Although, this was the behavior of the `Array_array0Const` approach.) This updates the object header each time, whereas the `Vector_vector(t) ()` approach would have updated the object header once, when the global was created, and the `zeroVec_[t]` global and the `Array_toVector` result would flow to the join point. It would be possible to properly share zero-length vectors, but doing so is a more sophisticated analysis and transformation, because there can be arbitrary code between the `val a: t array = Array_uninit(t) (l)` and the corresponding `val v: v vector = Array_toVector(t) (a)`, although, in practice, nothing happens when a zero-length vector is created. It may be best to pursue a more general "array to vector" optimization that transforms creations of static-length vectors (e.g., all the `Vector.new<N>` functions) into `Vector_vector` primitives (some of which could be globalized). Compare: https://github.com/MLton/mlton/compare/37fdd250ca60...2644a5fa7414 |
From: GitHub <no...@gi...> - 2017-10-18 20:09:12
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: fd118f4305ca797c0e4a2d325112c58a5b34d0c1 https://github.com/MLton/mlton/commit/fd118f4305ca797c0e4a2d325112c58a5b34d0c1 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-18 (Wed, 18 Oct 2017) Changed paths: M benchmark/Makefile.in M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/common-subexp.fun Log Message: ----------- Implement alternate canonicalization strategies in CommonSubexp As part of performing common subexpression elimination, CommonSubexp canonicalizes all Exp.t-s, including putting arguments of commutative arithmetic primitives in a canonical order. There is a note in common-subexp.fun regarding this canonicalizing of commutative arguments: fun canon2 () = let val a0 = arg 0 val a1 = arg 1 in (* What we really want is a total orderning on * variables. Since we don't have one, we just use * the total ordering on hashes, which means that * we may miss a few cse's but we won't be wrong. *) if Var.hash a0 <= Var.hash a1 then (a0, a1) else (a1, a0) end Note that the only cse-s that a lack of a total ordering would miss are "a + b" and "b + a", where the variables "a" and "b" both had the same hash. On the other hand, the order of arguments to commutative arithmetic arguments is sensitive to variable hashes and variable hashes are created by an unseeded pseudo-random number generator. This pseudo-random number generator is used create hashes for all classes of identifiers, so while variable hashes are deterministic, they are sensitive to the number of identifiers created before the variable is created. Hence, the creation of more or less identifiers (for example, when resuming compilation from a saved .sxml program) the assignment of hashes to variable identifiers, which might swap the arguments of commutative arithmetic primitives. Indeed, the only difference between the .ssa when compiling the original program and the .ssa when resuming compilation from a corresponding saved .sxml file is the order of some commutative arithmetic primitives. One would hope that the codegens would not be sensitive to the ordering of arguments in commutative arithmetic primitives. Indeed, the native codegens do some analysis to pick a "good" order in which to handle the arguments of commutative arithmetic primitives. However, when there isn't anything to break the tie when looking for a "good" order, the generated code follows the order of the arguments in the primitive. We've seen situations where a small code permutation, which results in the swapping of some commutative arithmetic primitive arguments leads to non-trivial run-time differences. This commit introduces four different canonicalization strategies for arguments to commutative arithmetic primitives. "ascHash" and "descHash" correspond to the strategies that put the arguments in order of ascending or descending variable hashes, respectively. "ascIndex" and "descIndex" correspond to strategies that put the arguments in order of ascending or descending variable indices, respectively. Variable indices are set according to a counter and a variable's index is set when it's defining occurrence is encountered during the walk of the dominator tree. This doesn't guarantee that a variable's index is always the same under different compiles; a variable's index is sensitive to the number of variables set before it, which will depend upon the particular program and previous program transformations. However, this indexing strategy does have the advantage that the relative order of two variables will always correspond to the relative scope of the two variables, which will tend to be stable across compiles, so long as the variables in question are not the subject of a serious optimization. Here are the results: MLton0 -- ~/devel/mlton/builds/20171013.233239-g5513092e3/bin/mlton MLton1 -- ~/devel/mlton/mlton.git/build/bin/mlton -cse-canon ascHash MLton2 -- ~/devel/mlton/mlton.git/build/bin/mlton -cse-canon descHash MLton3 -- ~/devel/mlton/mlton.git/build/bin/mlton -cse-canon ascIndex MLton4 -- ~/devel/mlton/mlton.git/build/bin/mlton -cse-canon descIndex run time ratio benchmark MLton1 MLton2 MLton3 MLton4 DLXSimulator 0.99 0.99 1.00 1.00 barnes-hut 1.00 1.00 1.05 1.03 boyer 0.99 0.99 0.99 0.99 checksum 1.00 1.01 1.00 0.90 count-graphs 1.01 1.01 1.01 1.00 even-odd 1.00 1.00 1.00 1.00 fft 0.99 0.99 0.98 1.00 fib 1.00 1.00 1.01 1.00 flat-array 1.00 1.00 0.99 0.99 hamlet 0.98 0.98 0.99 1.01 imp-for 0.99 0.99 1.00 1.00 knuth-bendix 1.03 0.99 1.02 0.99 lexgen 0.97 0.94 0.95 0.93 life 0.99 0.94 0.97 0.95 logic 1.00 1.01 1.03 1.04 mandelbrot 1.00 1.10 1.10 1.00 matrix-multiply 0.99 1.04 1.04 1.00 md5 1.00 1.01 1.00 1.00 merge 1.00 1.00 1.01 1.00 mlyacc 1.01 1.01 1.00 1.01 model-elimination 1.02 1.01 1.01 1.00 mpuz 0.99 0.99 1.00 1.00 nucleic 1.00 0.98 0.98 0.98 output1 1.00 1.00 1.00 1.00 peek 1.00 0.99 1.00 1.00 psdes-random 0.99 0.84 0.99 0.85 ratio-regions 1.00 1.00 1.00 1.00 ray 0.99 1.01 1.01 1.01 raytrace 1.00 1.00 0.95 0.94 simple 0.99 0.97 1.01 0.99 smith-normal-form 1.01 1.01 1.00 1.01 string-concat 1.00 1.00 1.00 1.00 tailfib 1.00 1.00 1.00 1.00 tak 1.00 1.02 1.00 1.00 tensor 1.00 1.00 1.00 1.00 tsp 1.00 0.94 1.00 1.00 tyan 1.01 1.00 1.00 1.00 vector-rev 0.99 1.02 0.99 0.99 vector32-concat 1.00 1.00 1.00 1.00 vector64-concat 0.99 1.00 1.00 1.00 vliw 1.00 1.00 0.99 0.99 wc-input1 1.00 1.00 1.00 1.00 wc-scanStream 0.99 1.02 1.05 1.02 zebra 1.00 1.00 1.00 1.01 zern 1.00 1.01 1.01 1.02 Note that MLton0 and MLton1 (ascHash) should be equivalent, from which we conclude that run-time ratios between 0.97 and 1.03 are not significant. The results seem to suggest that '-cse-canon descIndex' is the best choice. Using '-cse-canon descHash' or '-cse-canon ascIndex' seems to trigger a slowdown in mandelbrot. Correspondingly, using '-cse-canon descIndex' seems to avoid the slowdown in mandelbrot and seems to trigger speedups in checksum, lexgen?, psdes-random. Commit: d2c48646e64c8da487f364eb2bafb0485d9e7a53 https://github.com/MLton/mlton/commit/d2c48646e64c8da487f364eb2bafb0485d9e7a53 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-18 (Wed, 18 Oct 2017) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/common-subexp.fun Log Message: ----------- Use `ascIndex` canonicalization strategy in CommonSubexp See benchmark results from fd118f4. Commit: c328566c83b00bbf4b183877d2bbfa9d06c85525 https://github.com/MLton/mlton/commit/c328566c83b00bbf4b183877d2bbfa9d06c85525 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-18 (Wed, 18 Oct 2017) Changed paths: M benchmark/Makefile.in M mlton/ssa/common-subexp.fun Log Message: ----------- Merge pull request #202 from MatthewFluet/common-subexp-canon New canonicalization strategy for CommonSubexp Compare: https://github.com/MLton/mlton/compare/5513092e3c64...c328566c83b0 |
From: GitHub <no...@gi...> - 2017-10-13 23:32:50
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 60aee0f3e02ee70a419353cc8e30a8a8c3b89701 https://github.com/MLton/mlton/commit/60aee0f3e02ee70a419353cc8e30a8a8c3b89701 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-13 (Fri, 13 Oct 2017) Changed paths: M mlton/main/compile.fun Log Message: ----------- Fix bug with compiling programs with `_export`-ed functions The bug was introduced by 7ca7629, which refactored some of `main/compile.fun` to facilitate parsing and compiling with .sxml programs. The commit nicely factored out the code to setup runtime constants and ran it before initiating compilation of .sml/.mlb or .sxml programs. What is not apparent from the code in `main/compile.fun` is that `LookupConstant.load` implicitly initializes some other constants. In particular, it initializes the `MLton_FFI_numExports` constant, which in turn, is set by `Ffi.numExports ()`, which is itself a derived value of the program being compiled (essentially, counting the number of `_export` expressions in the program). The laziness of CoreML constants is precisely to support this derived constant (and, potentially, others that might be a property of the program being compiled, though there are no other such constants at the present time). The fix is simple: perform `setupConstants` after elaboration. Technically, the `defunctorize` pass that converts the CoreML program to an XML program will have forced the constants (and performed the `LookupConstant.load`), but that is sufficiently late that `Ffi.numExports ()` will return a correct value. It is still necessary to perform `setupConstants` to propagate values for the runtime constants. Commit: 5513092e3c6487937b70110ec3608726fdaadd26 https://github.com/MLton/mlton/commit/5513092e3c6487937b70110ec3608726fdaadd26 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-13 (Fri, 13 Oct 2017) Changed paths: M mlton/main/compile.fun Log Message: ----------- Merge pull request #200 from MatthewFluet/export-bugfix Fix bug with compiling programs with `_export`-ed functions Compare: https://github.com/MLton/mlton/compare/4d1c8f5f02f6...5513092e3c64 |
From: GitHub <no...@gi...> - 2017-10-13 20:06:10
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0319875d4066f189ce15611c540a91c4c2497af9 https://github.com/MLton/mlton/commit/0319875d4066f189ce15611c540a91c4c2497af9 Author: Jason Carr <ja...@ri...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: 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/sources.cm M lib/mlton/basic/sources.mlb R lib/mlton/basic/stream-parser.sig R lib/mlton/basic/stream-parser.sml M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlton/main/compile.fun M mlton/xml/parse-sxml.fun M mlton/xml/parse-sxml.sig Log Message: ----------- Parse -> ParseSexp; StreamParser -> Parse Commit: 59369b904570a1ad9ac1be0e4b4a86fd45b293e7 https://github.com/MLton/mlton/commit/59369b904570a1ad9ac1be0e4b4a86fd45b293e7 Author: Jason Carr <ja...@ri...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/xml/parse-sxml.fun Log Message: ----------- Remove Info.t Commit: cdd221cc33c11f0c7a744cb22310ab94d20fb886 https://github.com/MLton/mlton/commit/cdd221cc33c11f0c7a744cb22310ab94d20fb886 Author: Jason Carr <ja...@ri...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M lib/mlton/basic/sources.mlb M mlton/main/compile.fun M mlton/xml/parse-sxml.fun M mlton/xml/parse-sxml.sig Log Message: ----------- Parse now has parseString, parseStream, parseFile returning Result.t's Commit: b8447bbc9c3c2dc68ee0c8ab2dc8ba33a3a46026 https://github.com/MLton/mlton/commit/b8447bbc9c3c2dc68ee0c8ab2dc8ba33a3a46026 Author: Jason Carr <ja...@ri...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/backend.fun M mlton/backend/ssa-to-rssa.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/inline.fun A mlton/ssa/loop-unroll.fun A mlton/ssa/loop-unswitch.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-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/useless.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Merge branch 'master' of https://github.com/MLton/mlton into stream-transformers Commit: ac080d18b93bb990c0b81a558f2d3184537ab447 https://github.com/MLton/mlton/commit/ac080d18b93bb990c0b81a558f2d3184537ab447 Author: Jason Carr <ja...@ri...> Date: 2017-07-24 (Mon, 24 Jul 2017) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/main/compile.fun M mlton/xml/parse-sxml.fun Log Message: ----------- Added some commonly occuring parsers into Parse Commit: d4a9fd00ac6aaee314bddf074ce7b0a9830e0621 https://github.com/MLton/mlton/commit/d4a9fd00ac6aaee314bddf074ce7b0a9830e0621 Author: Jason Carr <ja...@ri...> Date: 2017-10-11 (Wed, 11 Oct 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/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/basis-none.mlb M basis-library/equal.mlb 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/pervasive-vals.mlb M basis-library/primitive/prim-seq.sml M basis-library/primitive/primitive.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 R bin/mlton-script A bin/mlton-script.in M bin/regression A bin/travis-ci A configure.ac A doc/README R doc/README M doc/guide/src/AdmitsEquality.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/PolymorphicEquality.adoc M doc/guide/src/ShowBasis.adoc M doc/guide/src/TypeChecking.adoc M doc/guide/src/TypeVariableScope.adoc M doc/guide/src/ValueRestriction.adoc M lib/mlnlffi-lib/.gitignore R lib/mlnlffi-lib/Makefile A lib/mlnlffi-lib/Makefile.in M lib/mlton/basic/layout.sml M lib/mlton/basic/list.sig M lib/mlton/basic/list.sml M lib/mlton/basic/promise.sig M lib/mlton/basic/promise.sml 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/hash-type.fun 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/sources.cm M mlton/atoms/sources.mlb M mlton/atoms/tycon.fun M mlton/atoms/tycon.sig M mlton/atoms/tyvar.fun M mlton/atoms/tyvar.sig R mlton/atoms/use-name.fun M mlton/backend/ssa-to-rssa.fun M mlton/closure-convert/abstract-value.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/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig 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.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/main.fun M mlton/match-compile/match-compile.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/useless.fun M mlyacc/.gitignore R mlyacc/Makefile A mlyacc/Makefile.in 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 Log Message: ----------- Merge https://github.com/MLton/mlton into stream-transformers Commit: 223c603ac45ad8f1984588936acac03be746041b https://github.com/MLton/mlton/commit/223c603ac45ad8f1984588936acac03be746041b Author: Jason Carr <ja...@ri...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fix word8 vector parsing Commit: 6c425edc3ef0ba201a72af0dce71c52926f7b4eb https://github.com/MLton/mlton/commit/6c425edc3ef0ba201a72af0dce71c52926f7b4eb Author: Jason Carr <ja...@ri...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/xml/parse-sxml.fun Log Message: ----------- Remove <&>, replicated with peek and *> Commit: f14ccb76bbd81fc4081c4d1fc7448ad86fdd97f9 https://github.com/MLton/mlton/commit/f14ccb76bbd81fc4081c4d1fc7448ad86fdd97f9 Author: Jason Carr <ja...@ri...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: R lib/mlton/basic/parse-sexp.fun R lib/mlton/basic/parse-sexp.sig Log Message: ----------- Remove old files that sneaked back in Commit: a972a40d6a53ea1cf449bf5f1a8f3ea16226a014 https://github.com/MLton/mlton/commit/a972a40d6a53ea1cf449bf5f1a8f3ea16226a014 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-13 (Fri, 13 Oct 2017) Changed paths: A lib/mlton/basic/parse-sexp.fun A lib/mlton/basic/parse-sexp.sig Log Message: ----------- Revert "Remove old files that sneaked back in" This reverts commit f14ccb76bbd81fc4081c4d1fc7448ad86fdd97f9. The old `signature PARSE` and `functor Parse` should be retained under the names `signature PARSE_SEXP` and `functor ParseSexp`. Commit: 7634dd6087282a7543fb733fab17a6d6674a59f9 https://github.com/MLton/mlton/commit/7634dd6087282a7543fb733fab17a6d6674a59f9 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-13 (Fri, 13 Oct 2017) Changed paths: M lib/mlton/basic/parse-sexp.fun M lib/mlton/basic/sources.cm Log Message: ----------- Fix SML/NJ build Commit: 4d1c8f5f02f6bf1015763988aca66e1672bdb1b5 https://github.com/MLton/mlton/commit/4d1c8f5f02f6bf1015763988aca66e1672bdb1b5 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-13 (Fri, 13 Oct 2017) Changed paths: 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/sources.cm M lib/mlton/basic/sources.mlb R lib/mlton/basic/stream-parser.sig R lib/mlton/basic/stream-parser.sml M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlton/main/compile.fun M mlton/xml/parse-sxml.fun M mlton/xml/parse-sxml.sig Log Message: ----------- Merge pull request #199 from jasoncarr0/stream-transformers Updates to stream parsing library Compare: https://github.com/MLton/mlton/compare/30b7da1b3d23...4d1c8f5f02f6 |
From: GitHub <no...@gi...> - 2017-10-12 20:56:37
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7042594e93c253a55886c4a1a389fcbc1e7f91b1 https://github.com/MLton/mlton/commit/7042594e93c253a55886c4a1a389fcbc1e7f91b1 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M runtime/gc/init.c Log Message: ----------- Fix bug in runtime argument option parsing introduced by e2873ff Commit: 3517a6885e0f6f7ba4033c68f62237b23b419f48 https://github.com/MLton/mlton/commit/3517a6885e0f6f7ba4033c68f62237b23b419f48 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M runtime/gc/init.c Log Message: ----------- Merge pull request #197 from MatthewFluet/runtime-args-bugfix Fix bug in runtime argument option parsing introduced by e2873ff Compare: https://github.com/MLton/mlton/compare/505a23c0ff8e...3517a6885e0f |
From: GitHub <no...@gi...> - 2017-10-12 20:52:12
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0e631070c6ac34da8e31a7a46f9685a2987f6a42 https://github.com/MLton/mlton/commit/0e631070c6ac34da8e31a7a46f9685a2987f6a42 Author: Matthew Fluet <mat...@gm...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M mlton/front-end/ml.lex Log Message: ----------- Fix typo in disallowed line comments error message Commit: 30b7da1b3d236114071221047d76acebc2a732d0 https://github.com/MLton/mlton/commit/30b7da1b3d236114071221047d76acebc2a732d0 Author: Matthew Fluet <Mat...@gm...> Date: 2017-10-12 (Thu, 12 Oct 2017) Changed paths: M mlton/front-end/ml.lex Log Message: ----------- Merge pull request #198 from MatthewFluet/allow-line-comments-error-msg-typo Fix typo in disallowed line comments error message Compare: https://github.com/MLton/mlton/compare/3517a6885e0f...30b7da1b3d23 |
From: GitHub <no...@gi...> - 2017-10-06 02:18:06
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 8c8be2442f8e66554f28df56217d6c02cdd726e9 https://github.com/MLton/mlton/commit/8c8be2442f8e66554f28df56217d6c02cdd726e9 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-24 (Wed, 24 May 2017) Changed paths: M mlton/control/control.sml M mlton/control/region.sml M mlton/control/source-pos.sig M mlton/control/source-pos.sml Log Message: ----------- Display complete region in error and warning messages Consider the following program: val x: int = true Previously, only the left position of the region was included in the error message, yielding: Error: z.sml 1.5. Pattern and expression disagree. pattern: [int] expression: [bool] in: val x: int = true Now, both the left and right line/column position of the region is included in the error message, yielding: Error: z.sml 1.5-1.11. Pattern and expression disagree. pattern: [int] expression: [bool] in: val x: int = true This should allow for more informative use of MLton error messages. Commit: f4ceafbdf77e5a66e1df8d9f8f9a9b78eb959eed https://github.com/MLton/mlton/commit/f4ceafbdf77e5a66e1df8d9f8f9a9b78eb959eed Author: Matthew Fluet <mat...@gm...> Date: 2017-05-24 (Wed, 24 May 2017) Changed paths: M doc/guide/src/Emacs.adoc Log Message: ----------- Update Emacs page Update the example `compilation-error-regexp-alist` to support full region error and warning messages. Nicely, this regular expression works with both error messages of the form: Error: z.sml 1.5. and of the form: Error: z.sml 1.5-1.11. However, one problem is that emacs interprets an end-line/end-column as inclusive of the range to be highlighted, rather then being one character beyond the range to be highlighted. Commit: 6faf9cd8bb33b7dd6cc339b0c39140ceadf75250 https://github.com/MLton/mlton/commit/6faf9cd8bb33b7dd6cc339b0c39140ceadf75250 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/front-end/mlb.lex Log Message: ----------- Adjust token spans in MLB lexer The right position of a token is the position of the last character in the token (rather than begin the position of the character following the last character in the token). Commit: 1b9243d0c3e2bfed3b1391107c7d381753209ca0 https://github.com/MLton/mlton/commit/1b9243d0c3e2bfed3b1391107c7d381753209ca0 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/front-end/ml.lex Log Message: ----------- Adjust token spans in ML lexer The right position of a token is the position of the last character in the token (rather than begin the position of the character following the last character in the token). Commit: 31f108b039982e4365bd4483c2530e408a72e1f1 https://github.com/MLton/mlton/commit/31f108b039982e4365bd4483c2530e408a72e1f1 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/front-end/ml.grm Log Message: ----------- Refactor app_exp productions in ml.grm The grammar productions for application expressions were: app_exp : aexp app_exp1 | longvid app_exp1 app_exp1 : | app_exp It seems that the empty production in app_exp1 causes ml-yacc to associate an "app_expright" position with the left position of the token following the app_exp, rather than with the right position of the last token of the app_exp. Thus, the following program: val i = case 0 of 0 => true | 1 => ignore 1 | _ => false yields the error message: Error: z.sml 4.12-5.5. Rule results disagree. result: [unit] previous: [bool] in: 0 => true | 1 => (ignore 1) | _ => false Note that the end of the region is 5.5, corresponding to the "|" in "| _ => false". The grammar is refactored to: app_exp : aexp | aexp app_exp | longvid | longvid app_exp which yields the error message: Error: z.sml 4.12-4.19. Rule results disagree. result: [unit] previous: [bool] in: 0 => true | 1 => (ignore 1) | _ => false Commit: 05d651830e7d84daa3a2655f4fba8241620863c3 https://github.com/MLton/mlton/commit/05d651830e7d84daa3a2655f4fba8241620863c3 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Fix region in `andalso` and `orelse` type-error messages Although `doit` was called with the elaborated left- and right-branch expressions, the inner call to `unify` was made with `Aexp.region e`, where `e` is the left-branch expression. Hence, a non-bool right-branch expression was correctly reported, but wrongly attributed to the left-branch expression position. Commit: 65befa41cf2612b60586a52e6267f22ad0d7e368 https://github.com/MLton/mlton/commit/65befa41cf2612b60586a52e6267f22ad0d7e368 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/elaborate/precedence-parse.fun Log Message: ----------- Attribute "illegal function symbol" message to region of func pat Commit: 219b07724993811c2a0aff5fa0001b2ed78ecb3d https://github.com/MLton/mlton/commit/219b07724993811c2a0aff5fa0001b2ed78ecb3d Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/elaborate/elaborate-core.fun M mlton/elaborate/precedence-parse.fun M mlton/elaborate/precedence-parse.sig Log Message: ----------- Attribute "function with no arguments" error to pats region Commit: 1e4c79202d2cff68a63b74601c35eb3e1cb1171d https://github.com/MLton/mlton/commit/1e4c79202d2cff68a63b74601c35eb3e1cb1171d Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Attribute "fn def with different # of args" to pats region Commit: 130d2fd2086e718b7b16481060a933faa1138865 https://github.com/MLton/mlton/commit/130d2fd2086e718b7b16481060a933faa1138865 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Improve order of names in "fun def with multiple names" message Commit: d44f6d4cd1c148ba9f327079468e214f3ce9c241 https://github.com/MLton/mlton/commit/d44f6d4cd1c148ba9f327079468e214f3ce9c241 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Treat "fun def w/ diff names" and "fun def w/ diff #args" uniformly Commit: e6aa4e3e0094388b3c3304c9b1a8352a568d8f9e https://github.com/MLton/mlton/commit/e6aa4e3e0094388b3c3304c9b1a8352a568d8f9e Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/ast/longid.fun Log Message: ----------- Adjust token spans in long ids The right position of a longid component is the position of the last character in the component (rather than being the position of the character following the last character in the component). Commit: ac637554e3e8dc75f337d9845ea74dfca0318470 https://github.com/MLton/mlton/commit/ac637554e3e8dc75f337d9845ea74dfca0318470 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: 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/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/precedence-parse.fun M mlton/elaborate/scope.fun M mlton/front-end/ml.grm Log Message: ----------- Represent parenthesized expressions in AST Explicitly representing parenthesized expressions in the AST allows for more accurate region information. Consider the following ill-typed program: val _ = ( if true then 1 else #"c" ) () Previously, the parenthesized if expression would be re-wrapped with the region of the parentheses, yielding the messages: Error: dec.sml 1.9-1.38. Then and else branches disagree. then: [int] else: [char] in: if true then 1 else #"a" Error: dec.sml 1.9-1.41. Function not of arrow type. function: [int] in: (if true then 1 else #"a") () Now, the if expression retains its original region, when the paren expression receives its own region, which is incorporated into the region of the application expression, yielding the messages: Error: dec.sml 1.12-1.35. Then and else branches disagree. then: [int] else: [char] in: if true then 1 else #"a" Error: dec.sml 1.9-1.41. Function not of arrow type. function: [int] in: (if true then 1 else #"a") () Commit: 30204b8cdb20f87d980657105d0616765f57d26d https://github.com/MLton/mlton/commit/30204b8cdb20f87d980657105d0616765f57d26d Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Treat "fun def w/ diff name" and "fun def w/ diff #args" messages Commit: 80359189c30b75828c2b82bc1d8db28669f2299e https://github.com/MLton/mlton/commit/80359189c30b75828c2b82bc1d8db28669f2299e Author: Matthew Fluet <mat...@gm...> Date: 2017-05-25 (Thu, 25 May 2017) Changed paths: M mlton/front-end/ml.grm Log Message: ----------- Refactor valbind and rvalbind productions in ml.grm Similar to 31f108b. It seems that the empty productions in valbindRest and rvalbindRest cause ml-yacc to associate the right position with the left position of the token following the valbind or rvalbind, rather than with the right position of the last token of the valbind or rvalbind. Commit: 48898ddba95bfbef022671cbe9fee216192f7253 https://github.com/MLton/mlton/commit/48898ddba95bfbef022671cbe9fee216192f7253 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-26 (Fri, 26 May 2017) Changed paths: M mlton/elaborate/precedence-parse.fun Log Message: ----------- Adjust regions in parsed infix exps and pats When precedence parsing patterns and expressions, the region of the resulting apply node should be from the left position of the left argument to the right position of the right argument, rather than from the left position of the function (which is infix) to the right position of the right argument. Commit: 37ddbe55e9290c43b043253ce9bf7ed7e96f550b https://github.com/MLton/mlton/commit/37ddbe55e9290c43b043253ce9bf7ed7e96f550b Author: Matthew Fluet <mat...@gm...> Date: 2017-05-31 (Wed, 31 May 2017) Changed paths: M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/ast/ast-core.fun M mlton/ast/ast-modules.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/precedence-parse.fun M mlton/elaborate/scope.fun Log Message: ----------- Update various error messages Commit: 1a6d25ec9c319106f587bc829be0c1c5c3d42fe1 https://github.com/MLton/mlton/commit/1a6d25ec9c319106f587bc829be0c1c5c3d42fe1 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-01 (Thu, 01 Jun 2017) Changed paths: M mlton/elaborate/precedence-parse.fun A regression/fail/infix.1.sml A regression/fail/infix.2.sml Log Message: ----------- Updates and minor bug fix to precedence parsing of function clauses Consider the following program: infix & && << >> datatype ('a, 'b) p = & of 'a * 'b (* should error *) fun (_ f _) = () (* should error *) fun fst x & y = x (* should error *) fun fst x && y = x (* should error *) fun << (x, y) = () (* should error *) fun << (x, y) z = () (* should error *) fun << && >> = () (* should error *) fun (f) x = () (* should error *) fun x && y & z = 1 Each of these function declarations erroneously uses infix identifiers in a function clause. Previously, only the second, seventh, and eighth were reported as errors: Error: z.sml 8.11-8.11. Constructor used without argument in pattern: &. Error: z.sml 23.6-23.6. Function defined with illegal name: f. in: fun f x = () Error: z.sml 26.12-26.12. Constructor used without argument in pattern: &. Now, we give more descriptive error messages: Error: z.sml 5.5-5.11. Function clause with improper infix pattern. in: fun (_ f _) = () Error: z.sml 5.5-5.11. Function clause with no arguments. in: fun (_ f _) = () Error: z.sml 8.5-8.9. Function clause with improper infix pattern. in: fun fst x & y = x Warning: z.sml 8.11-8.11. Constructor redefined by fun: &. in: fun fst x & y = x Error: z.sml 8.5-8.7. Undefined constructor: fst. Error: z.sml 8.17-8.17. Undefined variable: x. Error: z.sml 11.5-11.9. Function clause with improper infix pattern. in: fun fst x && y = x Error: z.sml 11.5-11.7. Undefined constructor: fst. Error: z.sml 11.18-11.18. Undefined variable: x. Error: z.sml 14.5-14.6. Function clause starts with infix identifier: <<. in: fun << (x, y) = () Error: z.sml 17.5-17.6. Function clause starts with infix identifier: <<. in: fun << (x, y) z = () Error: z.sml 20.5-20.6. Function clause starts with infix identifier: <<. in: fun << && >> = () Error: z.sml 20.11-20.12. Identifier must be used infix: >>. in: fun << && >> = () Error: z.sml 23.5-23.7. Function clause with improper infix pattern. in: fun f x = () Error: z.sml 26.5-26.10. Function clause with improper infix pattern. in: fun x && y & z = 1 Error: z.sml 26.7-26.8. Undefined constructor: &&. Commit: 78e8b48623ff0e9601a55755319046126ab0a60d https://github.com/MLton/mlton/commit/78e8b48623ff0e9601a55755319046126ab0a60d Author: Matthew Fluet <mat...@gm...> Date: 2017-06-01 (Thu, 01 Jun 2017) Changed paths: M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-sigexp.fun Log Message: ----------- Update 'type constructor applied to incorrect # of ty args' message Commit: 669e2afc6a7a36f6334ecdf7f39bc51320d2aa58 https://github.com/MLton/mlton/commit/669e2afc6a7a36f6334ecdf7f39bc51320d2aa58 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-01 (Thu, 01 Jun 2017) Changed paths: 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-programs.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/scope.fun M mlton/front-end/ml.grm Log Message: ----------- Propagate field regions for accurate "duplicate label" errors Commit: ec46d437203c9e35cb6afeee9660559533e2a65d https://github.com/MLton/mlton/commit/ec46d437203c9e35cb6afeee9660559533e2a65d Author: Matthew Fluet <mat...@gm...> Date: 2017-06-01 (Thu, 01 Jun 2017) Changed paths: M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/scope.fun M mlton/front-end/ml.grm Log Message: ----------- Use (unsorted) Record.t for AST record types Commit: c159407dd8915c2d720b8a7a31bd76de73e10cd2 https://github.com/MLton/mlton/commit/c159407dd8915c2d720b8a7a31bd76de73e10cd2 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-01 (Thu, 01 Jun 2017) Changed paths: M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/ast/ast-core.fun M mlton/ast/ast-modules.fun M mlton/elaborate/elaborate-core.fun M mlton/front-end/ml.grm Log Message: ----------- Update messages for def/spec of special identifiers Commit: a69b4b3733348ebc228fee97edbf28ae702b7f3d https://github.com/MLton/mlton/commit/a69b4b3733348ebc228fee97edbf28ae702b7f3d Author: Matthew Fluet <mat...@gm...> Date: 2017-06-01 (Thu, 01 Jun 2017) Changed paths: M mlton/ast/ast-atoms.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml Log Message: ----------- Add "allow{Redefine,Specify}SpecialIds" expert MLB annotations Commit: 7472bd8e8930288df73997b03c0d446bb38d6283 https://github.com/MLton/mlton/commit/7472bd8e8930288df73997b03c0d446bb38d6283 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-01 (Thu, 01 Jun 2017) Changed paths: M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/ast/ast-core.fun M mlton/ast/ast-modules.fun M mlton/elaborate/elaborate-core.fun Log Message: ----------- Refactor check for special identifiers Move functions to check for redefinition/specification of special identifiers from Ast.Con to Ast.Vid. Commit: 87f6e6e6c5a0c0d8a726db9f02b8055f0d099290 https://github.com/MLton/mlton/commit/87f6e6e6c5a0c0d8a726db9f02b8055f0d099290 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-01 (Thu, 01 Jun 2017) Changed paths: M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/ast/ast-core.fun M mlton/ast/ast-modules.fun M mlton/elaborate/elaborate-core.fun Log Message: ----------- Allow 'it' to be specified/defined. The special identifier 'it' is only disallowed in datbind and exbind definitions and it datdesc and exdesc specifications; it should be allowed in valbind definitions and valdesc specifications. Commit: 94ed3b0afa43a88d4ca78860bb8bafcca2635d21 https://github.com/MLton/mlton/commit/94ed3b0afa43a88d4ca78860bb8bafcca2635d21 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-02 (Fri, 02 Jun 2017) Changed paths: M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/ast/ast-core.fun M mlton/ast/ast-modules.fun M mlton/elaborate/elaborate-core.fun Log Message: ----------- Include keyword in error messaegs for def/spec of special ids Commit: e0708be9c4f3242d1d728e22ab1654f60a714e99 https://github.com/MLton/mlton/commit/e0708be9c4f3242d1d728e22ab1654f60a714e99 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-02 (Fri, 02 Jun 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Refactor "constructor redefined by {fun,val rec}" checks Commit: d754ac9665f8643d2fb6af757865310be94b6bd2 https://github.com/MLton/mlton/commit/d754ac9665f8643d2fb6af757865310be94b6bd2 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-02 (Fri, 02 Jun 2017) Changed paths: M basis-library/basis-none.mlb M basis-library/equal.mlb 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/pervasive-vals.mlb M basis-library/primitive/primitive.mlb M mlton/ast/ast-atoms.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/elaborate/elaborate-core.fun Log Message: ----------- Treat `=` as a special identifier Check for definition and/or specification of `=` identifier along with other special identifier checks and eliminate the `allowRebindEquals` expert MLB annotation. In addition to being somewhat more uniform, this fixes two minor bugs in MLton that erroneously accepted: fun op= z = z and signature S = sig val = : unit -> unit end In the first case, although `val op= = fn x => x` and `val rec op= = fn x => x` (and, generally, any use of `=` in patterns) were correctly reported as errors, the function name in a fun declaration was only checked against the special identifiers; therefore, an `=` identifier was allowed to be bound. In the second case, names in val descriptions were only checked against the special identifiers; therefore an `=` identifier was allowed to be specified. Note that the Definition states "The identifier = may not be re-bound". Arguably, the Definition allows `=` to be specified in a signature. However, the use of a signature that specifies `=` in a functor argument would constitute a binding of `=` (although, it would not be possible to apply the functor, as it would not be possible to define a structure that binds `=` so as to match the signature). Hence, we choose to treat `=` as a special identifier and exclude it from specifications and definitions. Commit: eab051fe2e1335c3f825c2fceca35d5d92da91cb https://github.com/MLton/mlton/commit/eab051fe2e1335c3f825c2fceca35d5d92da91cb Author: Matthew Fluet <mat...@gm...> Date: 2017-06-02 (Fri, 02 Jun 2017) Changed paths: A regression/fail/special-ids.1.sml A regression/fail/special-ids.2.sml Log Message: ----------- Add special identifier (failing) regression tests Commit: 236592b5420046937243a927f46822020ae70f8e https://github.com/MLton/mlton/commit/236592b5420046937243a927f46822020ae70f8e Author: Matthew Fluet <mat...@gm...> Date: 2017-06-02 (Fri, 02 Jun 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Eliminate redundant `Avid.checkRedefineSpecial` Pattern elaboration performs `Avid.checkRedefineSpecial` for variables bound in pattern. Commit: 9a56be647bd0faa258a78fa2ae9225afca5b316c https://github.com/MLton/mlton/commit/9a56be647bd0faa258a78fa2ae9225afca5b316c Author: Matthew Fluet <mat...@gm...> Date: 2017-06-02 (Fri, 02 Jun 2017) Changed paths: M mlton/front-end/ml.grm M mlton/front-end/ml.lex M regression/fail/special-ids.2.sml Log Message: ----------- Make ml.lex and ml.grm more closely follow the Definition of SML The lexer now properly distinguishes between alphanumeric and symbolic and short and long identifiers. The parser uses the fine-grained identifier classes to properly define vid, longvid, tycon, longtycon, field, strid, longstrid, sigid, and fctid classes. This fixes a minor bug where MLton erroneously accepted symbolic identifiers for strid, sigid, and fctid and erroneously accepted symbolic identifiers before "." in long identifiers. This also further extends the treatment of `=` as a special identifier by allowing including `=` in the vid class and equating the con class with the vid class. Thus, the program: datatype t = = of unit does not give a parse error, but does give a "Special identifier cannot be redefined by datata: =." error. This almost allows `=` everywhere a vid is allowed. The exception is that a vidNoEquals class is used (as was previously) in atomic patterns. The issue is with val pat = exp and fun f apat apat ... apat = exp phrases, where an `=` in the pattern is difficult to distinguish from the `=` terminating the pattern(s). It would be possible to have a set of *NoEqual pattern productions that excluded the `=` vid, which would be used for these patterns appearing in declarations. Commit: 404acc15e5c7093bc0cf09255777293ec631ab27 https://github.com/MLton/mlton/commit/404acc15e5c7093bc0cf09255777293ec631ab27 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-02 (Fri, 02 Jun 2017) Changed paths: M mlton/ast/ast-core.fun M mlton/elaborate/elaborate-core.fun Log Message: ----------- Properly pretty-print do declaration Commit: a8107fd73a12cf4ce4c3bc79d25571219e944690 https://github.com/MLton/mlton/commit/a8107fd73a12cf4ce4c3bc79d25571219e944690 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-02 (Fri, 02 Jun 2017) Changed paths: M mlton/front-end/ml.grm Log Message: ----------- Delete unused `ensureNonqualified` function Commit: 163ba99f861dfc10dac37605ae1b518a3a815795 https://github.com/MLton/mlton/commit/163ba99f861dfc10dac37605ae1b518a3a815795 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-03 (Sat, 03 Jun 2017) Changed paths: M mlton/ast/ast-atoms.fun M mlton/ast/ast-atoms.sig M mlton/ast/ast-core.fun M mlton/ast/ast-mlbs.fun M mlton/ast/ast-modules.fun M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/precedence-parse.fun M mlton/front-end/ml.grm Log Message: ----------- Treat "in: ..." context in error messages more uniformly Try to avoid having the direct call to `Control.error` construct an extra message of the form `seq [str "in: ", lay ()]`; rather, require the caller to supply an approriate "context" message thunk. One advantage is that a caller can simply provide `fn () => empty` when wishing to suppress the extra message. Commit: e15ae39aa0885de55d051f549dae71c3507e0bb2 https://github.com/MLton/mlton/commit/e15ae39aa0885de55d051f549dae71c3507e0bb2 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-03 (Sat, 03 Jun 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Update "variable not overloaded at type" error message Commit: da18fd37fe6296178169fa0bb19d1cb2e93173f7 https://github.com/MLton/mlton/commit/da18fd37fe6296178169fa0bb19d1cb2e93173f7 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-03 (Sat, 03 Jun 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Update "while test not of type bool" error message Commit: bc3d087986f4e21593b7d270a710b03b37630081 https://github.com/MLton/mlton/commit/bc3d087986f4e21593b7d270a710b03b37630081 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-07 (Wed, 07 Jun 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/type-env.fun M mlton/elaborate/type-env.sig Log Message: ----------- Give better equality/non-equality type error messages Commit: 81c00f650a908579e9ec15d6bad20236d1b2faa0 https://github.com/MLton/mlton/commit/81c00f650a908579e9ec15d6bad20236d1b2faa0 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-08 (Thu, 08 Jun 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Update signature matching error messages This begins updating some error messages related to the module system. Consider the following program: signature SIG = sig val f: int -> string exception E of bool end structure Str : SIG = struct val f = Bool.toString val E = Fail end Previously, the following error messages were generated: Error: z.sml 6.17-6.19. Variable type in structure disagrees with signature. variable: E structure: [string] -> _ signature: [bool] -> _ Error: z.sml 6.17-6.19. Variable in structure but exception in signature: E. Error: z.sml 6.17-6.19. Variable type in structure disagrees with signature. variable: f structure: [bool] -> _ signature: [int] -> _ Now, the following error messages are generated: Error: z.sml 6.17-6.19. Value identifier in structure disagrees with signature: E. structure: <variable> structure: [string] -> _ defn at: z.sml 9.11-9.11 signature: <exception> signature: [bool] -> _ spec at: z.sml 4.17-4.17 Error: z.sml 6.17-6.19. Variable in structure disagrees with signature: f. structure: [bool] -> _ defn at: z.sml 8.11-8.11 signature: [int] -> _ spec at: z.sml 3.11-3.11 Note that in both the previous and the current error messages, the region associated with `Error:` is the `SIG` in `structure Str : SIG = `. While this is the only reasonable location to associate with the structure/signature disagreement, in order to fix the error message, at least one of the structure or signature must be visited. The new "defn at: ..." and "spec at: ..." lines link to the definition and specification points for the identifier. With suitable editor support (e.g., emacs compilation-error-regexp-alist), it is easy to visit one of the points to resolve the error. Commit: 266e5e9f691216246d58d4ad17c0af9f3f3a4e59 https://github.com/MLton/mlton/commit/266e5e9f691216246d58d4ad17c0af9f3f3a4e59 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-08 (Thu, 08 Jun 2017) Changed paths: M mlton/elaborate/elaborate-modules.fun M mlton/front-end/ml.grm Log Message: ----------- Adjust region associated with functor argument Commit: dc62a80637303f78376b79a97ba4e72bfd64b8e9 https://github.com/MLton/mlton/commit/dc62a80637303f78376b79a97ba4e72bfd64b8e9 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M lib/mlton/basic/list.sig M lib/mlton/basic/list.sml Log Message: ----------- Add List.snoc in MLton library Commit: 0d977ea13c27cc2cf9ad5f417badbd801f144791 https://github.com/MLton/mlton/commit/0d977ea13c27cc2cf9ad5f417badbd801f144791 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M mlton/elaborate/type-env.fun M mlton/elaborate/type-env.sig Log Message: ----------- Add TypeEnv.Type.makeUnify Generalize the underlying `unify` function to take a `layoutPretty` argument, rather than creating/destroying one. The exported `makeUnify` function to be used to perform multiple unifications that share the same pretty-printer for types; in particular, the locally generated type variable names will be shared across the unifications. Commit: 209beef447fe462ef594e6c42248982ca28fe2dd https://github.com/MLton/mlton/commit/209beef447fe462ef594e6c42248982ca28fe2dd Author: Matthew Fluet <mat...@gm...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig Log Message: ----------- Maintain constructors of elaborated datatypes in sorted order Commit: 680d22327d9429c2749b54d25771d1afde871c33 https://github.com/MLton/mlton/commit/680d22327d9429c2749b54d25771d1afde871c33 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig Log Message: ----------- Add Interface.TyconMap.peek{Strid,Tycon} Commit: adf53ba78737c326cfb6d28644a8acf0aada1459 https://github.com/MLton/mlton/commit/adf53ba78737c326cfb6d28644a8acf0aada1459 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M mlton/elaborate/interface.fun Log Message: ----------- Choose better candidates with Interface.flexibleTycons The `Interface.flexibleTycons` function chooses candidate paths to flexible type constructors in an interface to be realized during a signature match. Due to constraints, the same flexible type constructor can be identified by multiple paths. Consider the following program. structure S : sig structure T : sig datatype t = T end type u = T.t end = struct structure T = struct datatype t = T end type u = int end Previously, the following error messages were generated: Error: z.sml 2.4-8.6. Constructor in structure disagrees with signature: T.T. structure: [T.t] defn at: z.sml 12.23-12.23 signature: [u] spec at: z.sml 5.26-5.26 Error: z.sml 2.4-8.6. Constructor in structure disagrees with signature: T.T. structure: [T.t] defn at: z.sml 12.23-12.23 signature: [u] spec at: z.sml 5.26-5.26 This is due to choosing `u` as the candidate path to be realized. When `u` is realized by `int`, it implies in the signature that `T.T` is (incorrectly) a constructor of the `int` type, but in the structure `T.T` is (correctly) a constructor of the `T.t` type. The choice of `u` as the candidate path to be realized for the flexible type constructor was due to `u` being the shortest path in the signature that identifies the flexible type constructor. Now, the following error message is generated: Error: z.sml 2.4-8.6. Type in structure disagrees with signature: u. structure: [u] defn at: z.sml 14.9-14.9 signature: [T.t] spec at: z.sml 7.12-7.12 This is due to changing the heuristic for choosing the candidate path to prefer a path to a `datatype` specification for a flexible type constructor that is a `datatype`. Unfortunately, it isn't currently possible to distinguish a replicating `datatype` specification from a non-replicating `datatype` specification. Hence, with the program: structure S : sig structure T : sig datatype t = T end datatype u = datatype T.t end = struct structure T = struct datatype t = T end type u = int end the path `u` is chosen as the candidate and the following error messages are generated: Error: z.sml 2.4-8.6. Constructor in structure disagrees with signature: T.T. structure: [T.t] defn at: z.sml 12.23-12.23 signature: [u] spec at: z.sml 5.26-5.26 Error: z.sml 2.4-8.6. Constructor in structure disagrees with signature: T.T. structure: [T.t] defn at: z.sml 12.23-12.23 signature: [u] spec at: z.sml 5.26-5.26 Error: z.sml 2.4-8.6. Type u is a datatype in signature but not in structure. Error: z.sml 2.4-8.6. Constructor in signature but not in structure: T. spec at: z.sml 5.26-5.26 Commit: 0285827a51c957ad4114a74bf794cac324f253ae https://github.com/MLton/mlton/commit/0285827a51c957ad4114a74bf794cac324f253ae Author: Matthew Fluet <mat...@gm...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Improve "equality in signature but not in structure" diagnostics Consider the following program: structure S : sig eqtype t eqtype 'a u eqtype v end = struct datatype t = T1 of real | T2 of real | T3 of unit type 'a u = 'a * real type v = real end Previously, the following error messages were generated: Error: z.sml 2.4-6.6. Type t admits equality in signature but not in structure. not equality: T1 of [v] T2 of [v] Error: z.sml 2.4-6.6. Type u admits equality in signature but not in structure. not equality: ['a] * [v] Error: z.sml 2.4-6.6. Type v admits equality in signature but not in structure. not equality: v Now, the following error messages are generated: Error: z.sml 2.4-6.6. Type t admits equality in signature but not in structure. not equality: T1 of [v] | T2 of [v] | ... Error: z.sml 2.4-6.6. Type u admits equality in signature but not in structure. not equality: _ * [v] Error: z.sml 2.4-6.6. Type v admits equality in signature but not in structure. not equality: [v] Unfortunately, the choice of `v` to represent the type `real` is due to setting the type constructor print names in the context of the structure being matched. Commit: 01a31e211fcfea524f4ed7901d5164230b73bd56 https://github.com/MLton/mlton/commit/01a31e211fcfea524f4ed7901d5164230b73bd56 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M mlton/elaborate/interface.fun Log Message: ----------- Whitespace fixup Commit: 4dda2072a301697200fa7bb34f63f2335d598244 https://github.com/MLton/mlton/commit/4dda2072a301697200fa7bb34f63f2335d598244 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M mlton/elaborate/elaborate-sigexp.fun Log Message: ----------- Adjust region for `where type` realization diagnostics For a `where type <tyvars> <longtycon> = <ty>` realization, use the region (<tyvars>.left, <ty>.right) (or (<longtycon>.left, <ty>.right) if <tyvars> is empty) for the error message, rather than (<longtycon>.left, <longtycon>.right). Commit: 6858b34a019180657199574d87e7faa763b896d4 https://github.com/MLton/mlton/commit/6858b34a019180657199574d87e7faa763b896d4 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Fix structure nesting in ElaborateEnv.Structure.realize Commit: b037539c34b07012abbd1e063b60b47df651403a https://github.com/MLton/mlton/commit/b037539c34b07012abbd1e063b60b47df651403a Author: Matthew Fluet <mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Rename vars and tyvars in ElaborateEnv.transparentCut.map Rename the `sig*` variables and `'sig*` type variables to `ifc*` and `'ifc*`, respectively. This function aligns a structure with an interface, triggering an action on each entity in the structure that matches a correspondingly named entity in the interface and an action on each entity in the interface without a correspondingly named entity in the structure. The motivation for the renaming is that the "interface" to which this function is applied will shortly be extended from a single realized signature interface to the pair of an unrealized signature interface and a realized signature interface. Commit: 2b44b2029d3368dfca2bc9440e74e344dddf523a https://github.com/MLton/mlton/commit/2b44b2029d3368dfca2bc9440e74e344dddf523a Author: Matthew Fluet <mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Refactor using a `layoutLongRev` helper function Commit: 8006a3d61775634e800dd1e82e27ac5c37eeb80a https://github.com/MLton/mlton/commit/8006a3d61775634e800dd1e82e27ac5c37eeb80a Author: Matthew Fluet <mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Perform transparentCut with unrealized and realized signatures When performing a signature match (via `ElaborateEnv.transparentCut`), propagate the unrealized signature, the paths to realized flexible type constructors, and the realized signature. The motivation is to yield better diagnostics when matching a structure's types with the signature's types, where it will help to know if the type was flexible in the signature. Commit: 0b0e8e493a1a3d976b3306111ee9e4ed8ddfd308 https://github.com/MLton/mlton/commit/0b0e8e493a1a3d976b3306111ee9e4ed8ddfd308 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Consolidate check for ungeneralizable tyvars at signature match Commit: 1b63d01a3ed4d506f8d197d6fefc7ba624753fb5 https://github.com/MLton/mlton/commit/1b63d01a3ed4d506f8d197d6fefc7ba624753fb5 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Show signature of unmatched structure and type str of unmatched type Commit: 6b89e2c0edd39250517b119516e3df6c912df826 https://github.com/MLton/mlton/commit/6b89e2c0edd39250517b119516e3df6c912df826 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Eliminate unnecessary `open Layout` Commit: a7e358d2261fd0dd28232c90fc4a13b54b99c770 https://github.com/MLton/mlton/commit/a7e358d2261fd0dd28232c90fc4a13b54b99c770 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Formatting Commit: a71858875bf92ae028a549c54882616241ea4b73 https://github.com/MLton/mlton/commit/a71858875bf92ae028a549c54882616241ea4b73 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Give better "type in structure disagrees with signature" diagnostics The error messages when a type in a structure does not satisfy the corresponding type in the signature are sometimes opaque and confusing. This update tries to give more informative error messages: * Only report an "admits equality" error if the signature type corresponds to an "eqtype" specification. In particular, do not report an "admits equality" error when the signature has "type t = int * int" but the structure has "type t = int -> int"; instead report a "type definition" error. * Give a single error message documenting constructor disagreements, rather than separate error messages for constructors in structure but not in signature, constructors in signature but not in structure, and each constructor whose argument type disagrees. Commit: 6d0dd93690593e6aade06e35ad62aac027103ba4 https://github.com/MLton/mlton/commit/6d0dd93690593e6aade06e35ad62aac027103ba4 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Remove unused functions Commit: eeae759bfe1cd47e78e935f5dbcabaf1ceffcc7b https://github.com/MLton/mlton/commit/eeae759bfe1cd47e78e935f5dbcabaf1ceffcc7b Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Rename 'unknown' to 'dummy' for unrealized flexible tycons Commit: d1ab05b1533134e93dce1c660b2003948bed5650 https://github.com/MLton/mlton/commit/d1ab05b1533134e93dce1c660b2003948bed5650 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig Log Message: ----------- Do not realize flexible tycons by NONE Commit: a9fd484839cd176b591ab2dc8fd97737a6ad740b https://github.com/MLton/mlton/commit/a9fd484839cd176b591ab2dc8fd97737a6ad740b Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb A lib/mlton/basic/stream-parser.sig A lib/mlton/basic/stream-parser.sml M lib/mlton/basic/stream.sig M lib/mlton/basic/stream.sml M lib/mlton/basic/vector.fun M lib/mlton/basic/vector.sig M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlton/ast/ast-atoms.fun M mlton/ast/ast-core.fun M mlton/ast/ast-modules.fun M mlton/atoms/generic-scheme.fun M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig 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/type-ops.fun M mlton/backend/backend.fun 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/ssa-to-rssa.fun M mlton/backend/switch.fun M mlton/closure-convert/abstract-value.fun 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/core-ml/core-ml.fun M mlton/core-ml/dead-code.fun M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig M mlton/elaborate/precedence-parse.fun M mlton/elaborate/type-env.fun 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/nested-pat.fun 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/direct-exp.fun M mlton/ssa/direct-exp2.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/profile.fun M mlton/ssa/profile2.fun M mlton/ssa/remove-unused.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.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-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/type-check.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 Log Message: ----------- Merge remote-tracking branch 'MLton.mlton.git/master' into diagnostic-messages Commit: 46a7c81cf442557695444cce48c77bd3be765c90 https://github.com/MLton/mlton/commit/46a7c81cf442557695444cce48c77bd3be765c90 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Identify dummy tycons in error messages Commit: 57c53ae21ef6c57204e643ce607c3007617f5e63 https://github.com/MLton/mlton/commit/57c53ae21ef6c57204e643ce607c3007617f5e63 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Suppress "Constructor in signature but not in structure" diagnostics Commit: 410ba30f3a1d0da673748b292dbac7a6b73382c3 https://github.com/MLton/mlton/commit/410ba30f3a1d0da673748b292dbac7a6b73382c3 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Formatting Commit: cf52368ea8e7214f0b6cfba95d7725b648e252d0 https://github.com/MLton/mlton/commit/cf52368ea8e7214f0b6cfba95d7725b648e252d0 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-21 (Fri, 21 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Simplify computation of resStr Commit: 651ef9642372a2cefbae73ee4e01ed6d9fdc6ca5 https://github.com/MLton/mlton/commit/651ef9642372a2cefbae73ee4e01ed6d9fdc6ca5 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-25 (Tue, 25 Jul 2017) Changed paths: M mlton/elaborate/type-env.fun M mlton/elaborate/type-env.sig Log Message: ----------- Add TypeEnv.Type.isUnknown: t -> bool Commit: 4e3ca559e6d1aad5afaf80b425a367d599ee349a https://github.com/MLton/mlton/commit/4e3ca559e6d1aad5afaf80b425a367d599ee349a Author: Matthew Fluet <mat...@gm...> Date: 2017-07-25 (Tue, 25 Jul 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Update diagnostics for (recursive) function declarations The primary motivation is to minimize the use of the (confusing) "recursive use of function disagrees with its type" error message. In particular, it can be frustrating to add type information to a function declaration in the hopes of identifying the problematic recursive use, only to have the type information seemingly ignored. For example, consider the following program: fun f (): int = 13 | f (): bool = true fun g (x: int) = g true fun h x = (x + 1; h true) fun i x = j true and j y = y + 1 Previously, MLton generated the following error messages: Error: z.sml 2.18-2.21. Function clause with expression of different type. expression: [bool] previous: [int] in: fun f (): int = 13 | f (): bool = true Error: z.sml 4.5-4.5. Recursive use of function disagrees with its type. function type: [int] -> _ recursive use: [bool] -> _ in: fun g (x: int) = (g true) Error: z.sml 6.5-6.5. Recursive use of function disagrees with its type. function type: [int] -> _ recursive use: [bool] -> _ in: fun h x = (x + 1 ; h true) Error: z.sml 9.5-9.5. Recursive use of function disagrees with its type. function type: [int] -> _ recursive use: [bool] -> _ in: fun i x = (j true) and j y = (y + 1) Now, MLton generates the following error messages: Error: z.sml 2.11-2.14. Function clause with result constraint of different type. constraint: [bool] previous: [int] in: fun f (): int = 13 | f (): bool = true Error: z.sml 4.18-4.23. Function applied to incorrect argument. expects: [int] but got: [bool] in: g true Error: z.sml 6.5-6.5. Recursive use of function disagrees with its type: h. function type: [int] -> _ recursive use: [bool] -> _ in: fun h x = (x + 1 ; h true) Error: z.sml 9.5-9.5. Recursive use of function disagrees with its type: j. function type: [int] -> _ recursive use: [bool] -> _ in: fun i x = (j true) and j y = (y + 1) The second function exemplifies the typical case, where the type annotations on a function are used when entering the function into the environment, leading to type errors at the use site. This follows the heuristic that explicitly written information is more likely correct than implicitly inferred information. The third and fourth functions clarify that only explicit information in the function patterns/result-constraint are used when entering the function into the environment; in the absence of explicit information, the function is given a fresh unification variable when entered into the environment, which is unified with the type inferred for the function code. Commit: 007bd771faddf52c501cf7d83941b0babce14239 https://github.com/MLton/mlton/commit/007bd771faddf52c501cf7d83941b0babce14239 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-26 (Wed, 26 Jul 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Tweak diagnostics for (recursive) function declarations Commit: 0a9ab614b3dd7fdc91e28db279d9aefd47f056e8 https://github.com/MLton/mlton/commit/0a9ab614b3dd7fdc91e28db279d9aefd47f056e8 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-26 (Wed, 26 Jul 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Update diagnostics for val rec declarations Consider the following program: val rec f1 = fn z => if z <= 0 then 1 else g1 (z - 1) and g1 = fn z => if z <= 0 then false else f1 (z - 1) Previously, MLton generated the following error messages: Error: z.sml 2.22-2.57. Then and else branches disagree. then: [bool] else: [int] in: if z <= 0 then false else f1 (z - 1) Error: z.sml 2.9-2.57. Recursive function pattern and expression disagree. pattern: _ -> [int] expression: _ -> [bool] in: val rec f1 = fn z => (if z <= 0 t ... lse else f1 (z - 1)) Error: z.sml 4.5-4.6. Recursive use of function disagrees with function declaration type: f2. recursive use: _ -> [bool] function type: _ -> [int] in: fun f2 z = (if z <= 0 then 1 else ... lse else f2 (z - 1)) Error: z.sml 5.5-5.6. Recursive use of function disagrees with function declaration type: g2. recursive use: _ -> [int] function type: _ -> [bool] in: fun f2 z = (if z <= 0 then 1 else ... lse else f2 (z - 1)) There is a bit of asymmetry, due to `g1` being constrained to the type `int -> int` by the `g1 (z - 1)` in the function body of `f1` and `f1` being constrained to the type `int -> int` by the function expression of `f1`, all before processing the function expression and binding of `g1`. Contrast with the handling of the `fun` version, which gives symmetric errors by delaying the unification of the function variables with their inferred function types until all functions have been processed. Now, MLton generates the following error messages: Error: z.sml 1.9-1.10. Recursive use of function disagrees with function expression type: f1. recursive use: _ -> [bool] function type: _ -> [int] in: val rec f1 = fn z => (if z <= 0 t ... lse else f1 (z - 1)) Error: z.sml 2.9-2.10. Recursive use of function disagrees with function expression type: g1. recursive use: _ -> [int] function type: _ -> [bool] in: val rec f1 = fn z => (if z <= 0 t ... lse else f1 (z - 1)) Error: z.sml 4.5-4.6. Recursive use of function disagrees with function declaration type: f2. recursive use: _ -> [bool] function type: _ -> [int] in: fun f2 z = (if z <= 0 then 1 else ... lse else f2 (z - 1)) Error: z.sml 5.5-5.6. Recursive use of function disagrees with function declaration type: g2. recursive use: _ -> [int] function type: _ -> [bool] in: fun f2 z = (if z <= 0 then 1 else ... lse else f2 (z - 1)) Adding explicit type annotations: val rec f1 : int -> int = fn z => if z <= 0 then 1 else g1 (z - 1) and g1 : int -> int = fn z => if z <= 0 then false else f1 (z - 1) adjusts the error messages: Error: z.sml 2.35-2.70. Then and else branches disagree. then: [bool] else: [int] in: if z <= 0 then false else f1 (z - 1) Error: z.sml 2.9-2.70. Recursive function pattern and expression disagree. pattern: _ -> [int] expression: _ -> [bool] in: val rec f1: (int -> int) = fn z = ... lse else f1 (z - 1)) Commit: 4ea1f7cb66711e1cf78f1384859f4885ad264bea https://github.com/MLton/mlton/commit/4ea1f7cb66711e1cf78f1384859f4885ad264bea Author: Matthew Fluet <mat...@gm...> Date: 2017-07-26 (Wed, 26 Jul 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Refactor type-checking of `fun` to match that of `val rec` Commit: 4a2ef9d1eeedec7a2e5dca8b9f846953c72fe9f1 https://github.com/MLton/mlton/commit/4a2ef9d1eeedec7a2e5dca8b9f846953c72fe9f1 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-28 (Fri, 28 Jul 2017) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig Log Message: ----------- Record and report origin of flexible tycon specs Consider the following program: signature T = sig type t end signature Z = T where type t = bool signature P = sig structure T1 : T structure T2 : T structure T3 : T sharing type T1.t = T2.t sharing type T2.t = T3.t end signature Q = sig structure T1 : T structure T2 : T sharing T1 = T2 end structure Z : Z = struct datatype t = T of bool end structure P : P = struct structure T1 = struct datatype t = T end structure T2 = struct type t = T1.t end structure T3 = struct datatype t = T end end structure Q : Q = struct structure T1 = struct datatype t = T end structure T2 = struct datatype t = T end end Previously, MLton generated the following error messages: Error: z.sml 21.15-21.15. Type in structure disagrees with signature (type structure): t. structure: [datatype] t = ... defn at: z.sml 23.16-23.16 signature: [type] t = bool spec at: z.sml 3.12-3.12 Error: z.sml 25.15-25.15. Type in structure disagrees with signature (type structure): T3.t. structure: [datatype] T3.t = ... defn at: z.sml 37.22-37.22 signature: [type] T3.t = T2.t spec at: z.sml 3.12-3.12 Error: z.sml 40.15-40.15. Type in structure disagrees with signature (type structure): T2.t. structure: [datatype] T2.t = ... defn at: z.sml 48.22-48.22 signature: [type] T2.t = T1.t spec at: z.sml 3.12-3.12 Each error notes that the type t specified by the signature must be equal to a particular type; however, the "spec at:" location is the "type t" in "signature T", which does not provide insight into the origin of the restriction on "type t". In particular, if the binding occurence of the type in a signature is in one file but the `where` or `sharing` refinement is in another file, then the "spec at:" location can be especially confusing. Now, MLton generates the following error messages: Error: z.sml 21.15-21.15. Type in structure disagrees with signature (type structure): t. structure: [datatype] t = ... defn at: z.sml 23.16-23.16 signature: [type] t = bool spec at: z.sml 3.12-3.12 spec at: z.sml 5.28-5.35 Error: z.sml 25.15-25.15. Type in structure disagrees with signature (type structure): T3.t. structure: [datatype] T3.t = ... defn at: z.sml 37.22-37.22 signature: [type] T3.t = T2.t spec at: z.sml 3.12-3.12 spec at: z.sml 11.7-11.30 spec at: z.sml 12.7-12.30 Error: z.sml 40.15-40.15. Type in structure disagrees with signature (type structure): T2.t. structure: [datatype] T2.t = ... defn at: z.sml 48.22-48.22 signature: [type] T2.t = T1.t spec at: z.sml 3.12-3.12 spec at: z.sml 18.7-18.21 At each refinement of a flexible type constructor due to a `where` or `sharing` clause, the region of that specification is added, to be included in the diganostics. Commit: 56a8238c657e8cb5c608b39edd0560c88cb8c0a1 https://github.com/MLton/mlton/commit/56a8238c657e8cb5c608b39edd0560c88cb8c0a1 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-28 (Fri, 28 Jul 2017) Changed paths: M mlton/ast/ast-modules.fun M mlton/ast/ast-modules.sig M mlton/elaborate/elaborate-sigexp.fun M mlton/front-end/ml.grm Log Message: ----------- Rename AstModules.Equation to AstModules.SharingEquation Commit: 8a3e40000deb1b0bfb3ff2d0d90768b9a9cdf012 https://github.com/MLton/mlton/commit/8a3e40000deb1b0bfb3ff2d0d90768b9a9cdf012 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-29 (Sat, 29 Jul 2017) Changed paths: M mlton/ast/ast-modules.fun M mlton/ast/ast-modules.sig M mlton/elaborate/elaborate-sigexp.fun M mlton/front-end/ml.grm Log Message: ----------- Introduce AstModules.WhereEquation The AstModules.WhereEquation.t type is a `node Wrap.t` type that carries region for the `where` equation. In particular, the left position of the region is the left position of the introductory keyword. Consider the following program: signature T = sig type t type u end structure Z : T where type t = bool and type u = int = struct datatype t = T of bool datatype u = ... [truncated message content] |
From: GitHub <no...@gi...> - 2017-09-27 13:10:31
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 660c4c34278ea816f97857a1bd5031893f000411 https://github.com/MLton/mlton/commit/660c4c34278ea816f97857a1bd5031893f000411 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-05 (Tue, 05 Sep 2017) Changed paths: M .gitignore A Changelog.md R Makefile A Makefile-auto.am A Makefile.in A VERSION A configure.ac A mlton-env-config.in Log Message: ----------- add autotools skeleton Commit: 6ae06af3199ad5453e1ed94bc46a6e895a6ccad9 https://github.com/MLton/mlton/commit/6ae06af3199ad5453e1ed94bc46a6e895a6ccad9 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-06 (Wed, 06 Sep 2017) Changed paths: R Changelog.md M Makefile.in M README R VERSION M configure.ac R doc/README A doc/README.md M mlton-env-config.in M runtime/Makefile Log Message: ----------- todo: Travis CI, possibly some autoconf & Makefile refactoring Commit: eed1d418394d75093063405e3e7a629db2924ba8 https://github.com/MLton/mlton/commit/eed1d418394d75093063405e3e7a629db2924ba8 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-06 (Wed, 06 Sep 2017) Changed paths: R README A README.md A doc/README R doc/README.md Log Message: ----------- move around README's for proper displaying on Github Commit: 6a985192537293ced6016a27b5da14268bb5365c https://github.com/MLton/mlton/commit/6a985192537293ced6016a27b5da14268bb5365c Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-06 (Wed, 06 Sep 2017) Changed paths: M README.md Log Message: ----------- readme Commit: bbae65ce80aca7fb43125d9042361068c595da2b https://github.com/MLton/mlton/commit/bbae65ce80aca7fb43125d9042361068c595da2b Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-06 (Wed, 06 Sep 2017) Changed paths: M README.md Log Message: ----------- readme Commit: 98b8e0b626367afbbca1128cc67e283a84f944c0 https://github.com/MLton/mlton/commit/98b8e0b626367afbbca1128cc67e283a84f944c0 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-07 (Thu, 07 Sep 2017) Changed paths: M Makefile.in M README.md Log Message: ----------- corrected library path for target install Commit: d693aba3f4fc44f245660856f4a9a383476f2931 https://github.com/MLton/mlton/commit/d693aba3f4fc44f245660856f4a9a383476f2931 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-12 (Tue, 12 Sep 2017) Changed paths: M .gitignore M Makefile.in M README.md A bin/.gitignore R bin/mlton-script A bin/mlton-script.in M configure.ac R mlton-env-config.in M runtime/.gitignore R runtime/Makefile A runtime/Makefile.in Log Message: ----------- added C compiler & linker option passing to ./configure; working on checks (progress commit) Commit: 3de85f05ef32dba5203578be53b29fb74943a886 https://github.com/MLton/mlton/commit/3de85f05ef32dba5203578be53b29fb74943a886 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-13 (Wed, 13 Sep 2017) Changed paths: M Makefile.in M README.md M basis-library/.gitignore R basis-library/Makefile A basis-library/Makefile.in M basis-library/libs/basis-2002/top-level/.gitignore R basis-library/libs/basis-2002/top-level/Makefile A basis-library/libs/basis-2002/top-level/Makefile.in M benchmark/.gitignore R benchmark/Makefile A benchmark/Makefile.in M benchmark/tests/.gitignore R benchmark/tests/Makefile A benchmark/tests/Makefile.in M bin/.gitignore R bin/Makefile A bin/Makefile.in M bin/mlton-script.in M configure.ac A doc/examples/.gitignore R doc/examples/Makefile A doc/examples/Makefile.in M doc/examples/ffi/.gitignore R doc/examples/ffi/Makefile A doc/examples/ffi/Makefile.in M doc/examples/finalizable/.gitignore R doc/examples/finalizable/Makefile A doc/examples/finalizable/Makefile.in M doc/examples/profiling/.gitignore R doc/examples/profiling/Makefile A doc/examples/profiling/Makefile.in M doc/examples/save-world/.gitignore R doc/examples/save-world/Makefile A doc/examples/save-world/Makefile.in M doc/guide/.gitignore R doc/guide/Makefile A doc/guide/Makefile.in M doc/hacker-guide/.gitignore R doc/hacker-guide/Makefile A doc/hacker-guide/Makefile.in M doc/library-guide/.gitignore R doc/library-guide/Makefile A doc/library-guide/Makefile.in M doc/mlb-formal/.gitignore R doc/mlb-formal/Makefile A doc/mlb-formal/Makefile.in M doc/style-guide/.gitignore R doc/style-guide/Makefile A doc/style-guide/Makefile.in A include/.gitignore R include/Makefile A include/Makefile.in M lib/.gitignore R lib/Makefile A lib/Makefile.in M lib/ckit-lib/.gitignore R lib/ckit-lib/Makefile A lib/ckit-lib/Makefile.in M lib/mllpt-lib/.gitignore R lib/mllpt-lib/Makefile A lib/mllpt-lib/Makefile.in M lib/mlnlffi-lib/.gitignore R lib/mlnlffi-lib/Makefile A lib/mlnlffi-lib/Makefile.in M lib/mlrisc-lib/.gitignore R lib/mlrisc-lib/Makefile A lib/mlrisc-lib/Makefile.in A lib/mlton/.gitignore R lib/mlton/Makefile A lib/mlton/Makefile.in A lib/mlton/basic/.gitignore R lib/mlton/basic/Makefile A lib/mlton/basic/Makefile.in M lib/smlnj-lib/.gitignore R lib/smlnj-lib/Makefile A lib/smlnj-lib/Makefile.in A lib/stubs/.gitignore R lib/stubs/Makefile A lib/stubs/Makefile.in A lib/stubs/basis-stubs-for-smlnj/.gitignore R lib/stubs/basis-stubs-for-smlnj/Makefile A lib/stubs/basis-stubs-for-smlnj/Makefile.in A lib/stubs/mlton-stubs-for-smlnj/.gitignore R lib/stubs/mlton-stubs-for-smlnj/Makefile A lib/stubs/mlton-stubs-for-smlnj/Makefile.in A lib/stubs/mlton-stubs/.gitignore R lib/stubs/mlton-stubs/Makefile A lib/stubs/mlton-stubs/Makefile.in M man/.gitignore R man/Makefile A man/Makefile.in M mllex/.gitignore R mllex/Makefile A mllex/Makefile.in M mlnlffigen/.gitignore R mlnlffigen/Makefile A mlnlffigen/Makefile.in M mlprof/.gitignore R mlprof/Makefile A mlprof/Makefile.in M mlton/.gitignore R mlton/Makefile A mlton/Makefile.in M mlton/front-end/.gitignore R mlton/front-end/Makefile A mlton/front-end/Makefile.in M mlyacc/.gitignore R mlyacc/Makefile A mlyacc/Makefile.in M mlyacc/doc/.gitignore R mlyacc/doc/Makefile A mlyacc/doc/Makefile.in A package/freebsd/.gitignore R package/freebsd/Makefile A package/freebsd/Makefile.in M package/macosx/.gitignore R package/macosx/Makefile A package/macosx/Makefile.in A package/mingw/.gitignore M package/mingw/Makefile A package/mingw/Makefile.in M regression/.gitignore R regression/Makefile A regression/Makefile.in M regression/library/.gitignore R regression/library/Makefile A regression/library/Makefile.in M runtime/Makefile.in M util/cm2mlb/.gitignore R util/cm2mlb/Makefile A util/cm2mlb/Makefile.in Log Message: ----------- Makefile -> Makefile.in; added checks for system C compiler, ranlib, make, sed, install Commit: ab5083c362885a81a16873248cea9835fecfe322 https://github.com/MLton/mlton/commit/ab5083c362885a81a16873248cea9835fecfe322 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-13 (Wed, 13 Sep 2017) Changed paths: M bin/mlton-script.in Log Message: ----------- typo -cc-op flag Commit: 7d686efffae5d5722f730cff3dc5cbddac26ff85 https://github.com/MLton/mlton/commit/7d686efffae5d5722f730cff3dc5cbddac26ff85 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-13 (Wed, 13 Sep 2017) Changed paths: M configure.ac M mlton/front-end/.gitignore A mlton/front-end/Makefile R mlton/front-end/Makefile.in Log Message: ----------- revert because deletes mlton/front-end/Makefile Commit: 243279792e118ee8641da282d1193704cd036c56 https://github.com/MLton/mlton/commit/243279792e118ee8641da282d1193704cd036c56 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-13 (Wed, 13 Sep 2017) Changed paths: M configure.ac Log Message: ----------- check for MLton tools (mlton, mllex, mlyacc), search for gmp.h and libgmp; TODO: delete --with-gmp options and pass CFLAGS and LDFLAGS instead or add to the flags from configure.ac? Commit: 40b322b8bd29548f782dfb725981e682e6764824 https://github.com/MLton/mlton/commit/40b322b8bd29548f782dfb725981e682e6764824 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-14 (Thu, 14 Sep 2017) Changed paths: M README.md M bin/mlton-script.in M configure.ac Log Message: ----------- todo: why -cc-opt and -link-opt not passed from mlton-script to mlton/main/main.fun ? Commit: 09e265e5d9b7c60d9d4b5a9b72ac7448d8b067ee https://github.com/MLton/mlton/commit/09e265e5d9b7c60d9d4b5a9b72ac7448d8b067ee Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-14 (Thu, 14 Sep 2017) Changed paths: M README.md M configure.ac Log Message: ----------- removed some cruft; moving on to Travis Commit: 2f358022cc23d2608341d58fe165dfdf8f656b98 https://github.com/MLton/mlton/commit/2f358022cc23d2608341d58fe165dfdf8f656b98 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-15 (Fri, 15 Sep 2017) Changed paths: A .travis.yml Log Message: ----------- initial commit Commit: 6861e43a11965b11c103ba24caca4fa26f1d2b3f https://github.com/MLton/mlton/commit/6861e43a11965b11c103ba24caca4fa26f1d2b3f Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-15 (Fri, 15 Sep 2017) Changed paths: M runtime/gc/array.c Log Message: ----------- Merge branch 'master' of github.com:MLton/mlton into TravisCI Commit: 29ac2d48819db43dc9138f1f3a2cf1ea9cd11627 https://github.com/MLton/mlton/commit/29ac2d48819db43dc9138f1f3a2cf1ea9cd11627 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M .travis.yml A bin/travis-ci Log Message: ----------- check if exceeding TravisCI time limit for oss builds" Commit: 81fb0b519709123025b1477743d6c8ba77a63620 https://github.com/MLton/mlton/commit/81fb0b519709123025b1477743d6c8ba77a63620 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M bin/travis-ci Log Message: ----------- path to dir typo Commit: 43cccb784a0af5ab3c0c1c586928553fb0a68907 https://github.com/MLton/mlton/commit/43cccb784a0af5ab3c0c1c586928553fb0a68907 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M .travis.yml M bin/travis-ci Log Message: ----------- env var typo Commit: 6e6b3b7bd838618524214f5c94c346a18ae375ca https://github.com/MLton/mlton/commit/6e6b3b7bd838618524214f5c94c346a18ae375ca Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M .travis.yml Log Message: ----------- debugging opts to gcc Commit: fd837865cf098ea878369f59bbb7e769f7fef8d7 https://github.com/MLton/mlton/commit/fd837865cf098ea878369f59bbb7e769f7fef8d7 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M README.md M bin/mlton-script.in M runtime/Makefile.in Log Message: ----------- enclose gcc command in quotes Commit: 38ac613be4d84b75fb4fefb2dc58ce7e4c1aa384 https://github.com/MLton/mlton/commit/38ac613be4d84b75fb4fefb2dc58ce7e4c1aa384 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M bin/mlton-script.in M runtime/Makefile.in Log Message: ----------- enclose gcc command in quotes Commit: e14ff2f8b46027cbfb1eb51547a0f90452967085 https://github.com/MLton/mlton/commit/e14ff2f8b46027cbfb1eb51547a0f90452967085 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M bin/mlton-script.in Log Message: ----------- gcc vs clang: bin/mlton-script.in Commit: e5640c4a0528cc04b2c80d29a7f52826e6d381d8 https://github.com/MLton/mlton/commit/e5640c4a0528cc04b2c80d29a7f52826e6d381d8 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M .travis.yml M bin/travis-ci R regression/world1.sml A regression/world1.sml_bak R regression/world2.sml A regression/world2.sml_bak R regression/world3.sml A regression/world3.sml_bak R regression/world4.sml A regression/world4.sml_bak R regression/world5.sml A regression/world5.sml_bak R regression/world6.sml A regression/world6.sml_bak Log Message: ----------- run regression tests, except world; expecting to fail real.sml test Commit: 69203d42e7b5ec76a48bab7dc848c16a3078ddf2 https://github.com/MLton/mlton/commit/69203d42e7b5ec76a48bab7dc848c16a3078ddf2 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: A regression/world1.sml R regression/world1.sml_bak A regression/world2.sml R regression/world2.sml_bak A regression/world3.sml R regression/world3.sml_bak A regression/world4.sml R regression/world4.sml_bak A regression/world5.sml R regression/world5.sml_bak A regression/world6.sml R regression/world6.sml_bak Log Message: ----------- all tests Commit: 7dbac1dcbbb10bcbc8b1f1945d83e3076b290f2f https://github.com/MLton/mlton/commit/7dbac1dcbbb10bcbc8b1f1945d83e3076b290f2f Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: M README.md Log Message: ----------- merge branch Commit: 0e01f17c09b2cb90bfa69451597cf3807f7c8c78 https://github.com/MLton/mlton/commit/0e01f17c09b2cb90bfa69451597cf3807f7c8c78 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-18 (Mon, 18 Sep 2017) Changed paths: A .travis.yml M README.md M bin/mlton-script.in A bin/travis-ci M runtime/gc/array.c Log Message: ----------- Merge pull request #1 from myegorov/TravisCI Travis CI Commit: 39510578cae5222c1bec279632f350191d6d7318 https://github.com/MLton/mlton/commit/39510578cae5222c1bec279632f350191d6d7318 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-19 (Tue, 19 Sep 2017) Changed paths: M bin/mlton-script.in Log Message: ----------- does this triger Travis CI job? Commit: 620ec3e7f14a47b431bafec3ee930fb0cf5f7881 https://github.com/MLton/mlton/commit/620ec3e7f14a47b431bafec3ee930fb0cf5f7881 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-19 (Tue, 19 Sep 2017) Changed paths: M bin/travis-ci Log Message: ----------- exit from bin/travis-ci as soon as any command returns non-zero exit code Commit: 617425caca56c51c78365fc43e4237250b24f80b https://github.com/MLton/mlton/commit/617425caca56c51c78365fc43e4237250b24f80b Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-20 (Wed, 20 Sep 2017) Changed paths: M README.md M bin/regression M bin/travis-ci Log Message: ----------- exit 1 from regression test on compilation or test failure Commit: bbbcc4060cb5a6bee0bf635c03e3f2e66b1a5dac https://github.com/MLton/mlton/commit/bbbcc4060cb5a6bee0bf635c03e3f2e66b1a5dac Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-20 (Wed, 20 Sep 2017) Changed paths: M bin/regression M bin/travis-ci A regression/whitelist Log Message: ----------- whitelist regression Commit: bddb30e9fa4a371d0833bd6cdaa8134b6da2758e https://github.com/MLton/mlton/commit/bddb30e9fa4a371d0833bd6cdaa8134b6da2758e Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-20 (Wed, 20 Sep 2017) Changed paths: M bin/regression M regression/whitelist Log Message: ----------- whitelisting Commit: d8915602e040f8456cac95f3a85646e0de222c1f https://github.com/MLton/mlton/commit/d8915602e040f8456cac95f3a85646e0de222c1f Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-21 (Thu, 21 Sep 2017) Changed paths: M bin/regression Log Message: ----------- remove obsoleted cross-compilation options from ./bin/regression ([-cross target] [-resume test] [-run-only target]) Commit: 3720c457e6772101af0816d756d38d8a4e5f57a5 https://github.com/MLton/mlton/commit/3720c457e6772101af0816d756d38d8a4e5f57a5 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-22 (Fri, 22 Sep 2017) Changed paths: M Makefile.in M bin/travis-ci M configure.ac R package/mingw/Makefile Log Message: ----------- code review Commit: 66738b159598540079571a9f944461b862db4ac8 https://github.com/MLton/mlton/commit/66738b159598540079571a9f944461b862db4ac8 Author: Maksim Yegorov <fin...@gm...> Date: 2017-09-26 (Tue, 26 Sep 2017) Changed paths: M basis-library/.gitignore A basis-library/Makefile R basis-library/Makefile.in M basis-library/libs/basis-2002/top-level/.gitignore A basis-library/libs/basis-2002/top-level/Makefile R basis-library/libs/basis-2002/top-level/Makefile.in M benchmark/tests/.gitignore A benchmark/tests/Makefile R benchmark/tests/Makefile.in M bin/.gitignore A bin/Makefile R bin/Makefile.in M configure.ac R doc/examples/.gitignore A doc/examples/Makefile R doc/examples/Makefile.in M doc/examples/ffi/.gitignore A doc/examples/ffi/Makefile R doc/examples/ffi/Makefile.in M doc/examples/finalizable/.gitignore A doc/examples/finalizable/Makefile R doc/examples/finalizable/Makefile.in M doc/examples/profiling/.gitignore A doc/examples/profiling/Makefile R doc/examples/profiling/Makefile.in M doc/examples/save-world/.gitignore A doc/examples/save-world/Makefile R doc/examples/save-world/Makefile.in M doc/guide/.gitignore A doc/guide/Makefile R doc/guide/Makefile.in M doc/hacker-guide/.gitignore A doc/hacker-guide/Makefile R doc/hacker-guide/Makefile.in M doc/library-guide/.gitignore A doc/library-guide/Makefile R doc/library-guide/Makefile.in M doc/mlb-formal/.gitignore A doc/mlb-formal/Makefile R doc/mlb-formal/Makefile.in M doc/style-guide/.gitignore A doc/style-guide/Makefile R doc/style-guide/Makefile.in R include/.gitignore A include/Makefile R include/Makefile.in M lib/.gitignore A lib/Makefile R lib/Makefile.in M lib/ckit-lib/.gitignore A lib/ckit-lib/Makefile R lib/ckit-lib/Makefile.in M lib/mllpt-lib/.gitignore A lib/mllpt-lib/Makefile R lib/mllpt-lib/Makefile.in M lib/mlnlffi-lib/Makefile.in M lib/mlrisc-lib/.gitignore A lib/mlrisc-lib/Makefile R lib/mlrisc-lib/Makefile.in R lib/mlton/.gitignore A lib/mlton/Makefile R lib/mlton/Makefile.in R lib/mlton/basic/.gitignore A lib/mlton/basic/Makefile R lib/mlton/basic/Makefile.in M lib/smlnj-lib/.gitignore A lib/smlnj-lib/Makefile R lib/smlnj-lib/Makefile.in R lib/stubs/.gitignore A lib/stubs/Makefile R lib/stubs/Makefile.in R lib/stubs/basis-stubs-for-smlnj/.gitignore A lib/stubs/basis-stubs-for-smlnj/Makefile R lib/stubs/basis-stubs-for-smlnj/Makefile.in R lib/stubs/mlton-stubs-for-smlnj/.gitignore A lib/stubs/mlton-stubs-for-smlnj/Makefile R lib/stubs/mlton-stubs-for-smlnj/Makefile.in R lib/stubs/mlton-stubs/.gitignore A lib/stubs/mlton-stubs/Makefile R lib/stubs/mlton-stubs/Makefile.in M man/.gitignore A man/Makefile R man/Makefile.in M mllex/.gitignore A mllex/Makefile R mllex/Makefile.in M mlnlffigen/.gitignore A mlnlffigen/Makefile R mlnlffigen/Makefile.in M mlprof/.gitignore A mlprof/Makefile R mlprof/Makefile.in M mlyacc/doc/.gitignore A mlyacc/doc/Makefile R mlyacc/doc/Makefile.in M package/macosx/.gitignore A package/macosx/Makefile R package/macosx/Makefile.in M regression/.gitignore A regression/Makefile R regression/Makefile.in M regression/library/.gitignore A regression/library/Makefile R regression/library/Makefile.in M util/cm2mlb/.gitignore A util/cm2mlb/Makefile R util/cm2mlb/Makefile.in Log Message: ----------- Makefile.in -> Makefile wherever no changes are made to the template during configuration Commit: d4e3a4234bfb3f94e603ffa26569262b8ea8664b https://github.com/MLton/mlton/commit/d4e3a4234bfb3f94e603ffa26569262b8ea8664b Author: Matthew Fluet <Mat...@gm...> Date: 2017-09-27 (Wed, 27 Sep 2017) Changed paths: M .gitignore A .travis.yml R Makefile A Makefile-auto.am A Makefile.in R README A README.md M benchmark/.gitignore R benchmark/Makefile A benchmark/Makefile.in A bin/.gitignore R bin/mlton-script A bin/mlton-script.in M bin/regression A bin/travis-ci A configure.ac A doc/README R doc/README M lib/mlnlffi-lib/.gitignore R lib/mlnlffi-lib/Makefile A lib/mlnlffi-lib/Makefile.in M mlton/.gitignore R mlton/Makefile A mlton/Makefile.in M mlyacc/.gitignore R mlyacc/Makefile A mlyacc/Makefile.in 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 A regression/whitelist M runtime/.gitignore R runtime/Makefile A runtime/Makefile.in Log Message: ----------- Merge pull request #193 from myegorov/build-configure Initial support for `./configure` and Travis-CI. The `./configure` step will check for `mlton`, `mllex`, and `mlyacc` plus check for other standard tools and for GMP. The `--with-gmp-lib` and `--with-gmp-include` flags can be used to specify the location of GMP, if it is not natively found by the C compiler. A `--prefix` flag can be used to specify an install prefix. The C compiler found by the `./configure` step (e.g., specified by `CC` environment variable) will be used to build the runtime system and by the built `mlton` when building programs. Compare: https://github.com/MLton/mlton/compare/8525a502ddc5...d4e3a4234bfb |
From: GitHub <no...@gi...> - 2017-09-15 10:45:15
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 043a03e123b3beb402f1cc6b21aab31d8f5d4964 https://github.com/MLton/mlton/commit/043a03e123b3beb402f1cc6b21aab31d8f5d4964 Author: Eugene Akentev <ak...@gm...> Date: 2017-09-14 (Thu, 14 Sep 2017) Changed paths: M runtime/gc/array.c Log Message: ----------- Fix the type of GC_arrayCopy Commit: 8525a502ddc570ae072d9e3b34fb7be97fbe6ee5 https://github.com/MLton/mlton/commit/8525a502ddc570ae072d9e3b34fb7be97fbe6ee5 Author: Matthew Fluet <Mat...@gm...> Date: 2017-09-15 (Fri, 15 Sep 2017) Changed paths: M runtime/gc/array.c Log Message: ----------- Merge pull request #194 from ak3n/master Fix the type of GC_arrayCopy Compare: https://github.com/MLton/mlton/compare/ea79eb674ece...8525a502ddc5 |
From: GitHub <no...@gi...> - 2017-08-21 17:21:05
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 5bef8d6ab53622bf9aed0c7e3fc895234f97d72a https://github.com/MLton/mlton/commit/5bef8d6ab53622bf9aed0c7e3fc895234f97d72a Author: Matthew Fluet <mat...@gm...> Date: 2017-07-12 (Wed, 12 Jul 2017) Changed paths: M benchmark/main.sml A benchmark/tests/string-concat.sml Log Message: ----------- Add a string-concat benchmark Commit: d4c68b56d94a35f66c28707c42e5eef5517c795f https://github.com/MLton/mlton/commit/d4c68b56d94a35f66c28707c42e5eef5517c795f Author: Matthew Fluet <mat...@gm...> Date: 2017-07-12 (Wed, 12 Jul 2017) Changed paths: M runtime/gc/array.c M runtime/gc/array.h Log Message: ----------- Add GC_arrayCopy to runtime Commit: 21827e4e36bed3b71b58409bc6a7b0629603d77d https://github.com/MLton/mlton/commit/21827e4e36bed3b71b58409bc6a7b0629603d77d Author: Matthew Fluet <mat...@gm...> Date: 2017-07-12 (Wed, 12 Jul 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/closure-convert/abstract-value.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/useless.fun Log Message: ----------- Preliminary support for Array_copy{Array,Vector} primitives Commit: ed8f6beb38862c147a7d7dcfef9536b547559dae https://github.com/MLton/mlton/commit/ed8f6beb38862c147a7d7dcfef9536b547559dae Author: Matthew Fluet <mat...@gm...> Date: 2017-07-12 (Wed, 12 Jul 2017) Changed paths: M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence0.sml M basis-library/primitive/prim-seq.sml Log Message: ----------- Preliminary use of Array_copy{Array,Vector} in Basis Library Commit: de8f9229cbdb89884220cbdb9fb1ffba39bf2535 https://github.com/MLton/mlton/commit/de8f9229cbdb89884220cbdb9fb1ffba39bf2535 Author: Bryan Camp <bx...@ri...> Date: 2017-08-01 (Tue, 01 Aug 2017) Changed paths: M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence0.sig M basis-library/arrays-and-vectors/sequence0.sml M basis-library/arrays-and-vectors/slice0.sig M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Introduced new copy functionality to improve concat and other similar functions. Commit: 7f63b6860bfe978eb36bf6ef8922008557873f67 https://github.com/MLton/mlton/commit/7f63b6860bfe978eb36bf6ef8922008557873f67 Author: Matthew Fluet <mat...@gm...> Date: 2017-08-12 (Sat, 12 Aug 2017) Changed paths: M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence0.sig M basis-library/arrays-and-vectors/sequence0.sml M mlton/backend/ssa-to-rssa.fun M mlton/ssa/useless.fun Log Message: ----------- Cleanup whitespace Commit: 4cfe0aa8f58676ddcda7b9933b3eb8a1df215507 https://github.com/MLton/mlton/commit/4cfe0aa8f58676ddcda7b9933b3eb8a1df215507 Author: Matthew Fluet <mat...@gm...> Date: 2017-08-12 (Sat, 12 Aug 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml Log Message: ----------- Reorder function declarations for consistency Commit: caa9c617ab5b6fb782d53b91edd6e7e6e28f8205 https://github.com/MLton/mlton/commit/caa9c617ab5b6fb782d53b91edd6e7e6e28f8205 Author: Matthew Fluet <mat...@gm...> Date: 2017-08-12 (Sat, 12 Aug 2017) Changed paths: M lib/mlton/basic/stream-parser.sig M lib/mlton/basic/stream-parser.sml M mlton/main/main.fun M mlton/xml/parse-sxml.fun Log Message: ----------- Merge branch 'master' of github.com:MLton/mlton into array-copy-prims For performance comparison, want both master and array-copy-prims to use PIC on amd64-linux. Commit: a2c6a3c71f323ebd93baa025163f911231600188 https://github.com/MLton/mlton/commit/a2c6a3c71f323ebd93baa025163f911231600188 Author: Matthew Fluet <mat...@gm...> Date: 2017-08-14 (Mon, 14 Aug 2017) Changed paths: M benchmark/Makefile M benchmark/main.sml M benchmark/tests/.gitignore R benchmark/tests/vector-concat.sml A benchmark/tests/vector32-concat.sml A benchmark/tests/vector64-concat.sml M benchmark/update-counts.sh Log Message: ----------- Split `vector-concat` into `vector32-concat` and `vector64-concat` Commit: daae91ded68a0e22d582b77e824669103a7426aa https://github.com/MLton/mlton/commit/daae91ded68a0e22d582b77e824669103a7426aa Author: Matthew Fluet <mat...@gm...> Date: 2017-08-14 (Mon, 14 Aug 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml Log Message: ----------- Use `copy` to implement `Vector.update` Commit: b5192efa9e928050997d7b4262a3e813e5f448a1 https://github.com/MLton/mlton/commit/b5192efa9e928050997d7b4262a3e813e5f448a1 Author: Matthew Fluet <mat...@gm...> Date: 2017-08-20 (Sun, 20 Aug 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml Log Message: ----------- Perform small (<5) sequence copies with loop (rather than `memmove`) Using a C call to `memmove` has some overhead for copies of short length, as compared to element-by-element copies. Instrumenting the `GC_arrayCopy` function to record number of elements copied at each invocation shows that a self-compile makes 37074056 calls to `GC_arrayCopy` with the following statistics on number of elements copied: min 0 median 3 mean 7.767096 max 146120 histogram: count density cumulative 0 8138 0.0002195066 0.0002195066 1 1556411 0.0419811364 0.0422006430 2 8922853 0.2406764720 0.2828771149 3 9395704 0.2534307010 0.5363078159 4 7053342 0.1902500768 0.7265578927 (4,8] 4883067 0.1317111621 0.8582690548 (8,16] 1113094 0.0300235291 0.8882925839 (16,146120] 4141447 0.1117074161 1.0000000000 With nearly 75% of copies being done with 4 or fewer elements, it is worth special handling copies of very small length. The following function measures the cost of `Array.copy{,Vec}`: fun run {fromInt, toString, ...} (di, si, l, j, k: Int64.int) = let val n = IntInf.toInt (IntInf.pow (2, 21)) val a = Array.tabulate (n, fromInt) val copy = if true then let val v = Vector.tabulate (n, fromInt) val sl = VectorSlice.slice (v, si, SOME l) in fn () => ArraySlice.copyVec {dst = a, di = di, src = sl} end else let val sl = ArraySlice.slice (a, si, SOME l) in fn () => ArraySlice.copy {dst = a, di = di, src = sl} end fun loop k = if k <= 0 then () else (copy (); loop (k - 1)) val _ = loop k val ans = Array.sub (a, j) val () = print (concat ["ans = ", toString ans, "\n"]) in () end Instantiating `fromInt` and `toString` selects the element type of the sequences. Results using `di = 1` and `si = 7` (for non-aligned data with < 32bit element sizes) and `k` dynamically determined (by finding a value for which `g1591902-amd64` is > 10s): |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio w8 0 12.52 59.46 4.749 15.82 1.263 9.05 47.51 5.250 15.82 1.748 9.05 45.26 5.001 13.58 1.501 w8 1 12.45 28.36 2.278 9.19 0.738 5.67 22.97 4.051 8.89 1.568 5.65 21.81 3.860 8.58 1.518 w8 2 16.65 30.64 1.840 13.68 0.822 9.05 24.88 2.749 12.92 1.428 8.43 23.75 2.817 10.19 1.209 w8 3 10.92 15.31 1.402 8.54 0.782 5.68 12.43 2.188 7.91 1.393 6.23 11.87 1.905 6.55 1.051 w8 4 13.53 14.79 1.093 10.52 0.777 6.85 11.88 1.734 9.93 1.450 7.48 11.31 1.512 7.97 1.065 w8 5 16.16 14.75 0.913 15.33 0.949 8.68 11.94 1.376 11.87 1.367 7.54 11.31 1.500 11.31 1.500 w8 6 18.86 14.87 0.788 15.33 0.813 11.31 11.89 1.051 11.87 1.049 11.74 11.30 0.962 11.30 0.962 w8 7 10.62 7.37 0.694 7.66 0.721 6.50 5.94 0.914 5.94 0.914 6.72 5.65 0.841 5.65 0.841 w8 8 11.87 7.68 0.647 7.94 0.669 7.35 6.22 0.846 6.22 0.846 7.62 5.94 0.780 5.94 0.780 w8 16 11.50 3.12 0.271 3.27 0.284 7.07 2.90 0.410 3.15 0.446 7.22 2.69 0.373 2.73 0.378 w8 32 10.58 1.56 0.147 1.63 0.154 6.92 1.43 0.207 1.46 0.211 7.59 1.38 0.182 1.38 0.182 w8 64 19.58 2.42 0.124 2.45 0.125 14.93 2.44 0.163 2.46 0.165 14.98 2.28 0.152 2.31 0.154 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio w16 0 13.57 52.05 3.836 15.81 1.165 9.04 45.91 5.078 15.69 1.736 9.05 45.27 5.002 13.56 1.498 w16 1 11.35 27.14 2.391 9.98 0.879 6.78 26.15 3.857 8.76 1.292 5.66 23.74 4.194 7.91 1.398 w16 2 14.69 26.01 1.770 13.57 0.924 9.07 23.65 2.607 12.05 1.329 8.43 22.62 2.683 11.02 1.307 w16 3 10.18 13.01 1.278 8.49 0.834 5.65 11.75 2.080 7.43 1.315 5.09 11.30 2.220 7.80 1.532 w16 4 12.43 13.56 1.091 10.51 0.845 6.60 12.11 1.835 11.75 1.780 6.22 11.87 1.908 9.74 1.566 w16 5 14.70 13.57 0.923 14.70 1.000 8.10 12.19 1.505 11.98 1.479 7.35 11.87 1.615 11.87 1.615 w16 6 16.96 13.57 0.800 14.70 0.867 11.46 12.09 1.055 12.60 1.099 8.48 11.87 1.400 11.87 1.400 w16 7 19.22 13.57 0.706 14.70 0.765 13.14 11.96 0.910 12.61 0.960 9.61 11.87 1.235 11.87 1.235 w16 8 10.74 5.84 0.544 6.09 0.567 7.52 5.85 0.778 5.86 0.779 5.37 5.42 1.009 5.37 1.000 w16 16 19.78 5.83 0.295 9.93 0.502 14.23 5.82 0.409 5.86 0.412 9.89 5.58 0.564 5.37 0.543 w16 32 10.43 2.40 0.230 2.45 0.235 7.50 2.45 0.327 2.45 0.327 4.73 2.26 0.478 2.29 0.484 w16 64 19.57 2.43 0.124 2.53 0.129 12.96 2.48 0.191 2.46 0.190 10.77 2.30 0.213 2.30 0.213 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio w32 0 13.56 56.61 4.175 15.81 1.166 9.04 45.26 5.007 15.83 1.751 9.04 45.60 5.044 13.56 1.500 w32 1 10.18 28.29 2.779 9.04 0.888 6.78 23.60 3.481 12.16 1.794 5.66 22.88 4.042 9.22 1.629 w32 2 13.66 29.41 2.153 12.44 0.911 9.05 23.75 2.624 12.78 1.412 9.75 23.87 2.448 11.70 1.200 w32 3 10.17 14.71 1.446 7.92 0.779 5.68 11.87 2.090 7.36 1.296 5.09 12.05 2.367 7.48 1.470 w32 4 12.46 11.89 0.954 10.17 0.816 7.88 11.40 1.447 9.48 1.203 7.16 10.81 1.510 9.18 1.282 w32 5 14.71 11.89 0.808 13.00 0.884 8.14 11.41 1.402 12.18 1.496 7.36 10.78 1.465 10.75 1.461 w32 6 16.96 11.89 0.701 13.00 0.767 9.57 11.45 1.196 12.28 1.283 11.30 10.90 0.965 10.80 0.956 w32 7 19.22 11.89 0.619 13.00 0.676 10.74 11.45 1.066 12.28 1.143 13.30 10.90 0.819 10.79 0.811 w32 8 10.74 5.94 0.553 6.50 0.605 5.93 5.74 0.968 6.14 1.035 7.54 5.41 0.717 5.39 0.715 w32 16 19.78 9.54 0.482 9.69 0.490 10.01 9.72 0.971 9.75 0.974 14.26 9.44 0.662 9.17 0.643 w32 32 19.07 4.80 0.252 4.87 0.255 9.47 4.91 0.518 4.87 0.514 15.05 4.60 0.306 4.60 0.306 w32 64 19.55 3.94 0.201 3.97 0.203 10.88 3.92 0.360 3.89 0.357 12.96 3.78 0.292 3.84 0.296 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio w64 0 13.81 58.85 4.261 15.83 1.146 9.04 45.97 5.085 15.83 1.751 9.05 48.27 5.334 13.57 1.499 w64 1 10.30 30.55 2.966 9.05 0.879 6.78 23.93 3.529 8.58 1.265 5.66 24.95 4.408 8.57 1.514 w64 2 14.15 24.89 1.759 12.44 0.879 9.07 22.81 2.515 11.97 1.320 9.76 21.54 2.207 11.43 1.171 w64 3 10.19 12.45 1.222 7.92 0.777 5.65 11.34 2.007 7.38 1.306 5.09 10.74 2.110 6.84 1.344 w64 4 12.50 12.45 0.996 10.18 0.814 7.62 11.35 1.489 9.48 1.244 7.21 11.29 1.566 9.00 1.248 w64 5 14.73 15.84 1.075 16.39 1.113 8.89 13.64 1.534 14.11 1.587 7.36 13.56 1.842 13.04 1.772 w64 6 16.97 15.84 0.933 16.40 0.966 11.31 13.67 1.209 14.24 1.259 11.31 14.18 1.254 13.05 1.154 w64 7 19.23 15.84 0.824 16.40 0.853 13.00 13.72 1.055 14.24 1.095 13.29 13.56 1.020 13.05 0.982 w64 8 10.74 9.37 0.872 9.55 0.889 7.62 9.57 1.256 9.72 1.275 7.54 8.96 1.188 9.23 1.224 w64 16 19.79 9.47 0.479 9.59 0.485 14.34 9.66 0.674 9.70 0.676 14.26 9.02 0.632 9.22 0.647 w64 32 18.96 7.89 0.416 7.94 0.419 14.97 7.75 0.518 7.77 0.519 14.99 7.57 0.505 7.71 0.514 w64 64 19.57 6.09 0.311 5.15 0.263 12.93 5.80 0.449 5.03 0.389 12.96 5.80 0.447 4.99 0.385 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio r32 0 13.57 61.06 4.500 15.83 1.166 9.05 50.45 5.574 15.83 1.749 9.04 49.80 5.509 13.56 1.500 r32 1 11.41 30.54 2.676 9.04 0.792 6.79 26.50 3.903 10.14 1.493 5.65 24.90 4.407 9.22 1.632 r32 2 13.57 31.67 2.334 12.44 0.917 9.05 26.31 2.907 11.97 1.323 9.45 26.01 2.752 11.65 1.233 r32 3 10.25 15.83 1.544 8.37 0.816 5.66 13.29 2.348 7.43 1.313 5.09 13.01 2.556 7.47 1.467 r32 4 12.54 13.01 1.037 10.74 0.856 7.41 12.24 1.652 9.65 1.302 7.09 11.43 1.612 9.04 1.275 r32 5 14.70 13.01 0.885 12.49 0.850 8.04 12.24 1.522 11.75 1.461 7.37 11.44 1.552 10.77 1.461 r32 6 16.96 13.01 0.767 12.66 0.746 11.31 12.24 1.082 11.78 1.041 11.30 11.46 1.014 10.77 0.953 r32 7 19.22 13.32 0.693 12.87 0.670 13.00 12.24 0.941 11.76 0.905 13.30 11.43 0.859 10.76 0.809 r32 8 10.74 6.50 0.605 6.33 0.589 7.57 6.13 0.810 5.88 0.777 7.35 5.72 0.778 5.41 0.736 r32 16 19.79 10.44 0.527 9.81 0.496 14.37 10.27 0.715 9.79 0.681 14.28 9.82 0.688 9.21 0.645 r32 32 10.37 2.62 0.253 2.46 0.237 7.55 2.58 0.342 2.46 0.326 7.49 2.50 0.334 2.30 0.307 r32 64 19.57 4.15 0.212 4.15 0.212 12.99 4.23 0.326 4.08 0.314 12.94 3.96 0.306 3.89 0.301 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio r64 0 13.57 63.36 4.669 15.83 1.166 9.05 49.78 5.501 15.83 1.749 9.05 47.59 5.259 13.56 1.498 r64 1 11.10 32.81 2.956 9.05 0.815 6.80 26.02 3.826 8.80 1.294 5.66 24.89 4.398 9.20 1.625 r64 2 13.57 27.17 2.002 12.44 0.917 10.50 24.62 2.345 12.20 1.162 9.29 23.17 2.494 11.47 1.235 r64 3 10.29 13.58 1.320 7.93 0.771 6.04 12.28 2.033 7.77 1.286 5.31 11.52 2.169 7.73 1.456 r64 4 12.56 13.58 1.081 11.14 0.887 6.57 12.21 1.858 9.84 1.498 6.89 11.49 1.668 9.06 1.315 r64 5 14.71 16.96 1.153 15.93 1.083 9.09 14.84 1.633 14.18 1.560 7.37 14.24 1.932 13.08 1.775 r64 6 16.97 16.98 1.001 15.94 0.939 11.34 14.82 1.307 14.22 1.254 11.30 14.22 1.258 13.00 1.150 r64 7 19.22 16.97 0.883 15.91 0.828 12.45 14.80 1.189 14.23 1.143 13.14 14.43 1.098 13.00 0.989 r64 8 10.75 10.25 0.953 9.62 0.895 7.12 10.12 1.421 9.65 1.355 7.49 9.78 1.306 9.07 1.211 r64 16 19.78 10.25 0.518 9.72 0.491 14.21 10.21 0.718 9.67 0.681 14.23 9.81 0.689 9.08 0.638 r64 32 10.39 4.06 0.391 4.09 0.394 6.95 4.14 0.596 4.01 0.577 7.50 3.93 0.524 3.87 0.516 r64 64 19.58 5.13 0.262 5.17 0.264 13.04 5.77 0.442 6.00 0.460 12.94 5.62 0.434 5.97 0.461 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio g1591902 gdaae91d ratio gxxxxxxx ratio w8*w64 0 13.82 52.08 3.768 15.84 1.146 9.06 45.27 4.997 15.84 1.748 9.05 45.30 5.006 13.58 1.501 w8*w64 1 12.69 23.40 1.844 11.42 0.900 7.93 23.13 2.917 10.19 1.285 7.93 21.58 2.721 11.09 1.398 w8*w64 2 19.37 23.47 1.212 18.29 0.944 12.90 23.02 1.784 15.69 1.216 11.32 21.48 1.898 15.28 1.350 w8*w64 3 13.05 14.52 1.113 12.47 0.955 7.92 13.49 1.703 9.92 1.253 7.36 13.31 1.808 10.32 1.402 w8*w64 4 16.43 18.74 1.140 15.85 0.965 10.23 19.49 1.905 12.07 1.180 9.35 18.08 1.934 12.54 1.341 w8*w64 5 19.82 18.75 0.946 19.08 0.963 11.32 19.25 1.701 19.42 1.716 10.75 18.06 1.680 18.43 1.714 w8*w64 6 11.62 9.34 0.804 9.56 0.823 6.51 9.71 1.492 9.68 1.487 6.23 8.98 1.441 9.19 1.475 w8*w64 7 13.31 9.34 0.702 9.99 0.751 7.91 9.64 1.219 9.69 1.225 7.08 9.11 1.287 9.24 1.305 w8*w64 8 15.01 9.45 0.629 9.60 0.639 8.83 9.71 1.100 9.69 1.097 7.93 9.02 1.137 9.21 1.161 w8*w64 16 14.29 7.89 0.552 7.94 0.556 7.80 7.77 0.996 7.78 0.997 7.48 7.58 1.013 7.71 1.031 w8*w64 32 15.11 5.63 0.373 5.15 0.341 7.66 5.11 0.667 5.31 0.693 7.41 4.94 0.667 5.52 0.745 w8*w64 64 14.35 3.74 0.261 3.76 0.262 8.69 3.71 0.427 3.69 0.425 8.69 3.64 0.419 3.66 0.421 This commit avoids the > 2X slowdown for very small copies with `memmove`. The amd64 codegen actually does better than `master` for lengths 1 to 4. Commit: fab6b37c5f817c039ede85da4ea8a5f28ea3ce3a https://github.com/MLton/mlton/commit/fab6b37c5f817c039ede85da4ea8a5f28ea3ce3a Author: Matthew Fluet <mat...@gm...> Date: 2017-08-20 (Sun, 20 Aug 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml Log Message: ----------- Refactor copy of small sequences Commit: 9c8b93e9cb9cf2341e92ca71b54883b1c1af7637 https://github.com/MLton/mlton/commit/9c8b93e9cb9cf2341e92ca71b54883b1c1af7637 Author: Matthew Fluet <mat...@gm...> Date: 2017-08-20 (Sun, 20 Aug 2017) Changed paths: M basis-library/arrays-and-vectors/sequence0.sml Log Message: ----------- Rename `aliasArray` to `sameArray` in functor PrimSequence argument Commit: 8f3efad936d8bc23e30c6437fea86f5f782a286f https://github.com/MLton/mlton/commit/8f3efad936d8bc23e30c6437fea86f5f782a286f Author: Matthew Fluet <mat...@gm...> Date: 2017-08-20 (Sun, 20 Aug 2017) Changed paths: 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/sequence.fun M basis-library/arrays-and-vectors/sequence.sig M basis-library/arrays-and-vectors/sequence0.sml M basis-library/arrays-and-vectors/slice.sig M basis-library/arrays-and-vectors/vector-slice.sig M basis-library/arrays-and-vectors/vector.sig Log Message: ----------- Refactor to "lift" `copy` from `SeqIndex.int` to `int` in `Sequence` Commit: 12a46a712c6800a22e5651df1e4b4f7fc7a003da https://github.com/MLton/mlton/commit/12a46a712c6800a22e5651df1e4b4f7fc7a003da Author: Matthew Fluet <mat...@gm...> Date: 2017-08-20 (Sun, 20 Aug 2017) Changed paths: M basis-library/arrays-and-vectors/sequence.fun Log Message: ----------- Use `Array_copy{Array,Vector}` to implement `concatWith` Commit: ea79eb674eceada911bfa2aff4fafb3a754f0e0a https://github.com/MLton/mlton/commit/ea79eb674eceada911bfa2aff4fafb3a754f0e0a Author: Matthew Fluet <Mat...@gm...> Date: 2017-08-21 (Mon, 21 Aug 2017) Changed paths: 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/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/primitive/prim-seq.sml M benchmark/Makefile 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 M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/closure-convert/abstract-value.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/useless.fun M runtime/gc/array.c M runtime/gc/array.h Log Message: ----------- Merge pull request #192 from Bxc8214/array-copy-prims Introduce `Array_copy{Array,Vector}` primitives val Array_copyArray : 'a array * SeqIndex.int * 'a array * SeqIndex.int * SeqIndex.int -> unit val Array_copyVector : 'a array * SeqIndex.int * 'a vector * SeqIndex.int * SeqIndex.int -> unit which are used to implement a number of array and vector construction functions, particularly `append`, `concat`, and `concatWith`. This was motivated by the observation that Poly/ML's string concatenation was significantly faster than MLton's; investigation showed that Poly/ML uses `memmove` to implement string concatenation, which out performs MLton's element-by-element construction for large strings. See the discussion thread at: https://sourceforge.net/p/mlton/mailman/mlton-user/thread/CAG%2BQnTcffmvXcpFv9rivvwdcsRXvUCorYVdEPmhjCE8EHEpOig%40mail.gmail.com/#msg35312358 Within the Basis Library implementation, the `Array_copy{Array,Vector}` primitives are only used for copies of more than 5 elements; this is to avoid the overhead of an FFI call for copies of few elements. Instrumenting the `GC_arrayCopy` function to record number of elements copied at each invocation shows that a self-compile makes 37074056 calls to `GC_arrayCopy` with the following statistics on number of elements copied: min 0 median 3 mean 7.767096 max 146120 histogram: count density cumulative 0 8138 0.0002195066 0.0002195066 1 1556411 0.0419811364 0.0422006430 2 8922853 0.2406764720 0.2828771149 3 9395704 0.2534307010 0.5363078159 4 7053342 0.1902500768 0.7265578927 (4,8] 4883067 0.1317111621 0.8582690548 (8,16] 1113094 0.0300235291 0.8882925839 (16,146120] 4141447 0.1117074161 1.0000000000 There is one potential missed optimization due to the use of `Array_copy{Array,Vector}` instead of an element-by-element copying loop. Analyses and transformations must ensure that the element type of the source and destination sequence are the same (unified) for uses of `Array_copy{Array,Vector}`, whereas the element type of the source need only be coercable to the element type of the destination for uses of `{Array,Vector}_sub` followed by `Array_update`. That is, the element-by-element copy loop has the opportunity to modify the element as it is copied (e.g., drop unused fields of a tuple), but an `Array_copy{Array,Vector}` cannot modify elements as they are copied. Benchmark results: MLton0 -- ~/devel/mlton/builds/20170725.130317-g159190284/bin/mlton MLton1 -- ~/devel/mlton/builds/20170821.023419-g12a46a712/bin/mlton run time ratio benchmark MLton0 MLton1 string-concat 1.00 0.71 vector32-concat 1.00 0.76 vector64-concat 1.00 0.86 size benchmark MLton0 MLton1 string-concat 116,744 117,048 vector32-concat 121,000 121,336 vector64-concat 121,000 121,368 compile time benchmark MLton0 MLton1 string-concat 1.99 2.00 vector32-concat 2.01 2.02 vector64-concat 2.02 2.03 run time benchmark MLton0 MLton1 string-concat 127.99 90.69 vector32-concat 103.82 79.31 vector64-concat 109.04 93.43 The following function measures the cost of `Array_copy{Array,Vector}`: fun run {fromInt, toString, ...} (di, si, l, j, k: Int64.int) = let val n = IntInf.toInt (IntInf.pow (2, 21)) val a = Array.tabulate (n, fromInt) val copy = if true then let val v = Vector.tabulate (n, fromInt) val sl = VectorSlice.slice (v, si, SOME l) in fn () => ArraySlice.copyVec {dst = a, di = di, src = sl} end else let val sl = ArraySlice.slice (a, si, SOME l) in fn () => ArraySlice.copy {dst = a, di = di, src = sl} end fun loop k = if k <= 0 then () else (copy (); loop (k - 1)) val _ = loop k val ans = Array.sub (a, j) val () = print (concat ["ans = ", toString ans, "\n"]) in () end Instantiating `fromInt` and `toString` selects the element type of the sequences. Results using `di = 1` and `si = 7` (for non-aligned data with < 32bit element sizes) and `k` dynamically determined (by finding a value for which `g1591902-amd64` is > 10s): |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio w8 0 12.51 59.33 4.743 15.81 1.264 9.05 47.52 5.251 15.83 1.749 9.04 45.27 5.008 13.56 1.500 w8 1 12.50 28.48 2.278 9.07 0.726 5.66 22.98 4.060 9.08 1.604 5.66 21.81 3.853 8.53 1.507 w8 2 16.65 30.68 1.843 13.57 0.815 9.05 24.87 2.748 12.55 1.387 8.42 23.74 2.819 11.18 1.328 w8 3 10.92 15.36 1.407 8.66 0.793 5.67 12.44 2.194 8.14 1.436 6.26 11.87 1.896 6.51 1.040 w8 4 13.46 14.76 1.096 10.46 0.777 6.84 11.88 1.737 9.97 1.458 7.46 11.31 1.516 7.95 1.066 w8 5 16.18 14.78 0.913 15.26 0.943 8.69 11.88 1.367 11.88 1.367 7.54 11.31 1.500 11.90 1.578 w8 6 18.76 14.84 0.791 15.26 0.813 11.31 11.89 1.051 11.88 1.050 11.77 11.31 0.961 11.88 1.009 w8 7 10.59 7.40 0.699 7.63 0.720 6.50 5.94 0.914 5.94 0.914 6.72 5.66 0.842 5.94 0.884 w8 8 11.92 7.68 0.644 7.92 0.664 7.35 6.22 0.846 6.22 0.846 7.59 5.93 0.781 6.22 0.819 w8 16 11.59 3.17 0.274 3.25 0.280 7.07 2.89 0.409 3.16 0.447 7.22 2.70 0.374 2.69 0.373 w8 32 10.60 1.58 0.149 1.63 0.154 6.92 1.43 0.207 1.45 0.209 7.59 1.37 0.181 1.36 0.179 w8 64 19.58 2.42 0.124 2.46 0.126 14.94 2.44 0.163 2.46 0.165 14.99 2.27 0.151 2.30 0.153 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio w16 0 13.56 52.04 3.838 15.81 1.166 9.04 45.65 5.050 15.83 1.751 9.05 45.26 5.001 13.56 1.498 w16 1 11.41 27.14 2.379 10.07 0.882 6.78 24.22 3.572 9.32 1.375 5.65 23.75 4.203 7.91 1.400 w16 2 14.70 26.01 1.769 13.62 0.926 9.07 23.63 2.605 13.74 1.515 8.42 22.61 2.685 11.02 1.309 w16 3 10.18 13.00 1.277 8.52 0.837 5.65 11.80 2.088 8.27 1.464 5.09 11.31 2.222 7.95 1.562 w16 4 12.43 13.57 1.092 10.51 0.845 6.58 12.15 1.846 9.42 1.432 6.22 11.88 1.910 9.97 1.603 w16 5 14.69 13.57 0.924 14.76 1.005 8.10 11.93 1.473 12.44 1.536 7.35 11.87 1.615 11.87 1.615 w16 6 16.95 13.57 0.801 14.75 0.870 11.45 12.26 1.071 12.44 1.086 8.48 11.88 1.401 11.88 1.401 w16 7 19.22 13.57 0.706 14.77 0.768 13.15 11.98 0.911 12.43 0.945 9.61 11.87 1.235 11.88 1.236 w16 8 10.74 5.84 0.544 6.14 0.572 7.52 5.86 0.779 5.86 0.779 5.37 5.43 1.011 5.37 1.000 w16 16 19.78 5.82 0.294 6.17 0.312 14.23 5.94 0.417 5.86 0.412 9.89 5.42 0.548 5.38 0.544 w16 32 10.42 2.40 0.230 2.45 0.235 7.50 2.45 0.327 2.45 0.327 4.73 2.26 0.478 2.30 0.486 w16 64 19.57 2.43 0.124 2.46 0.126 12.96 2.46 0.190 2.47 0.190 10.77 2.30 0.213 2.30 0.213 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio w32 0 13.56 56.58 4.173 15.82 1.167 9.04 45.25 5.006 15.82 1.750 9.04 46.71 5.167 13.56 1.500 w32 1 10.17 28.29 2.782 9.04 0.889 6.78 23.60 3.481 9.00 1.327 5.67 23.07 4.069 9.20 1.622 w32 2 13.79 29.41 2.133 12.44 0.902 9.05 23.75 2.624 11.35 1.254 9.68 23.94 2.473 11.81 1.220 w32 3 10.17 14.71 1.446 7.94 0.781 5.68 11.87 2.090 7.39 1.301 5.09 11.97 2.352 7.54 1.481 w32 4 12.46 11.89 0.954 10.20 0.819 7.87 11.43 1.452 9.46 1.202 7.16 10.78 1.506 8.88 1.240 w32 5 14.71 11.89 0.808 12.95 0.880 8.13 11.40 1.402 11.73 1.443 7.36 10.78 1.465 10.75 1.461 w32 6 16.96 11.90 0.702 12.76 0.752 9.57 11.45 1.196 11.84 1.237 11.31 10.90 0.964 10.80 0.955 w32 7 19.22 11.89 0.619 12.82 0.667 10.74 11.46 1.067 11.84 1.102 13.30 10.90 0.819 10.80 0.812 w32 8 10.74 5.95 0.554 6.41 0.597 5.93 5.74 0.968 5.92 0.998 7.53 5.41 0.718 5.40 0.717 w32 16 19.78 9.54 0.482 9.77 0.494 10.01 9.70 0.969 9.63 0.962 14.26 9.02 0.632 9.18 0.644 w32 32 19.10 4.80 0.251 4.93 0.258 9.47 5.08 0.536 4.87 0.514 15.04 4.59 0.305 4.60 0.306 w32 64 19.54 3.93 0.201 3.97 0.203 10.89 3.92 0.360 3.89 0.357 12.97 3.78 0.291 3.84 0.296 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio w64 0 13.81 58.84 4.261 15.83 1.146 9.04 45.73 5.059 15.45 1.709 9.05 48.35 5.343 13.57 1.499 w64 1 10.30 30.54 2.965 9.04 0.878 6.79 23.94 3.526 8.69 1.280 5.66 24.85 4.390 8.57 1.514 w64 2 14.17 24.90 1.757 12.45 0.879 9.07 22.80 2.514 11.32 1.248 9.80 21.55 2.199 11.38 1.161 w64 3 10.19 12.45 1.222 7.91 0.776 5.66 11.36 2.007 7.75 1.369 5.10 10.73 2.104 7.09 1.390 w64 4 12.51 12.45 0.995 10.17 0.813 7.63 11.35 1.487 9.51 1.246 7.21 10.74 1.489 8.65 1.200 w64 5 14.73 15.85 1.076 16.40 1.113 8.92 13.56 1.520 14.16 1.587 7.37 13.55 1.838 13.04 1.769 w64 6 16.97 15.84 0.933 16.39 0.966 11.30 13.65 1.208 14.24 1.260 11.30 13.55 1.199 13.06 1.156 w64 7 19.23 15.84 0.824 16.39 0.852 13.00 13.84 1.065 14.24 1.095 13.30 13.57 1.020 13.07 0.983 w64 8 10.75 9.36 0.871 9.55 0.888 7.62 9.57 1.256 9.70 1.273 7.53 8.97 1.191 9.23 1.226 w64 16 19.78 9.47 0.479 9.60 0.485 14.34 9.67 0.674 11.94 0.833 14.26 9.03 0.633 9.22 0.647 w64 32 18.95 7.88 0.416 7.93 0.418 14.96 7.76 0.519 7.77 0.519 14.99 7.67 0.512 7.70 0.514 w64 64 19.57 6.10 0.312 5.14 0.263 12.93 5.79 0.448 5.07 0.392 12.95 5.83 0.450 5.01 0.387 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio r32 0 13.57 61.07 4.500 15.83 1.166 9.05 50.32 5.560 15.83 1.749 9.04 49.80 5.509 13.56 1.500 r32 1 11.42 30.53 2.673 9.05 0.792 6.79 25.55 3.763 8.76 1.290 5.66 24.88 4.396 9.21 1.627 r32 2 13.57 31.67 2.334 12.47 0.919 9.05 26.26 2.902 12.24 1.352 9.39 26.02 2.771 11.42 1.216 r32 3 10.27 15.83 1.541 10.20 0.993 5.66 13.16 2.325 7.41 1.309 5.09 13.00 2.554 7.57 1.487 r32 4 12.53 13.01 1.038 12.85 1.025 7.43 12.23 1.646 9.65 1.299 7.08 11.43 1.614 9.03 1.275 r32 5 14.70 13.01 0.885 13.01 0.885 8.04 12.27 1.526 11.79 1.466 7.36 11.45 1.556 10.77 1.463 r32 6 16.96 13.01 0.767 13.01 0.767 11.31 12.24 1.082 11.79 1.042 11.30 11.45 1.013 10.78 0.954 r32 7 19.22 13.08 0.681 13.01 0.677 13.00 12.25 0.942 12.24 0.941 13.31 11.44 0.860 10.77 0.809 r32 8 10.74 6.50 0.605 6.51 0.606 7.57 6.12 0.808 5.90 0.779 7.35 5.72 0.778 5.38 0.732 r32 16 19.79 10.45 0.528 9.79 0.495 14.37 10.27 0.715 9.80 0.682 14.27 9.82 0.688 9.20 0.645 r32 32 10.39 2.62 0.252 2.46 0.237 7.54 2.58 0.342 2.45 0.325 7.49 2.46 0.328 2.30 0.307 r32 64 19.57 4.15 0.212 4.15 0.212 12.99 4.22 0.325 4.07 0.313 12.94 3.95 0.305 3.89 0.301 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio r64 0 13.57 63.35 4.668 15.83 1.166 9.05 49.78 5.501 15.84 1.750 9.05 47.56 5.255 13.56 1.498 r64 1 11.17 32.80 2.936 9.05 0.810 6.80 26.01 3.825 8.67 1.275 5.65 24.89 4.405 9.20 1.628 r64 2 13.57 27.16 2.001 12.44 0.917 10.47 24.66 2.355 12.25 1.170 9.29 23.17 2.494 11.11 1.196 r64 3 10.30 13.58 1.318 8.10 0.786 6.02 12.28 2.040 7.44 1.236 5.31 11.51 2.168 7.90 1.488 r64 4 12.56 13.58 1.081 10.74 0.855 6.57 12.22 1.860 9.89 1.505 6.94 11.76 1.695 9.11 1.313 r64 5 14.70 16.97 1.154 15.83 1.077 9.08 14.84 1.634 14.21 1.565 7.36 14.23 1.933 13.10 1.780 r64 6 16.96 16.97 1.001 15.83 0.933 11.36 14.81 1.304 14.28 1.257 11.30 14.21 1.258 13.02 1.152 r64 7 19.23 16.97 0.882 15.83 0.823 12.44 14.81 1.190 14.27 1.147 13.15 14.21 1.081 13.01 0.989 r64 8 10.74 10.25 0.954 9.61 0.895 7.13 10.12 1.419 9.66 1.355 7.49 9.78 1.306 9.06 1.210 r64 16 19.79 10.38 0.525 9.74 0.492 14.20 10.21 0.719 9.68 0.682 14.23 9.81 0.689 9.07 0.637 r64 32 10.46 4.06 0.388 4.11 0.393 6.95 4.13 0.594 4.02 0.578 7.51 3.94 0.525 3.87 0.515 r64 64 19.58 5.13 0.262 5.14 0.262 13.05 5.77 0.442 5.56 0.426 12.95 5.62 0.434 5.50 0.425 |--------------- amd64 ----------------| |----------------- c ------------------| |---------------- llvm ----------------| elt l g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio g1591902 gdaae91d ratio g12a46a7 ratio w8*w64 0 13.81 52.06 3.770 15.84 1.147 9.06 45.26 4.995 15.84 1.748 9.05 45.27 5.002 13.77 1.522 w8*w64 1 12.69 23.36 1.841 11.55 0.910 7.93 23.13 2.917 10.19 1.285 7.93 21.59 2.723 11.03 1.391 w8*w64 2 19.39 23.47 1.210 18.32 0.945 12.91 23.02 1.783 16.17 1.253 11.32 21.48 1.898 14.73 1.301 w8*w64 3 13.05 14.52 1.113 12.47 0.955 7.92 13.49 1.703 10.18 1.285 7.36 13.32 1.810 10.20 1.386 w8*w64 4 16.43 18.73 1.140 15.85 0.965 10.22 19.48 1.906 13.34 1.305 9.36 18.05 1.928 12.45 1.330 w8*w64 5 19.82 18.75 0.946 19.06 0.962 11.32 19.25 1.701 19.39 1.713 10.75 18.14 1.687 18.44 1.715 w8*w64 6 11.62 9.34 0.804 9.56 0.823 6.51 9.70 1.490 9.67 1.485 6.23 9.13 1.465 9.19 1.475 w8*w64 7 13.31 9.35 0.702 9.55 0.717 7.91 9.64 1.219 9.72 1.229 7.08 9.12 1.288 9.25 1.306 w8*w64 8 15.01 9.44 0.629 9.66 0.644 8.82 9.71 1.101 9.73 1.103 7.92 9.03 1.140 9.19 1.160 w8*w64 16 14.28 7.89 0.553 7.94 0.556 7.78 7.77 0.999 7.78 1.000 7.48 7.58 1.013 7.71 1.031 w8*w64 32 15.11 5.63 0.373 5.15 0.341 7.67 5.08 0.662 5.04 0.657 7.41 4.94 0.667 5.02 0.677 w8*w64 64 14.35 3.72 0.259 3.76 0.262 8.68 3.71 0.427 4.03 0.464 8.69 3.65 0.420 4.07 0.468 Compare: https://github.com/MLton/mlton/compare/159190284e12...ea79eb674ece |
From: GitHub <no...@gi...> - 2017-07-25 13:28:09
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 82d85ced4663f0d2f206daabe0eb0175bd245a0e https://github.com/MLton/mlton/commit/82d85ced4663f0d2f206daabe0eb0175bd245a0e Author: favonia <fa...@gm...> Date: 2017-07-22 (Sat, 22 Jul 2017) Changed paths: M mlton/main/main.fun Log Message: ----------- Force PIC generation on AMD64. Commit: 159190284e1268fded189104705939fe3b691b12 https://github.com/MLton/mlton/commit/159190284e1268fded189104705939fe3b691b12 Author: Matthew Fluet <Mat...@gm...> Date: 2017-07-25 (Tue, 25 Jul 2017) Changed paths: M mlton/main/main.fun Log Message: ----------- Merge pull request #190 from favonia/force-pic-on-amd64 Force PIC generation on AMD64. Compare: https://github.com/MLton/mlton/compare/8d18143ef243...159190284e12 |
From: GitHub <no...@gi...> - 2017-07-15 10:37:15
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: c745fe9ea2ada005f50be509bc9eb5b21b584963 https://github.com/MLton/mlton/commit/c745fe9ea2ada005f50be509bc9eb5b21b584963 Author: Jason Carr <ja...@ri...> Date: 2017-07-13 (Thu, 13 Jul 2017) Changed paths: M lib/mlton/basic/stream-parser.sig M lib/mlton/basic/stream-parser.sml M mlton/xml/parse-sxml.fun Log Message: ----------- Make compose take a char list parser instead of a char parser Commit: fb99bb042dcda32219ea8ced26bd55220def547e https://github.com/MLton/mlton/commit/fb99bb042dcda32219ea8ced26bd55220def547e Author: Jason Carr <ja...@ri...> Date: 2017-07-13 (Thu, 13 Jul 2017) Changed paths: M lib/mlton/basic/stream-parser.sml Log Message: ----------- Slightly worse error message. This usually shouldn't reach users Commit: 5f9efb25a25d32f34b2b3c7d9a379952ef4d9dd7 https://github.com/MLton/mlton/commit/5f9efb25a25d32f34b2b3c7d9a379952ef4d9dd7 Author: Jason Carr <ja...@ri...> Date: 2017-07-14 (Fri, 14 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fixed parser being too greedy with case expressions Commit: 8d18143ef2438ca1640f996ad6998373135a3cfb https://github.com/MLton/mlton/commit/8d18143ef2438ca1640f996ad6998373135a3cfb Author: Matthew Fluet <Mat...@gm...> Date: 2017-07-15 (Sat, 15 Jul 2017) Changed paths: M lib/mlton/basic/stream-parser.sig M lib/mlton/basic/stream-parser.sml M mlton/xml/parse-sxml.fun Log Message: ----------- Merge pull request #189 from jasoncarr0/stream-transformers Better stream transformers Compare: https://github.com/MLton/mlton/compare/ccc5fffb3745...8d18143ef243 |
From: GitHub <no...@gi...> - 2017-07-12 15:42:46
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: d106d0e8738457ea1e1b66821148017d7227afc5 https://github.com/MLton/mlton/commit/d106d0e8738457ea1e1b66821148017d7227afc5 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-12 (Wed, 12 Jul 2017) Changed paths: M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun Log Message: ----------- Fix SML/NJ build Commit: ccc5fffb37457d62b1ea56d0ef7457095e75fd75 https://github.com/MLton/mlton/commit/ccc5fffb37457d62b1ea56d0ef7457095e75fd75 Author: Matthew Fluet <Mat...@gm...> Date: 2017-07-12 (Wed, 12 Jul 2017) Changed paths: M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun Log Message: ----------- Merge pull request #188 from MatthewFluet/smlnj-build Fix SML/NJ build Compare: https://github.com/MLton/mlton/compare/5fa9173a5ee3...ccc5fffb3745 |
From: GitHub <no...@gi...> - 2017-07-12 02:33:53
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 29e32bcc5476579620db0ffaf602f9b8329c5ad4 https://github.com/MLton/mlton/commit/29e32bcc5476579620db0ffaf602f9b8329c5ad4 Author: Bryan Camp <bx...@ri...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/ssa/useless.fun Log Message: ----------- Implements new Prim definitions for WordArray_subWord and others. This is just he first run through of the code and it will likely need to be changed. Commit: f81b877340f13a71f18407b26e0c77282511ab60 https://github.com/MLton/mlton/commit/f81b877340f13a71f18407b26e0c77282511ab60 Author: Bryan Camp <bx...@ri...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Corrected errors in the Prim.toString. Prim.equals now checks both seqSize and eleSize for equality Prim.all will now generate all combinations of eleSize and seqSize Prim.checkApp now includes the seqSize when building WordArray_subWord/update and WordVector Commit: f5b14049598e63a82f63e9ad37a7085c9dff61bf https://github.com/MLton/mlton/commit/f5b14049598e63a82f63e9ad37a7085c9dff61bf Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Fix whitespace errors (tabs, trailing whitespace) Commit: 3e4750d3581957ef64b037de04ea2b4a616b8b4e https://github.com/MLton/mlton/commit/3e4750d3581957ef64b037de04ea2b4a616b8b4e Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim.fun M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Prefer record patterns to select expresions Commit: 3ff3826601fe17e8cbad5fc1ea6781f28542282a https://github.com/MLton/mlton/commit/3ff3826601fe17e8cbad5fc1ea6781f28542282a Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Reorder arguments to Prim.toString.wordSeq function Commit: 5fa9173a5ee36f837e38712c20f90d3aeb4c87a2 https://github.com/MLton/mlton/commit/5fa9173a5ee36f837e38712c20f90d3aeb4c87a2 Author: Matthew Fluet <Mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/ssa/useless.fun Log Message: ----------- Merge pull request #187 from Bxc8214/WordArray_Prims Generalize the | Word8Array_subWord of WordSize.t | Word8Array_updateWord of WordSize.t | Word8Vector_subWord of WordSize.t primitives to | WordArray_subWord of {seqSize:WordSize.t, eleSize: WordSize.t} | WordArray_updateWord of {seqSize: WordSize.t, eleSize: WordSize.t} | WordVector_subWord of {seqSize: WordSize.t, eleSize: WordSize.t} Compare: https://github.com/MLton/mlton/compare/0fb08a0022ad...5fa9173a5ee3 |
From: GitHub <no...@gi...> - 2017-07-12 01:57:07
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: fbc6462f0818fff705994b4f0196091f1cbcb272 https://github.com/MLton/mlton/commit/fbc6462f0818fff705994b4f0196091f1cbcb272 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb A lib/mlton/basic/stream-transformer.fun A lib/mlton/basic/stream-transformer.sig Log Message: ----------- Basic functions for stream transformers Commit: cfd5164cf2bd8ac7d7f93c2c46d98b9f7f0b2701 https://github.com/MLton/mlton/commit/cfd5164cf2bd8ac7d7f93c2c46d98b9f7f0b2701 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/stream.sig M lib/mlton/basic/stream.sml Log Message: ----------- Added fromList method to stream Commit: 30805d75bcf780918215800cc97e0cbdf886f89f https://github.com/MLton/mlton/commit/30805d75bcf780918215800cc97e0cbdf886f89f Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/sources.mlb Log Message: ----------- Add to sources Commit: 5adf4cb0d37a73d13e898d382cda80d76364bc25 https://github.com/MLton/mlton/commit/5adf4cb0d37a73d13e898d382cda80d76364bc25 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/stream-transformer.fun Log Message: ----------- Fix infix operators Commit: 78fca37736c06829be1b8882c91757637b3059b9 https://github.com/MLton/mlton/commit/78fca37736c06829be1b8882c91757637b3059b9 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/stream-transformer.fun M lib/mlton/basic/stream-transformer.sig Log Message: ----------- More improvements to stream-transformer Commit: fec03d13cea08ac192fe083289eeb8fab1e36007 https://github.com/MLton/mlton/commit/fec03d13cea08ac192fe083289eeb8fab1e36007 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb A lib/mlton/basic/stream-parser.fun A lib/mlton/basic/stream-parser.sig R lib/mlton/basic/stream-transformer.fun R lib/mlton/basic/stream-transformer.sig Log Message: ----------- Changed to use only chars, renamed to stream-parser Commit: 76a182e18c1da6f837df661eba836843a5b064ad https://github.com/MLton/mlton/commit/76a182e18c1da6f837df661eba836843a5b064ad Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/sources.mlb M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig M lib/mlton/basic/stream.sig M lib/mlton/basic/stream.sml Log Message: ----------- Added <|> and sat, fixed fail Commit: b01b0a7ee2401bf51775a75783c5608e09534717 https://github.com/MLton/mlton/commit/b01b0a7ee2401bf51775a75783c5608e09534717 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/sources.cm M lib/mlton/sources.mlb Log Message: ----------- Updated lib/mlton sources Commit: 9b0df190064eda766149588b5fc38ca63d0c7593 https://github.com/MLton/mlton/commit/9b0df190064eda766149588b5fc38ca63d0c7593 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig Log Message: ----------- Change pos int -> {line, column},Add File.t reader Commit: 53feefca49c5d1c9fcb7ea144862ec204a02008d https://github.com/MLton/mlton/commit/53feefca49c5d1c9fcb7ea144862ec204a02008d Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig Log Message: ----------- File info, fixed failing Commit: 3d33ff7b3b5923e688b881ed643f05b1325e28b7 https://github.com/MLton/mlton/commit/3d33ff7b3b5923e688b881ed643f05b1325e28b7 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/stream.sml Log Message: ----------- Fixed firstNSafe being reversed sometimes Commit: 30a2a5da77cd2b71b41350df98c83a6314503aef https://github.com/MLton/mlton/commit/30a2a5da77cd2b71b41350df98c83a6314503aef Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/atoms/prim-tycons.fun M mlton/atoms/prim-tycons.sig Log Message: ----------- Formal layout on hash type / tycons Commit: a781b1b231f791affb5abac4413c98e1f2df9cde https://github.com/MLton/mlton/commit/a781b1b231f791affb5abac4413c98e1f2df9cde Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M mlton/atoms/prim-tycons.fun Log Message: ----------- Fixed warning Commit: d25c3636bf32bfa0b111241b01ed8df5a6bfed30 https://github.com/MLton/mlton/commit/d25c3636bf32bfa0b111241b01ed8df5a6bfed30 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- XmlTree now displays its types as formal Commit: 12915cf878b05b7428b59ca0d7a17f0b42ee201f https://github.com/MLton/mlton/commit/12915cf878b05b7428b59ca0d7a17f0b42ee201f Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig Log Message: ----------- Operators and monadic bind Commit: d85385d4089bb3afc6e71ce55321a106db9d18cb https://github.com/MLton/mlton/commit/d85385d4089bb3afc6e71ce55321a106db9d18cb Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: A mlton/xml/parse-sxml.fun A mlton/xml/parse-sxml.sig M mlton/xml/sources.cm M mlton/xml/sources.mlb Log Message: ----------- parse-sxml; I really should have commmited this earlier Commit: 65d331e48f842ba0ae606a7f69cbbda18a1badd8 https://github.com/MLton/mlton/commit/65d331e48f842ba0ae606a7f69cbbda18a1badd8 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Removed test; Vector.fromList [] -> Vector.new0 () Commit: abcc9b494dbbe382e91068bddae36d85e8210722 https://github.com/MLton/mlton/commit/abcc9b494dbbe382e91068bddae36d85e8210722 Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- VarExp Commit: 0b090045165f53e4d607df15257e7594b80ffc4f https://github.com/MLton/mlton/commit/0b090045165f53e4d607df15257e7594b80ffc4f Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun Log Message: ----------- Fix position/file info; Add position to fail Commit: 57683693b8f7dc65737c883316f547bcb3cf988d https://github.com/MLton/mlton/commit/57683693b8f7dc65737c883316f547bcb3cf988d Author: Jason Carr <ja...@ri...> Date: 2017-06-12 (Mon, 12 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Identifiers fixed to correctly work on operators Commit: 9299aba053d1ea0de1a979516e94a270573abb96 https://github.com/MLton/mlton/commit/9299aba053d1ea0de1a979516e94a270573abb96 Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Generic hunk of improvements Commit: 172c591b4e2eb8f30b55a4714845011f94095069 https://github.com/MLton/mlton/commit/172c591b4e2eb8f30b55a4714845011f94095069 Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Improved string parsing to handle escapes Commit: acc7d90032ec2f9f8387e4ed2b0055f7ed51280f https://github.com/MLton/mlton/commit/acc7d90032ec2f9f8387e4ed2b0055f7ed51280f Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Applied improvements to string const, moved extend on raise Commit: 4e738c43077c521ad1a91a6909b91b2edb7880bd https://github.com/MLton/mlton/commit/4e738c43077c521ad1a91a6909b91b2edb7880bd Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Update xml tree layout; Add new, extend, prim Commit: 6e4d45b74ae99df1edcd31e3707b0cd7d8cac008 https://github.com/MLton/mlton/commit/6e4d45b74ae99df1edcd31e3707b0cd7d8cac008 Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Token now eats trailing spaces Commit: afd2f603418c219f31e0fa519d9c3ede955bb582 https://github.com/MLton/mlton/commit/afd2f603418c219f31e0fa519d9c3ede955bb582 Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- ConApp, start of PrimApp Commit: 56c97d213beeb788b54bf0d6d45d3221197e1bb2 https://github.com/MLton/mlton/commit/56c97d213beeb788b54bf0d6d45d3221197e1bb2 Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig Log Message: ----------- Add fromReader, toReader to StreamParser Commit: d07bdcaf4b80c4c948eab628ae873d8f80d2357e https://github.com/MLton/mlton/commit/d07bdcaf4b80c4c948eab628ae873d8f80d2357e Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Prim app resolving Commit: 3a087b51933dda21aae39d3e64fb2003cddfd4d1 https://github.com/MLton/mlton/commit/3a087b51933dda21aae39d3e64fb2003cddfd4d1 Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig M mlton/xml/parse-sxml.fun Log Message: ----------- Add StreamParser.Ops with infix operators Commit: 92e823e61ad07e278bed11c1a1ea723ee5b270f4 https://github.com/MLton/mlton/commit/92e823e61ad07e278bed11c1a1ea723ee5b270f4 Author: Jason Carr <ja...@ri...> Date: 2017-06-13 (Tue, 13 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Uses proper word parsing now Commit: d2b7c595cbe388a2ae5f92ad1e0f5ae2076313f2 https://github.com/MLton/mlton/commit/d2b7c595cbe388a2ae5f92ad1e0f5ae2076313f2 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Add lambdas Commit: 137f1506448fb9a26533bb9b2f8fea83efaccd70 https://github.com/MLton/mlton/commit/137f1506448fb9a26533bb9b2f8fea83efaccd70 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.sig Log Message: ----------- Add each to signature Commit: f9b46050eea9dfab38c9c5bcbc2f02a47d228c54 https://github.com/MLton/mlton/commit/f9b46050eea9dfab38c9c5bcbc2f02a47d228c54 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Add Select, Profile Commit: ae37e7f441821daed46411f20c809fb78905dae4 https://github.com/MLton/mlton/commit/ae37e7f441821daed46411f20c809fb78905dae4 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun M mlton/xml/xml-tree.fun Log Message: ----------- Add case expressions Commit: 8eaa6cef1c539df6afcdb7a2a9ccb849ce8b0651 https://github.com/MLton/mlton/commit/8eaa6cef1c539df6afcdb7a2a9ccb849ce8b0651 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fix cases with | Commit: 3f1f4addb42426e0c507223715fc92ad89d43458 https://github.com/MLton/mlton/commit/3f1f4addb42426e0c507223715fc92ad89d43458 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fix empty let Commit: ec23c7fe9df9de2561b4afca8adbe8c39c21bbc7 https://github.com/MLton/mlton/commit/ec23c7fe9df9de2561b4afca8adbe8c39c21bbc7 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fix prim error, default case Commit: adeb199e356550de26ce634cce879e7f873d51a4 https://github.com/MLton/mlton/commit/adeb199e356550de26ce634cce879e7f873d51a4 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Add val rec Commit: 486935d4d84476e990e552bde415cca719c8e76b https://github.com/MLton/mlton/commit/486935d4d84476e990e552bde415cca719c8e76b Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Add symbol method to act like token for robustness and consistency Commit: 9a4a5311c2860d0f1a55f31b2a806dae528115fe https://github.com/MLton/mlton/commit/9a4a5311c2860d0f1a55f31b2a806dae528115fe Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Cleanup lines Commit: 7baf42792c1b5b1752e337b40e3b1fc8c4db7648 https://github.com/MLton/mlton/commit/7baf42792c1b5b1752e337b40e3b1fc8c4db7648 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig Log Message: ----------- Rework StreamParser to replace use of exceptions Commit: 7bdaa2e12098a657c46f37f838632750a3efb2d6 https://github.com/MLton/mlton/commit/7bdaa2e12098a657c46f37f838632750a3efb2d6 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig Log Message: ----------- Cleanup; add cut to signature Commit: 3019050558f47162cb12a9e00089d33ad88f70f6 https://github.com/MLton/mlton/commit/3019050558f47162cb12a9e00089d33ad88f70f6 Author: Jason Carr <ja...@ri...> Date: 2017-06-14 (Wed, 14 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fix selection broken by symbol change Commit: 01c767efe04ff2da9c19db2a7c2d259d0665e5ce https://github.com/MLton/mlton/commit/01c767efe04ff2da9c19db2a7c2d259d0665e5ce Author: Jason Carr <ja...@ri...> Date: 2017-06-15 (Thu, 15 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig Log Message: ----------- Add StreamParser compose Commit: 2f41a0f893c311dd8326653bb9bc3c790affe1ef https://github.com/MLton/mlton/commit/2f41a0f893c311dd8326653bb9bc3c790affe1ef Author: Jason Carr <ja...@ri...> Date: 2017-06-15 (Thu, 15 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun Log Message: ----------- Fix some cuts Commit: 2040bbae0cdebb28d7d2457b8829203245b70397 https://github.com/MLton/mlton/commit/2040bbae0cdebb28d7d2457b8829203245b70397 Author: Jason Carr <ja...@ri...> Date: 2017-06-15 (Thu, 15 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Add comment handling Commit: d478f82046130dafd7673b651db7b8d76453d94f https://github.com/MLton/mlton/commit/d478f82046130dafd7673b651db7b8d76453d94f Author: Jason Carr <ja...@ri...> Date: 2017-06-15 (Thu, 15 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun Log Message: ----------- Fixed cut semantics for many/any Commit: c20dd3456f52e8e23225b0ccfe1dba0d65a1eaef https://github.com/MLton/mlton/commit/c20dd3456f52e8e23225b0ccfe1dba0d65a1eaef Author: Jason Carr <ja...@ri...> Date: 2017-06-15 (Thu, 15 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Added cuts for better decisions/error messages Commit: 91fad13d65b0d3ff365d230ea7f359effc9656a6 https://github.com/MLton/mlton/commit/91fad13d65b0d3ff365d230ea7f359effc9656a6 Author: Jason Carr <ja...@ri...> Date: 2017-06-16 (Fri, 16 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Real parsing Commit: 5952fa76cf527d8bf860dc21db683996fd1b87ff https://github.com/MLton/mlton/commit/5952fa76cf527d8bf860dc21db683996fd1b87ff Author: Jason Carr <ja...@ri...> Date: 2017-06-19 (Mon, 19 Jun 2017) Changed paths: 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/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/io.fun 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/posix/io.sml M basis-library/primitive/prim-basis.mlb M basis-library/primitive/primitive.mlb M basis-library/sml-nj.mlb M basis-library/unsafe.mlb M bin/regression M doc/guide/src/MLBasisAnnotationExamples.adoc M doc/guide/src/MLBasisAnnotations.adoc M lib/ckit-lib/ckit.patch M lib/cml/cml-lib/cml-lib.mlb M lib/cml/core-cml/core-cml.mlb M lib/cml/util/util.mlb 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/mlton/basic/sources.mlb 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/mlyacc-lib/mlyacc-lib.mlb M lib/smlnj-lib/smlnj-lib.patch 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-modules.fun M mlton/ast/ast-programs.fun M mlton/atoms/generic-scheme.fun M mlton/atoms/hash-type.fun M mlton/atoms/prim-tycons.fun M mlton/atoms/record.fun M mlton/atoms/record.sig M mlton/atoms/type-ops.fun M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig M mlton/backend/backend.fun 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/switch.fun M mlton/closure-convert/abstract-value.fun 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/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-env.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/precedence-parse.fun M mlton/elaborate/scope.fun M mlton/elaborate/type-env.fun M mlton/front-end/ml.grm 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/direct-exp.fun M mlton/ssa/direct-exp2.fun M mlton/ssa/known-case.fun M mlton/ssa/local-ref.fun M mlton/ssa/poly-equal.fun M mlton/ssa/poly-hash.fun M mlton/ssa/profile.fun M mlton/ssa/profile2.fun M mlton/ssa/remove-unused.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify-types.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/type-check.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 M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/type-check.fun M mlton/xml/xml-tree.fun Log Message: ----------- Merge branch 'master' of https://github.com/MLton/mlton into stream-transformers Commit: 1d5136c17a9d35d8996444b5cff5ccad4b036d8d https://github.com/MLton/mlton/commit/1d5136c17a9d35d8996444b5cff5ccad4b036d8d Author: Jason Carr <ja...@ri...> Date: 2017-06-19 (Mon, 19 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun Log Message: ----------- End of file messages for string, char, location Commit: 39e13ca984dd89ccfcc350ce9a193ab7537bd83a https://github.com/MLton/mlton/commit/39e13ca984dd89ccfcc350ce9a193ab7537bd83a Author: Jason Carr <ja...@ri...> Date: 2017-06-19 (Mon, 19 Jun 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/xml/xml-tree.fun Log Message: ----------- Change output to include all C function information Commit: 0037b646e4fb83f18c478446e5f147aca134b373 https://github.com/MLton/mlton/commit/0037b646e4fb83f18c478446e5f147aca134b373 Author: Jason Carr <ja...@ri...> Date: 2017-06-19 (Mon, 19 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Add parsing for C functions Commit: 75d2d3494e8ada25d3a688f51ad1eb0c27adbc54 https://github.com/MLton/mlton/commit/75d2d3494e8ada25d3a688f51ad1eb0c27adbc54 Author: Jason Carr <ja...@ri...> Date: 2017-06-19 (Mon, 19 Jun 2017) Changed paths: M mlton/xml/sources.mlb Log Message: ----------- Remove unintended test.sml from xml/sources Commit: 5c8b23c20f9cccd0d0a3fd8e499d685d39aedc34 https://github.com/MLton/mlton/commit/5c8b23c20f9cccd0d0a3fd8e499d685d39aedc34 Author: Jason Carr <ja...@ri...> Date: 2017-06-19 (Mon, 19 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig M mlton/xml/parse-sxml.fun Log Message: ----------- Add many(Chars)Failing to simplify/later optimize Commit: e85739e423a7cb02d719265dfbced8c92a213044 https://github.com/MLton/mlton/commit/e85739e423a7cb02d719265dfbced8c92a213044 Author: Jason Carr <ja...@ri...> Date: 2017-06-19 (Mon, 19 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun Log Message: ----------- Rewrite string to lower overhead Commit: 7ca7629883968cfc68676ca914bcbdb98b497a97 https://github.com/MLton/mlton/commit/7ca7629883968cfc68676ca914bcbdb98b497a97 Author: Jason Carr <ja...@ri...> Date: 2017-06-21 (Wed, 21 Jun 2017) Changed paths: M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun M mlton/xml/parse-sxml.fun M mlton/xml/sources.mlb M mlton/xml/xml-tree.fun Log Message: ----------- Technically can make it to compile with .sxml files Commit: 8efea476742bdfdb10160d409c60a2963f3feace https://github.com/MLton/mlton/commit/8efea476742bdfdb10160d409c60a2963f3feace Author: Jason Carr <ja...@ri...> Date: 2017-06-23 (Fri, 23 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fix name resolvers Commit: fbee09b3f5aeb67b741479ad00ae0579a7b56234 https://github.com/MLton/mlton/commit/fbee09b3f5aeb67b741479ad00ae0579a7b56234 Author: Jason Carr <ja...@ri...> Date: 2017-06-26 (Mon, 26 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig M lib/mlton/basic/stream.sig M lib/mlton/basic/stream.sml Log Message: ----------- Comments + Copyright Commit: 1a2c844f62b17c790ed5ebcee502b8a3bb63ac03 https://github.com/MLton/mlton/commit/1a2c844f62b17c790ed5ebcee502b8a3bb63ac03 Author: Jason Carr <ja...@ri...> Date: 2017-06-26 (Mon, 26 Jun 2017) Changed paths: M lib/mlton/basic/stream-parser.fun Log Message: ----------- Correct filename for parseWithFile Commit: a8f718b6e6d59a9bd422921cbb8bd7edec6140a9 https://github.com/MLton/mlton/commit/a8f718b6e6d59a9bd422921cbb8bd7edec6140a9 Author: Jason Carr <ja...@ri...> Date: 2017-06-27 (Tue, 27 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fix ProfileExp parse Commit: b2225e0040381e32d14237f594c39d4765e305f4 https://github.com/MLton/mlton/commit/b2225e0040381e32d14237f594c39d4765e305f4 Author: Jason Carr <ja...@ri...> Date: 2017-06-27 (Tue, 27 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun M mlton/xml/xml-tree.fun Log Message: ----------- Fix makeLambda to set inlining Commit: a42df1268d6582ca65bac020ab467d2d59b07ffc https://github.com/MLton/mlton/commit/a42df1268d6582ca65bac020ab467d2d59b07ffc Author: Jason Carr <ja...@ri...> Date: 2017-06-27 (Tue, 27 Jun 2017) Changed paths: M mlton/atoms/prim-tycons.fun Log Message: ----------- layoutFormal uses canonical names for constants Commit: 507483dcd48b11ae1cbac0f632272eee747f7776 https://github.com/MLton/mlton/commit/507483dcd48b11ae1cbac0f632272eee747f7776 Author: Jason Carr <ja...@ri...> Date: 2017-06-27 (Tue, 27 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun M mlton/xml/xml-tree.fun Log Message: ----------- Avoid (* in Tuple PrimExps Commit: 402aa8b5aaf25a1dd8887a3fb9ef5b7b776ccde3 https://github.com/MLton/mlton/commit/402aa8b5aaf25a1dd8887a3fb9ef5b7b776ccde3 Author: Jason Carr <ja...@ri...> Date: 2017-06-27 (Tue, 27 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Fix number parsing, add vector literals Commit: 15e4eb176f5097c5c1e7e8b4955e336b72005a05 https://github.com/MLton/mlton/commit/15e4eb176f5097c5c1e7e8b4955e336b72005a05 Author: Jason Carr <ja...@ri...> Date: 2017-06-27 (Tue, 27 Jun 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Continue fixes on real parsing Commit: a7f0eb19f4a0be8fe2abfc5093e991b2239ba409 https://github.com/MLton/mlton/commit/a7f0eb19f4a0be8fe2abfc5093e991b2239ba409 Author: Jason Carr <ja...@ri...> Date: 2017-06-27 (Tue, 27 Jun 2017) Changed paths: M mlton/xml/sources.cm Log Message: ----------- Add ParseSxml to xml/sources.cm Commit: b8c481155e373ecb439808dcfe4b276e49e4f2aa https://github.com/MLton/mlton/commit/b8c481155e373ecb439808dcfe4b276e49e4f2aa Author: Jason Carr <ja...@ri...> Date: 2017-06-30 (Fri, 30 Jun 2017) Changed paths: M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb R lib/mlton/basic/stream-parser.fun M lib/mlton/basic/stream-parser.sig A lib/mlton/basic/stream-parser.sml Log Message: ----------- Applied some suggested changes to lib/mlton/basic Commit: 8f2a22ecbec3c7cf8fd0349d92ba3a1bb541e735 https://github.com/MLton/mlton/commit/8f2a22ecbec3c7cf8fd0349d92ba3a1bb541e735 Author: Jason Carr <ja...@ri...> Date: 2017-07-03 (Mon, 03 Jul 2017) Changed paths: M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlton/main/compile.fun M mlton/main/main.fun Log Message: ----------- Fix main Commit: 12e8665b084b715aca8fbffd783e0c370e8c7203 https://github.com/MLton/mlton/commit/12e8665b084b715aca8fbffd783e0c370e8c7203 Author: Jason Carr <ja...@ri...> Date: 2017-07-06 (Thu, 06 Jul 2017) Changed paths: M mlton/atoms/hash-type.fun M mlton/atoms/prim-tycons.fun M mlton/atoms/prim-tycons.sig M mlton/atoms/prim.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig M mlton/elaborate/type-env.fun M mlton/xml/parse-sxml.sig Log Message: ----------- layoutApp -> layoutAppPretty, layoutFormal -> layoutApp in prim-tycons Commit: 5bd9b2db832e3c2a0c9ad267924a4fd4f1ab945c https://github.com/MLton/mlton/commit/5bd9b2db832e3c2a0c9ad267924a4fd4f1ab945c Author: Jason Carr <ja...@ri...> Date: 2017-07-06 (Thu, 06 Jul 2017) Changed paths: M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/elaborate/type-env.fun M mlton/xml/xml-tree.fun Log Message: ----------- HashType layoutFormal -> layout -> layoutPretty. Could affect a lot Commit: c2ef34083cd650c9da72eeddf02c479558f09b2e https://github.com/MLton/mlton/commit/c2ef34083cd650c9da72eeddf02c479558f09b2e Author: Jason Carr <ja...@ri...> Date: 2017-07-06 (Thu, 06 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun M mlton/xml/parse-sxml.sig Log Message: ----------- License on parse-sxml Commit: 2cf2818dcf53e88f3ac2303d2b1000b90ad63a44 https://github.com/MLton/mlton/commit/2cf2818dcf53e88f3ac2303d2b1000b90ad63a44 Author: Jason Carr <ja...@ri...> Date: 2017-07-06 (Thu, 06 Jul 2017) Changed paths: M mlton/atoms/prim-tycons.fun M mlton/xml/sources.cm M mlton/xml/sources.mlb Log Message: ----------- Remove more unused Commit: a93c12dbd8f0b91000ee882c489bf09bcd43c814 https://github.com/MLton/mlton/commit/a93c12dbd8f0b91000ee882c489bf09bcd43c814 Author: Jason Carr <ja...@ri...> Date: 2017-07-06 (Thu, 06 Jul 2017) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Remove tuple special case Commit: 68bdc5ced6e688a64b19ca2761db2bdc924c3e99 https://github.com/MLton/mlton/commit/68bdc5ced6e688a64b19ca2761db2bdc924c3e99 Author: Jason Carr <ja...@ri...> Date: 2017-07-06 (Thu, 06 Jul 2017) Changed paths: M mlton/atoms/prim-tycons.fun Log Message: ----------- Reverse previous removal, is not unused Commit: b7385ac056c02476b94225a686b2caa25dfcf005 https://github.com/MLton/mlton/commit/b7385ac056c02476b94225a686b2caa25dfcf005 Author: Jason Carr <ja...@ri...> Date: 2017-07-06 (Thu, 06 Jul 2017) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/xml/xml-tree.fun Log Message: ----------- Uncurry layoutFull Commit: 5007b1f43904961763166f80dbf8879815bf5ad5 https://github.com/MLton/mlton/commit/5007b1f43904961763166f80dbf8879815bf5ad5 Author: Jason Carr <ja...@ri...> Date: 2017-07-06 (Thu, 06 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Remove appExp Commit: 1d5f62e049a6db57ee48a8238f796ef1ba44b6c9 https://github.com/MLton/mlton/commit/1d5f62e049a6db57ee48a8238f796ef1ba44b6c9 Author: Jason Carr <ja...@ri...> Date: 2017-07-07 (Fri, 07 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Parse exotic word sizes Commit: 8ac69b31e53ae81902fc5c10d00cf6ecb746b542 https://github.com/MLton/mlton/commit/8ac69b31e53ae81902fc5c10d00cf6ecb746b542 Author: Jason Carr <ja...@ri...> Date: 2017-07-07 (Fri, 07 Jul 2017) Changed paths: M mlton/atoms/prim-tycons.fun Log Message: ----------- Output canonical names the nice way Commit: 0477f107450e0bf552a16034dd9b96bdc6524fbd https://github.com/MLton/mlton/commit/0477f107450e0bf552a16034dd9b96bdc6524fbd Author: Jason Carr <ja...@ri...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M mlton/main/compile.fun Log Message: ----------- Sxml compile now uses In.t instead of slurping Commit: 0061577615295cb2e166908795e561fa830d5aa8 https://github.com/MLton/mlton/commit/0061577615295cb2e166908795e561fa830d5aa8 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M lib/mlton/basic/stream-parser.sig M lib/mlton/basic/stream-parser.sml M mlton/atoms/hash-type.fun M mlton/atoms/prim-tycons.fun M mlton/atoms/prim-tycons.sig M mlton/xml/parse-sxml.fun M mlton/xml/parse-sxml.sig Log Message: ----------- Fix whitespace errors (trailing whitespace) Commit: ee73c045a7b3661c314c36fcc91a608c3b59371c https://github.com/MLton/mlton/commit/ee73c045a7b3661c314c36fcc91a608c3b59371c Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/sources.cm M lib/mlton/sources.mlb Log Message: ----------- Alphabetize exports in sources.{cm,mlb} Commit: bc673b7e73e20eddf16b987fc6d6b673a4f29eb0 https://github.com/MLton/mlton/commit/bc673b7e73e20eddf16b987fc6d6b673a4f29eb0 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M lib/mlton/basic/stream.sig Log Message: ----------- Alphabetize `val fromList: ...` specification Commit: a5034c4865a2728903ec142addfe7b7ac93d0948 https://github.com/MLton/mlton/commit/a5034c4865a2728903ec142addfe7b7ac93d0948 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M mlton/atoms/prim.sig Log Message: ----------- Alphabetize `val layoutFull: ...` specification Commit: d521d4f37ee1036b993eb90cbe673012d8dc278b https://github.com/MLton/mlton/commit/d521d4f37ee1036b993eb90cbe673012d8dc278b Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M mlton/atoms/prim-tycons.sig Log Message: ----------- Alphabetize `val layoutApp: ...` specification Commit: 0ae4bdb257da103beb6f8861f14f1d8f3601c612 https://github.com/MLton/mlton/commit/0ae4bdb257da103beb6f8861f14f1d8f3601c612 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M mlton/atoms/prim-tycons.fun Log Message: ----------- Drop unused `open BindingStrength` Commit: 873ae8d05d851f6dd4c6598885739cdb2a6b16e4 https://github.com/MLton/mlton/commit/873ae8d05d851f6dd4c6598885739cdb2a6b16e4 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M mlton/main/compile.fun Log Message: ----------- Drop unused `structure Stream = Stream` functor argument Commit: 81d91fc21cabb03ad4c91878b6994a2dee3aa501 https://github.com/MLton/mlton/commit/81d91fc21cabb03ad4c91878b6994a2dee3aa501 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Constrain `functor ParseSxml` result structure by `PARSE_SXML` Commit: 19ad6834d73968ba516a8f0c17ea35e4db318b5a https://github.com/MLton/mlton/commit/19ad6834d73968ba516a8f0c17ea35e4db318b5a Author: Matthew Fluet <mat...@gm...> Date: 2017-07-10 (Mon, 10 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Drop unused `structure DE = DirectExp` in `functor ParseSxml` Commit: a7392854b2682f9143e88193617cd37c41204092 https://github.com/MLton/mlton/commit/a7392854b2682f9143e88193617cd37c41204092 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M lib/mlton/basic/stream.sml Log Message: ----------- Rewrite clausal function declaration Commit: e9195204730749705ca5afcf8791a4d9e662599c https://github.com/MLton/mlton/commit/e9195204730749705ca5afcf8791a4d9e662599c Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Rewrite clausal function declaration Commit: a90ad4814aa8723d7d1a646123610f956e07d859 https://github.com/MLton/mlton/commit/a90ad4814aa8723d7d1a646123610f956e07d859 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/xml/sources.cm M mlton/xml/sources.mlb Log Message: ----------- Alphabetize exports in sources.{cm,mlb} Commit: 88f04cc69773e81fe08cae188acab8632a056a94 https://github.com/MLton/mlton/commit/88f04cc69773e81fe08cae188acab8632a056a94 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/main/main.fun Log Message: ----------- Alphabetize Main.Place.t constructors Commit: 329649e397603878aea7637905696ce2a1314f99 https://github.com/MLton/mlton/commit/329649e397603878aea7637905696ce2a1314f99 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/hash-type.fun M mlton/atoms/prim-tycons.fun M mlton/main/compile.sig Log Message: ----------- Fix style and formatting. Commit: be7236b59cf6709db82b1c1f387af107c3816e7f https://github.com/MLton/mlton/commit/be7236b59cf6709db82b1c1f387af107c3816e7f Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim-tycons.fun Log Message: ----------- Simplify special-case printing of primitive tycons Could be further simplified if the original names of the arrow and tuple type constructors were "arrow" and "tuple", rather than "->" and "*", although a special case could still be needed for "unit". Commit: a6b9867eeeb71980c8f2c760d937fc004426dd5a https://github.com/MLton/mlton/commit/a6b9867eeeb71980c8f2c760d937fc004426dd5a Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Simplify special-case parsing of primitive tycons Commit: acf7f333583f6501acb9ab7022b93481ac0fbee0 https://github.com/MLton/mlton/commit/acf7f333583f6501acb9ab7022b93481ac0fbee0 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Simplify parsing of CType Commit: 6bb9e67d8172d2f950303cbce940ada5d72b5e78 https://github.com/MLton/mlton/commit/6bb9e67d8172d2f950303cbce940ada5d72b5e78 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/main/compile.fun Log Message: ----------- Start compilation of .sxml files at simplifySxml (rather than makeSsa) Judicious use of `-drop-pass` can be used to resume compilation from the point where the SXML file was generated. Commit: 213d93af9b5719c9a3efdef8966421418e82a36d https://github.com/MLton/mlton/commit/213d93af9b5719c9a3efdef8966421418e82a36d Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Parse exception declarations in SXML Commit: 97cac1fd481e8adb876e214daab56c4ec68beab6 https://github.com/MLton/mlton/commit/97cac1fd481e8adb876e214daab56c4ec68beab6 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Simplify parsing of an optional var at the end of a prim exp Commit: c2c6e346d0eae6253b704b2b7974bc8357f9e454 https://github.com/MLton/mlton/commit/c2c6e346d0eae6253b704b2b7974bc8357f9e454 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Unify special case parsing of primitive cons and primitive tycons Commit: 2a4262dbf88bbfff93a9182be98d0fa3afbccce5 https://github.com/MLton/mlton/commit/2a4262dbf88bbfff93a9182be98d0fa3afbccce5 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/atoms/prim-tycons.fun M mlton/xml/parse-sxml.fun Log Message: ----------- Eliminate special case printing/parsing of primitive tycons Commit: 94069430be71aee364012471f3964a4fbe765b38 https://github.com/MLton/mlton/commit/94069430be71aee364012471f3964a4fbe765b38 Author: Matthew Fluet <mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun Log Message: ----------- Wrap ParseSxml.parse in Control.passTypeCheck Commit: 0fb08a0022ad2c4c2ec4460d1d7bafdf3cd8701a https://github.com/MLton/mlton/commit/0fb08a0022ad2c4c2ec4460d1d7bafdf3cd8701a Author: Matthew Fluet <Mat...@gm...> Date: 2017-07-11 (Tue, 11 Jul 2017) Changed paths: M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb A lib/mlton/basic/stream-parser.sig A lib/mlton/basic/stream-parser.sml M lib/mlton/basic/stream.sig M lib/mlton/basic/stream.sml M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/atoms/prim-tycons.fun M mlton/atoms/prim-tycons.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/elaborate/elaborate-env.fun M mlton/elaborate/interface.fun M mlton/elaborate/interface.sig M mlton/elaborate/type-env.fun M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun A mlton/xml/parse-sxml.fun A mlton/xml/parse-sxml.sig M mlton/xml/sources.cm M mlton/xml/sources.mlb M mlton/xml/xml-tree.fun Log Message: ----------- Merge pull request #186 from jasoncarr0/stream-transformers Three major features: * Add a parser combinator library (`structure StreamParser`) to the MLton Library * Add a paser for the SXML IL (`structure ParseSxml`) * Allow compilation to start with a .sxml file Compare: https://github.com/MLton/mlton/compare/6c18e44220a6...0fb08a0022ad |
From: GitHub <no...@gi...> - 2017-06-29 22:11:24
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: e00e9247ffdd9dcf9762006a35c67b275d2aaf66 https://github.com/MLton/mlton/commit/e00e9247ffdd9dcf9762006a35c67b275d2aaf66 Author: MATTHEW JOHN SURAWSKI <mj...@cs...> Date: 2016-02-16 (Tue, 16 Feb 2016) Changed paths: A mlton/ssa/loop-unroll.fun A mlton/ssa/loop-unswitch.fun M mlton/ssa/simplify.fun M mlton/ssa/sources.mlb Log Message: ----------- Added optimization pass skeletons Commit: 48de964b11182abda6eba14710b9a9df5194d034 https://github.com/MLton/mlton/commit/48de964b11182abda6eba14710b9a9df5194d034 Author: Matt Surawski <mj...@ri...> Date: 2016-03-02 (Wed, 02 Mar 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Can traverse loop forests Commit: 4b10229e629f5699b44b4287688daabd73351a4b https://github.com/MLton/mlton/commit/4b10229e629f5699b44b4287688daabd73351a4b Author: Matt Surawski <mj...@ri...> Date: 2016-03-02 (Wed, 02 Mar 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Handle top level loop forest specially Commit: c3bc3a03b5c368ddea2c4cca124100e30910f89b https://github.com/MLton/mlton/commit/c3bc3a03b5c368ddea2c4cca124100e30910f89b Author: MATTHEW JOHN SURAWSKI <mj...@cs...> Date: 2016-03-02 (Wed, 02 Mar 2016) Changed paths: A mlton/ssa/loop-unroll.fun A mlton/ssa/loop-unswitch.fun M mlton/ssa/simplify.fun M mlton/ssa/sources.mlb Log Message: ----------- Added optimization pass skeletons Commit: fd96bcbdd277603f6ba7bc4b773650036999611b https://github.com/MLton/mlton/commit/fd96bcbdd277603f6ba7bc4b773650036999611b Author: Matt Surawski <mj...@ri...> Date: 2016-03-02 (Wed, 02 Mar 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Can traverse loop forests Commit: c08cd1435b826877d41811bcc13afb533651b818 https://github.com/MLton/mlton/commit/c08cd1435b826877d41811bcc13afb533651b818 Author: Matt Surawski <mj...@ri...> Date: 2016-03-02 (Wed, 02 Mar 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Handle top level loop forest specially Commit: 9aab6c69deb47f444e6d16d3b3f0eba0a2a07df9 https://github.com/MLton/mlton/commit/9aab6c69deb47f444e6d16d3b3f0eba0a2a07df9 Author: Matt Surawski <mj...@ri...> Date: 2016-03-02 (Wed, 02 Mar 2016) Log Message: ----------- Merge branch 'loop-optimizations' of github.com:MattSurawski/mlton into loop-optimizations Commit: cb8b90bf5fc4caca6e95777677cbe8935fc87ac0 https://github.com/MLton/mlton/commit/cb8b90bf5fc4caca6e95777677cbe8935fc87ac0 Author: Matt Surawski <mj...@ri...> Date: 2016-03-14 (Mon, 14 Mar 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Found default case bug, about to fix Commit: 17522f0ca5de2e7d0ff806a2a294983ceed1b0ee https://github.com/MLton/mlton/commit/17522f0ca5de2e7d0ff806a2a294983ceed1b0ee Author: Matt Surawski <mj...@ri...> Date: 2016-03-14 (Mon, 14 Mar 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Fixed default case bug Commit: 22f5b7281dc6031edfbaec56b6854cabd136cc3f https://github.com/MLton/mlton/commit/22f5b7281dc6031edfbaec56b6854cabd136cc3f Author: Matt Surawski <mj...@ri...> Date: 2016-03-14 (Mon, 14 Mar 2016) Changed paths: M lib/mlton/basic/directed-graph.sig M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig Log Message: ----------- Readded loop forest dot production Commit: c9aeeb9b1b2453e443b96f83e0769e744fc5f5a7 https://github.com/MLton/mlton/commit/c9aeeb9b1b2453e443b96f83e0769e744fc5f5a7 Author: Matt Surawski <mj...@ri...> Date: 2016-03-14 (Mon, 14 Mar 2016) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Added cleanup pass for unswitching Commit: 0a275d5175b8324f629de14b67cd5fd24b994297 https://github.com/MLton/mlton/commit/0a275d5175b8324f629de14b67cd5fd24b994297 Author: Matt Surawski <mj...@ri...> Date: 2016-03-14 (Mon, 14 Mar 2016) Changed paths: A test2/build.sh A test2/makeSVG.sh A test2/unswitch1.sml A test2/unswitchFail.sml Log Message: ----------- Added tests Commit: f3adb076728179d4c1d3a4898bf4918c7c6e724b https://github.com/MLton/mlton/commit/f3adb076728179d4c1d3a4898bf4918c7c6e724b Author: Matt Surawski <mj...@ri...> Date: 2016-03-14 (Mon, 14 Mar 2016) Changed paths: M test2/unswitch1.sml M test2/unswitchFail.sml Log Message: ----------- Fixed tests returning 0 Commit: 81eed776960f378a92f68e718611e78ce00be9c5 https://github.com/MLton/mlton/commit/81eed776960f378a92f68e718611e78ce00be9c5 Author: Matt Surawski <mj...@ri...> Date: 2016-03-14 (Mon, 14 Mar 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Finished unswitching implementation Commit: cd2a5fe45b2b2cd582477d7f09d03344f8f3d813 https://github.com/MLton/mlton/commit/cd2a5fe45b2b2cd582477d7f09d03344f8f3d813 Author: Matt Surawski <mj...@ri...> Date: 2016-03-14 (Mon, 14 Mar 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Cleaned up implementation Commit: c3899dbf46b32c27020bbf62fda96b89eb75c15f https://github.com/MLton/mlton/commit/c3899dbf46b32c27020bbf62fda96b89eb75c15f Author: Matt Surawski <mj...@ri...> Date: 2016-03-18 (Fri, 18 Mar 2016) Changed paths: A test2/unrollDemo.sml A test2/unswitchDemo.sml Log Message: ----------- Added unswitching and unrolling examples that produce nice CFGs Commit: 96cc10f973a234dc8f2babfeb2f70c23db9821d4 https://github.com/MLton/mlton/commit/96cc10f973a234dc8f2babfeb2f70c23db9821d4 Author: Matt Surawski <mj...@ri...> Date: 2016-03-20 (Sun, 20 Mar 2016) Changed paths: A test2/unrollArray.sml A test2/unrollList.sml A test2/unrollVector.sml Log Message: ----------- Added test cases for arrays, lists, and vectors Commit: a39a132677c20a7a446f2fb9b75c083f4987931f https://github.com/MLton/mlton/commit/a39a132677c20a7a446f2fb9b75c083f4987931f Author: Matt Surawski <mj...@ri...> Date: 2016-04-01 (Fri, 01 Apr 2016) Changed paths: M mlton/ssa/loop-unswitch.fun M mlton/ssa/simplify.fun Log Message: ----------- Improved loopUnswitch diagnostics, added multiple unswitch passes Commit: fc4069ac9a719251b2d8e040c52e5a0ec27d2e76 https://github.com/MLton/mlton/commit/fc4069ac9a719251b2d8e040c52e5a0ec27d2e76 Author: Matt Surawski <mj...@ri...> Date: 2016-04-14 (Thu, 14 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Got basic loop unrolling working Commit: 06db558f465204fd43a2e972265bd1c5fe6ae1f9 https://github.com/MLton/mlton/commit/06db558f465204fd43a2e972265bd1c5fe6ae1f9 Author: Matt Surawski <mj...@ri...> Date: 2016-04-14 (Thu, 14 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Now uses IntInf instead of int for computing induction variables Commit: 49d13be47e68c7342d6860074377cd7096b9bc0b https://github.com/MLton/mlton/commit/49d13be47e68c7342d6860074377cd7096b9bc0b Author: Matt Surawski <mj...@ri...> Date: 2016-04-14 (Thu, 14 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Fixed arg type bug and nullary loop bug. Added counters Commit: 8d3e9930084e60ccb7e62e619ac37b3ef6e54800 https://github.com/MLton/mlton/commit/8d3e9930084e60ccb7e62e619ac37b3ef6e54800 Author: Matt Surawski <mj...@ri...> Date: 2016-04-16 (Sat, 16 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Fixed bug where bounds computation did not care about the variable being checked Commit: a2febace5a5de15d00e874849baa2d2259792f63 https://github.com/MLton/mlton/commit/a2febace5a5de15d00e874849baa2d2259792f63 Author: Matt Surawski <mj...@ri...> Date: 2016-04-18 (Mon, 18 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Overhauled unrolling computation Commit: 6a1d6ec801f164d2fd54f41a9552aabe39c1e703 https://github.com/MLton/mlton/commit/6a1d6ec801f164d2fd54f41a9552aabe39c1e703 Author: Matt Surawski <mj...@ri...> Date: 2016-04-18 (Mon, 18 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Fixed a bug where the true/false value of the bounds check was ignored Commit: 6e59f6dcdd43f83737de8f1bfee789bacb82289d https://github.com/MLton/mlton/commit/6e59f6dcdd43f83737de8f1bfee789bacb82289d Author: Matt Surawski <mj...@ri...> Date: 2016-04-19 (Tue, 19 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Now detects arithmetic transfers Commit: e641e0b740949bb83bf6e4ed297d0483ce4c4d02 https://github.com/MLton/mlton/commit/e641e0b740949bb83bf6e4ed297d0483ce4c4d02 Author: Matt Surawski <mj...@ri...> Date: 2016-04-20 (Wed, 20 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Added support for multiple transfers to loop header; improved logging Commit: 68faa1205065c03599a804ce50b991d3dd96c8f6 https://github.com/MLton/mlton/commit/68faa1205065c03599a804ce50b991d3dd96c8f6 Author: Matt Surawski <mj...@ri...> Date: 2016-04-20 (Wed, 20 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Added support for arithmetic transfers to loop header Commit: 2eab91489b3d95e2509155551bdb12a9db5880d6 https://github.com/MLton/mlton/commit/2eab91489b3d95e2509155551bdb12a9db5880d6 Author: Matt Surawski <mj...@ri...> Date: 2016-04-20 (Wed, 20 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Now looks for bounds anywhere in the loop Commit: 617654e4464eb0454894d3586959cd253ee38e0c https://github.com/MLton/mlton/commit/617654e4464eb0454894d3586959cd253ee38e0c Author: Matt Surawski <mj...@ri...> Date: 2016-04-21 (Thu, 21 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Added a simple check to prevent giant loops from being unrolled Commit: 5686dd8a9fd2afe0ae271d7a611ea6d0537d202a https://github.com/MLton/mlton/commit/5686dd8a9fd2afe0ae271d7a611ea6d0537d202a Author: Matt Surawski <mj...@ri...> Date: 2016-04-22 (Fri, 22 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Fixed bug where loops were unrolled on the incorrect transfer; fixed bug where 0 iteration loops would drop pre-iteration code Commit: 2b67aa9654236f4d4b17eef49d945ade603db2c1 https://github.com/MLton/mlton/commit/2b67aa9654236f4d4b17eef49d945ade603db2c1 Author: Matt Surawski <mj...@ri...> Date: 2016-04-23 (Sat, 23 Apr 2016) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Added command line flag for controlling loop unrolling Commit: e5e7725fe401a88879d82fbbf1380961adcbf313 https://github.com/MLton/mlton/commit/e5e7725fe401a88879d82fbbf1380961adcbf313 Author: Matt Surawski <mj...@ri...> Date: 2016-04-23 (Sat, 23 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Implemented unrolling limiting Commit: 6c890dd7b80737df82b6fef19cc812830717bbfe https://github.com/MLton/mlton/commit/6c890dd7b80737df82b6fef19cc812830717bbfe Author: Matt Surawski <mj...@ri...> Date: 2016-04-23 (Sat, 23 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Implemnted iteration count histogram Commit: b3136c3509a3369d5e466eb88b71d94cf0ddea7e https://github.com/MLton/mlton/commit/b3136c3509a3369d5e466eb88b71d94cf0ddea7e Author: Matt Surawski <mj...@ri...> Date: 2016-04-24 (Sun, 24 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Implemented partial unrolling of large loops Commit: 967b45948912f074a4a0e06e0fa450a6dcf2d8c3 https://github.com/MLton/mlton/commit/967b45948912f074a4a0e06e0fa450a6dcf2d8c3 Author: Matt Surawski <mj...@ri...> Date: 2016-04-26 (Tue, 26 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Fixed bugs: wrong exit path being taken, incorrect loop bounds computation, incorrect handling of signed words Commit: 03df597d3798dabb2f7a9883651bcb1eb4058cc5 https://github.com/MLton/mlton/commit/03df597d3798dabb2f7a9883651bcb1eb4058cc5 Author: Matt Surawski <mj...@ri...> Date: 2016-04-27 (Wed, 27 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Fixed partial unrolling Commit: 3fca0e35c3c9f8c4c02fbc74ea475b8c48c9f470 https://github.com/MLton/mlton/commit/3fca0e35c3c9f8c4c02fbc74ea475b8c48c9f470 Author: Matt Surawski <mj...@ri...> Date: 2016-04-27 (Wed, 27 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Replaced known cases in partially unrolled loops with gotos Commit: c09f26d4055750edd88944840559b86ac8988672 https://github.com/MLton/mlton/commit/c09f26d4055750edd88944840559b86ac8988672 Author: Matt Surawski <mj...@ri...> Date: 2016-04-27 (Wed, 27 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Cleaned up code Commit: 64e5daaf97dc3732764153bc2fa7a80997193ca1 https://github.com/MLton/mlton/commit/64e5daaf97dc3732764153bc2fa7a80997193ca1 Author: Matt Surawski <mj...@ri...> Date: 2016-04-27 (Wed, 27 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Fixed bug where peeling resulted in 0 iteration expanded loops than actually ran once Commit: 4ee8561be3ceee3e3d9d6cdd98776ae2b5d4e9e8 https://github.com/MLton/mlton/commit/4ee8561be3ceee3e3d9d6cdd98776ae2b5d4e9e8 Author: Matt Surawski <mj...@ri...> Date: 2016-04-28 (Thu, 28 Apr 2016) Changed paths: R test2/build.sh R test2/makeSVG.sh R test2/unrollArray.sml R test2/unrollDemo.sml R test2/unrollList.sml R test2/unrollVector.sml R test2/unswitch1.sml R test2/unswitchDemo.sml R test2/unswitchFail.sml Log Message: ----------- Removed old tests Commit: dba38820266427b9503d65cd2b05130d487d63eb https://github.com/MLton/mlton/commit/dba38820266427b9503d65cd2b05130d487d63eb Author: Matt Surawski <mj...@ri...> Date: 2016-04-28 (Thu, 28 Apr 2016) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/loop-unswitch.fun M mlton/ssa/simplify.fun Log Message: ----------- Added limitation to the unswitching code growth Commit: 8cb6e6f1cb37654be4fa89fdbd955c56b09f5e54 https://github.com/MLton/mlton/commit/8cb6e6f1cb37654be4fa89fdbd955c56b09f5e54 Author: Matt Surawski <mj...@ri...> Date: 2016-04-28 (Thu, 28 Apr 2016) Changed paths: M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun Log Message: ----------- Removed debug code Commit: 5f249649d15484a63023e229dd250f0b3344e154 https://github.com/MLton/mlton/commit/5f249649d15484a63023e229dd250f0b3344e154 Author: Matt Surawski <mj...@ri...> Date: 2016-05-10 (Tue, 10 May 2016) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Improved default loop unrolling factor Commit: 22e2bbbff99e5ebbd6e7f4dc33b7873afb271852 https://github.com/MLton/mlton/commit/22e2bbbff99e5ebbd6e7f4dc33b7873afb271852 Author: Matt Surawski <mj...@ri...> Date: 2016-05-11 (Wed, 11 May 2016) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun M mlton/ssa/simplify.fun Log Message: ----------- Renamed 'factor' to 'limit' to be more consistent with existing work; finialized ssa pipeline Commit: 5cbd58767729602d4c393d01cf07dda466b2756b https://github.com/MLton/mlton/commit/5cbd58767729602d4c393d01cf07dda466b2756b Author: Matt Surawski <mj...@ri...> Date: 2016-05-14 (Sat, 14 May 2016) Changed paths: M mlton/ssa/loop-unswitch.fun Log Message: ----------- Replaced transfer rewrite code with Transfer.replaceLabel Commit: 9205523aac759c6afa452120438f934d94e6aa29 https://github.com/MLton/mlton/commit/9205523aac759c6afa452120438f934d94e6aa29 Author: Matt Surawski <mj...@ri...> Date: 2016-05-16 (Mon, 16 May 2016) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Ensured that bounds dominate transfers to the loop header Commit: 05d98659b03b506a7b00531926f79a7f6ac76008 https://github.com/MLton/mlton/commit/05d98659b03b506a7b00531926f79a7f6ac76008 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M Makefile 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.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/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.sml M basis-library/system/date.sml M basis-library/text/char0.sml M basis-library/unsafe.mlb M bin/add-cross M bin/regression R bin/upgrade-basis M doc/guide/src/CKitLibrary.adoc M doc/guide/src/CommonSubexp.adoc M doc/guide/src/CompilingWithSMLNJ.adoc M doc/guide/src/LLVMCodegen.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/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/SuccessorML.adoc M doc/guide/src/Unicode.adoc M doc/guide/src/UnresolvedBugs.adoc 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/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 M lib/mlton/basic/process.sml M lib/mlton/basic/sources.mlb 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/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 mlton/.gitignore M mlton/Makefile 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-modules.fun M mlton/ast/ast-programs.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/prim-tycons.fun M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/record.fun M mlton/atoms/record.sig M mlton/atoms/type-ops.fun M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.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/rssa.fun M mlton/backend/rssa.sig M mlton/backend/ssa-to-rssa.fun 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/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-env.fun M mlton/elaborate/elaborate-mlbs.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/precedence-parse.fun M mlton/elaborate/scope.fun M mlton/elaborate/type-env.fun M mlton/front-end/ml.grm M mlton/front-end/ml.lex M mlton/front-end/mlb.lex 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/direct-exp.fun M mlton/ssa/direct-exp2.fun M mlton/ssa/global.fun M mlton/ssa/known-case.fun M mlton/ssa/local-ref.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/remove-unused.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify-types.fun 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 M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/type-check.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig 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 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.c M runtime/platform/openbsd.h M runtime/platform/solaris.h Log Message: ----------- Merge branch 'master' of https://github.com/MLton/mlton into loop-optimizations Commit: e5816a9a7b484f5e1483b27fcc82fa69625880c6 https://github.com/MLton/mlton/commit/e5816a9a7b484f5e1483b27fcc82fa69625880c6 Author: Bryan Camp <bx...@ri...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/inline.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig Log Message: ----------- Added modified files to the commit. Commit: 94cc5aed24d21880c856544f9c87f867f1425509 https://github.com/MLton/mlton/commit/94cc5aed24d21880c856544f9c87f867f1425509 Author: Bryan Camp <bx...@ri...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/inline.fun M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig Log Message: ----------- Implmented changes based upon pull request review. Extended the new functions to the loop-unroll/loop-unswitch .fun files. Updated signature and implementation to reduce the available functions to the clients. Renamed functions. Commit: f8bb00812d4315d31eb6f56b2c1225a91b52e0ec https://github.com/MLton/mlton/commit/f8bb00812d4315d31eb6f56b2c1225a91b52e0ec Author: Bryan Camp <bx...@ri...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig Log Message: ----------- Made some final changes. Renamed some functions and signatures without big changes. Commit: ccf95696cb115c0eff43b16db7a424346c88a67c https://github.com/MLton/mlton/commit/ccf95696cb115c0eff43b16db7a424346c88a67c Author: Bryan Camp <bx...@ri...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: 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/inline.fun M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Updated maybePass and doPass to allow enable and disabling of passes Commit: 0a969af4ff9b3e7ae24b39c07bf0417bd428a93f https://github.com/MLton/mlton/commit/0a969af4ff9b3e7ae24b39c07bf0417bd428a93f Author: Bryan Camp <bx...@ri...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: 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 M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Made changes based upon the review of the last push. Updated listings in various ssa/simplify,simplfy2,sxml-simplfy,.... to inlcude execute = true. Reordered some variables in ssa-tree.fun/sig to be alphabetical. Commit: 09aeabc83f6b5774651e178050c546268581f3be https://github.com/MLton/mlton/commit/09aeabc83f6b5774651e178050c546268581f3be Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/simplify2.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Fix unused variable warnings Commit: 7c092d7f23fffd04772cffea780e91f4cfc5a4d8 https://github.com/MLton/mlton/commit/7c092d7f23fffd04772cffea780e91f4cfc5a4d8 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/backend/backend.fun M mlton/control/control-flags.sml M mlton/ssa/inline.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Fix whitespace errors (tabs, trailing whitespace) Commit: 6be673e5df34973a74d3713fb12ab3ca169df4f4 https://github.com/MLton/mlton/commit/6be673e5df34973a74d3713fb12ab3ca169df4f4 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/main/main.fun Log Message: ----------- Fix error message for {disable,enable}-pass options Commit: 7397115238303941d622386cd96773caefa1721c https://github.com/MLton/mlton/commit/7397115238303941d622386cd96773caefa1721c Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/control/control-flags.sig Log Message: ----------- Update comment about Control.executePasses Commit: e01037865e067f79db60a26b2bf9dcb58c1dc461 https://github.com/MLton/mlton/commit/e01037865e067f79db60a26b2bf9dcb58c1dc461 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Eliminate shadowing of `val ^: string * string -> string` Commit: 81f0996377ed0361227734f1261b4c2268abba9c https://github.com/MLton/mlton/commit/81f0996377ed0361227734f1261b4c2268abba9c Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/backend/backend.fun M mlton/ssa/simplify2.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Add "<name> skipped" message for disabled passes in XML, SXML, SSA2, and RSSA ILs Commit: 82b399d2592c9f5601ff5cb0c56eeecb6b16cf6b https://github.com/MLton/mlton/commit/82b399d2592c9f5601ff5cb0c56eeecb6b16cf6b Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Simplify initialization of custom simplification passes Custom simplification passes default to 'enabled'. Commit: 5c85052b50f8b03dad799b3c61eded396c4c60f7 https://github.com/MLton/mlton/commit/5c85052b50f8b03dad799b3c61eded396c4c60f7 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Update display name of `Control.executePasses` Commit: 1c909c376ebf9405e791ee7543d5739923e525d2 https://github.com/MLton/mlton/commit/1c909c376ebf9405e791ee7543d5739923e525d2 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/sources.cm Log Message: ----------- Add loop-unroll.fun and loop-unswitch.fun to sources.cm Commit: 745d3e8afb77f247ad282d4b89d9a629fe5f44ae https://github.com/MLton/mlton/commit/745d3e8afb77f247ad282d4b89d9a629fe5f44ae Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Disable loopUnswitch and loopUnroll pending deeper evaluation Nonetheless, the preliminary evaluation demonstrates some reasonable performance gains (and no degredations) and very modest code size increases. Commit: a7afda477cbcf479db9932efdf779c43ea263074 https://github.com/MLton/mlton/commit/a7afda477cbcf479db9932efdf779c43ea263074 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Fix formatting of record expressions Commit: cf01742c7bae507cc886a77a21b15620ffafe108 https://github.com/MLton/mlton/commit/cf01742c7bae507cc886a77a21b15620ffafe108 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Fix whitespace error Commit: 3d0ce2fbaab5195e4a11824c2ff5a33eaf12f45b https://github.com/MLton/mlton/commit/3d0ce2fbaab5195e4a11824c2ff5a33eaf12f45b Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/inline.fun Log Message: ----------- Minimize diff with master Commit: f82dc95d637f528e5919e9dbb57bfec4b6a7e784 https://github.com/MLton/mlton/commit/f82dc95d637f528e5919e9dbb57bfec4b6a7e784 Author: Matthew Fluet <mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun Log Message: ----------- Fix copyright on "from scratch" loop optimizations Commit: 6c18e44220a65780875ade206a760f6417d9a915 https://github.com/MLton/mlton/commit/6c18e44220a65780875ade206a760f6417d9a915 Author: Matthew Fluet <Mat...@gm...> Date: 2017-06-29 (Thu, 29 Jun 2017) Changed paths: 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/inline.fun A mlton/ssa/loop-unroll.fun A mlton/ssa/loop-unswitch.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-tree.fun M mlton/ssa/ssa-tree.sig M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Merge pull request #185 from Bxc8214/pass-enable-disable Merge loop unswitching and loop unrolling optimizations that were undertaken by Matthew Surawski as an RIT CS MS Capstone Project ([report](https://www.cs.rit.edu/usr/local/pub/GraduateProjects/2155/2155/mjs9585/Report.pdf) and [poster](https://www.cs.rit.edu/usr/local/pub/GraduateProjects/2155/2155/mjs9585/Poster.pdf)). Initial evaluation demonstrates some non-trivial performance gains, no non-trivial performance losses, and only minor code size increases. Refactor inlining, loop unswitching, and loop unrolling optimizations to consolidate sizing functions in SSA_TREE. Replace `-drop-pass <regex>` compile option with `-disable-pass <regex>` compile option and add `-enable-pass <regex>` compile option. Various XML, SXML, SSA, SSA2, and RSSA optimization passes are initialized with a default status, which can be overriden by `-{disable,enable}-pass`. In particular, it is now easy to add a work-in-progress (and potentially buggy) pass to the simplification pipeline with `execute=false` default status, to be selectively executed with `-enable-pass`. Currently, loopUnswitch and loopUnroll are disabled pending a more thorough evaluation. Compare: https://github.com/MLton/mlton/compare/89267b1d196a...6c18e44220a6 |
From: GitHub <no...@gi...> - 2017-06-06 15:39:42
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: f9c99b0fbece8abe2565e4599f6d6cb3a14cbead https://github.com/MLton/mlton/commit/f9c99b0fbece8abe2565e4599f6d6cb3a14cbead Author: Bryan Camp <bx...@ri...> Date: 2017-06-06 (Tue, 06 Jun 2017) Changed paths: M lib/mlton/basic/vector.fun M lib/mlton/basic/vector.sig M mlton/ast/ast-atoms.fun M mlton/ast/ast-core.fun M mlton/ast/ast-modules.fun M mlton/atoms/generic-scheme.fun M mlton/atoms/hash-type.fun M mlton/atoms/prim-tycons.fun M mlton/atoms/type-ops.fun M mlton/backend/backend.fun 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/switch.fun M mlton/closure-convert/abstract-value.fun 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/core-ml/core-ml.fun M mlton/core-ml/dead-code.fun M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/precedence-parse.fun M mlton/elaborate/type-env.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/nested-pat.fun 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/direct-exp.fun M mlton/ssa/direct-exp2.fun M mlton/ssa/known-case.fun M mlton/ssa/local-ref.fun M mlton/ssa/poly-equal.fun M mlton/ssa/poly-hash.fun M mlton/ssa/profile.fun M mlton/ssa/profile2.fun M mlton/ssa/remove-unused.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify-types.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/type-check.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 M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/type-check.fun M mlton/xml/xml-tree.fun Log Message: ----------- Refactor to use Vector.isEmpty and Vector.first Commit: 89267b1d196a14715882ad9fbfcfe7dbd22e0e61 https://github.com/MLton/mlton/commit/89267b1d196a14715882ad9fbfcfe7dbd22e0e61 Author: Matthew Fluet <Mat...@gm...> Date: 2017-06-06 (Tue, 06 Jun 2017) Changed paths: M lib/mlton/basic/vector.fun M lib/mlton/basic/vector.sig M mlton/ast/ast-atoms.fun M mlton/ast/ast-core.fun M mlton/ast/ast-modules.fun M mlton/atoms/generic-scheme.fun M mlton/atoms/hash-type.fun M mlton/atoms/prim-tycons.fun M mlton/atoms/type-ops.fun M mlton/backend/backend.fun 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/switch.fun M mlton/closure-convert/abstract-value.fun 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/core-ml/core-ml.fun M mlton/core-ml/dead-code.fun M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-sigexp.fun M mlton/elaborate/precedence-parse.fun M mlton/elaborate/type-env.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/nested-pat.fun 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/direct-exp.fun M mlton/ssa/direct-exp2.fun M mlton/ssa/known-case.fun M mlton/ssa/local-ref.fun M mlton/ssa/poly-equal.fun M mlton/ssa/poly-hash.fun M mlton/ssa/profile.fun M mlton/ssa/profile2.fun M mlton/ssa/remove-unused.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify-types.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/type-check.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 M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/type-check.fun M mlton/xml/xml-tree.fun Log Message: ----------- Merge pull request #183 from Bxc8214/vector-refactor Refactor to use Vector.isEmpty and Vector.first Compare: https://github.com/MLton/mlton/compare/4413ec4cfe09...89267b1d196a |
From: GitHub <no...@gi...> - 2017-05-24 11:57:40
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 3ff2a3de2033881818830ad546732469d1f0702b https://github.com/MLton/mlton/commit/3ff2a3de2033881818830ad546732469d1f0702b Author: Matthew Fluet <mat...@gm...> Date: 2017-05-24 (Wed, 24 May 2017) Changed paths: M bin/regression Log Message: ----------- Add `{nonexhaustive,redundant}Bind ignore` to regression script Commit: 4413ec4cfe094d190e67102d4934cbf83a71aa7e https://github.com/MLton/mlton/commit/4413ec4cfe094d190e67102d4934cbf83a71aa7e Author: Matthew Fluet <Mat...@gm...> Date: 2017-05-24 (Wed, 24 May 2017) Changed paths: M bin/regression Log Message: ----------- Merge pull request #182 from MatthewFluet/regression-script-nonexhaustive-and-redundant-diagnostics Add `{nonexhaustive,redundant}Bind ignore` to regression script Compare: https://github.com/MLton/mlton/compare/0978cd579e4a...4413ec4cfe09 |
From: GitHub <no...@gi...> - 2017-05-23 19:30:49
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: baded478695054f8a97a86c0993de8226e1705e5 https://github.com/MLton/mlton/commit/baded478695054f8a97a86c0993de8226e1705e5 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-24 (Mon, 24 Apr 2017) Changed paths: M mlton/match-compile/match-compile.fun Log Message: ----------- Display non-exhaustive exception as `_ : exn` Commit: 9231081a59e26af746a67f69b64f877352e60d1a https://github.com/MLton/mlton/commit/9231081a59e26af746a67f69b64f877352e60d1a Author: Matthew Fluet <mat...@gm...> Date: 2017-04-26 (Wed, 26 Apr 2017) Changed paths: M mlton/defunctorize/defunctorize.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig Log Message: ----------- Simplify representation of nonexhaustive examples Commit: d60dfd1249a9398372ac45457c00d5cb99935304 https://github.com/MLton/mlton/commit/d60dfd1249a9398372ac45457c00d5cb99935304 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-26 (Wed, 26 Apr 2017) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Nonexhaustive and redundant pats impossible for sig matching val dec Commit: 047ea39772acc39f05275c7a638953628305be28 https://github.com/MLton/mlton/commit/047ea39772acc39f05275c7a638953628305be28 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-26 (Wed, 26 Apr 2017) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun Log Message: ----------- Introduce {nonexhaustive{,Exn},redundant}{Bind,Raise} annotations The *Bind and *Raise annotations mirror the *Match annotations, but are used to control diagnostics of pattern matching that either raise Bind (valbind) or re-raises (handle). Note the default for nonexhaustiveRaise is "ignore". Closes MLton/mlton#144. Commit: ceae662be11541157716998c8fb3a5793845f7c8 https://github.com/MLton/mlton/commit/ceae662be11541157716998c8fb3a5793845f7c8 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-27 (Thu, 27 Apr 2017) Changed paths: M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-env.fun Log Message: ----------- Consolidate match diagnostics in CoreML Commit: b7d12626238da10b4c43c13360d250d7a71e45c9 https://github.com/MLton/mlton/commit/b7d12626238da10b4c43c13360d250d7a71e45c9 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-27 (Thu, 27 Apr 2017) Changed paths: M mlton/defunctorize/defunctorize.fun Log Message: ----------- Consolidate match diagnostics in Defunctorize Commit: c345e444eaa0b18dc86da599d1c6bfb7cc069859 https://github.com/MLton/mlton/commit/c345e444eaa0b18dc86da599d1c6bfb7cc069859 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-27 (Thu, 27 Apr 2017) Changed paths: M mlton/defunctorize/defunctorize.fun Log Message: ----------- Refactor nonexhaustive and redundant diagnostics in Defunctorize Commit: a1d8f29b4a6d0dbb44262030e4d5c3dd2aba0fd2 https://github.com/MLton/mlton/commit/a1d8f29b4a6d0dbb44262030e4d5c3dd2aba0fd2 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-27 (Thu, 27 Apr 2017) Changed paths: M mlton/match-compile/match-compile.fun Log Message: ----------- Refactor MatchCompile.Example.t as an explicit data structure Commit: 0aaf38474ff49675f2ce2ef40ad589b35dc9f3af https://github.com/MLton/mlton/commit/0aaf38474ff49675f2ce2ef40ad589b35dc9f3af Author: Matthew Fluet <mat...@gm...> Date: 2017-04-27 (Thu, 27 Apr 2017) Changed paths: M mlton/match-compile/match-compile.fun Log Message: ----------- Only accumulate examples for last match rule. Commit: e818c5be887e7a5dea0885292ea94188130ec34e https://github.com/MLton/mlton/commit/e818c5be887e7a5dea0885292ea94188130ec34e Author: Matthew Fluet <mat...@gm...> Date: 2017-04-27 (Thu, 27 Apr 2017) Changed paths: M mlton/defunctorize/defunctorize.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig Log Message: ----------- Simplify nonexhaustive diagnostics in Defunctorize and MatchCompile Commit: e5609274523d1a428693a7365ca51c99feca2a02 https://github.com/MLton/mlton/commit/e5609274523d1a428693a7365ca51c99feca2a02 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-27 (Thu, 27 Apr 2017) Changed paths: M mlton/match-compile/match-compile.fun Log Message: ----------- Fix code formatting Commit: af45703bc6e031d2861ebd72736fb39203f46e6a https://github.com/MLton/mlton/commit/af45703bc6e031d2861ebd72736fb39203f46e6a Author: Matthew Fluet <mat...@gm...> Date: 2017-04-28 (Fri, 28 Apr 2017) Changed paths: M mlton/match-compile/match-compile.fun Log Message: ----------- Normalize patterns for nonexhaustive diagnostics Slightly improve the display of missing patterns by sorting (e.g., by ConApp name or by Vector length) and merging of disjoint ConApp patterns. For example, prior to this commit: Warning: z.sml 5.4. Case is not exhaustive. missing pattern: (D (B (B _ | C | D _)) | D (C | D _) | B (B _ | C | D _) | C) in: case c of A => "A" | B A => "A" | ... "A" | D (B A) => "A" Warning: z.sml 39.4. Case is not exhaustive. missing pattern: (#[] | #[_] | #[_, _, _, ...] | #[A, B _ | C | D _] | #[C, A | B _ | D _] | #[B _ | D _, _]) in: case v of #[A, A] => true | #[C, C] => true With this commit: Warning: z.sml 5.4. Case is not exhaustive. missing pattern: B (B _ | C | D _) | C | D (B (B _ | C | D _) | C | D _) in: case c of A => "A" | B A => "A" | ... "A" | D (B A) => "A" Warning: z.sml 39.4. Case is not exhaustive. missing pattern: #[] | #[_] | #[A, B _ | C | D _] | #[B _ | D _, _] | #[C, A | B _ | D _] | #[_, _, _, ...] in: case v of #[A, A] => true | #[C, C] => true Commit: 8a8e400d5e0202f17a493d06b700d0abbceee416 https://github.com/MLton/mlton/commit/8a8e400d5e0202f17a493d06b700d0abbceee416 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-28 (Fri, 28 Apr 2017) Changed paths: M mlton/match-compile/match-compile.fun Log Message: ----------- Eliminate MatchCompile.Example.Dots Commit: 0e8d639603962f72aa2e89252e56c726f5efb102 https://github.com/MLton/mlton/commit/0e8d639603962f72aa2e89252e56c726f5efb102 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-28 (Fri, 28 Apr 2017) Changed paths: M mlton/match-compile/match-compile.fun Log Message: ----------- Simplify MatchCompile.Example.layout A normalized example will never include an Or with a singleton. Commit: 679210a9001012b42aee302e892c8fc095c70a4c https://github.com/MLton/mlton/commit/679210a9001012b42aee302e892c8fc095c70a4c Author: Matthew Fluet <mat...@gm...> Date: 2017-04-29 (Sat, 29 Apr 2017) Changed paths: M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig M mlton/match-compile/match-compile.fun Log Message: ----------- Report complete enumeration of unhandled constants Consider the following program: fun isPrime (w : Word3.word) = case w of 0w2 | 0w3 | 0w5 | 0w7 => true fun isPrime (i : Int4.int) = case i of 2 | 3 | 5 | 7 => true fun isPrime (i : IntInf.int) = case i of 2 | 3 | 5 | 7 | 11 | 13 | 17 | 19 => true fun isVowel c = case c of #"a" | #"e" | #"i" | #"o" | #"u" => true | #"A" | #"E" | #"I" | #"O" | #"U" => true fun isMagicWord s = case s of "" | "\000\000" | "\255\255" => false | "plugh" | "xyzzy" => true | "apple" | "zebra" => false | "abracadabra" | "hocus-pocus" => true Previously, only a single unhandled constant was reported with a nonexhaustive diagnostic: Warning: z.sml 2.4. Case is not exhaustive. missing pattern: 0x1 in: case w of (0wx2 | 0wx3 | 0wx5 | 0wx7) => true Warning: z.sml 6.4. Case is not exhaustive. missing pattern: 1 in: case i of (2 | 3 | 5 | 7) => true Warning: z.sml 10.4. Case is not exhaustive. missing pattern: 1 in: case i of (2 | 3 | 5 | 7 | 11 | 13 | 17 | 19) => true Warning: z.sml 14.4. Case is not exhaustive. missing pattern: #"@" in: case c of (#"a" | #"e" | #"i" | # ... #"O" | #"U") => true Warning: z.sml 19.4. Case is not exhaustive. missing pattern: "aaaaaaaaaaaa" in: case s of ("" | "\^@\^@" | "\255\ ... ocus-pocus") => true Now, the complete set of unhandled constants is reported, using range patterns: Warning: z.sml 2.4. Case is not exhaustive. missing pattern: 0wx0 | 0wx1 | 0wx4 | 0wx6 in: case w of (0wx2 | 0wx3 | 0wx5 | 0wx7) => true Warning: z.sml 6.4. Case is not exhaustive. missing pattern: ~8 .. 1 | 4 | 6 in: case i of (2 | 3 | 5 | 7) => true Warning: z.sml 10.4. Case is not exhaustive. missing pattern: ... 1 | 4 | 6 | 8 | 9 | 10 | 12 | 14 | 15 | 16 | 18 | 20 ... in: case i of (2 | 3 | 5 | 7 | 11 | 13 | 17 | 19) => true Warning: z.sml 14.4. Case is not exhaustive. missing pattern: #"\^@" .. #"@" | #"B" | #"C" | #"D" | #"F" | #"G" | #"H" | #"J" .. #"N" | #"P" .. #"T" | #"V" .. #"`" | #"b" | #"c" | #"d" | #"f" | #"g" | #"h" | #"j" .. #"n" | #"p" .. #"t" | #"v" .. #"\255" in: case c of (#"a" | #"e" | #"i" | # ... #"O" | #"U") => true Warning: z.sml 19.4. Case is not exhaustive. missing pattern: "\^@" .. "\255" | "\^@\^A" .. "\255\254" | "\^@\^@\^@" .. "appld" | "applf" .. "plugg" | "plugi" .. "xyzzx" | "xyzzz" .. "zebr`" | "zebrb" .. "abracadabr`" | "abracadabrb" .. "hocus-pocur" | "hocus-pocut" ... in: case s of ("" | "\^@\^@" | "\255\ ... ocus-pocus") => true Note that string constants are reported using "shortlex" order, rather than String.compare's lexicographic order, which is not well-ordered. Commit: a671d18c8594e3c36f4a6b4bf573d98df519d5ab https://github.com/MLton/mlton/commit/a671d18c8594e3c36f4a6b4bf573d98df519d5ab Author: Matthew Fluet <mat...@gm...> Date: 2017-05-05 (Fri, 05 May 2017) Changed paths: M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun Log Message: ----------- Eliminate CoreML.Pat.Tuple variant CoreML.Pat.Record suffices for representing tuple patterns. Commit: fbf64428be605d765a6b4f3a09703f4084ff1ebd https://github.com/MLton/mlton/commit/fbf64428be605d765a6b4f3a09703f4084ff1ebd Author: Matthew Fluet <mat...@gm...> Date: 2017-05-06 (Sat, 06 May 2017) Changed paths: M mlton/elaborate/elaborate-core.fun Log Message: ----------- Refactor ElaborateCore.mk{Fetch,Store} Implement ElaborateCore.mk{Fetch,Store} using CoreML.Exp.iff rather than CoreML.Exp.casee. Commit: 5c25516a4bef3a5efe5affa53e981295ab15ce35 https://github.com/MLton/mlton/commit/5c25516a4bef3a5efe5affa53e981295ab15ce35 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-11 (Thu, 11 May 2017) Changed paths: 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-programs.fun M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/scope.fun M mlton/front-end/ml.grm Log Message: ----------- Make cosmetic improvements to type and match-compile errors Primarily, make redundant pattern errors give accurate location information by propagating the region of the pattern. Additionally, make the region of nonexhaustive patterns and the "in: ..." component of nonexhaustive and redundant pattern errors consistent. Finally, make some other cosmetic improvements to type error messages for "val rec" and "fun" declarations. Commit: e1d77ca65525d08f4bab29b197179651efae907d https://github.com/MLton/mlton/commit/e1d77ca65525d08f4bab29b197179651efae907d Author: Matthew Fluet <mat...@gm...> Date: 2017-05-15 (Mon, 15 May 2017) Changed paths: M mlton/atoms/record.fun M mlton/atoms/record.sig M mlton/defunctorize/defunctorize.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/nested-pat.fun M mlton/match-compile/nested-pat.sig Log Message: ----------- Report nonexhaustive patterns of record type as records Consider the following program: fun f (r : {x: {i: int, b: bool} option, y: order}) = case r of {x = SOME {b = true, ...}, y = EQUAL} => true | {x = NONE, ...} => false Previously, nonexhaustive patterns of record type were presented as tuples: Warning: x.sml 2.4. Case is not exhaustive. missing pattern: ((SOME (true, _), LESS | GREATER) | (SOME (false, _), _)) in: case r of {x = SOME {b = true, .. ... NONE, ...} => false Now, we perform match compilation with record patterns (rather than tuple patterns), allowing nonexhaustive patterns of record type to be presented as records: Warning: x.sml 3.7. Case is not exhaustive. missing pattern: {x = SOME {b = false, i = _}, y = _} | {x = SOME {b = true, i = _}, y = GREATER | LESS} in: case r of {x = SOME {b = true, .. ... NONE, ...} => false However, there is one major limitation. The conversion of CoreML to XML replaces all singleton records with their contents and this invariant must be accomodated by match compilation. Hence, the following program: fun f (r : {x: {b: bool} option}) = case r of {x = SOME {b = true, ...}, ...} => true yields the following warning: Warning: x.sml 3.7. Case is not exhaustive. missing pattern: NONE | SOME false in: case r of {x = SOME {b = true, ...}, ...} => true Commit: c938908f1742098d3cb0ac76418ccbed4665f1eb https://github.com/MLton/mlton/commit/c938908f1742098d3cb0ac76418ccbed4665f1eb Author: Matthew Fluet <mat...@gm...> Date: 2017-05-17 (Wed, 17 May 2017) Changed paths: M mlton/defunctorize/defunctorize.fun M mlton/match-compile/nested-pat.fun M mlton/match-compile/nested-pat.sig Log Message: ----------- Improve CoreML to XML translation of flat record pattern matching The translation from CoreML to XML of 'case' expressions has a special case for record/tuple patterns of all variables, which simply generates all of the selects as a prefix to the rhs of the match, rather than incurring the overhead of full match compilation. Extend that special case to record/tuple patterns of all variables or wilds, which is a common idiom, arising from any "#f" field selection expression or "val (x, _) = ..." declaration. Commit: d4e59fc78e005e48777692b30e407538543d7c6c https://github.com/MLton/mlton/commit/d4e59fc78e005e48777692b30e407538543d7c6c Author: Matthew Fluet <mat...@gm...> Date: 2017-05-20 (Sat, 20 May 2017) Changed paths: M mlton/defunctorize/defunctorize.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/nested-pat.fun Log Message: ----------- Report nonexhaustive patterns of singleton records Consider the following program: fun f (r : {x: {b: bool} option}) = case r of {x = SOME {b = true, ...}, ...} => true Previously, nonexhaustive patterns of singleton record types were replaced by their contents, yielding the following warning: Warning: x.sml 3.7. Case is not exhaustive. missing pattern: NONE | SOME false in: case r of {x = SOME {b = true, ...}, ...} => true Now, we perform match compilation with singleton record patterns (instead of silently replacing singleton records with their contents) to properly report nonexhaustive patterns of singleton records: Warning: x.sml 3.7. Case is not exhaustive. missing pattern: {x = NONE} | {x = SOME {b = false}} in: case r of {x = SOME {b = true, ...}, ...} => true This requires only a minor special case in match compilation of singleton records. While this somewhat breaks the abstraction of MatchCompilation (it implicitly requires that the host conversion is replacing singleton records with their contents), note that the abstraction was already broken due to NestedPat performing the replacement of singleton records with their contents. Commit: 5da94c096a75db5b578108b8acbc837b2a37fa6f https://github.com/MLton/mlton/commit/5da94c096a75db5b578108b8acbc837b2a37fa6f Author: Matthew Fluet <mat...@gm...> Date: 2017-05-22 (Mon, 22 May 2017) Changed paths: M lib/ckit-lib/ckit.patch M lib/mlrisc-lib/MLRISC.patch M lib/smlnj-lib/smlnj-lib.patch Log Message: ----------- Ignore nonexhaustive Bind and Match patterns in SML/NJ Library Commit: 0908f6af4db86fd88461b358411a4488560838e2 https://github.com/MLton/mlton/commit/0908f6af4db86fd88461b358411a4488560838e2 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M doc/guide/src/MLBasisAnnotations.adoc Log Message: ----------- Document {nonexhaustive{,Exn},redundant}{Bind,Match} annotations Commit: 4c1d0809fcb8f95331142321f4b95ae87d803a1e https://github.com/MLton/mlton/commit/4c1d0809fcb8f95331142321f4b95ae87d803a1e Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M doc/guide/src/MLBasisAnnotations.adoc Log Message: ----------- Document {nonexhaustive{,Exn},redundant}Raise annotations Commit: 75eee15d5b1a8fcd0e68aef2fd1e02de2076f7f1 https://github.com/MLton/mlton/commit/75eee15d5b1a8fcd0e68aef2fd1e02de2076f7f1 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Reorder redundantMatch annotation declaration (alphabetize) Commit: 8fd6f03a8cf138d2aa745f2f200610bb3aed6926 https://github.com/MLton/mlton/commit/8fd6f03a8cf138d2aa745f2f200610bb3aed6926 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M basis-library/mlton/io.fun M basis-library/posix/io.sml Log Message: ----------- Silence nonexhaustiveRaise warnings in Basis Library Commit: 3c26e39b6513bf01274bb41fca9406e649634105 https://github.com/MLton/mlton/commit/3c26e39b6513bf01274bb41fca9406e649634105 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Change nonexhaustiveExnRaise annotation default to ignore Commit: 19b4d23b9c68a90e0aed8fd23b3f9fab558427be https://github.com/MLton/mlton/commit/19b4d23b9c68a90e0aed8fd23b3f9fab558427be Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M doc/guide/src/MLBasisAnnotationExamples.adoc Log Message: ----------- Update MLBasisAnnotationExamples page Commit: 6a86062d29e0a7c11b9a548bc07390c92d0f9a3d https://github.com/MLton/mlton/commit/6a86062d29e0a7c11b9a548bc07390c92d0f9a3d Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: 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/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/overloads.mlb M basis-library/pervasive-exns.mlb M basis-library/pervasive-types.mlb M basis-library/pervasive-vals.mlb M basis-library/primitive/prim-basis.mlb M basis-library/primitive/primitive.mlb M basis-library/sml-nj.mlb M basis-library/unsafe.mlb Log Message: ----------- Update {nonexhaustive,redundant}{Bind,Match} annots in Basis Library Commit: abbd517a6e539fbcaca273e8751b083670193300 https://github.com/MLton/mlton/commit/abbd517a6e539fbcaca273e8751b083670193300 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M lib/mlyacc-lib/mlyacc-lib.mlb Log Message: ----------- Update {nonexhaustive,redundant}{Bind,Match} annots in MLYacc Lib Commit: 76feda2ee9a11a79a144633bdad822b599391356 https://github.com/MLton/mlton/commit/76feda2ee9a11a79a144633bdad822b599391356 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M lib/mlton/basic/sources.mlb M lib/mlton/env/sources.mlb M lib/mlton/set/sources.mlb Log Message: ----------- Update {nonexhaustive,redundant}{Bind,Match} annots in MLton Library Commit: 453ad683a18aa25ecf9d2bf8e11ffa313e6ea83d https://github.com/MLton/mlton/commit/453ad683a18aa25ecf9d2bf8e11ffa313e6ea83d Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M lib/cml/cml-lib/cml-lib.mlb M lib/cml/core-cml/core-cml.mlb M lib/cml/util/util.mlb Log Message: ----------- Update {nonexhaustive,redundant}{Bind,Match} annots in CML Library Commit: db3fd40c53cf3f7348b17b56f621f50fa611a48a https://github.com/MLton/mlton/commit/db3fd40c53cf3f7348b17b56f621f50fa611a48a Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M lib/ckit-lib/ckit.patch M lib/mlrisc-lib/MLRISC.patch M lib/smlnj-lib/smlnj-lib.patch Log Message: ----------- Update {nonexhaustive,redundant}{Bind,Match} annots in SML/NJ Libs Commit: 6b1c3d7fb00f64584231bad85d26faa70aa4e842 https://github.com/MLton/mlton/commit/6b1c3d7fb00f64584231bad85d26faa70aa4e842 Author: Matthew Fluet <mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: M lib/mlnlffi-lib/c.mlb M lib/mlnlffi-lib/internals/c-int.mlb M lib/mlnlffi-lib/memory/memory.unix.mlb Log Message: ----------- Update {nonexhaustive,redundant}{Bind,Match} annots in MLNLFFI Lib Commit: 0978cd579e4a0147a73fbf5d278c68fb8c9fde08 https://github.com/MLton/mlton/commit/0978cd579e4a0147a73fbf5d278c68fb8c9fde08 Author: Matthew Fluet <Mat...@gm...> Date: 2017-05-23 (Tue, 23 May 2017) Changed paths: 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/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/io.fun 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/posix/io.sml M basis-library/primitive/prim-basis.mlb M basis-library/primitive/primitive.mlb M basis-library/sml-nj.mlb M basis-library/unsafe.mlb M doc/guide/src/MLBasisAnnotationExamples.adoc M doc/guide/src/MLBasisAnnotations.adoc M lib/ckit-lib/ckit.patch M lib/cml/cml-lib/cml-lib.mlb M lib/cml/core-cml/core-cml.mlb M lib/cml/util/util.mlb 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/mlton/basic/sources.mlb M lib/mlton/env/sources.mlb M lib/mlton/set/sources.mlb M lib/mlyacc-lib/mlyacc-lib.mlb M lib/smlnj-lib/smlnj-lib.patch 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-programs.fun M mlton/atoms/record.fun M mlton/atoms/record.sig M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-core.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/scope.fun M mlton/front-end/ml.grm 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 Log Message: ----------- Merge pull request #181 from MatthewFluet/nonexhaustive-and-redundant-diagnostics A number of improvements to the nonexhaustive and redundant pattern diagnostics. Highlights include: * Expand the set of MLB annotations. (047ea39, 3c26e39) * `nonexhaustiveBind`, `nonexhaustiveExnBind`, `redundantBind`: controls diagnostics for `val` declarations (which may raise Bind on failure). * `nonexhaustiveMatch`, `nonexhaustiveExnMatch`, `redundantMatch`: controls diagnostics for `case` expressions, `fn` expressions, and `fun` declarations (which may raise Match on failure). * `nonexhaustiveRaise`, `nonexhaustiveExnRaise`, `redundantRaise`: controls diagnostics for `handle` expressions (which implicitly re-raise on failure). Note that `nonexhaustiveRaise` and `nonexhaustiveExnRaise` default to `ignore`. The combination of `nonexhaustiveRaise warn` and `nonexhaustiveExnRaise ignore` can be useful for finding handlers that handle some, but not all, values of an exception variant. * Make a number of improvements to diagnostic messages: * Display nonexhaustive exception patterns as `_ : exn`, rather than `e`. (baded47) * Normalize nonexhaustive patterns by sorting (e.g., by ConApp name). (af45703) * Report complete enumeration of unhandled constants, rather than a single example. (0e8d639) * Report nonexhaustive patterns of record type as records, rather than as tuples. (e1d77ca, d4e59fc) Compare: https://github.com/MLton/mlton/compare/3a4546f49625...0978cd579e4a |
From: GitHub <no...@gi...> - 2017-04-24 17:24:48
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 5330abae659f166ca8f9b0794e8d05cb1cc69dd4 https://github.com/MLton/mlton/commit/5330abae659f166ca8f9b0794e8d05cb1cc69dd4 Author: Kent Wilson <ken...@gm...> Date: 2017-04-24 (Mon, 24 Apr 2017) Changed paths: M runtime/platform/mingw.h Log Message: ----------- Added needed define for NEEDS_SIGALTSTACK_EXEC for the mingw platform Commit: d9b4de5c350ea72a9a465611f93f8c58ab6a8f8e https://github.com/MLton/mlton/commit/d9b4de5c350ea72a9a465611f93f8c58ab6a8f8e Author: Kent Wilson <ken...@gm...> Date: 2017-04-24 (Mon, 24 Apr 2017) Changed paths: M runtime/platform/cygwin.h Log Message: ----------- Added needed define for NEEDS_SIGALTSTACK_EXEC for the cygwin platform Commit: 131e1aa13e102034b2886891e8c179978a97271a https://github.com/MLton/mlton/commit/131e1aa13e102034b2886891e8c179978a97271a Author: Kent Wilson <ken...@gm...> Date: 2017-04-24 (Mon, 24 Apr 2017) Changed paths: M mlton/main/main.fun Log Message: ----------- Corrected the OS/Arch checks for the Control.labelsHaveExtra_ call for modern gcc compilers under the mingw-w64 and cygwin-x86_64 platforms. Darwin needs to be tested. Commit: 51a46c5c8b2c0f46815edb4b9cb94d355f8e30d1 https://github.com/MLton/mlton/commit/51a46c5c8b2c0f46815edb4b9cb94d355f8e30d1 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-24 (Mon, 24 Apr 2017) Changed paths: M mlton/main/main.fun Log Message: ----------- Restore behavior of Control.labelsHaveExtra_ under Darwin Commit: 3a4546f49625a0d13b93c78eccecdc898951e32d https://github.com/MLton/mlton/commit/3a4546f49625a0d13b93c78eccecdc898951e32d Author: Matthew Fluet <Mat...@gm...> Date: 2017-04-24 (Mon, 24 Apr 2017) Changed paths: M mlton/main/main.fun M runtime/platform/cygwin.h M runtime/platform/mingw.h Log Message: ----------- Merge pull request #179 from MatthewFluet/mingw-cygwin-fixes Fixes for MinGW and Cygwin platforms Compare: https://github.com/MLton/mlton/compare/d28e0348e4bb...3a4546f49625 |
From: GitHub <no...@gi...> - 2017-04-20 15:19:23
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: c8e4eafaea1acadfe866f9d3209c3155221414c0 https://github.com/MLton/mlton/commit/c8e4eafaea1acadfe866f9d3209c3155221414c0 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-17 (Mon, 17 Apr 2017) Changed paths: M lib/mlton/basic/exn.sml M lib/mlton/basic/exn0.sml Log Message: ----------- Use General.exnMessage for Exn.{layout,toString} in MLton library Commit: 9ab8d91b84044995aca1179014d129ae50871230 https://github.com/MLton/mlton/commit/9ab8d91b84044995aca1179014d129ae50871230 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-17 (Mon, 17 Apr 2017) Changed paths: M mlton/control/control.sml Log Message: ----------- Use Exn.toString (rather than Exn.name) in Control.trace Commit: b95488ecd2261f430153ad0d60678c4373bb7e2f https://github.com/MLton/mlton/commit/b95488ecd2261f430153ad0d60678c4373bb7e2f Author: Matthew Fluet <mat...@gm...> Date: 2017-04-17 (Mon, 17 Apr 2017) Changed paths: M mlton/control/control.sml Log Message: ----------- Use consistent indenting for exception history in Control.trace Commit: e57b3ec30bf3974a417cf72adaee3df9bb5f5f2b https://github.com/MLton/mlton/commit/e57b3ec30bf3974a417cf72adaee3df9bb5f5f2b Author: Matthew Fluet <mat...@gm...> Date: 2017-04-17 (Mon, 17 Apr 2017) Changed paths: M lib/mlton/basic/process.sml Log Message: ----------- Tweak unhandled exception formatting in Process.makeCoommandLine Commit: cb1d69335a54e94adab7a23e48d654e0f2d95061 https://github.com/MLton/mlton/commit/cb1d69335a54e94adab7a23e48d654e0f2d95061 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-17 (Mon, 17 Apr 2017) Changed paths: M lib/mlton/basic/error.sig M lib/mlton/basic/error.sml Log Message: ----------- Add Error.reraise{,Prefix,Suffix} in MLton library Commit: 6bee9917e6310a06ed12236a49f32463ff2381db https://github.com/MLton/mlton/commit/6bee9917e6310a06ed12236a49f32463ff2381db Author: Matthew Fluet <mat...@gm...> Date: 2017-04-17 (Mon, 17 Apr 2017) Changed paths: M mlton/ssa/analyze.fun M mlton/ssa/analyze2.fun M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun Log Message: ----------- Display more context when reporting SSA/SSA2 type errors Commit: 9f521b17e168ed9ff63e6e45ab1c475500a4648c https://github.com/MLton/mlton/commit/9f521b17e168ed9ff63e6e45ab1c475500a4648c Author: Matthew Fluet <mat...@gm...> Date: 2017-04-18 (Tue, 18 Apr 2017) Changed paths: M lib/mlton/basic/layout.sig M lib/mlton/basic/layout.sml Log Message: ----------- Add Layout.setDefaultWidth in MLton library Commit: d93db6f8a9c267fb64a2672d60739ada2a59b5c7 https://github.com/MLton/mlton/commit/d93db6f8a9c267fb64a2672d60739ada2a59b5c7 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-18 (Tue, 18 Apr 2017) Changed paths: M mlton/main/main.fun Log Message: ----------- Add `-layout-width <n>` compile time expert option Commit: 50070b6e8560df800e9cf56b2fa232ae97cca31d https://github.com/MLton/mlton/commit/50070b6e8560df800e9cf56b2fa232ae97cca31d Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M mlton/ssa/shrink.fun M mlton/ssa/shrink2.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 Log Message: ----------- Make cosmetic improvements to SSA{,2} IR display Commit: d8f0da626f4f2946c31014fde8176d7c0eb4cf18 https://github.com/MLton/mlton/commit/d8f0da626f4f2946c31014fde8176d7c0eb4cf18 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml Log Message: ----------- Add Graph.removeNode in MLton library Commit: 240caac04bcf16c69363277cddc50aa11195aa24 https://github.com/MLton/mlton/commit/240caac04bcf16c69363277cddc50aa11195aa24 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M mlton/ssa/shrink.fun M mlton/ssa/shrink2.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 Log Message: ----------- Give Ssa{,2}.Function.layoutDot more descriptive output type Commit: 58502c859c82bf88a02c40a46162a00851d85845 https://github.com/MLton/mlton/commit/58502c859c82bf88a02c40a46162a00851d85845 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M lib/mlton/basic/directed-graph.sig M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig Log Message: ----------- Include loop forest graph with SSA IR dot outputs Commit: 19e385da5ae8de90bf59f1951d0290debe80be15 https://github.com/MLton/mlton/commit/19e385da5ae8de90bf59f1951d0290debe80be15 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/dot.sml Log Message: ----------- Improve dot output for loop forest graph Commit: 4cfc92c7e92c0bf1fe7b2aba0300a34fb7b4f151 https://github.com/MLton/mlton/commit/4cfc92c7e92c0bf1fe7b2aba0300a34fb7b4f151 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M mlton/ssa/prepasses.fun Log Message: ----------- Fix Ssa.PrePasses.breakCriticalEdges for codeMotion To accomodate code motion, a block with multiple successors should have a unique predecessor with a Goto transfer, which can accomodate both new code and an addition of arguments. This was mostly enforced, but a Case transfer with one successor (e.g., for a datatype with one variant) could violate. Commit: bf85f8d8573c61fe22fa31af8a5a775473860a94 https://github.com/MLton/mlton/commit/bf85f8d8573c61fe22fa31af8a5a775473860a94 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M mlton/backend/live.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Rename foreachVar to foreachDef and add foreachUse in Rssa.Function Commit: c562d91126f7e463f391b18a09f1c16108da0f71 https://github.com/MLton/mlton/commit/c562d91126f7e463f391b18a09f1c16108da0f71 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Limit Machine IR Globals to vars used in non-main functions Previously, every variable bound in the main function of the RSSA IR (used to allocate globals) is allocated as a Machine IR global. However, many variables bound in the main function are simply required as components to compute the "real" global that is used by the rest of the program. For example, consider a list literal that is lifted to a global; in the SSA and RSSA IRs, each tail is also bound as a global, but only the final cons is referenced elsewhere in the program. A simple walk over the non-main functions of the RSSA IR program identifies those variables used outside of the main function and only variables that are defined in the main function and used outside of the main function are allocated as globals; other variables can be allocated as Stack or Register as appropriate. On a self-compile, globals change from: PRIVATE CPointer globalCPointer [3]; PRIVATE Int8 globalInt8 [0]; PRIVATE Int16 globalInt16 [0]; PRIVATE Int32 globalInt32 [0]; PRIVATE Int64 globalInt64 [0]; PRIVATE Objptr globalObjptr [9157]; PRIVATE Real32 globalReal32 [7]; PRIVATE Real64 globalReal64 [9]; PRIVATE Word8 globalWord8 [0]; PRIVATE Word16 globalWord16 [377]; PRIVATE Word32 globalWord32 [524]; PRIVATE Word64 globalWord64 [625]; PRIVATE Pointer globalObjptrNonRoot [1]; to: PRIVATE CPointer globalCPointer [3]; PRIVATE Int8 globalInt8 [0]; PRIVATE Int16 globalInt16 [0]; PRIVATE Int32 globalInt32 [0]; PRIVATE Int64 globalInt64 [0]; PRIVATE Objptr globalObjptr [6180]; PRIVATE Real32 globalReal32 [7]; PRIVATE Real64 globalReal64 [9]; PRIVATE Word8 globalWord8 [0]; PRIVATE Word16 globalWord16 [80]; PRIVATE Word32 globalWord32 [4]; PRIVATE Word64 globalWord64 [73]; PRIVATE Pointer globalObjptrNonRoot [1]; This saves some code size and runtime space (since these globals are statically allocated). Furthermore, reducing the number of global objptrs saves some GC work, since each GC needs to iterate through all of the global objptrs. In general, heap space won't be saved, since (as described above) most variables in the main function that are not global are used to construct objects that are global objptrs, so the objects allocated in the main function are typically retained by their (global) containing object. Commit: 303e2cb97f14e3fd81b759faf8524230c8953860 https://github.com/MLton/mlton/commit/303e2cb97f14e3fd81b759faf8524230c8953860 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Make cosmetic improvements to RSSA IR display Commit: 36ec8ab960904b1a1abb5955608eeb2f111d39c0 https://github.com/MLton/mlton/commit/36ec8ab960904b1a1abb5955608eeb2f111d39c0 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-19 (Wed, 19 Apr 2017) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Improve RSSA constant folding and copy propagation Interpretation of PrimApp argument operands was not seeing through Cast operands to inner constants, which was failing to constant fold some bit manipulations; for example: x_14: Bits64 = WordU8_extdToWord64 (Cast (0x5: Word8, [Word4, Bits4])) x_12: [Word4, Bits60] = Word64_lshift (Cast (x_14, [Word4, Bits60]), 0x2: Word32) x_13: [Word4, Bits60] = Word64_orb (x_12, 0x3: Word64) ... OP (x_347734, 0): Objptr (opt_4307, opt_4306, opt_4305, opt_4304, opt_4303, opt_4302) = Cast (x_13, Objptr (opt_4307, opt_4306, opt_4305, opt_4304, opt_4303, opt_4302)) In particular, this would lead to unnecessary Word globals. On a self-compile, globals change from: PRIVATE CPointer globalCPointer [3]; PRIVATE Int8 globalInt8 [0]; PRIVATE Int16 globalInt16 [0]; PRIVATE Int32 globalInt32 [0]; PRIVATE Int64 globalInt64 [0]; PRIVATE Objptr globalObjptr [6183]; PRIVATE Real32 globalReal32 [7]; PRIVATE Real64 globalReal64 [9]; PRIVATE Word8 globalWord8 [0]; PRIVATE Word16 globalWord16 [80]; PRIVATE Word32 globalWord32 [4]; PRIVATE Word64 globalWord64 [73]; PRIVATE Pointer globalObjptrNonRoot [1]; to PRIVATE CPointer globalCPointer [3]; PRIVATE Int8 globalInt8 [0]; PRIVATE Int16 globalInt16 [0]; PRIVATE Int32 globalInt32 [0]; PRIVATE Int64 globalInt64 [0]; PRIVATE Objptr globalObjptr [6183]; PRIVATE Real32 globalReal32 [7]; PRIVATE Real64 globalReal64 [9]; PRIVATE Word8 globalWord8 [0]; PRIVATE Word16 globalWord16 [0]; PRIVATE Word32 globalWord32 [0]; PRIVATE Word64 globalWord64 [0]; PRIVATE Pointer globalObjptrNonRoot [1]; Again, this leads to a small savings in code size and runtime space. Commit: d28e0348e4bb574e21a607910ca16ddf82d658aa https://github.com/MLton/mlton/commit/d28e0348e4bb574e21a607910ca16ddf82d658aa Author: Matthew Fluet <Mat...@gm...> Date: 2017-04-20 (Thu, 20 Apr 2017) Changed paths: 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/process.sml M mlton/backend/backend.fun M mlton/backend/live.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/control/control.sml M mlton/main/main.fun M mlton/ssa/analyze.fun M mlton/ssa/analyze2.fun M mlton/ssa/prepasses.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.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 Log Message: ----------- Merge pull request #178 from MatthewFluet/ssa-updates Updates to SSA, SSA2, and RSSA IR support infrastructure Highlights: * Display more context when reporting SSA and SSA2 IR type errors. A simple `Analyze.coerces` or `Reference to <x> not in scope` is not particularly illuminating. Now the containing statement or transfer, the containing block label, and the containing function name are appended to the error message (6bee991). * Add `-layout-width <n>` compile time expert option to control the target width for the pretty printer (d93db6f). * Make cosmetic improvements to SSA and SSA2 IR display: * Uses of global variables bound to small constants and conapps are commented with the corresponding value (50070b6). * Include loop forest, along with control-flow graph and dominator tree, for functions with `-keep dot` (58502c8, 19e385d). * Fix Ssa.PrePasses.breakCriticalEdges for codeMotion (4cfc92c). * Make cosmetic improvements to RSSA IR display (303e2cb). * Improve RSSA constant folding and copy propagation (36ec8ab) * Limit Machine IR Globals to variables used outside of the main function (c562d91). Compare: https://github.com/MLton/mlton/compare/e7577991a249...d28e0348e4bb |
From: GitHub <no...@gi...> - 2017-04-15 22:39:37
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 66969a12e4e1def2ea75cc21bd031370ad4df8f3 https://github.com/MLton/mlton/commit/66969a12e4e1def2ea75cc21bd031370ad4df8f3 Author: Matthew Fluet <mat...@gm...> Date: 2017-04-15 (Sat, 15 Apr 2017) Changed paths: M runtime/gc/controls.h M runtime/gc/done.c M runtime/gc/init.c Log Message: ----------- Add `gc-summary-file <file>` runtime option The `gc-summary-file <file>` runtime option allows the gc summary information to be directly saved to a file (rather than <stderr>); this can simplify gathering statistics for benchmarking if either the benchmark program or harness uses <stderr>. Commit: e2873ffc947de34f9ad2ec2dfc2220183191835a https://github.com/MLton/mlton/commit/e2873ffc947de34f9ad2ec2dfc2220183191835a Author: Matthew Fluet <mat...@gm...> Date: 2017-04-15 (Sat, 15 Apr 2017) Changed paths: M runtime/gc/init.c Log Message: ----------- Improve handling of missing runtime option arguments Uniformly treat "--" as a missing argument; for most runtime options requiring an option, a "--" is flagged as an invalid int or float. However, for "gc-summary-file", it can be (typical) be opened as a file and may be incorrectly taken as the argument. Commit: a9edcb8358712222157da47c380a86bcad7873ce https://github.com/MLton/mlton/commit/a9edcb8358712222157da47c380a86bcad7873ce Author: Matthew Fluet <mat...@gm...> Date: 2017-04-15 (Sat, 15 Apr 2017) Changed paths: M doc/guide/src/RunTimeOptions.adoc Log Message: ----------- Document `gc-summary-file` runtime option Commit: e7577991a2491796b5d6f1a5e3e68ef28473c2b2 https://github.com/MLton/mlton/commit/e7577991a2491796b5d6f1a5e3e68ef28473c2b2 Author: Matthew Fluet <Mat...@gm...> Date: 2017-04-15 (Sat, 15 Apr 2017) Changed paths: M doc/guide/src/RunTimeOptions.adoc M runtime/gc/controls.h M runtime/gc/done.c M runtime/gc/init.c Log Message: ----------- Merge pull request #177 from MatthewFluet/gc-summary-file Add `gc-summary-file <file>` runtime option Compare: https://github.com/MLton/mlton/compare/e6d8a4c14112...e7577991a249 |