summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Comments onlySimon Peyton Jones2014-11-111-0/+3
|
* Test Trac #9662Simon Peyton Jones2014-11-113-0/+107
|
* Comments only (on recursive dictionaries)Simon Peyton Jones2014-11-112-40/+58
|
* De-bias Data.Foldable and improve docstringsDavid Feuer2014-11-111-26/+132
| | | | | | | | | | | | 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 comprehensionsDavid Feuer2014-11-111-7/+44
| | | | | | | | | | | | | | | | 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
* Typo fix; Trac #9787Austin Seipp2014-11-101-2/+2
| | | | | | Also, reword :print description. Signed-off-by: Austin Seipp <austin@well-typed.com>
* Move Data.Functor.Identity from transformers to baseHerbert Valerio Riedel2014-11-105-3/+82
| | | | | | | | | | | 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
* Use (.) and id from Base in Control.ApplicativeDavid Feuer2014-11-081-2/+2
| | | | | | | | | 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
* Unlit overlooked GHC/Conc/Sync.lhsHerbert Valerio Riedel2014-11-081-31/+14
| | | | This is a follow-up commit to df3b1d43cc862fe03f0724a9c0ac9e7cecdf4605
* Group PatSyn req/prov arguments together so that they're not all over the placeDr. ERDI Gergo2014-11-084-29/+28
|
* In pattern synonym matchers, support unboxed continuation results (fixes #9783).Dr. ERDI Gergo2014-11-087-22/+61
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* Top-level comment for keepPackageImports.Edward Z. Yang2014-11-071-1/+4
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Miscellaneous documentation for the Finder.Edward Z. Yang2014-11-071-2/+22
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Typofix.Edward Z. Yang2014-11-071-1/+1
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Preserve argument order to (==)/eq in nub and nubByThomas Miedema2014-11-076-14/+45
| | | | | | | | | | | | | | | | | | | 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
* base: Manually unlit .lhs into .hs modulesHerbert Valerio Riedel2014-11-0721-747/+254
| | | | | | | | | | | | | 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
* Have validate take into account stat test failures too.Gintautas Miliauskas2014-11-071-0/+1
| | | | | | | | | | | | | 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
* Use bracket in `withCurrentDirectory`Konstantin Zudov2014-11-071-6/+3
| | | | | | | | | | | | 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
* [Docs] Fixed several broken urls in user's guideKonstantin Zudov2014-11-072-5/+5
| | | | | | | | | | | | 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
* small parser/lexer cleanupYuri de Wit2014-11-075-578/+577
| | | | | | | | | | | | | | | | | | 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
* *Really*, really fix RTS crash due to bad coercion.Merijn Verstraaten2014-11-074-6/+66
| | | | | | | | | | | | | | | | | | | | | 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
* Update .gitignore to properly ignore emacs temp filesAustin Seipp2014-11-071-0/+1
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Make getTag use a bang pattern instead of seqDavid Feuer2014-11-071-1/+1
| | | | | | | | | 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
* Improve Applicative definitionsDavid Feuer2014-11-076-44/+67
| | | | | | | | | | | | | | | | | | | | | 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
* Warn for Safe Haskell when -XOverlappingInstances orDavid Terei2014-11-0611-18/+82
| | | | -XIncoherentInstances turned on.
* Add in Incoherent Instances test for Safe Haskell.David Terei2014-11-068-0/+90
|
* Better error messages for new per-instance overlap flags and SafeDavid Terei2014-11-067-1/+45
| | | | Haskell.
* Re-enable T3064, which works nowSimon Peyton Jones2014-11-061-2/+1
|
* Refactor the code that prevents recursion among Coercible constraintsSimon Peyton Jones2014-11-063-46/+44
| | | | | | | | | | | | | | 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.
* Wibbles to notesSimon Peyton Jones2014-11-061-33/+2
|
* Allow the solved dictionaries to propagate from outside inSimon Peyton Jones2014-11-061-3/+26
| | | | | See Note [Propagate solved dictionaries] in TcSMonad. This can signficantly reduce the number of solver steps.
* Minor refacoring and trace-message printingSimon Peyton Jones2014-11-062-24/+25
|
* Switch off lazy flattening (fix Trac #3064)Simon Peyton Jones2014-11-067-36/+85
| | | | | | | | 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.
* Give T3064 the right module name (just tidying up)Simon Peyton Jones2014-11-061-1/+1
|
* Comments and white space onlySimon Peyton Jones2014-11-061-1/+1
|
* Make tyConsOfType return a (NameEnv TyCon) rather than [TyCon]Simon Peyton Jones2014-11-064-13/+14
| | | | A little refactoring
* Remove unused tyConsOfDataConSimon Peyton Jones2014-11-062-15/+1
|
* Move expansion of 'assert' from renamer to typecheckerSimon Peyton Jones2014-11-065-64/+74
| | | | | This improves error messages when there is a type error, fixing Trac #9774
* Update User's Guide, cleanup DynFlagsJan Stolarek2014-11-067-553/+1005
|
* Remove -ddump-core-pipeline flagJan Stolarek2014-11-064-7/+7
|
* Remove -ddump-simpl-phases flagJan Stolarek2014-11-065-67/+14
|
* Clarify confusing notice from `make maintainer-clean`Jan Stolarek2014-11-061-1/+1
|
* Add doctest examples for Data.EitherMichael Orlitzky2014-11-061-6/+175
| | | | | | Add doctest examples for every data type and function in `Data.Either` Differential Revision: https://phabricator.haskell.org/D443
* Add a comment about stack checksSimon Marlow2014-11-051-0/+2
|
* Disable an assertion; see commentSimon Marlow2014-11-051-1/+7
|
* Fix a couple of inaccurate stack checksSimon Marlow2014-11-051-3/+6
|
* Fix bugs in debug printingSimon Marlow2014-11-051-2/+1
|
* Fix a couple of bugs in the way info tables are generated for 64-bit platformsSimon Marlow2014-11-052-15/+25
| | | | | | | | | | 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.
* Fix typo in testsuite MakefileHerbert Valerio Riedel2014-11-051-1/+1
| | | | | This is introduced in aa4799534225e3fc6bbde0d5e5eeab8868cc3111 and would cause indeterministic testsuite failures in `sigof02dmt`
* Add `isSubsequenceOf` to Data.List (#9767)Alexander Berntsen2014-11-052-0/+26
| | | | | | | | | | | | | 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>