Skip to content

Update to PureScript 0.15.17 and package set 82.1.0 - #324

Merged
thomashoneyman merged 1 commit into
masterfrom
purs-0.15.17
Nov 14, 2026
Merged

thomashoneyman merged 1 commit into
masterfrom
purs-0.15.17

Conversation

@thomashoneyman

Copy link
Copy Markdown
Member

Updates Try PureScript to PureScript 0.15.17 and registry package set 82.1.0, which targets compiler 0.15.17.

Changes

  • Bump purescript to 0.15.17 and the Stackage resolver from lts-20.26 to lts-23.18 (GHC 9.2.8 → 9.8.4), matching purescript-0.15.17's own stack.yaml. The extra-deps now match upstream's; the old process, Cabal, protolude, and happy pins and the these flag are covered by the new snapshot and GHC.

  • server/Main.hs: two -Werror fixes for the newer snapshot. Drop an import that is now redundant (liftIO), and use scotty 0.22's queryParam instead of the deprecated param for /search, which is a GET ?q= request.

  • Update to package set 82.1.0 using the RELEASE.md steps: 501 packages installed, up from 492. Eight packages new to the set can't run in the playground and are added to staging/excluded-packages.txt:

    • unshimmed imports: mycroft, mycroft-z3-wasm, node-buffer-blob, node-sqlite, yoga-scylladb
    • depend on excluded packages: baskerville-mycroft, env, yoga-sqlite-om

    No package already in the set is newly affected. elmish-time-machine left the set, so its line is removed.

  • Regenerate SharedConfig.purs, bump the client's purescript dev dependency to ^0.15.17, and add a changelog entry.

Memory check (production RTS flags, -M3G)

77.10.2 (previous) 82.1.0
Cold boot peak residency 1,165 MB 1,200 MB (3,901 modules)
Warm restart peak residency 1,907 MB 1,896 MB

Verification

  • stack build succeeds on GHC 9.8.4 with -Wall -Werror.

  • Client: npm run build, test, build:production, bundle:production, and the SharedConfig version check pass.

  • All client/examples compile with 0 warnings against the local server and run in the UI with the expected output.

  • Attached derive clauses compile and run in the UI. This module fails to parse on production today and works with this branch:

    data Color = Red | Green | Blue
      derive (Eq, Ord)
    
    newtype Name = Name String
      derive (Eq, Ord)
    
    data Box a = Empty | Full a
      derive (Functor, Generic)

    Attached derive newtype is rejected with a parse error, as the release notes describe.

  • spago fetch --pure (the deploy start script) succeeds from a fresh cache with the new lock file.

- Bump purescript to 0.15.17 and the Stackage resolver from lts-20.26
  to lts-23.18 (GHC 9.2.8 -> 9.8.4), matching purescript-0.15.17's own
  stack.yaml. The extra-deps now mirror upstream; the old process, Cabal,
  protolude, and happy pins and the these flag are satisfied by the new
  snapshot and GHC.
- Fix server/Main.hs for -Werror under the newer snapshot: drop a now
  redundant liftIO import and use scotty's queryParam instead of the
  deprecated param for /search.
- Update to registry package set 82.1.0 using the steps in RELEASE.md.
  Exclude the new packages that cannot run in the playground (mycroft,
  mycroft-z3-wasm, node-buffer-blob, node-sqlite, yoga-scylladb, and
  their dependents baskerville-mycroft, env, yoga-sqlite-om) and drop
  elmish-time-machine, which left the set.
- Update SharedConfig.purs and the client's purescript dev dependency.

Memory at production RTS settings (-M3G): cold boot compiles all 3,901
modules with 1,200 MB peak residency; warm restart peaks at 1,896 MB.
@thomashoneyman
thomashoneyman merged commit 3025d57 into master Nov 14, 2026
3 checks passed
@thomashoneyman
thomashoneyman deleted the purs-0.15.17 branch November 14, 2026 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant