Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream merge #153

Merged
merged 273 commits into from
May 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
273 commits
Select commit Hold shift + click to select a range
e9fd4ec
Bump copyright year in `LICENSE`
MatthewFluet Jan 15, 2021
3a7c193
Merge pull request #426 from MatthewFluet/license-update
MatthewFluet Jan 15, 2021
5668911
Update to SML/NJ 110.99 libraries
MatthewFluet Jan 17, 2021
8aef6cb
Merge pull request #427 from MatthewFluet/smlnj-libraries-110.99
MatthewFluet Jan 17, 2021
d8e4178
Update mlnlffigen to new SML/NJ Library PP functions
MatthewFluet Jan 17, 2021
5943136
Merge pull request #428 from MatthewFluet/mlnlffigen-fixes-for-smlnj-…
MatthewFluet Jan 17, 2021
0b79a83
Create and update pages for 20210117 release
MatthewFluet Jan 17, 2021
b1f1f0f
Merge pull request #429 from MatthewFluet/20210107-release
MatthewFluet Jan 17, 2021
eb8b834
Link additional binary packages
MatthewFluet Jan 17, 2021
b35799f
Merge pull request #430 from MatthewFluet/guide-updates
MatthewFluet Jan 17, 2021
a0fa8ef
fix option '-pi-style pie'
jo-he Feb 15, 2021
2e7bbdb
Merge pull request #432 from jo-he/master
MatthewFluet Feb 15, 2021
a6fd7e8
correct path in 'make polyml-mlton'
jo-he Feb 16, 2021
22002cd
remove duplicate 'if'
jo-he Feb 16, 2021
b8ebaa5
Merge pull request #434 from jo-he/master
MatthewFluet Feb 17, 2021
1445bdf
Add support for DESTDIR in Makefile.binary
unspecd Mar 8, 2021
f091f3f
Merge pull request #435 from unspecd/fix-makefile
MatthewFluet Mar 9, 2021
43442c8
Drop (commented) links to binary releases for Mac OS X High Sierra
MatthewFluet Mar 23, 2021
9de1baa
Drop outdated comment and broken link on OCaml page
MatthewFluet Mar 23, 2021
05e8982
Merge pull request #437 from MatthewFluet/guide-updates
MatthewFluet Mar 23, 2021
483fee3
Use static pattern rule for bootstrap compilation
MatthewFluet Jun 1, 2021
106a8c7
Merge pull request #439 from MatthewFluet/makefile-updates
MatthewFluet Jun 2, 2021
0b531fa
Match `layout` and `parse` for `CSymbol`
MatthewFluet Jul 17, 2021
e876ef1
Add `List.empty` and `List.single` to MLton Library
MatthewFluet Jul 17, 2021
d7e27d9
Fix bug in `Parse.each`
MatthewFluet Jul 17, 2021
9014b7d
Parse IL identifiers like `^Env_123`
MatthewFluet Jul 17, 2021
aa4c0ad
Control type-checking of ILs with `-{enable,disable}-pass`
MatthewFluet Jul 17, 2021
f85ac69
Report statistics on number of constant variables in `ConstantPropaga…
MatthewFluet Jul 17, 2021
7dc17e8
Print circular abstract values in `ConstantPropagation`
MatthewFluet Jul 17, 2021
3278b36
Add control for cut-off depth for printing of abs vals in `ConstantPr…
MatthewFluet Jul 17, 2021
870cc52
Preserve `Vector` args to `SideEffect` prims in `ConstantPropagation`
MatthewFluet Jul 18, 2021
96024a8
Fix bug in `ConstantPropagations.sendConApp`
MatthewFluet Jul 18, 2021
45a71cd
Layout `Birth` details in `ConstantPropagation`
MatthewFluet Jul 18, 2021
d96cd4c
Fix latent bugs in "birth" of array abstract values in `ConstantPropa…
MatthewFluet Jul 18, 2021
f04c777
Add `Ref.new` to MLton Library
MatthewFluet Jul 26, 2021
7b45623
Introduce `functor FlatLattice{Rec,Poly,Param,Mono}`
MatthewFluet Jul 28, 2021
a3ad339
Use `functor FlatLatticeParam` for `structure Birth` in `ConstantProp…
MatthewFluet Jul 28, 2021
6f082e2
Use `functor FlatLatticeMono` for `structure Const` in `ConstantPropa…
MatthewFluet Jul 28, 2021
6dfd557
Rename `de{vector,array}` to `{vector,array}Elt` in `ConstantPropagat…
MatthewFluet Jul 28, 2021
4c731d1
Add `WordXVector.foreach`
MatthewFluet Jul 28, 2021
acf093c
Improve `constToVector` in `ConstantPropagation`
MatthewFluet Jul 28, 2021
036c0c4
Use `functor FlatLatticePoly` for `structure Data` in `ConstantPropag…
MatthewFluet Jul 28, 2021
603877b
Reorganize code of `structure Value` in `ConstantPropagation`
MatthewFluet Jul 28, 2021
74aa862
Perform constant folding during `ConstantPropagation`
MatthewFluet Jul 29, 2021
568ed01
Fix latent bug in `Useless`
MatthewFluet Jul 30, 2021
2e46721
Introduce alternate implementation of sequences in `ConstantPropagation`
MatthewFluet Jul 30, 2021
ede0d6d
Merge pull request #442 from MatthewFluet/constant-propagation-updates
MatthewFluet Aug 3, 2021
96e56d9
Update Homebrew, to avoid building `mlton` from source
MatthewFluet Aug 11, 2021
c4bb68a
Update TravisCI to `xcode12`
MatthewFluet Aug 11, 2021
f7e173a
Experiment with GitHub Action
MatthewFluet Aug 11, 2021
22e0793
Tweak GitHub Action
MatthewFluet Aug 12, 2021
12ad991
Add `ieee-real` and `real-str` to whitelist
MatthewFluet Aug 12, 2021
644a246
Remove TravisCI
MatthewFluet Aug 12, 2021
8c7a939
Add GitHub Action CI badge
MatthewFluet Aug 12, 2021
54ef684
Experiment with CI GitHub Action matrix
MatthewFluet Aug 12, 2021
41f7253
Merge pull request #444 from MatthewFluet/ci-updates
MatthewFluet Aug 12, 2021
f1c81b3
Use `FlatLatticeMono` in `LocalRef`
MatthewFluet Aug 16, 2021
f037f50
Add `Value.is{Bottom,Point{,Eq},Top` to `functor FlatLatticeRec`
MatthewFluet Aug 16, 2021
f955b54
Export `lowerBoundPoint` in `functor FlatLatticeRec`
MatthewFluet Aug 16, 2021
c653d7b
Constrain `new{,Bottom,Point,Top}` in `functor FlatLatticeMono`
MatthewFluet Aug 16, 2021
09c5e9c
Use `functor FlatLatticeMono` in `ImplementHandlers`
MatthewFluet Aug 16, 2021
f362aa3
Use `functor FlatLatticeMono` in `RssaTypeCheck`
MatthewFluet Aug 16, 2021
b2fca3d
Remove old `functor FlatLattice(S: FLAT_LATTICE_STRUCTS): FLAT_LATTICE`
MatthewFluet Aug 16, 2021
f8c00b0
Minimize `curSourceSeqsIndex` updates with `-profile time-field`
MatthewFluet Aug 18, 2021
84a5422
Eliminate `-profile time-label` compile-time option
MatthewFluet Aug 18, 2021
88fdfb6
Eliminate `-profile label` compile-time option
MatthewFluet Aug 18, 2021
ab44f85
Simplify `ImplementProfiling` given removal of `-profile time-label`
MatthewFluet Aug 18, 2021
ed6bba7
Eliminate `PROFILE_TIME_LABEL` in runtime
MatthewFluet Aug 18, 2021
3f4c2d8
Eliminate `ProfileLabel` statement in RSSA and Machine ILs
MatthewFluet Aug 18, 2021
400bcb2
Eliminate `ProfileLabel` from x86 codegen
MatthewFluet Aug 18, 2021
93156c7
Eliminate `ProfileLabel` from amd64 codegen
MatthewFluet Aug 18, 2021
b301de1
Remove unused `signature PROFILE_LABEL` from export list
MatthewFluet Aug 18, 2021
cb61e11
Eliminate `profileLabelInfos` from `SourceMaps.T` and `GC_sourceMaps`
MatthewFluet Aug 18, 2021
a8bd4d2
Eliminate `Atoms.ProfileLabel`
MatthewFluet Aug 18, 2021
075eaef
Rename `ProfileTimeField`/`PROFILE_TIME_FIELD` to `ProfileTime`/`PROF…
MatthewFluet Aug 18, 2021
8b8e215
Eliminate `GC_setSigProfHandler`
MatthewFluet Aug 19, 2021
6c6d54a
Update documentation for time profiling
MatthewFluet Aug 19, 2021
15db4e3
Update `CHANGELOG.adoc`
MatthewFluet Aug 19, 2021
3f4c5c3
Merge pull request #445 from MatthewFluet/elim-profile-time-label
MatthewFluet Aug 19, 2021
e67e201
Run GitHub CI Action on all pull_request events
MatthewFluet Aug 19, 2021
4187512
Exclude `ubuntu`/`amd64`/`clang` from GitHub CI Action matrix
MatthewFluet Aug 19, 2021
f724a87
Build all position independence style variants of runtime
MatthewFluet Aug 19, 2021
85026ca
Remove use of associative arrays in `bin/regression`
MatthewFluet Aug 19, 2021
7eee759
Tweak compilation flags for `regression/world*` tests
MatthewFluet Aug 19, 2021
466bc5c
Formatting of `.github/workflows/ci.yml`
MatthewFluet Aug 19, 2021
870d8f1
Homebrew's `clang` does not have `/usr/local` on include or lib paths
MatthewFluet Aug 19, 2021
9db5671
Merge pull request #446 from MatthewFluet/ci-updates
MatthewFluet Aug 20, 2021
aca9b71
Add workflow for Windows
melted Aug 28, 2021
13fa665
Fix whitelist problem for Windows CI
melted Aug 29, 2021
dfd664c
Merge pull request #447 from melted/windows_actions
MatthewFluet Aug 31, 2021
007a06b
Make cosmetic change to formatting of anchored list item
MatthewFluet Sep 9, 2021
ad050e0
Update link to Norman Ramsey's Noweb
MatthewFluet Sep 9, 2021
1ecf751
Put `showBasis` directive example in a listing block
MatthewFluet Sep 9, 2021
37fbd12
Replace references to `gcc` to `cc`
MatthewFluet Sep 9, 2021
3245e0d
Fix lines included from `ast-core.sig` on `AST` page
MatthewFluet Sep 15, 2021
030265d
Fix typo in referenced expression on ValueRestriction page
MatthewFluet Oct 21, 2021
e56b4c9
Fix link to ValueRestriction page from Fold page
MatthewFluet Oct 21, 2021
57c8173
Add missing `[source,sml]` style to listing blocks on Printf page
MatthewFluet Oct 21, 2021
f26f55c
Remove references to `Arith` transfer on `CommonSubexp` page
MatthewFluet Oct 21, 2021
d7dc8d6
Add additional `BugsYYYYMMDD` pages to `Bug` page
MatthewFluet Oct 21, 2021
467a075
Update `HowProfilingWorksPage`
MatthewFluet Oct 21, 2021
3358def
Fix link to `LICENSE` file on `License` page
MatthewFluet Oct 21, 2021
255ea24
Tweak some AsciiDoc formatting
MatthewFluet Oct 21, 2021
367ed63
Convert guide to AsciiDoctor
MatthewFluet Oct 21, 2021
05711ab
Commit scripted AsciiDoc.py to AsciiDoctor conversion
MatthewFluet Oct 21, 2021
a3fb1ee
Update `CHANGELOG.adoc` to AsciiDoctor syntax
MatthewFluet Oct 21, 2021
ece76d7
Mention AsciiDoctor/Rouge rather than AsciiDoc/Pygments in `README.adoc`
MatthewFluet Oct 21, 2021
08522df
Merge pull request #451 from MatthewFluet/asciidoctor
MatthewFluet Oct 22, 2021
9101966
Avoid `$(FIND) ... | $(XARGS) $(TAR) cf - | $(TAR) xf -` idiom
MatthewFluet Oct 27, 2021
c4526ce
Remove `XARGS := xargs` from `Makefile.config`
MatthewFluet Oct 27, 2021
50e40f6
Merge pull request #452 from MatthewFluet/windows-ci-fix
MatthewFluet Oct 27, 2021
c26a969
Fix `COUNTER_BITS` definition in `object.h`
MatthewFluet Oct 27, 2021
3c40b7b
Merge pull request #453 from MatthewFluet/gc-header-counter-bits
MatthewFluet Oct 27, 2021
7fc82ef
Add `RSYNC := rsync` to `Makefile.config`
MatthewFluet Oct 29, 2021
6395352
Use `$(RSYNC)` in `doc/guide/Makefile` `upload_mlton.sourceforge.io` …
MatthewFluet Oct 29, 2021
7a7e17e
Create a GitHub Action to build and publish website/guide
MatthewFluet Oct 29, 2021
8c3895a
Merge pull request #454 from MatthewFluet/guide-action
MatthewFluet Oct 29, 2021
b75d028
Shorten name of GitHub Action for publishing website/guide
MatthewFluet Nov 1, 2021
593d088
Fetch entire history when publishing guide via GitHub Action
MatthewFluet Nov 1, 2021
4b7c762
Make mlton.sourceforge.io rsync user configurable
MatthewFluet Nov 1, 2021
9e1b7ae
Use limited account for uploading mlton.sourceforge.io
MatthewFluet Nov 1, 2021
2ec956f
Merge pull request #457 from MatthewFluet/guide-updates
MatthewFluet Nov 1, 2021
bb7b2bc
Remove empty private keys in `setup_ssh.sh` script
MatthewFluet Nov 1, 2021
fdc5027
Merge pull request #458 from MatthewFluet/guide-updates
MatthewFluet Nov 1, 2021
7f46a68
Remove empty private keys in `setup_ssh.sh` script
MatthewFluet Nov 1, 2021
881cf8d
Merge pull request #459 from MatthewFluet/guide-updates
MatthewFluet Nov 1, 2021
7699a91
Remove empty private keys in `setup_ssh.sh` script
MatthewFluet Nov 1, 2021
4a86efc
Merge pull request #460 from MatthewFluet/guide-updates
MatthewFluet Nov 1, 2021
950fa09
Introduce `-force-handles-signals {false|true}` control
MatthewFluet Nov 8, 2021
6829943
Use `Control.forceHandlesSignals` in `ClosureConvert` and `Ssa2ToRssa…
MatthewFluet Nov 8, 2021
ef9f3a9
Fields accessed in `GC_handler` should be `volatile`.
MatthewFluet Nov 8, 2021
a6c44cb
Add `volatile: bool` field to `Machine.Operand.Offset` variant
MatthewFluet Nov 8, 2021
4580f8a
Inline single use of `lessThan` in `LimitCheck.insertFunction`
MatthewFluet Nov 9, 2021
dd0ec16
Use `List.push`
MatthewFluet Nov 9, 2021
32b7b9f
Revise variable names
MatthewFluet Nov 9, 2021
4e915f6
Avoid creating unreachable blocks for `Thread_atomic{Begin,End}` in S…
MatthewFluet Nov 10, 2021
950b181
Reverse checks for switching to signal in `Thread_atomicEnd`
MatthewFluet Nov 10, 2021
ea4a320
Don't conflate "dynamic" bytes allocated with "big" bytes allocated
MatthewFluet Nov 10, 2021
5c63c0c
Generalize `Rssa.Transfer.{ifBool{,E},isZero}`
MatthewFluet Nov 11, 2021
1b916f0
Refactor `LimitCheck.insertFunction`
MatthewFluet Nov 12, 2021
2cfba2e
Remove unnecessary `datatype z = datatype Transfer.t`
MatthewFluet Nov 12, 2021
6f3d52a
Move `structure LimitCheck` into `Control`
MatthewFluet Nov 12, 2021
793c8f5
Refactor `List.push (newBlocks, ...)` with helper function
MatthewFluet Nov 12, 2021
6c98969
Perform `insertFunction` in `transform`
MatthewFluet Nov 12, 2021
a8dde0f
Consolidate `Control.diagnostic` for `maxPath`
MatthewFluet Nov 12, 2021
187c13e
Prepare to merge `SignalCheck` into `LimitCheck`
MatthewFluet Nov 12, 2021
2f45dcf
Simplify logic for `signalCheckAtLimitCheck`
MatthewFluet Nov 12, 2021
3305aff
Merge `SignalCheck` into `LimitCheck` and rename to `InsertChecks`
MatthewFluet Nov 12, 2021
2b390d6
Add signal check controls
MatthewFluet Nov 15, 2021
2192b78
Refactor limit check controls and add stack check controls
MatthewFluet Nov 15, 2021
1d07911
Simplify signal handling
MatthewFluet Nov 16, 2021
195e3a6
Revert "Simplify signal handling"
MatthewFluet Dec 11, 2021
9e44668
Perform an `RssaShrink` after `InsertChecks` and before `BounceVars`
MatthewFluet Dec 11, 2021
ac4d126
Further revise checks for switching to signal in `Thread_atomicEnd`
MatthewFluet Dec 13, 2021
54bf609
Use 32-bit `Bool_t` rather than 8-bit `bool` for `_import`-ed GC fns
MatthewFluet Dec 17, 2021
76c2b40
Use (default) `impure` attribute for many `_import`-ed `GC_*` fs
MatthewFluet Dec 17, 2021
b7a7f67
Update CHANGELOG.adoc
MatthewFluet Dec 17, 2021
85fe3b6
Merge pull request #464 from MatthewFluet/update-runtime-fns
MatthewFluet Dec 17, 2021
718f002
Merge pull request #465 from MatthewFluet/signal-checks
MatthewFluet Dec 17, 2021
d030db8
Fix bug in `ConstantPropagation` with vector literals.
MatthewFluet Dec 17, 2021
3c58e22
Merge pull request #466 from MatthewFluet/bug-462
MatthewFluet Dec 18, 2021
69a4b39
Use `OLD_MLTON` for `boostrap-{smlnj,polyml}` targets
MatthewFluet Dec 22, 2021
0efb0ca
Use `SMLNJ` variable in `Makefile` and `mlton-script`
MatthewFluet Dec 22, 2021
420a3a3
Use `@SMLsuffix` rtsarg
MatthewFluet Dec 22, 2021
2b39c71
Use Makefile variable `CAT` for standard command `cat`
MatthewFluet Dec 22, 2021
9419d53
Use `HAVE_CMD` function to detect presence `pdflatex`
MatthewFluet Dec 22, 2021
6e24fcf
Improve SML/NJ build
MatthewFluet Dec 23, 2021
7607bb3
Simplify `util/cm2mlb/Makefile`
MatthewFluet Dec 23, 2021
f074a9a
Include generated `mllex` and `mlyacc` files for bootstrapping
MatthewFluet Dec 23, 2021
c7f1cea
Ensure a clean `clean` when no `mlton` command found
MatthewFluet Dec 23, 2021
4e6d348
Use `polyc` for Poly/ML build
MatthewFluet Dec 24, 2021
3f85fe4
Remove import of `$(SML_LIB)/basis/unsafe.mlb` in `mlton/front-end/so…
MatthewFluet Dec 29, 2021
c04fd03
Add a simple `mlbdeps` shell script
MatthewFluet Dec 29, 2021
06841ab
Simplify computation of `polyml-mlton` dependencies
MatthewFluet Dec 29, 2021
7a3c477
Use `mlbdeps` script to build `mlton-polyml.sml`
MatthewFluet Dec 29, 2021
bcf721f
Exclude `{smlnj,polyml}-mlton` targets when not goals
MatthewFluet Dec 29, 2021
37729cf
Replace `$(RUN_MLTON_DEPS) -stop f` with `$(MLBDEPS)` in `Makefile`s
MatthewFluet Dec 29, 2021
e627cc8
Use `$(MLBDEPS)` to build `mlton-stubs.mlb`
MatthewFluet Dec 29, 2021
f029339
Remove dependency on `MLton.isMLton` in `val Popt.makeUsage`
MatthewFluet Dec 29, 2021
a9ae848
Don't force `val Assert.debug = true` with non-MLton host compilers
MatthewFluet Dec 29, 2021
63ad103
Simplify creation of `mlton.{smlnj,polyml}`
MatthewFluet Dec 29, 2021
a03139d
Fix comment in Makefile and CrossCompiling.adoc
unspecd Dec 30, 2021
420c48c
Use Posix shell function definition syntax
MatthewFluet Dec 30, 2021
1e2d2b1
Merge pull request #467 from unspecd/fix-comments
MatthewFluet Dec 30, 2021
2f4b32d
Minimize MLton Library
MatthewFluet Jan 2, 2022
ac9d2d3
fix broken link
devMYC Jan 4, 2022
f42ca8c
Merge pull request #468 from devMYC/ref-link-fix
MatthewFluet Jan 4, 2022
5dc6f7d
Minimize stub `structure MLton`
MatthewFluet Jan 4, 2022
63eefa9
Fix and minimize stubs for Poly/ML
MatthewFluet Jan 4, 2022
c08368a
Reorganize stubs
MatthewFluet Jan 4, 2022
2c6a654
Use old-MLton `structure MLton.Process` for stubs
MatthewFluet Jan 4, 2022
47af574
Eliminate unnecessary top-level `type int = Int.int` declarations
MatthewFluet Jan 5, 2022
ba99895
Reorganize `structure MLtonPlatform` to enable sharing with stubs
MatthewFluet Jan 5, 2022
a85fb4f
Refactor top-level items of `signature MLTON` into `signature MLTON_R…
MatthewFluet Jan 5, 2022
28625e2
Use `CharVector.tabulate` rather than `String.tabulate`
MatthewFluet Jan 5, 2022
31d65fe
Share Basis Library implementation of `structure MLton` with stubs
MatthewFluet Jan 5, 2022
7bd8158
Reorganize `structure MLtonPlatform` to enable sharing with stubs
MatthewFluet Jan 6, 2022
956299c
Share Basis Library implementation of `structure MLtonPlatform` with …
MatthewFluet Jan 6, 2022
90b4665
Derive stubs `structure MLton` from `MLTON_DEBUG`, `HOST_ARCH`, and `…
MatthewFluet Jan 6, 2022
43b6452
Share common stub Basis Library implementations
MatthewFluet Jan 6, 2022
ff7b84e
Share more common stub Basis Library implementation details
MatthewFluet Jan 6, 2022
ab65e5e
Sort specs in `signature REAL`
MatthewFluet Jan 6, 2022
cde9998
Add preliminary support for building with MLKit
MatthewFluet Jan 7, 2022
790b2f3
Consistently use `HAVE_CMD` in `Makefile.config`
MatthewFluet Jan 7, 2022
8b12868
Fix style in `Makefile.config`
MatthewFluet Jan 7, 2022
2c65527
Remove `Makefile`-s that only call `bin/clean`
MatthewFluet Jan 7, 2022
799f7dd
Share common goals in `Makefile`s
MatthewFluet Jan 7, 2022
427a80b
Remove nonexistent MLton Library guide
MatthewFluet Jan 7, 2022
f4c85f7
Update `doc/mlb-formal/Makefile`
MatthewFluet Jan 7, 2022
4ef876b
Extend common `clean` goal to handle extensions, excludes, and execut…
MatthewFluet Jan 9, 2022
a4c40d2
Use `Makefile.config` in `doc/examples{,*}/Makefile`-s
MatthewFluet Jan 9, 2022
807fb4d
Use `Makefile.config` in `doc/{hacker,style}-guide/Makefile`-s
MatthewFluet Jan 9, 2022
a7973a6
Rename `bin/ls-ignore` to `bin/find-ignore` and support action on fou…
MatthewFluet Jan 9, 2022
82e8634
Use `Makefile` variables in `bin/{clean,find-ignore}`
MatthewFluet Jan 9, 2022
b667468
Quote paths
MatthewFluet Jan 9, 2022
c7b0034
Use a `MAKE` shell variable rather than `./bin/mmake` in `./bin/regre…
MatthewFluet Jan 9, 2022
79fb075
Remove (now) unused `./bin/mmake` script
MatthewFluet Jan 9, 2022
dbb1ac8
Use new style command substitution syntax
MatthewFluet Jan 9, 2022
46d7ad6
Merge pull request #469 from MatthewFluet/bootstrap-updates
MatthewFluet Jan 10, 2022
3951a14
Accept a non-semicolon terminated final expression in the syntax of p…
MatthewFluet Jan 11, 2022
822aa81
Merge pull request #470 from MatthewFluet/prog-syntax
MatthewFluet Jan 11, 2022
5ab60ac
Fix `normalize_path` in `./bin/mlbdeps`
MatthewFluet Jan 12, 2022
b39a120
Merge pull request #471 from MatthewFluet/fix-mlbdeps-script
MatthewFluet Jan 12, 2022
0e8945f
Add `MLKIT_FLAGS` Makefile variable
MatthewFluet Feb 6, 2022
56f841f
Aborted attempt to automatically generate `sources-mlkit.mlb` files
MatthewFluet Feb 6, 2022
02a53cc
Merge pull request #472 from MatthewFluet/mlkit
MatthewFluet Feb 17, 2022
737a4b6
Properly handle single stack frame in `GC_handleSigProf`
MatthewFluet Feb 20, 2022
03bd796
Mutable fields accessed in `GC_handleSigProf` should be `volatile`
MatthewFluet Feb 20, 2022
668a55d
Mutable fields accessed in `GC_handleSigProf` should be `volatile`
MatthewFluet Feb 20, 2022
053f8c7
Add `volatile: bool` field to `Machine.StackOffset.T`
MatthewFluet Feb 20, 2022
3db0ef4
Add `volatile: bool` field to `Machine.Operand.SequenceOffset` variant
MatthewFluet Feb 20, 2022
c20c737
Document bug fix for `-profile time`
MatthewFluet Feb 20, 2022
3934101
Avoid some redundant writes to `GCState.stackTop` with `-profile time`
MatthewFluet Feb 20, 2022
5ba967d
Merge pull request #474 from MatthewFluet/profile-time-segfault
MatthewFluet Feb 21, 2022
490119d
Add `val CType.isSignedInt: CType.t -> bool`
MatthewFluet Mar 16, 2022
286a54c
Sign- or zero-extend 8- and 16-bit args for C calls in x86 and amd64 …
MatthewFluet Mar 16, 2022
c4502bd
Support `signext` and `zeroext` parameter attributes in LLVM codegen
MatthewFluet Mar 16, 2022
4d5957d
Document bug fix for C calling convention in amd64 and LLVM codegens
MatthewFluet Mar 16, 2022
0afbac6
Merge pull request #476 from MatthewFluet/calling-convention-fix-for-…
MatthewFluet Mar 16, 2022
f8ffcb8
Fix and consolidate Windows CI
MatthewFluet Mar 18, 2022
31b0bc7
Simplify selection of default shell in CI GitHub Action
MatthewFluet Mar 18, 2022
625209f
Merge pull request #477 from MatthewFluet/windows-ci
MatthewFluet Mar 18, 2022
a58b265
Experiment with uploading build artifacts in CI
MatthewFluet May 15, 2022
2a3d444
Remove MinGW `*.sed.ok` files after regression test
MatthewFluet May 16, 2022
d6614fc
Check `git status` and `git diff`; windows-latest build shows dirty
MatthewFluet May 16, 2022
cfadbe1
Process all `.boot` files with sed to avoid dirtying worktree on MinGW
MatthewFluet May 17, 2022
8163e84
Fix broken `tar` invocations in `install-docs` target
MatthewFluet May 17, 2022
677a2d3
Reorder matrix and artifact names in `ci.yml` GitHub action
MatthewFluet May 18, 2022
3407486
Merge pull request #479 from MatthewFluet/ci-artifacts
MatthewFluet May 19, 2022
ab2cedd
Merge branch 'master' of github.com:MLton/mlton into upstream-merge
MatthewFluet May 20, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license. Send comments and questions to MLton@mlton.org.

MLton COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.

Copyright (C) 1999-2020 Henry Cejtin, Matthew Fluet, Suresh
Copyright (C) 1999-2021 Henry Cejtin, Matthew Fluet, Suresh
Jagannathan, and Stephen Weeks.
Copyright (C) 1997-2000 by the NEC Research Institute

Expand Down
107 changes: 64 additions & 43 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Copyright (C) 2020 Sam Westrick
# Copyright (C) 2009,2011,2013,2017-2020 Matthew Fluet.
# Copyright (C) 2009,2011,2013,2017-2022 Matthew Fluet.
# Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
# Jagannathan, and Stephen Weeks.
# Copyright (C) 1997-2000 NEC Research Institute.
Expand All @@ -26,12 +26,12 @@ OMIT_XTRA_LIBS := true
all:
$(MAKE) dirs
$(MAKE) runtime
$(MAKE) compiler CHECK_FIXPOINT=false # tools0 + mlton0 -> mlton1
$(MAKE) compiler CHECK_FIXPOINT=false # mlton0 -> mlton1
$(MAKE) script
$(MAKE) basis
$(MAKE) libraries
ifneq (true, $(OMIT_TOOLS))
$(MAKE) tools CHECK_FIXPOINT=false # tools0 + mlton1 -> tools1
$(MAKE) tools CHECK_FIXPOINT=false # mlton1 -> tools1
endif # OMIT_TOOLS
ifeq (2, $(firstword $(sort $(BOOTSTRAP_STYLE) 2)))
$(MAKE) compiler-clean
Expand All @@ -47,9 +47,8 @@ endif
endif
@echo 'Build of MLton succeeded.'

.PHONY: clean
clean:
$(SRC)/bin/clean --exclude package
CLEAN_EXCLS := package
$(eval $(MK_COMMON_GOALS))

.PHONY: clean-git
clean-git:
Expand All @@ -59,8 +58,6 @@ clean-git:
check:
./bin/regression $(CHECK_ARGS)

$(eval $(MK_SHOW_CONFIG))

######################################################################

.PHONY: basis-no-check
Expand All @@ -70,8 +67,8 @@ basis-no-check:
( \
cd "$(SRC)/basis-library" && \
$(FIND) . -type f '(' -name '*.mlb' -o -name '*.sml' -o -name '*.sig' -o -name '*.fun' ')' | \
$(XARGS) $(TAR) cf - | \
( cd "$(LIB)/sml/basis" && $(TAR) xf - ) \
$(TAR) -c -T - -f - | \
( cd "$(LIB)/sml/basis" && $(TAR) -x -f - ) \
)

.PHONY: basis-check
Expand Down Expand Up @@ -114,8 +111,8 @@ define LIBRARIES_NO_CHECK_TEMPLATE
( \
cd "$(SRC)/lib/$(1)$(2)" && \
$(FIND) . '!' -path '*/.cm/*' $(3) -type f '(' -name '*.mlb' -o -name '*.sml' -o -name '*.sig' -o -name '*.fun' ')' | \
$(XARGS) $(TAR) cf - | \
( cd "$(LIB)/sml/$(1)" && $(TAR) xf - ) \
$(TAR) -c -T - -f - | \
( cd "$(LIB)/sml/$(1)" && $(TAR) -x -f - ) \
)

endef
Expand Down Expand Up @@ -191,6 +188,7 @@ script:
-e "s;^GMP_INC_DIR=.*;GMP_INC_DIR=\"$(WITH_GMP_INC_DIR)\";" \
-e "s;^GMP_LIB_DIR=.*;GMP_LIB_DIR=\"$(WITH_GMP_LIB_DIR)\";" \
-e 's/mlton-compile/$(MLTON_OUTPUT)/' \
-e "s;^ SMLNJ=.*; SMLNJ=\"$(SMLNJ)\";" \
< "$(SRC)/bin/mlton-script" > "$(BIN)/$(MLTON)"
$(CHMOD) a+x "$(BIN)/$(MLTON)"
ifneq (,$(ALTERNATE_SCRIPT_NAME))
Expand Down Expand Up @@ -288,26 +286,28 @@ traced:

# smlnj targets

SMLNJ := sml

.PHONY: bootstrap-smlnj
bootstrap-smlnj:
$(MAKE) smlnj-mlton
$(RM) "$(BIN)/$(MLTON)"
$(MAKE) BOOTSTRAP_MLTON=$(MLTON).smlnj all
smlnj_heap_suffix=`echo 'TextIO.output (TextIO.stdErr, SMLofNJ.SysInfo.getHeapSuffix ());' | sml 2>&1 1> /dev/null` && $(RM) "$(LIB)/$(MLTON_OUTPUT)-smlnj.$$smlnj_heap_suffix"
$(MAKE) OLD_MLTON="$(BIN)/$(MLTON).smlnj" all
$(RM) "$(LIB)/$(MLTON_OUTPUT_SMLNJ_HEAP)"
$(RM) "$(BIN)/$(MLTON).smlnj"

.PHONY: smlnj-mlton
smlnj-mlton:
$(MAKE) dirs
$(MAKE) runtime
$(MAKE) -C "$(SRC)/mlton" smlnj-mlton
smlnj_heap_suffix=`echo 'TextIO.output (TextIO.stdErr, SMLofNJ.SysInfo.getHeapSuffix ());' | sml 2>&1 1> /dev/null` && $(CP) "$(SRC)/mlton/$(MLTON_OUTPUT)-smlnj.$$smlnj_heap_suffix" "$(LIB)/"
$(CP) "$(SRC)/mlton/$(MLTON_OUTPUT_SMLNJ_HEAP)" "$(LIB)/"
$(MAKE) script
$(MAKE) basis-no-check
$(MAKE) libraries-no-check
$(SED) \
-e 's;doitMLton "$$@";# doitMLton "$$@";' \
-e 's;doitPolyML "$$@";# doitPolyML "$$@";' \
-e 's;\(doit.* "$$@"\);# \1;' \
-e 's;# \(doitSMLNJ "$$@"\);\1;' \
< "$(BIN)/$(MLTON)" \
> "$(BIN)/$(MLTON).smlnj"
$(CHMOD) u+x "$(BIN)/$(MLTON).smlnj"
Expand Down Expand Up @@ -337,7 +337,7 @@ smlnj-mlton-x16:
bootstrap-polyml:
$(MAKE) polyml-mlton
$(RM) "$(BIN)/$(MLTON)"
$(MAKE) BOOTSTRAP_MLTON=$(MLTON).polyml all
$(MAKE) OLD_MLTON="$(BIN)/$(MLTON).polyml" all
$(RM) "$(LIB)/$(MLTON)-polyml$(EXE)"
$(RM) "$(BIN)/$(MLTON).polyml"

Expand All @@ -346,20 +346,49 @@ polyml-mlton:
$(MAKE) dirs
$(MAKE) runtime
$(MAKE) -C "$(SRC)/mlton" polyml-mlton
$(CP) "$(SRC)/mlton/mlton-polyml$(EXE)" "$(LIB)/"
$(CP) "$(SRC)/mlton/$(MLTON_OUTPUT)-polyml$(EXE)" "$(LIB)/"
$(MAKE) script
$(MAKE) basis-no-check
$(MAKE) libraries-no-check
$(SED) \
-e 's;doitMLton "$$@";# doitMLton "$$@";' \
-e 's;doitSMLNJ "$$@";# doitSMLNJ "$$@";' \
-e 's;\(doit.* "$$@"\);# \1;' \
-e 's;# \(doitPolyML "$$@"\);\1;' \
< "$(BIN)/$(MLTON)" \
> "$(BIN)/$(MLTON).polyml"
$(CHMOD) u+x "$(BIN)/$(MLTON).polyml"
@echo 'Build of MLton (with Poly/ML) succeeded.'

######################################################################

# mlkit targets

.PHONY: bootstrap-mlkit
bootstrap-mlkit:
$(MAKE) mlkit-mlton
$(RM) "$(BIN)/$(MLTON)"
$(MAKE) OLD_MLTON="$(BIN)/$(MLTON).mlkit" all
$(RM) "$(LIB)/$(MLTON)-mlkit$(EXE)"
$(RM) "$(BIN)/$(MLTON).mlkit"

.PHONY: mlkit-mlton
mlkit-mlton:
$(MAKE) dirs
$(MAKE) runtime
$(MAKE) -C "$(SRC)/mlton" mlkit-mlton
$(CP) "$(SRC)/mlton/$(MLTON_OUTPUT)-mlkit$(EXE)" "$(LIB)/"
$(MAKE) script
$(MAKE) basis-no-check
$(MAKE) libraries-no-check
$(SED) \
-e 's;\(doit.* "$$@"\);# \1;' \
-e 's;# \(doitMLKit "$$@"\);\1;' \
< "$(BIN)/$(MLTON)" \
> "$(BIN)/$(MLTON).mlkit"
$(CHMOD) u+x "$(BIN)/$(MLTON).mlkit"
@echo 'Build of MLton (with MLKit) succeeded.'

######################################################################

# version target

ifneq (true, $(OMIT_MISC))
Expand Down Expand Up @@ -464,23 +493,23 @@ install-docs:
( \
cd "$(SRC)/doc" && \
$(FIND) examples -type f '!' -name .gitignore \
| $(XARGS) $(TAR) cf - \
| ( cd "$(TDOC)/" && $(TAR) xf - ) \
| $(TAR) -c -T - -f - \
| ( cd "$(TDOC)/" && $(TAR) -x -f - ) \
)
( \
cd "$(SRC)/doc" && \
$(FIND) license -type f '!' -name .gitignore \
| $(XARGS) $(TAR) cf - \
| ( cd "$(TDOC)/" && $(TAR) xf - ) \
| $(TAR) -c -T - -f - \
| ( cd "$(TDOC)/" && $(TAR) -x -f - ) \
)
if [ -d "$(SRC)/doc/guide/localhost" ]; then \
$(CP) "$(SRC)/doc/guide/localhost" "$(TDOC)/guide"; \
fi
( \
cd "$(SRC)/util" && \
$(FIND) cm2mlb -type f '!' -name .gitignore \
| $(XARGS) $(TAR) cf - \
| ( cd "$(TDOC)/" && $(TAR) xf - ) \
| $(TAR) -c -T - -f - \
| ( cd "$(TDOC)/" && $(TAR) -x -f - ) \
)
( \
cd "$(SRC)/regression" && \
Expand Down Expand Up @@ -524,7 +553,7 @@ endif

######################################################################

# remote-bootstrap and remote-add-cross-target
# remote-bootstrap and remote-add-cross

ifneq (true, $(OMIT_MISC))
# The `remote-bootstrap` goal automates the process of bootstraping MLton on a
Expand All @@ -543,7 +572,7 @@ ifneq (true, $(OMIT_MISC))
# * build MLton on the remote machine from clean sources using the boot package
# * receive the built binary release from the remote machine
#
# The `remote-add-cross-target` goal automates the process of adding a cross
# The `remote-add-cross` goal automates the process of adding a cross
# compiler target. It works as follows:
# * send the current sources to a remote machine (using ssh)
# * build the MLton runtime system on the remote machine
Expand Down Expand Up @@ -597,6 +626,7 @@ REMOTE_ROOT := $(REMOTE_TMP)/mlton-$(MLTON_VERSION)
REMOTE_BASH := bash
REMOTE_TAR := $(TAR)

REMOTE_CAT := $(CAT)
REMOTE_CP := $(CP)
REMOTE_MKDIR := $(MKDIR)
REMOTE_RM := $(RM)
Expand All @@ -605,7 +635,7 @@ REMOTE_MAKE := make
REMOTE_MAKEFLAGS :=
REMOTE_XMAKEFLAGS := CHECK_MLCMD=

REMOTE_PLATFORM := $(shell cat bin/platform | $(SSH) $(REMOTE_MACHINE) "$(REMOTE_BASH) -s")
REMOTE_PLATFORM := $(shell $(CAT) bin/platform | $(SSH) $(REMOTE_MACHINE) "$(REMOTE_BASH) -s")
REMOTE_ARCH := $(patsubst HOST_ARCH=%,%,$(filter HOST_ARCH=%,$(REMOTE_PLATFORM)))
REMOTE_OS := $(patsubst HOST_OS=%,%,$(filter HOST_OS=%,$(REMOTE_PLATFORM)))
REMOTE_TARGET := $(REMOTE_ARCH)-$(REMOTE_OS)
Expand All @@ -624,8 +654,6 @@ remote-bootstrap:
$(MAKE) remote--make-script
$(MAKE) remote--make-basis
$(MAKE) remote--make-libraries
$(MAKE) remote--send-mlyacc-yacc-files
$(MAKE) remote--make-tools
$(MAKE) remote--recv-boot-files
$(MAKE) remote--make-clean
$(MAKE) remote--send-boot-files
Expand All @@ -652,12 +680,6 @@ remote--send-src:
$(SSH) $(REMOTE_MACHINE) "$(REMOTE_RM) $(REMOTE_ROOT) && $(REMOTE_MKDIR) $(REMOTE_ROOT)"
$(GIT) archive --format=tar HEAD | $(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_TAR) xf -"

.PHONY: remote--send-mlyacc-yacc-files
remote--send-mlyacc-yacc-files:
$(MAKE) -C mlyacc src/yacc.lex.sml src/yacc.grm.sig src/yacc.grm.sml
$(TAR) cf - mlyacc/src/yacc.lex.* mlyacc/src/yacc.grm.* | $(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_TAR) xf -"
$(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && touch mlyacc/src/yacc.lex.* mlyacc/src/yacc.grm.*"

.PHONY: remote--recv-runtime
remote--recv-runtime:
$(RM) "$(LIB)/targets/$(REMOTE_TARGET)" && $(MKDIR) "$(LIB)/targets/$(REMOTE_TARGET)"
Expand All @@ -670,21 +692,21 @@ remote--gen-bootstrap-compiler-files:
.PHONY: remote--send-bootstrap-compiler-files
remote--send-bootstrap-compiler-files:
$(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_RM) runtime/bootstrap && $(REMOTE_MKDIR) runtime/bootstrap"
cat mlton/mlton-bootstrap-$(REMOTE_TARGET).tgz | $(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT)/runtime/bootstrap && $(REMOTE_TAR) xzf -"
$(CAT) mlton/mlton-bootstrap-$(REMOTE_TARGET).tgz | $(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT)/runtime/bootstrap && $(REMOTE_TAR) xzf -"

.PHONY: remote--recv-boot-files
remote--recv-boot-files:
$(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_RM) boot && $(REMOTE_CP) build boot"
$(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_TAR) czf - boot" | cat - > "$(LIB)/targets/$(REMOTE_TARGET)/boot.tgz"
$(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_TAR) czf - boot" | $(CAT) - > "$(LIB)/targets/$(REMOTE_TARGET)/boot.tgz"

.PHONY: remote--send-boot-files
remote--send-boot-files:
$(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_RM) boot"
cat "$(LIB)/targets/$(REMOTE_TARGET)/boot.tgz" | $(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_TAR) xzf -"
$(CAT) "$(LIB)/targets/$(REMOTE_TARGET)/boot.tgz" | $(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_TAR) xzf -"

.PHONY: remote--recv-binary-release
remote--recv-binary-release:
$(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && cat mlton-$(MLTON_VERSION)-$(MLTON_BINARY_RELEASE).$(REMOTE_ARCH)-$(REMOTE_OS)$(MLTON_BINARY_RELEASE_SUFFIX).tgz" | cat - > mlton-$(MLTON_VERSION)-$(MLTON_BINARY_RELEASE).$(REMOTE_ARCH)-$(REMOTE_OS)$(MLTON_BINARY_RELEASE_SUFFIX).tgz
$(SSH) $(REMOTE_MACHINE) "cd $(REMOTE_ROOT) && $(REMOTE_CAT) mlton-$(MLTON_VERSION)-$(MLTON_BINARY_RELEASE).$(REMOTE_ARCH)-$(REMOTE_OS)$(MLTON_BINARY_RELEASE_SUFFIX).tgz" | $(CAT) - > mlton-$(MLTON_VERSION)-$(MLTON_BINARY_RELEASE).$(REMOTE_ARCH)-$(REMOTE_OS)$(MLTON_BINARY_RELEASE_SUFFIX).tgz

.PHONY: remote--rm-root
remote--rm-root:
Expand All @@ -708,7 +730,6 @@ $(eval $(call MK_REMOTE_MAKE_TEMPLATE,script))
$(eval $(call MK_REMOTE_MAKE_TEMPLATE,basis))
$(eval $(call MK_REMOTE_MAKE_TEMPLATE,libraries))
$(eval $(call MK_REMOTE_MAKE_TEMPLATE,check))
$(eval $(call MK_REMOTE_MAKE_TEMPLATE,tools))
all_REMOTE_XMAKEFLAGS := OLD_MLTON_DIR=$(REMOTE_ROOT)/boot/bin
$(eval $(call MK_REMOTE_MAKE_TEMPLATE,all))
binary-release_REMOTE_XMAKEFLAGS := MLTON_BINARY_RELEASE_WITH_DOCS=false
Expand Down
Loading