Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
- image: quay.io/benz0li/ghc-musl:9.8.4
os: ubuntu-24.04-arm

- os: macos-13 # x64
- os: macos-15-intel # x64
- os: macos-14 # arm64
- os: windows-2022 # x64

Expand Down Expand Up @@ -164,7 +164,7 @@ jobs:
# Moreover, npm has a hook issue that will cause spago to fail to install
# We upgrade npm to fix this
run: |
apk add jq
apk add jq coreutils
../ci/fix-home stack --haddock exec ../ci/build-package-set.sh

- name: Verify that 'libtinfo' isn't in binary
Expand Down
1 change: 0 additions & 1 deletion CHANGELOG.d/fix_issue-4535.md

This file was deleted.

1 change: 0 additions & 1 deletion CHANGELOG.d/fix_issue-4545.md

This file was deleted.

1 change: 1 addition & 0 deletions CHANGELOG.d/internal_fix-typo-in-traversal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* Fix typo in CoreFn.Traversals.traverseCoreFn which caused it to not recurse into Let bodies
1 change: 0 additions & 1 deletion CHANGELOG.d/internal_remove-git-upgrade-step-in-ci.md

This file was deleted.

2 changes: 0 additions & 2 deletions CHANGELOG.d/internal_tool_updates.md

This file was deleted.

2 changes: 0 additions & 2 deletions CHANGELOG.d/internal_upgrade_to_ghc_9.6.md

This file was deleted.

2 changes: 0 additions & 2 deletions CHANGELOG.d/internal_upgrade_to_ghc_9.8.md

This file was deleted.

1 change: 0 additions & 1 deletion CHANGELOG.d/misc_ghc-bump.md

This file was deleted.

4 changes: 0 additions & 4 deletions CHANGELOG.d/misc_static_linking.md

This file was deleted.

34 changes: 34 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,40 @@

Notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## 0.15.16

Bugfixes:

