purescript v0.13.8 Release Notes

Release Date: 2020-05-23 // almost 2 years ago
  • ๐Ÿ› Bug Fixes

    โšก๏ธ Update incremental build cache information properly on IDE rebuilds (#3789, @kritzcreek)

    ๐Ÿ›  Fixes a bug where triggering a rebuild via the IDE would not update the
    output/cache-db.json file, which in certain situations could lead to
    unnecessary rebuilds, as well as modules not being rebuilt when they should
    have been.

    Don't include compiler-internal declarations in IDE completions (#3850, @kritzcreek)

    IDE completions would previously include pseudo-declarations such as
    RowToList$Dict which only exist internally, due to how type class
    desugaring inside the compiler works. These declarations are now suppressed.

    ๐Ÿ›  Fix corefn JSON version parsing (#3877, @paulyoung)

    ๐Ÿ›  Fixes a bug where the parser for the functional core (or "corefn") JSON
    format would ignore all but the first component of the compiler version
    stored in the JSON. This does not affect the compiler directly, but will be
    ๐Ÿ“œ useful for other tooling which depends on the corefn JSON parser provided by
    the compiler library.

    ๐Ÿ‘Œ Improvements

    โž• Add purs graph subcommand for graphing module dependencies (#3781, @jmackie, @f-f)

    This adds a new graph subcommand which allows tools to consume information
    about which modules depend on which other modules. The format is as follows:

    { "Prelude":
        { "path": "src/Prelude.purs"
        , "depends": ["Data.Ring"
        },
      "Data.Ring":
        { "path": "src/Data/Ring.purs"
        , "depends": []
        },
      ...
    }
    

    Each property in the returned object has exactly two properties; path,
    which is a string containing the file path relative to the directory where
    the command was run, and depends, which is an array of the names of all
    directly imported modules.

    ๐Ÿ‘ purs ide is better at reloading changes (#3799, @kritzcreek)

    The IDE would previously sometimes miss changes that were made outside of the
    ๐Ÿ— editor, like building with new dependencies or recompiling larger parts of
    the project on the console.

    The IDE will now notice when this happened on the next command issued to it
    and refresh its state before processing that command. This might cause the
    first command after an external change to take a long time to execute, but
    should increase reliability in general.

    Switch to a binary encoding for externs files (#3841, @kritzcreek)

    ๐ŸŽ This change should result in significant performance improvements in both IDE
    ๐Ÿ— load times and incremental builds where lots of modules are already built.

    Represent module names as a single Text value internally (#3843, @kritzcreek)

    ๐ŸŽ Boosts compiler performance by representing module names as a single Text
    value, rather than a list of Text values as it was previously.

    ๐Ÿ“š Extract documentation for type classes in purs ide (#3856, @kritzcreek)

    ๐Ÿ“š This changes makes documentation comments on type classes visible to the IDE.

    Other

    • Declare explicit upper bounds on Cabal and haskeline rather than relying on
      stack's pvp-bounds (#3777, @coot)