Log message:
lang/purescript: Update to 0.15.7
v0.15.7
New features:
* Allow IDE module rebuilds eschewing the filesystem (#4399 by
@i-am-the-slime)
- This allows IDE clients to typecheck the module the user is currently
typing in without modifying the output.
- This allows for faster feedback cycles in editors and avoids producing
a broken /output before the user actually saves the file.
* Add purs ide dependency/imports filter (#4412 by @nwolverson)
- This allows IDE tooling to filter type searches according to the
imports of a given module, restricting to identifiers in scope.
* Shorten custom user-defined error message's prefix (#4418 by
@i-am-the-slime)
- Improves clarity and gets to the relevant information faster.
* The compiler can now derive instances for more types and type classes
(#4420 by @rhendric)
- New type classes that the compiler can derive:
* Bifunctor
* Bifoldable
* Bitraversable
* Contravariant
* Profunctor
- Moreover, the compiler can also use these classes when deriving
Functor, Foldable, and Traversable, enabling more instances to be
derived whereas before such instances would need to be written
manually.
Bugfixes:
* Update installer to 0.3.3 to fix a few installation issues (#4425 by
@JordanMartinez)
Other improvements:
* Improve DuplicateDeclarationsInLet error so that it mentions what
variable names were duplicated, reporting several in separate errors as
necessary. (#4405 by @MonoidMusician)
* Fix various typos in documentation and source comments. (#4415 by
@Deltaspace0)
* Bump Stackage snapshot to 2022-11-12 and GHC to 9.2.4 (#4422 by
@purefunctor)
Internal:
* Organize the compiler's internal constants files (#4406 by @rhendric)
* Enable more GHC warnings (#4429 by @rhendric)
v0.15.6
Bugfixes:
* Make FromJSON instance for Qualified backwards compatible (#4403 by
@ptrfrncsmrph)
- Prior to #4293, Qualified was encoded to JSON such that
>>> encode $ Qualified Nothing "foo"
[null,"foo"]
>>> encode $ Qualified (Just $ ModuleName "A") "bar"
["A","bar"]
- The type of Qualified has changed so that null no longer appears in
JSON output, but for sake of backwards-compatibility with JSON that was
produced prior to those changes (pre-v0.15.2), we need to accept null,
which will be interpreted as Qualified ByNullSourcePos.
* Fix extraneous qualifiers added to references to floated expressions
(#4401 by @rhendric)
v0.15.5
New features:
* Increases the max number of typed holes displayed from 5 up to 30 (#4341
by @JordanMartinez)
* Add a compiler optimization for ST functions with up to 10 arity, similar
to Effect optimizations. (#4386 by @mikesol)
* Enable the compiler to derive Foldable and Traversable instances (#4392
by @rhendric)
- These instances follow the same rules as derived Functor instances.
For details, see the PureScript language reference.
Bugfixes:
* Qualify references to expressions floated to the top level of a module by
the compiler (#4364 by @rhendric)
* Fix replicated type hole suggestions due to malformed source spans (#4374
by @purefunctor)
- In PureScript 0.15.4, the following code will produce multiple entries
in the type hole suggestions. This is due to malformed source spans
that are generated when desugaring value declarations into case
expressions.
module Main where
data F = X | Y
f :: forall a. F -> a -> a
f X b = ?help
f Y b = ?help
* Improve error spans for class and instance declarations (#4383 and #4391
by @purefunctor and @rhendric)
- This improves the error spans for class and instance
declarations. Instead of highlighting the entire class or instance
declaration when UnknownName is thrown, the compiler now highlights the
class name and its arguments.
Before:
[1/2 UnknownName]
5 class G a <= F a
^^^^^^^^^^^^^^^^
Unknown type class G
[2/2 UnknownName]
7 instance G a => F a
^^^^^^^^^^^^^^^^^^^
Unknown type class G
After:
[1/2 UnknownName]
5 class G a <= F a
^^^
Unknown type class G
[2/2 UnknownName]
7 instance G a => F a
^^^
Unknown type class G
* Fix a bug where the compiler did not consider interactions of all
functional dependencies in classes. (#4195 by @MonoidMusician)
- In particular, combinations of multiple parameters determining other
parameter(s) were not handled properly, affecting overlapping instance
checks and the selection of which parameters are fully determined.
Other improvements:
* Bump actions environment to macOS-11 (#4372 by @purefunctor)
Internal:
* Enable OverloadedRecordDot extension throughout codebase (#4355 by
@JordanMartinez)
* Ensure order of args remain unchanged in freeTypeVariables (#4369 by
@JordanMartinez)
* Bump HLint to version 3.5 and address most of the new hints (#4391 by
@rhendric)
* Remove purescript-cst from Makefile (#4389 by @ptrfrncsmrph)
* Bump depend NPM purescript-installer to ^0.3.1 (#4353 by @imcotton)
* Remove base-compat as a dependency (#4384 by @purefunctor)
|