* Fix compiler crash when a type operator is used in a type argument (#4536 by @purefunctor)

* Speed up IDE performance on large projects (#4546 by @roryc89)

* Fix double click select of titles in generated documentation (#4579 by @ad-si)

Other improvements:

* Update Stackage snapshot to lts-20.26 and GHC to 9.2.8 (#4537 by @purefunctor)

* Enable statically-linked binaries using [ghc-musl](https://github.com/benz0li/ghc-musl) (#4573 by @purefunctor)
* Update haskeline version bounds to >=0.8.2.1 && <0.9

Consequently, this fixes Cabal-based builds on GHC 9.8.4

Internal:

* Remove the step that upgraded Git from the CI workflow (#4541 by @rhendric)

* 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` (#4568 by @ad-si)
* Minimum required glibc version is bumped from [`2.28` to `2.31`](https://sourceware.org/glibc/wiki/Glibc%20Timeline)

* Upgrade GHC to [`9.8.4`](https://downloads.haskell.org/~ghc/9.8.4/docs/users_guide/9.8.4-notes.html), Stackage LTS `23.18` (#4574 by @ad-si)
* Use [HLint 3.10](https://github.com/ndmitchell/hlint/blob/master/CHANGES.txt) in CI

* Update weeder version in CI to 2.9.0 (#4573 by @purefunctor)
* Add happy ==2.0.2 as build-tool-depends

* Use `-fspecialize-aggressively` GHC option to improve compiler performance by ~30% on large builds (#4584 by @seastian)

## 0.15.15

New features:
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ If you would prefer to use different terms, please use the section below instead
| [@xgrommx](https://github.com/xgrommx) | Denis Stoyanov | [MIT license] |
| [@zudov](https://github.com/zudov) | Konstantin Zudov | [MIT license] |
| [@roryc89](https://github.com/roryc89) | Rory Campbell | [MIT license] |
| [@drathier](https://github.com/drathier) | Drathier | [MIT license] |


### Contributors using Modified Terms
Expand Down
1 change: 0 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ PureScript uses the following Haskell library packages. Their license files foll
ghc-prim
half
happy
happy-lib
hashable
haskeline
indexed-traversable
Expand Down
16 changes: 12 additions & 4 deletions app/Command/Compile.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@ import Language.PureScript qualified as P
import Language.PureScript.CST qualified as CST
import Language.PureScript.Errors.JSON (JSONResult(..), toJSONErrors)
import Language.PureScript.Glob (toInputGlobs, PSCGlobs(..), warnFileTypeNotFound)
import Language.PureScript.Make (buildMakeActions, inferForeignModules, runMake)
import Language.PureScript.Make (buildMakeActions, inferForeignModules, progressWithFile, printProgress, runMake)
import Options.Applicative qualified as Opts
import SharedCLI qualified
import System.Console.ANSI qualified as ANSI
import System.Exit (exitSuccess, exitFailure)
import System.Directory (getCurrentDirectory)
import System.FilePath ((</>))
import System.Directory (createDirectoryIfMissing, getCurrentDirectory)
import System.IO (hPutStr, stderr, stdout)
import System.IO.UTF8 (readUTF8FilesT)

Expand Down Expand Up @@ -68,12 +69,19 @@ compile PSCMakeOptions{..} = do
]
exitFailure
moduleFiles <- readUTF8FilesT input

_ <- createDirectoryIfMissing True pscmOutputDir
let logFile = pscmOutputDir </> "compile.log"
let cleanFile = True

(makeErrors, makeWarnings) <- runMake pscmOpts $ do
ms <- CST.parseModulesFromFiles id moduleFiles
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)
logProgress <- progressWithFile logFile cleanFile
let makeActions = (buildMakeActions pscmOutputDir filePathMap foreigns pscmUsePrefix)
{ P.progress = (*>) <$> printProgress <*> logProgress }
P.make_ makeActions (map snd ms)
printWarningsAndErrors (P.optionsVerboseErrors pscmOpts) pscmJSONErrors moduleFiles makeWarnings makeErrors
exitSuccess

Expand Down
2 changes: 1 addition & 1 deletion ci/build-package-set.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export PATH="$tmpdir/node_modules/.bin:$PATH"
cd "$tmpdir"

echo ::group::Ensure Spago is available
which spago || npm install spago@0.93.43
which spago || npm install spago
echo ::endgroup::

echo ::group::Create dummy project
Expand Down
8 changes: 5 additions & 3 deletions ci/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -176,9 +176,11 @@ tar -xzf sdist-test/purescript-*.tar.gz -C sdist-test --strip-components=1
(echo "::endgroup::"; echo "::group::Build and test PureScript") 2>/dev/null

pushd sdist-test
# Haddock -Werror goes here to keep us honest but prevent failing on
# documentation errors in dependencies
$STACK build $STACK_OPTS --haddock-arguments --optghc=-Werror
# --ghc-options -Werror applies only to local packages, catching our own
# haddock doc-comment errors without failing on warnings in dependencies.
# (--haddock-arguments --optghc=-Werror would pass -Werror to all packages
# via haddock, which breaks when the dependency cache is cold.)
$STACK build $STACK_OPTS --ghc-options -Werror

if [ "$do_prerelease" ]
then
Expand Down
1 change: 1 addition & 0 deletions license-generator/generate.hs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ depsNamesAndVersions = do
name == "purescript"
|| name == "rts"
|| name == "ghc-boot-th"
|| name == "happy-lib"

parse line =
case splitOn " " line of
Expand Down
4 changes: 2 additions & 2 deletions npm-package/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "purescript",
"version": "0.15.15",
"version": "0.15.16",
"license": "ISC",
"description": "PureScript wrapper that makes it available as a local dependency",
"author": {
Expand Down Expand Up @@ -43,7 +43,7 @@
],
"scripts": {
"prepublishOnly": "node -e \"require('fs').copyFileSync('purs.bin.placeholder', 'purs.bin');\"",
"postinstall": "install-purescript --purs-ver=0.15.15",
"postinstall": "install-purescript --purs-ver=0.15.16",
"test": "echo 'Error: no test specified' && exit 1"
}
}
5 changes: 4 additions & 1 deletion purescript.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ cabal-version: 2.4

name: purescript
-- Note: don't add prerelease identifiers here! Add them in app/Version.hs and npm-package/package.json instead.
version: 0.15.15
version: 0.15.16
synopsis: PureScript Programming Language Compiler
description: A small strongly, statically typed programming language with expressive types, inspired by Haskell and compiling to JavaScript.
category: Language
Expand Down Expand Up @@ -335,6 +335,7 @@ library
Language.PureScript.Make.Actions
Language.PureScript.Make.BuildPlan
Language.PureScript.Make.Cache
Language.PureScript.Make.ExternsDiff
Language.PureScript.Make.Monad
Language.PureScript.ModuleDependencies
Language.PureScript.Names
Expand Down Expand Up @@ -487,6 +488,8 @@ test-suite tests
TestSourceMaps
TestUtils
Paths_purescript
autogen-modules:
Paths_purescript

flag static
description: Builds a statically-linked version of the PureScript compiler.
Expand Down
3 changes: 2 additions & 1 deletion src/Language/PureScript/AST/Binders.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ module Language.PureScript.AST.Binders where
import Prelude

import Control.DeepSeq (NFData)
import Codec.Serialise (Serialise)
import GHC.Generics (Generic)
import Language.PureScript.AST.SourcePos (SourceSpan)
import Language.PureScript.AST.Literals (Literal(..))
Expand Down Expand Up @@ -64,7 +65,7 @@ data Binder
-- A binder with a type annotation
--
| TypedBinder SourceType Binder
deriving (Show, Generic, NFData)
deriving (Show, Generic, NFData, Serialise)

-- Manual Eq and Ord instances for `Binder` were added on 2018-03-05. Comparing
-- the `SourceSpan` values embedded in some of the data constructors of `Binder`
Expand Down
Loading
Loading