purescript v0.14.2 Release Notes

  • ๐Ÿ†• New features:

    • ๐Ÿ‘‰ Make type class instance names optional (#4085, @JordanMartinez)

    Previously, one would be required to define a unique name for a type class instance. For example

      -- instance naming convention:
      -- classNameType1Type2Type3
      instance fooIntString :: Foo Int String

    Now, the name and :: separator characters are optional. The above instance could be rewritten like so:

      instance Foo Int String

    and the compiler will generate a unique name for the instance (e.g. $dollar_FooIntString_4 where 4 is a randomly-generated number that can change across compiler runs). This version of the instance name is not intended for use in FFI.

    Note: if one wrote

      instance ReallyLongClassName Int String

    the generated name would be something like $dollar_ReallyLongClassNameIntStr_87 rather than $dollar_ReallyLongClassNameIntString_87 as the generated part of the name will be truncated to 25 characters (long enough to be readable without being too verbose).

    ๐Ÿ›  Bugfixes:

    • โš  Unused identifier warnings now report smaller and more relevant source spans (#4088, @nwolverson)

    Also fix incorrect warnings in cases involving a let-pattern binding shadowing an existing identifier.


    • โฌ‡๏ธ Drop libtinfo dependency (#3696, @hdgarrood)

    Changes the build configuration so that by default, compiler binaries will not have a dynamic library dependency on libncurses/libtinfo. This should alleviate one of the most common pains in getting the compiler successfully installed, especially on Linux. The cost is a slight degradation in the REPL experience when editing long lines, but this can be avoided by building the compiler with the libtinfo dependency by setting the terminfo flag of the haskeline library to true.

    • ๐Ÿ‘ท Migrate CI from Travis to GitHub Actions (#4077, @rhendric)

    • โœ‚ Remove tasty from test suite and just use hspec (#4056, @hdgarrood)

    • โœ… Avoid compiling tests with diagnostics twice in test suite (#4079, @hdgarrood)

    • โœ… Do less work in test initialization (#4080, @rhendric)

    • ๐Ÿ‘• Follow more HLint suggestions (#4090, @rhendric)

    • Export rebuildModule' to speed up Try PureScript! slightly (#4095 by @JordanMartinez)

    • ๐Ÿ”€ Merge purescript-ast into purescript-cst (#4094 by @JordanMartinez)