purescript v0.13.6 Release Notes

Release Date: 2020-01-17 // over 2 years ago
  • ๐Ÿ› Bug Fixes

    Reset IDE state before performing a full reload. (#3766, @kritzcreek)

    This prevents a space leak in the IDE.

    โž• Added source spans to ado desugaring. (#3758, @dariooddenino)

    Previously errors in ado desugaring might have had no line information.

    Generate correct arity failure case for some guarded matches. (#3763, @nwolverson)

    Specifically when a multi-way case contains a pattern guard or multiple
    guard expressions, the desugared case expression could contain a guard with
    a different arity to the matched expressions, resulting in an error.

    ๐Ÿ‘Œ Improvements

    ๐Ÿ‘Œ Improved ambiguous variable check for functional dependencies. (#3721, @MonoidMusician)

    Previously the compiler might warn about ambiguous variables that aren't actually ambiguous
    due to functional dependencies. This check now fully takes functional dependencies into

    โšก๏ธ Optimize import desugaring for full builds (#3768, @colinwahl)

    The compiler was performing redundant work when resolving dependencies for modules resulting
    in poor asymptotics. This work is now shared across modules yielding a 30-40% improvement in
    ๐Ÿ— build times for full builds.

    ๐Ÿ–จ Use PureScript escapes in string pretty-printing (#3751, @hdgarrood)

    ๐Ÿ–จ Previously the compiler might print invalid escape sequences when pretty-printing code for
    ๐Ÿ–จ error messages. It now prints correctly escaped code based on PureScript's lexical grammar.

    โšก๏ธ Optimize away binds to wildcards in do-notation (#3220, @matthewleon, @hdgarrood)

    This avoids generating variable assignments if no variables are actually bound in do-notation.
    Previously the compiler would emit a unique variable name that went unused.

    ๐Ÿ“„ Output docs.json files for Prim modules (#3769, @f-f)

    ๐Ÿ“š This change allows downstream tools such as spago to obtain documentation data for Prim modules.
    โš  Please note, however, that the API for the docs.json files is unstable and may change without warning.