| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use fewer left/right-biased folds for defaults and
functions in `Data.Foldable`, to better support things
that don't look like cons lists.
This also extends the Haddock docstrings in `Data.Foldable`.
Reviewed By: hvr, ekmett
Differential Revision: https://phabricator.haskell.org/D441
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Define list monad operations using list comprehensions. Code using monad
operations with lists did not fuse fully. Writing list code with `do`
notation or `(>>=)` and `(>>)` operations could allocate more than
equivalent code using list comprehensions.
Define `mapM` directly, instead of using `sequence` and `map`. This
leads to substantially less allocation in `cryptarithm2`.
Addresses #9781
Reviewed By: ekmett, nomeata
Differential Revision: https://phabricator.haskell.org/D455
|
|
|
|
|
|
| |
Also, reword :print description.
Signed-off-by: Austin Seipp <austin@well-typed.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This also updates the `transformers` submodule to the just
released `transformers-0.4.2.0` package version.
See #9664 for more details
Reviewed By: austin, ekmett
Differential Revision: https://phabricator.haskell.org/D313
|
|
|
|
|
|
|
|
|
| |
Control.Applicative previously imported `(.)` and `id` from `Control.Arrow`,
but then only applied them to functions.
Reviewed By: ekmett, hvr
Differential Revision: https://phabricator.haskell.org/D462
|
|
|
|
| |
This is a follow-up commit to df3b1d43cc862fe03f0724a9c0ac9e7cecdf4605
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This requires ensuring the continuations have arguments by adding a dummy
Void# argument when needed. This is so that matching on a pattern synonym
is lazy even when the result is unboxed, e.g.
pattern P = ()
f P = 0#
In this case, without dummy arguments, the generated matcher's type would be
$mP :: forall (r :: ?). () -> r -> r -> r
which is called in `f` at type `() -> Int# -> Int# -> Int#`,
so it would be strict, in particular, in the failure continuation
of `patError`.
We work around this by making sure both continuations have arguments:
$mP :: forall (r :: ?). () -> (Void# -> r) -> (Void# -> r) -> r
Of course, if `P` (and thus, the success continuation) has any arguments,
we are only adding the extra dummy argument to the failure continuation.
|
|
|
|
| |
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
|
|
|
|
| |
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
|
|
|
|
| |
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes nub and nubBy behave as specified in the Haskell 98 Report.
This reverts 0ad9def53842e86fb292eccb810190711c42d7c5, and
fixes #3280, #7913 and #2528 (properly).
Before this change, the output of `T2528` was (4x wrong):
```
[A,B]
[1,2]
False
False
```
Reviewed By: dfeuer, ekmett, austin, hvr
Differential Revision: https://phabricator.haskell.org/D238
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit mostly converts literate comments into ordinary
Haskell comments or sometimes even Haddock comments, while also
removing literate comments in a few cases where they don't make
much sense anymore.
Moreover, in a few cases trailing whitespaces were removed as well.
Reviewed By: austin
Differential Revision: https://phabricator.haskell.org/D456
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should have gone in with the update in testlib.py to split
off stat test failures into a separate category in the summary.
Reviewers: austin
Reviewed By: austin
Subscribers: thomie, carter
Differential Revision: https://phabricator.haskell.org/D451
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: There was a comment about that. Seems like a better behaviour.
Reviewers: austin
Reviewed By: austin
Subscribers: thomie, carter, simonmar
Differential Revision: https://phabricator.haskell.org/D419
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Some of the links in user's guide were broken, I've found the files they used to link and updated urls.
Reviewers: austin
Reviewed By: austin
Subscribers: thomie, carter, simonmar
Differential Revision: https://phabricator.haskell.org/D418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The last three '#define ...' macros were removed from Parser.y.pp and this file was renamed to Parser.y.
This basically got rid of a CPP step in the build.
Also converted two modules in compiler/parser/ from .lhs to .hs.
Test Plan: Does it build? Yes, I performed a full build here and things are looking good.
Reviewers: austin
Reviewed By: austin
Subscribers: adamse, thomie, carter, simonmar
Differential Revision: https://phabricator.haskell.org/D411
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
My previous attempt to fix the new coercion bug introduced by my fix actually
just reverted back to the *old* bug. This time it should properly handle all
three size scenarios.
Signed-off-by: Merijn Verstraaten <merijn@inconsistent.nl>
Test Plan: validate
Reviewers: dfeuer, austin, hvr
Reviewed By: austin, hvr
Subscribers: thomie, carter, simonmar
Differential Revision: https://phabricator.haskell.org/D407
GHC Trac Issues: #8089
|
|
|
|
| |
Signed-off-by: Austin Seipp <austin@well-typed.com>
|
|
|
|
|
|
|
|
|
| |
It's prettier that way, and there's less risk of anything
going sideways.
Reviewed By: hvr, simonpj
Differential Revision: https://phabricator.haskell.org/D450
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Generally clean up things relating to Applicative and Monad in `GHC.Base`
and `Control.Applicative` to make `Applicative` feel like a bit more of a
first-class citizen rather than just playing second fiddle to `Monad`. Use
`coerce` and GND to improve performance and clarity.
Change the default definition of `(*>)` to use `(<$)`, in case the
`Functor` instance optimizes that.
Moreover, some manually written instances are made into compiler-derived
instances.
Finally, this also adds a few AMP-related laws to the `Applicative` docstring.
NOTE: These changes result in a 13% decrease in allocation for T9020
Reviewed By: ekmett, hvr
Differential Revision: https://phabricator.haskell.org/D432
|
|
|
|
| |
-XIncoherentInstances turned on.
|
| |
|
|
|
|
| |
Haskell.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main description is in Note [Preventing recursive dictionaries]
in TcRnTypes, which applies only to Coercible dictionaries.
But it was a bit of a mess:
- It wasn't applied consistently
- It was being applied to non-Coercible dictionaries in some places
This patch tidies it up.
This hack will largely go away when Richard starts treating Coercible
constraints more like equalities than like dictionaries.
|
| |
|
|
|
|
|
| |
See Note [Propagate solved dictionaries] in TcSMonad. This
can signficantly reduce the number of solver steps.
|
| |
|
|
|
|
|
|
|
|
| |
See Note [Lazy flattening] in TcFlatten.
Lazy flattening was an apparently good idea which actually made
the type inference engine go a LOTS slower in T3064. So I switched
it off again.
|
| |
|
| |
|
|
|
|
| |
A little refactoring
|
| |
|
|
|
|
|
| |
This improves error messages when there is a type error,
fixing Trac #9774
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Add doctest examples for every data type and function in `Data.Either`
Differential Revision: https://phabricator.haskell.org/D443
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
1. The offset was a full word, but it should actually be a 32-bit
offset on 64-bit platforms.
2. The con_desc string was allocated separately, which meant that it
might be out of range for a 32-bit offset.
These bugs meant that +RTS -Di (interpreter debugging) would sometimes
crash on 64-bit.
|
|
|
|
|
| |
This is introduced in aa4799534225e3fc6bbde0d5e5eeab8868cc3111
and would cause indeterministic testsuite failures in `sigof02dmt`
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Niklas Hambüchen suggested that we add the dual of `subsequences`,
isSubsequenceOf (like `isPrefixOf` to `inits` & `isSuffixOf` to `tails`).
It was a simple and noncontroversial proposal which passed unanimously.
For more details see the original proposal discussion at
https://www.haskell.org/pipermail/libraries/2014-November/024063.html
Differential Revision: https://phabricator.haskell.org/D435
Signed-off-by: Alexander Berntsen <alexander@plaimi.net>
|