-
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.
-
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, anddepends
, 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.
- Declare explicit upper bounds on Cabal and haskeline rather than relying on stack's pvp-bounds (#3777, @coot)