Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
6c481c8
Add ES imports/exports to CoreImp AST
kl0tl Feb 6, 2020
52a692b
Print ES imports/exports
kl0tl Feb 6, 2020
cd40596
Codegen ES imports for PureScript modules
kl0tl Feb 6, 2020
607dd3d
Codegen ES imports for foreign modules
kl0tl Feb 6, 2020
19878e3
Codegen ES exports
kl0tl Feb 6, 2020
4889861
Extract both CJS and ES exports from foreign modules
kl0tl Feb 8, 2020
c03399f
Remove the redundant "use strict;" pragma from modules header
kl0tl Feb 8, 2020
71c2de3
Don’t emit empty statements for empty exports lists
kl0tl Feb 8, 2020
7d4ef3d
Bundle ES modules
kl0tl Feb 9, 2020
7f0c07e
Load ES modules with `esm` in the Node.js REPL and tests
kl0tl Feb 15, 2020
e006953
Escape primes in modules accessors
kl0tl Feb 15, 2020
243ec5e
Forbid unescaped primes in foreign modules exports
kl0tl Feb 15, 2020
ddbb2ad
Run tests against patched dependencies
kl0tl Feb 15, 2020
e5b1798
Rewrite ES modules in the browser REPL client
kl0tl Apr 23, 2020
47cdee9
Merge branch 'master' into es-modules
kl0tl Mar 20, 2021
c5ffab6
Revert "Load ES modules with `esm` in the Node.js REPL and tests"
kl0tl Mar 20, 2021
4713b2a
Allow Node.js to load .js files in the output directory as ES modules
kl0tl Mar 20, 2021
7784dd1
Import CommonJS foreign modules through an ES module wrapper
kl0tl Mar 20, 2021
1587749
Don't let tests nor the REPL compile into a node_modules directory
kl0tl Mar 20, 2021
ba9f084
Bundle re-exports
kl0tl Mar 20, 2021
65dab5d
Load bundles as CommonJS modules in tests
kl0tl Mar 20, 2021
830bbe2
Update Node.js version on CI
kl0tl Mar 20, 2021
4976eee
Disallow CommonJS exports named `default`
kl0tl Mar 20, 2021
f73c2bf
Disallow CommonJS exports and imports in ES foreign modules
kl0tl Mar 20, 2021
c56d3f5
Deprecate CommonJS foreign modules
kl0tl Mar 20, 2021
94af221
Convert CommonJS foreign modules in tests to ES modules
kl0tl Mar 20, 2021
15ebf0d
Don't optimize away dependencies of named ES exports of declarations
kl0tl Mar 21, 2021
8f19b7e
fixup! Import CommonJS foreign modules through an ES module wrapper
kl0tl Apr 3, 2021
7727c98
fixup! Don't optimize away dependencies of named ES exports of declar…
kl0tl Apr 3, 2021
bd45602
Revert "Disallow CommonJS exports named `default`"
kl0tl Jun 21, 2021
ca94c4b
Add tests for foreign CommonJS exports named default
kl0tl Jun 21, 2021
ec4dce5
Extend support to Node.js v12.0.0 with --experimental-modules
kl0tl Jul 2, 2021
0d6f928
Filter out Node.js experimental ES modules loader warning
kl0tl Jul 2, 2021
8e1caf8
Update bundler error messages
kl0tl Jul 2, 2021
7ef3aad
Merge branch 'master' into next
kl0tl Jul 3, 2021
d5437e0
Fix HLint warnings
kl0tl Jul 3, 2021
b0216af
Desugar record accessor to a special function call
zyla Jul 8, 2020
dfa92af
Overloaded record accessors
zyla Jul 8, 2020
ef5aca3
Fix warnings
zyla Oct 22, 2020
a896388
Optimize back the common case of `Record`
zyla Oct 27, 2020
4b3fe2b
Fix post-merge breakage
zyla Sep 28, 2021
3cda1fa
Run workflows on restaumatic branch
zyla Sep 28, 2021
ee2fb90
Add missing module
zyla Sep 28, 2021
728bc79
Merge branch 'feature/overloaded-records-0.14' into restaumatic
zyla Sep 28, 2021
abce72a
Bump version
zyla Oct 27, 2020
ac4ccab
Bump also version for ide exports
zyla Oct 13, 2021
41e2e0b
Merge remote-tracking branch 'upstream/master' into es-modules
zyla Oct 15, 2021
25c91d0
Merge branch 'es-modules' into restaumatic
zyla Oct 15, 2021
becb77c
Update version
zyla Oct 17, 2021
2df4148
Bundle: detect functions as internal members
zyla Oct 17, 2021
e0dccf4
Merge branch 'es-modules' into restaumatic
zyla Oct 17, 2021
e2a0fd0
Fix lint errors
zyla Oct 17, 2021
62a0a79
Merge branch 'feature/overloaded-records-0.14' into restaumatic
zyla Oct 17, 2021
4784e2d
Fix getField optimization for plain records
zyla Oct 22, 2021
a49097d
Merge branch 'feature/overloaded-records-0.14' into restaumatic
zyla Oct 26, 2021
675b993
Merge remote-tracking branch 'upstream/master' into restaumatic
zyla Oct 26, 2021
007ff26
Update version
zyla Oct 26, 2021
4fc451c
Merge remote-tracking branch 'origin/master' into restaumatic
jborkowski May 6, 2022
2a4d4ff
Merge pull request #1 from restaumatic/restaumatic-v0.15.0
jborkowski May 6, 2022
97a513e
Fix imports generated for OverloadedRecordFields (SProxy->Proxy)
zyla Jun 3, 2022
73d3ee9
Update version
zyla Jun 3, 2022
272bbe4
Fix test golden
zyla Jun 5, 2022
123d6fa
Merge remote-tracking branch 'origin/restaumatic' into restaumatic-0.…
usagi-z Aug 25, 2023
ba6f317
it typechecks, ship it!
usagi-z Aug 25, 2023
50aa943
bring back desugarAccessorModule
usagi-z Aug 28, 2023
3761609
bring back optimizeRecordGetField
usagi-z Aug 28, 2023
d1e32f5
enable CI
usagi-z Sep 1, 2023
37a66e8
whitespace 1
usagi-z Sep 1, 2023
c40bcd1
whitespace 2
usagi-z Sep 1, 2023
0f1e90b
ws 3
usagi-z Sep 1, 2023
29c9574
ws 4
usagi-z Sep 1, 2023
049673d
ws 5
usagi-z Sep 1, 2023
6cca3e1
fix tests at the cost of marking version as a company fork
usagi-z Sep 4, 2023
4e1934b
silence hlint
usagi-z Sep 4, 2023
60bf482
Use IsSymbol Ident
jborkowski Sep 5, 2023
6050c5c
Add pattern by hand
jborkowski Sep 5, 2023
85bd4c3
fix currentVersion
jborkowski Sep 5, 2023
5685625
Revert currentVersion
jborkowski Sep 6, 2023
71b85d3
Fix version used by IDE
zyla Sep 6, 2023
62d0661
Remove Show
jborkowski Sep 6, 2023
85f9dff
Cleanup Github Workfows
jborkowski Sep 6, 2023
919d2fe
Remove ;13u
jborkowski Sep 6, 2023
6ac5ae5
Update ci.yml
jborkowski Sep 13, 2023
be0d9ce
Merge pull request #2 from restaumatic/restaumatic-0.15.10
jborkowski Sep 13, 2023
969a39e
Merge remote-tracking branch 'upstream/master' into restaumatic
jborkowski Oct 6, 2023
7d04419
Merge pull request #3 from restaumatic/restaumatic-0.15.11
jborkowski Oct 6, 2023
4827f79
Update Externs.hs
jborkowski Jan 22, 2024
107964c
Merge branch 'master' into v0.15.15-restaumatic
jborkowski Feb 13, 2024
4ac46a5
set currentVersion to restaumatic1
jborkowski Feb 13, 2024
988c913
Merge pull request #5 from restaumatic/v0.15.15-restaumatic
jborkowski Feb 13, 2024
8648583
Merge remote-tracking branch 'upstream/master' into restaumatic
jborkowski Sep 3, 2024
3377aa0
Make cut-off, the main piece
wclr Dec 26, 2023
ac51b00
Fix linting error.
wclr Jun 18, 2023
1e07d60
Refactor externs diff and make api, fix some review sugs
wclr Dec 26, 2023
82198fa
Add comments to BuildPlan
wclr Jul 7, 2023
fa35d09
Added requested changes, don't recompile downstream after the error, …
wclr Feb 24, 2024
d34d0e1
Update ExternsDiff.checkUsage, add tests
wclr May 29, 2024
f58f5f0
ExternsDiff: normalize type
jborkowski Nov 30, 2024
6be0c52
Normalize SourceSpan path in Externs
jborkowski Dec 2, 2024
4b697be
Revert "Normalize SourceSpan path in Externs"
jborkowski Dec 2, 2024
6a96456
Make relative path to actualFile
jborkowski Dec 2, 2024
c9f6944
Revert 1 commits
jborkowski Dec 2, 2024
48be80d
Upgrade to GHC 9.6.6 (#4568)
ad-si Apr 10, 2025
ce98272
Logger and Supply improvements
kozak May 7, 2025
7b26d48
Not needed in this compiler version
kozak May 7, 2025
2f017ad
Specialize logger to errors
kozak May 8, 2025
79596a9
A working version
kozak May 8, 2025
5996054
IntMap Lazy
kozak May 8, 2025
2bd2e98
Hacky specialization of TypeCheckM
zyla May 9, 2025
3033a4f
IntMap Lazy
kozak May 8, 2025
a2ad1fb
Merge branch 'improve-perf' into typecheckm-specialization
zyla May 9, 2025
22d8db6
Fix after merging
zyla May 9, 2025
c2f1e65
Memoize unifyTypes
kozak May 9, 2025
a1c4313
Memoize unify types really this time
kozak May 9, 2025
d2d0f1c
Merge branch 'improve-perf-memoize-unify' into various-perf-changes
kozak May 9, 2025
f8a5838
{-# INLINE #-} annoations on traversals
zyla May 12, 2025
98b1ff0
Replace Logger with Writer
zyla May 12, 2025
a9eb340
Writer CPS
zyla May 12, 2025
ca8799e
Merge remote-tracking branch 'origin/master' into various-perf-changes
zyla May 12, 2025
35218a6
add monoid import
jborkowski May 9, 2025
523bd5f
Remove duplicate instance
zyla May 12, 2025
75126e4
Remove redundant constraint
zyla May 12, 2025
c7c6e0f
Fix hlint warnings
zyla May 13, 2025
c492385
Bring back original Logger
zyla May 13, 2025
8f9bc92
ExternsDiff: compute deps of TypeSynonyms properly (#7)
zyla May 26, 2025
1ba653e
Merge remote-tracking branch 'restaumatic/restaumatic' into with-rest…
seastian May 27, 2025
73ba6b8
improve
seastian May 27, 2025
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
127 changes: 49 additions & 78 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: "CI"

on:
push:
branches: [ "master" ]
branches: ["master", "restaumatic"]
pull_request:
branches: [ "master" ]
branches: ["master", "restaumatic"]
paths:
- .github/workflows/**/*.yml
- app/**/*
Expand All @@ -20,10 +20,11 @@ on:
- purescript.cabal
- Setup.hs
- stack.yaml
- stack.yaml.lock
- update-changelog.hs
- weeder.dhall
release:
types: [ "published" ]
types: ["published"]

defaults:
run:
Expand All @@ -32,7 +33,7 @@ defaults:
env:
CI_PRERELEASE: "${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}"
CI_RELEASE: "${{ github.event_name == 'release' }}"
STACK_VERSION: "2.15.1"
STACK_VERSION: "3.3.1"

concurrency:
# We never want two prereleases building at the same time, since they would
Expand All @@ -53,16 +54,18 @@ jobs:
fail-fast: false # do not cancel builds for other OSes if one fails
matrix:
include:
- # If upgrading the Haskell image, also upgrade it in the lint job below
os: ["ubuntu-latest"]
image: haskell:9.2.8@sha256:b3b2f3909c7381bb96b8f18766f9407a3d6f61e0f07ea95e812583ac4f442cbb
- os: ["macOS-14"]
- os: ["windows-2019"]
- os: ["self-hosted", "macos", "ARM64"]
- os: ["self-hosted", "Linux", "ARM64"]
- image: haskell:9.6.6 # Also upgrade version in the lint job below
os: ubuntu-latest # Exact version is not important, as it's only the container host)

- image: haskell:9.6.6
os: ubuntu-24.04-arm # Exact version is not important, as it's only the container host

- os: macos-13 # x64
- os: macos-14 # arm64
- os: windows-2019 # x64

runs-on: "${{ matrix.os }}"
container: "${{ matrix.image }}"
container: "${{ matrix.image }}"

outputs:
do-not-prerelease: "${{ steps.build.outputs.do-not-prerelease }}"
Expand All @@ -71,43 +74,40 @@ jobs:
steps:
- # We need `gh` installed on the Linux version. Otherwise, release artifacts won't be uploaded.
name: "(Linux only) Install gh"
if: "contains(matrix.os, 'ubuntu-latest')"
if: startsWith(matrix.image, 'haskell')
run: |
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null
apt-get update
apt-get install gh
apt-get install -y gh

- uses: "actions/checkout@v2"
- uses: "actions/setup-node@v2"
- uses: "actions/checkout@v4"
- uses: "actions/setup-node@v4"
with:
node-version: "16"
node-version: "22"

- id: "haskell"
name: "(Non-Linux only) Install Haskell"
# Note: here we exclude the self-hosted runners because this action does not work on ARM
# and their Haskell environment is instead provided by a nix-shell
# See https://github.com/purescript/purescript/pulls/4455
if: "!contains(matrix.os, 'ubuntu-latest') && !contains(matrix.os, 'self-hosted')"
if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'windows')
uses: "haskell-actions/setup@v2"
with:
ghc-version: "9.6.6"
enable-stack: true
stack-version: "${{ env.STACK_VERSION }}"
stack-no-global: true

- name: "(Linux only) Check Stack version and fix working directory ownership"
if: "contains(matrix.os, 'ubuntu-latest')"
- name: "(Linux only) Fix working directory ownership"
if: startsWith(matrix.image, 'haskell')
run: |
[ "$(stack --numeric-version)" = "$STACK_VERSION" ]
chown root:root .

- uses: "actions/cache@v2"
- uses: "actions/cache@v4"
with:
path: |
/root/.stack
${{ steps.haskell.outputs.stack-root }}
key: "${{ matrix.image || runner.os }}--MdyPsf-${{ hashFiles('stack.yaml') }}"
key: "${{ matrix.image || runner.os }}--MdyPsf-${{ hashFiles('stack.yaml.lock', 'purescript.cabal') }}"

- name: "(Windows only) Configure Stack to store its programs in STACK_ROOT"
# This ensures that the local GHC and MSYS binaries that Stack installs
Expand All @@ -122,16 +122,16 @@ jobs:
run: "ci/fix-home ci/build.sh"

- name: "(Linux only) Glob tests"
if: "contains(matrix.os, 'ubuntu-latest')"
if: startsWith(matrix.image, 'haskell')
working-directory: "sdist-test"
# We build in this directory in build.sh, so this is where we need to
# launch `stack exec`. The actual glob checks happen in a temporary directory.
run: |
apt-get install tree
apt-get install -y tree
../ci/fix-home stack exec bash ../glob-test.sh

- name: "(Linux only) Build the entire package set"
if: "contains(matrix.os, 'ubuntu-latest')"
if: startsWith(matrix.image, 'haskell')
# We build in this directory in build.sh, so this is where we need to
# launch `stack exec`. The actual package-set building happens in a
# temporary directory.
Expand All @@ -144,11 +144,11 @@ jobs:
# Moreover, npm has a hook issue that will cause spago to fail to install
# We upgrade npm to fix this
run: |
npm i -g npm@8.8.0
apt-get install -y jq
../ci/fix-home stack --haddock exec ../ci/build-package-set.sh

- name: Verify that 'libtinfo' isn't in binary
if: "runner.os == 'Linux'"
if: runner.os == 'Linux'
working-directory: "sdist-test"
run: |
if [ $(ldd $(../ci/fix-home stack path --local-doc-root)/../bin/purs | grep 'libtinfo' | wc -l) -ge 1 ]; then
Expand All @@ -157,17 +157,6 @@ jobs:
exit 1
fi

- name: "(Self-hosted Linux ARM64 only) Patch the binary to work on non-Nix systems"
if: "runner.os == 'Linux' && runner.arch == 'ARM64'"
working-directory: "sdist-test"
# The self-hosted build happens inside a nix-shell that provides a working stack binary
# on ARM systems, and while the macOS binary is fine - because macOS binaries are almost
# statically linked), the linux ones are all pointing at the nix store.
# So here we first point the binary to the right linker that should work on a generic linux,
# and then fix the RUNPATH with the right location to load the shared libraries from
run: |
patchelf --set-interpreter /usr/lib/ld-linux-aarch64.so.1 --set-rpath /usr/lib/aarch64-linux-gnu $(stack path --local-doc-root)/../bin/purs

- name: "(Release/prerelease only) Create bundle"
if: "${{ env.CI_RELEASE == 'true' || env.CI_PRERELEASE == 'true' && steps.build.outputs.do-not-prerelease != 'true' }}"
run: |
Expand Down Expand Up @@ -199,7 +188,7 @@ jobs:

- name: "(Prerelease only) Upload bundle"
if: "${{ env.CI_PRERELEASE == 'true' && steps.build.outputs.do-not-prerelease != 'true' }}"
uses: "actions/upload-artifact@v3"
uses: "actions/upload-artifact@v4.6.0"
with:
name: "${{ runner.os }}-${{ runner.arch }}-bundle"
path: |
Expand All @@ -208,86 +197,68 @@ jobs:

- name: "(Release only) Publish bundle"
if: "${{ env.CI_RELEASE == 'true' }}"
# This requires the gh command line tool to be installed on our
# self-hosted runners
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
run: "gh release upload --clobber ${{ github.ref_name }} sdist-test/bundle/*.{tar.gz,sha}"

lint:
runs-on: "ubuntu-latest"
# At the moment, this is a different image from the image used for
# compilation, though the GHC versions match. This is because the
# compilation image uses an old version of glibc, which we want because it
# means our published binaries will work on the widest number of platforms.
# But the HLint binary downloaded by this job requires a newer glibc
# version.
container: haskell:9.2.8@sha256:b3b2f3909c7381bb96b8f18766f9407a3d6f61e0f07ea95e812583ac4f442cbb
container: haskell:9.6.6
runs-on: ubuntu-latest # Exact version is not important, as it's only the container host

steps:
- uses: "actions/checkout@v2"
- uses: "actions/checkout@v4"

- name: "Fix working directory ownership"
run: |
chown root:root .

- uses: "actions/cache@v2"
- uses: "actions/cache@v4"
with:
path: |
/root/.stack
key: "lint-${{ hashFiles('stack.yaml') }}"
key: "lint-${{ hashFiles('stack.yaml.lock', 'purescript.cabal') }}"

- run: "ci/fix-home ci/run-hlint.sh --git"
env:
VERSION: "3.5"

# Note: the weeder version will need to be updated when we next update our version
# of GHC.
#
# weeder-2.2.0 has somewhat strange version deps. It doesn't appear to
# support the exact versions of dhall and generic-lens in LTS-18.
# However, forcing it to use the versions of dhall and generic-lens in
# LTS-18 doesn't cause any problems when building, so the following
# commands build weeder while ignoring version constraints.
- name: Install weeder
run: |
# The `stack.yaml` file is copied to a separate file so that
# adding `allow-newer: true` doesn't affect any subsequant
# calls to `stack`.
cp stack.yaml stack-weeder.yaml
# `allow-newer: true` is needed so that weeder-2.2.0 can be
# installed with the dependencies present in LTS-18.
echo 'allow-newer: true' >> stack-weeder.yaml
ci/fix-home stack --no-terminal --jobs=2 build --copy-compiler-tool --stack-yaml ./stack-weeder.yaml weeder-2.4.0
ci/fix-home stack --no-terminal --jobs=2 \
build --copy-compiler-tool weeder-2.8.0

- run: "ci/fix-home stack --no-terminal --jobs=2 build --fast --ghc-options -fwrite-ide-info"
- run: |
ci/fix-home stack --no-terminal --jobs=2 \
build --fast --ghc-options -fwrite-ide-info

- run: "ci/fix-home stack exec weeder"

# Now do it again, with the test suite included. We don't want a
# reference from our test suite to count in the above check; the fact
# that a function is tested is not evidence that it's needed. But we also
# don't want to leave weeds lying around in our test suite either.
- run: "ci/fix-home stack --no-terminal --jobs=2 build --fast --test --no-run-tests --ghc-options -fwrite-ide-info"
- run: |
ci/fix-home stack --no-terminal --jobs=2 \
build --fast --test --no-run-tests --ghc-options -fwrite-ide-info

- run: "ci/fix-home stack exec weeder"

make-prerelease:
runs-on: "ubuntu-latest"
runs-on: ubuntu-latest
needs:
- "build"
- "lint"
if: "${{ github.event_name == 'push' && needs.build.outputs.do-not-prerelease != 'true' }}"
steps:
- uses: "actions/download-artifact@v3"
- uses: "actions/download-artifact@v4"
- uses: "ncipollo/release-action@v1.10.0"
with:
tag: "v${{ needs.build.outputs.version }}"
artifacts: "*-bundle/*"
prerelease: true
body: "This is an automated preview release. Get the latest stable release [here](https://github.com/purescript/purescript/releases/latest)."
- uses: "actions/checkout@v3"
- uses: "actions/setup-node@v3"
- uses: "actions/checkout@v4"
- uses: "actions/setup-node@v4"
with:
node-version: "16.x"
registry-url: "https://registry.npmjs.org"
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ bin
dist
cabal-dev
.cabal-sandbox
stack.yaml.lock
cabal.sandbox.config
dist-newstyle/
cabal.project.local*
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.d/internal_upgrade_to_ghc_9.6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* Upgrade GHC to [`9.6.6`](https://downloads.haskell.org/~ghc/9.6.6/docs/users_guide/9.6.6-notes.html), Stackage LTS `22.43`
* Minimum required glibc version is bumped from [`2.28` to `2.31`](https://sourceware.org/glibc/wiki/Glibc%20Timeline)
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ If you would prefer to use different terms, please use the section below instead
| :------- | :--- | :------ |
| [@5outh](https://github.com/5outh) | Benjamin Kovach | [MIT license] |
| [@actionshrimp](https://github.com/actionshrimp) | David Aitken | [MIT license] |
| [@ad-si](https://github.com/ad-si) | Adrian Sieber | [MIT license] |
| [@adnelson](https://github.com/adnelson) | Allen Nelson | [MIT license] |
| [@alexbiehl](https://github.com/alexbiehl) | Alexander Biehl | [MIT license] |
| [@andreypopp](https://github.com/andreypopp) | Andrey Popp | [MIT license] |
Expand Down
5 changes: 3 additions & 2 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ If you are having difficulty installing the PureScript compiler, feel free to as

## Requirements

The PureScript compiler is built using GHC 9.2.8, and should be able to run on any operating system supported by GHC 9.2.8. In particular:
The PureScript compiler is built using GHC 9.6.6, and should be able to run on any operating system supported by GHC 9.6.6.
In particular:

* for Windows users, versions predating Vista are not officially supported,
* for macOS / OS X users, versions predating Mac OS X 10.7 (Lion) are not officially supported.

See also <https://www.haskell.org/ghc/download_ghc_9_2_8.html> for more details about the operating systems which GHC 9.2.8 supports.
See also <https://www.haskell.org/ghc/download_ghc_9_6_6.html> for more details about the operating systems which GHC 9.6.6 supports.

## Official prebuilt binaries

Expand Down
24 changes: 0 additions & 24 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ PureScript uses the following Haskell library packages. Their license files foll
optparse-applicative
parallel
parsec
pattern-arrows
pretty
primitive
process
Expand Down Expand Up @@ -3186,29 +3185,6 @@ parsec LICENSE file:
negligence or otherwise) arising in any way out of the use of this software,
even if advised of the possibility of such damage.

pattern-arrows LICENSE file:

The MIT License (MIT)

Copyright (c) 2013 Phil Freeman

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

pretty LICENSE file:

This library (libraries/pretty) is derived from code from
Expand Down
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package = purescript
exe_target = purs
stack_yaml = STACK_YAML="stack.yaml"
stack = $(stack_yaml) stack
stack_dir = .stack-work

.DEFAULT_GOAL := help

Expand All @@ -14,6 +15,10 @@ $(bin_dir)/hlint: ci/install-hlint.sh
clean: ## Remove build artifacts
rm -fr $(bin_dir)
rm -fr $(build_dir)
rm -fr $(stack_dir)
rm -fr dist-newstyle
rm -fr .psci_modules
rm -fr .test_modules

help: ## Print documentation
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
Expand Down
2 changes: 1 addition & 1 deletion app/Command/Compile.hs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ compile PSCMakeOptions{..} = do
let filePathMap = M.fromList $ map (\(fp, pm) -> (P.getModuleName $ CST.resPartial pm, Right fp)) ms
foreigns <- inferForeignModules filePathMap
let makeActions = buildMakeActions pscmOutputDir filePathMap foreigns pscmUsePrefix
P.make makeActions (map snd ms)
P.make_ makeActions (map snd ms)
printWarningsAndErrors (P.optionsVerboseErrors pscmOpts) pscmJSONErrors moduleFiles makeWarnings makeErrors
exitSuccess

Expand Down
Loading
Loading