PureScript 0.14 Released

I’m proud to announce the release of PureScript 0.14!

If you are new to PureScript, you can follow the getting started guide to give it a try.

About this release

PureScript 0.14 introduces many improvements to the compiler, documentation, and core libraries. It also introduces two new features to the language: polymorphic kinds and safe zero-cost coercions! You can read all about the new features and improvements in the compiler release notes:

Most code that compiles with PureScript 0.13 also compiles with PureScript 0.14. However, you may need to update your code to accommodate changes in the language, core libraries, or your other dependencies. Please refer to the 0.14 migration guide for help:

PureScript’s core infrastructure is compatible with PureScript 0.14. But a few resources won’t transition for a little while longer. These include:

  • The PureScript book, which is still written for the 0.13.x compiler series
  • Try PureScript, which is updated for PureScript 0.14 but won’t deploy until the package set is larger

Upgrading your dependencies

The core libraries have all moved to new major versions to support the new compiler. This means that most libraries in the ecosystem will also need to update to new major versions.

If you are a Spago user, then you will automatically opt-in to the latest 0.14-compatible package set if you run spago init or spago upgrade-set and have the 0.14 compiler in your path. If you are a Bower user, then you can update your dependencies to their new major versions the usual way (you should probably migrate to Spago, though!).

The initial PureScript 0.14 package set contains all libraries from the purescript, purescript-contrib, purescript-node, and purescript-web organizations. It also includes any libraries from the 0.13.8 package set that still compile. This is a small package set, but it will grow rapidly in the coming weeks.

Adding your library to the package set

Many libraries have been dropped from the package set because they did not compile with the new compiler and core libraries. The vast majority of libraries that were dropped only need simple, largely mechanical updates to be compatible again.

If your library is one of them, please refer to the migration guide and the changelogs of your dependencies for help updating. Once your library is updated, you will need to make a pull request to the package sets repository:

We have commented out libraries from the 0.13.8 package set that were dropped from the 0.14.0 package set. This should help you make updates – simply uncomment your library, update the version number and/or dependencies, and submit a pull request.

Next steps

You can begin using PureScript 0.14 today. Please enjoy the new release!

40 Likes

Just to clarify something… halogen is not yet in the latest package set. It and a few other libraries still need their dependencies updated.

4 Likes

Just FYI. I’ve updated my learning repo to v0.14.0. See this PR for all changes: https://github.com/JordanMartinez/purescript-jordans-reference/pull/546

I’ve updated the mdbook website (https://github.com/jordanmartinez/purescript-jordans-reference) to this version, but it’ll probably take a bit before those changes will appear when you visit the site.

9 Likes