Update dependency purescript to v0.15.15 #153
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.15.9
->0.15.15
Release Notes
purescript/purescript (purescript)
v0.15.15
Compare Source
New features:
Add
--exclude-file
to more commands (#4530 by @JordanMartinez)This CLI arg was added to the
compile
command, but not to other commandswhere such a usage would be relevant (e.g.
docs
,repl
,graph
, andide
).Enable passing source input globs via
--source-globs-file path/to/file
(#4530 by @JordanMartinez)--source-globs-file
support has been added to the following commands:compile
,docs
,graph
,ide
, andpublish
.Due to a shell character limitation on Windows where a large list of
source globs cannot be passed (e.g.
purs compile ... glob1000/src/**/*.purs
),source globs can be stored in a file according to the format below
and the file is passed in instead via
purs compile ---source-globs-file path/to/file
.v0.15.14
Compare Source
Bugfixes:
Fix a compilation memory regression for very large files (#4521 by @mjrussell)
When compiling a a very large file (>12K lines)
the CSE pass could balloon memory and result in increased
compilation times.
This fix uses a strict Map instead of a lazy Map to avoid
building up unnecessary thunks during the optimization pass.
Fix two space leaks while compiling many modules (#4517 by @MonoidMusician)
The first would interleave compilation of too many modules at once, which
would increase memory usage, especially for single threaded builds with
+RTS -N1 -RTS
. Now the number of concurrent modules is limited tothe number of threads available to the
GHC runtime system.
The second would hold on to memory from modules that compiled with warnings
until the end of the build when the warnings were printed and the memory freed.
This is now fixed with additional
NFData
instances.v0.15.13
Compare Source
New features:
Replace
UnusableDeclaration
with updatedNoInstanceFound
(#4513 by @JordanMartinez)Previously, the following type class would be invalid
because there was no way for the compiler to infer
which type class instance to select because
the type variable in the class head
a
wasnot mentioned in
bar
's type signature:The recently-added visible type applications (VTAs)
can now be used to guide the compiler in such cases:
Without VTAs, the compiler
will still produce an
InstanceNotFound
error, but this errorhas been updated to note which type variables in the class head
can only be disambiguated via visible type applications.
Given the following code
The error reported for
useSingle
will be:For a multiparameter typeclass with functional dependencies...
...the "Note" part is updated to read
Bugfixes:
@var
was allowed in type class head (#4523 by @JordanMartinez)v0.15.12
Compare Source
New features:
Move the closed record update optimization (#4489 by @rhendric)
For consumers of CoreFn like alternate backends, the optimization of
replacing a closed record update with an object literal has now been moved to
the point of desugaring CoreFn into JS. The
ObjectUpdate
expressionconstructor now contains a
Maybe
field holding a list of record labels tobe copied as-is, for backends that want to perform this optimization also.
Allow instances that require
Fail
to be empty (#4490 by @rhendric)A class instance declaration that has
Prim.TypeError.Fail
as a constraintwill never be used. In light of this, such instances are now allowed to have
empty bodies even if the class has members.
(Such instances are still allowed to declare all of their members, and it is
still an error to specify some but not all members.)
Bugfixes:
Stop emitting warnings for wildcards in Visible Type Applications (#4492 by @JordanMartinez)
Previously, the below usage of a wildcard (i.e.
_
) wouldincorrectly cause the compiler to emit a warning.
Infer types using VTA inside a record (#4501 by @JordanMartinez)
Previously,
use
would fail to compilebecause the
v
type variable would not be inferredto
String
. Now the below code compiles:Internal:
Use
gh
for release artifacts (#4493 by @rhendric, #4509 by @JordanMartinez)Stop triggering CI on non-code-related changes (e.g. Readme) (#4502 by @JordanMartinez)
v0.15.11
Compare Source
Please use
0.15.12
instead of this release. There was an issue with the Linux build. This release notes were moved into0.15.12
's release notes.v0.15.10
Compare Source
New features:
Implement visible type applications
The compiler now supports visible type applications, allowing the user to instantiate one or more "visible" type variables to a specific type.
A "visible" type variable is a type variable in a
forall
binder that appears prefixed with an@
, like the following example:We can then use type application syntax to instantiate this binding to a specific type:
Type variables appearing in
class
ordata
are automatically visible, meaning that they do not require annotations:Lastly, visible type variables can also be skipped with a wildcard (i.e.
_
)Note that performing a type application with a type that has no visible type variables throws an error:
Similarly, monomorphic types also cannot be used for type applications:
Exclude files from compiler input (#4480 by @i-am-the-slime)
The compiler now supports excluding files from the globs given to it as input.
This means there's now a new option for
purs compile
, namely--exclude-files
(or the short version-x
):This allows you to keep related files closer together (that is, colocate them).
Consider a setup like the following:
In order to exclude the files in the example above you can now invoke
purs
like this and it will only compile
LoginPage.purs
:With
spago
, the equivalent command is:spago build --purs-args '-x "src/**/*Test.purs" -x "src/**/*Stories.purs"'
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.