summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix #9204 by outputting extra info on boot file mismatch.Richard Eisenberg2014-11-122-49/+135
| | | | [skip ci] -- testsuite wibbles are in next commit
* Test #9204 in roles/should_fail/T9204Richard Eisenberg2014-11-125-1/+25
|
* Fix #9064 by adding support for generic default signatures to TH.Richard Eisenberg2014-11-128-17/+39
|
* Test #9064 in th/T9064Richard Eisenberg2014-11-123-0/+31
|
* Fix #8100, by adding StandaloneDerivD to TH's Dec type.Richard Eisenberg2014-11-127-22/+56
|
* Test #8100 in th/T8100Richard Eisenberg2014-11-122-0/+21
|
* Derive Generic for TH types (#9527)Richard Eisenberg2014-11-121-41/+42
|
* Remove unboxed Int# fields from NameFlavour (#9527)Richard Eisenberg2014-11-123-102/+21
|
* Untabify template-haskell.Richard Eisenberg2014-11-125-51/+51
|
* Fix #9066.Richard Eisenberg2014-11-124-30/+58
| | | | | | | | | | When splicing in a fixity declaration, look for both term-level things and type-level things. This requires some changes elsewhere in the code to allow for more flexibility when looking up Exact names, which can be assigned the wrong namespace during fixity declaration conversion. See the ticket for more info.
* Test #9066 in th/T9066Richard Eisenberg2014-11-122-0/+12
|
* fix allocLimit3 on WindowsSimon Marlow2014-11-121-1/+6
|
* Fix build errors on Windows (these tests still don't work though)Simon Marlow2014-11-122-0/+6
|
* Per-thread allocation counters and limitsSimon Marlow2014-11-1237-168/+675
| | | | | | | | This reverts commit f0fcc41d755876a1b02d1c7c79f57515059f6417. New changes: now works on 32-bit platforms too. I added some basic support for 64-bit subtraction and comparison operations to the x86 NCG.
* Implement new integer-gmp2 from scratch (re #9281)Herbert Valerio Riedel2014-11-1240-18/+6103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done as a separate `integer-gmp2` backend library because it turned out to become a complete rewrite from scratch. Due to the different (over)allocation scheme and potentially different accounting (via the new `{shrink,resize}MutableByteArray#` primitives), some of the nofib benchmarks actually results in increased allocation numbers (but not necessarily an increase in runtime!). I believe the allocation numbers could improve if `{resize,shrink}MutableByteArray#` could be optimised to reallocate in-place more efficiently. Here are the more apparent changes in the latest nofib comparision between `integer-gmp` and `integer-gmp2`: ------------------------------------------------------------------ Program Size Allocs Runtime Elapsed TotalMem ------------------------------------------------------------------ ... bernouilli +1.6% +15.3% 0.132 0.132 0.0% ... cryptarithm1 -2.2% 0.0% -9.7% -9.7% 0.0% ... fasta -0.7% -0.0% +10.9% +10.9% 0.0% ... kahan +0.6% +38.9% 0.169 0.169 0.0% ... lcss -0.7% -0.0% -6.4% -6.4% 0.0% ... mandel +1.6% +33.6% 0.049 0.049 0.0% ... pidigits +0.8% +8.5% +3.9% +3.9% 0.0% power +1.4% -23.8% -18.6% -18.6% -16.7% ... primetest +1.3% +50.1% 0.085 0.085 0.0% ... rsa +1.6% +53.4% 0.026 0.026 0.0% ... scs +1.2% +6.6% +6.5% +6.6% +14.3% ... symalg +1.0% +9.5% 0.010 0.010 0.0% ... transform -0.6% -0.0% -5.9% -5.9% 0.0% ... ------------------------------------------------------------------ Min -2.3% -23.8% -18.6% -18.6% -16.7% Max +1.6% +53.4% +10.9% +10.9% +14.3% Geometric Mean -0.3% +1.9% -0.8% -0.8% +0.0% (see P35 / https://phabricator.haskell.org/P35 for full report) By default, `INTEGER_LIBRARY=integer-gmp2` is active now, which results in the package `integer-gmp-1.0.0.0` being registered in the package db. The previous `integer-gmp-0.5.1.0` can be restored by setting `INTEGER_LIBRARY=integer-gmp` (but will probably be removed altogether for GHC 7.12). In-tree GMP support has been stolen from the old `integer-gmp` (while unpatching the custom memory-allocators, as well as forcing `-fPIC`) A minor hack to `ghc-cabal` was necessary in order to support two different `integer-gmp` packages (in different folders) with the same package key. There will be a couple of follow-up commits re-implementing some features that were dropped to keep D82 minimal, as well as further clean-ups/improvements. More information can be found via #9281 and https://ghc.haskell.org/trac/ghc/wiki/Design/IntegerGmp2 Reviewed By: austin, rwbarton, simonmar Differential Revision: https://phabricator.haskell.org/D82
* Disable T4801/peak_megabytes_allocatedHerbert Valerio Riedel2014-11-121-17/+19
| | | | | | This test seems too close to a tipping point (and thus too sensitive to the build-env used) and T4801's `max_bytes_used` was disabled as well some time ago for a similiar reason.
* Add stderr for T9662Simon Peyton Jones2014-11-111-0/+84
|
* Test Trac #7862Simon Peyton Jones2014-11-113-1/+37
|
* Test Trac #9077Simon Peyton Jones2014-11-113-0/+7
|
* Improve documentation of -ticky a littleSimon Peyton Jones2014-11-113-3/+9
|
* 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
|