summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Make the linker API thread-safeSimon Marlow2014-11-287-41/+89
| | | | | | We used to be able to rely on the client to use the API in a single-threaded way, but now that the GC calls into the linker to unload objects this isn't a safe assumption.
* Re-implement `testPrimeInteger` predicate (#9281)Herbert Valerio Riedel2014-11-282-0/+68
| | | | | | | | This also adds `testPrimeWord#` and `testPrimeBigNat` predicates. `testPrimeInteger` has been available since `integer-gmp-0.5.1` (added via f49735486533842cc84df70cafc8d565dffd75db). The `nextPrimeInteger` function is still missing though.
* Tidy up tracing somewhatSimon Peyton Jones2014-11-285-39/+52
| | | | | This is a knock-on from the -dump-to-file changes. (I found that -ddump-cs-trace stuff wasn't coming out!)
* Don't discard a bang on a newtype pattern (Trac #9844)Simon Peyton Jones2014-11-287-13/+79
| | | | We were wrongly simply dropping the bang, in tidy_bang_pat.
* Improve VERSION/GIT_COMMIT_ID handling for sdistHerbert Valerio Riedel2014-11-281-3/+6
| | | | | | | | | | | | This makes `VERSION` updating a bit more robust (the file gets only updated if its content would actually change), as well as moving the dependency of `VERSION` and `GIT_COMMIT_ID` to the `sdist-ghc-prep` target, as that's where it's actually needed. This fixes the specialised target `make sdist-ghc` not properly creating/updating the `VERSION` and `GIT_COMMIT_ID` files before creating the ghc source-dist tarball, as well as avoiding stale `VERSION` files.
* compiler: add new modules pulling in FunFlagsSergei Trofimovich2014-11-272-5/+4
| | | | | | | | And also sync type signature under '#ifndef GHCI' Tested by setting GhcWithInterpreter = NO Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Embed Git commit id into `ghc --info` outputHerbert Valerio Riedel2014-11-278-2/+41
| | | | | | | | | | | | | | | | | | | | | | | Since we switched to a Git submodule based GHC Git repo, `ghc.git`'s commit id uniquely identifies the state of the GHC source-tree. So having that information embedded into the `ghc` executable provides valuable information to track accurately (especially when created by buildbots) from which source-tree-state a given `ghc` snapshot (distribution) was generated. So this commit adds a new field `"Project Git commit id"` to the `ghc --info` meta-data containing the `./configure`-time Git commit id as reported by `git rev-parse HEAD`. This field can also be queried with `ghc --print-project-git-commit-id`. For source distributions, the file `GIT_COMMIT_ID` is created (with some sanity checking to detect stale commit ids, as that would render this information rather useless) Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D528
* Get the right fixity-env in standalone deriving (Trac #9830)Simon Peyton Jones2014-11-276-11/+50
|
* Test Trac #7243Simon Peyton Jones2014-11-273-0/+11
|
* Trac #6022 is actually fine nowSimon Peyton Jones2014-11-272-7/+7
|
* Don't require ConstraintKinds at usage sites (Trac #9838)Simon Peyton Jones2014-11-275-71/+119
|
* Resume reporting incomplete pattern matches for record updatesSimon Peyton Jones2014-11-272-3/+6
| | | | | | They were being inadvertently suppressed, even if you said -fwarn-incomplete-record-updates See Trac #5728
* Don't require PatternSynonyms language extension to just use pattern synonymsDr. ERDI Gergo2014-11-277-18/+5
| | | | (see #9838)
* Change loadSrcInterface to return a list of ModIfaceEdward Z. Yang2014-11-263-37/+94
| | | | | | | | | | | | | | | | | | | | Summary: This change is in preparation to support signature imports, which may pull in multiple interface files. At the moment, the list always contains only one element, but in a later patch it may contain more. I also adjusted some error reporting code so that it didn't take the full iface, but just whether or not the iface in question was a boot module. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D436
* Inline mkModuleToPkgConfAll into mkModuleToPkgConfGeneric.Edward Z. Yang2014-11-261-37/+17
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Cabal submodule update: hole support and tests.Edward Z. Yang2014-11-2625-6/+180
| | | | | | | | | | | | | | Depends on D485 Summary: Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D487
* configure.ac: fix test == bashismTuncer Ayaz2014-11-261-4/+4
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Use {bit,popCount}Integer for `Bits Integer`Herbert Valerio Riedel2014-11-261-0/+14
| | | | | | The primops are implemented in the `integer-gmp2` (#9281) backend and are already used for the `Bits Natural` instance but aren't used yet for the `Bits Integer` instace. This commit fixes that.
* Test Trac #9834Simon Peyton Jones2014-11-263-0/+95
|
* Define `Data` instance for `Natural` type (#9818)Herbert Valerio Riedel2014-11-261-0/+14
| | | | | | | | | This follows the same style as the other integral `Data` instances defined in the `Data.Data` module. Reviewed By: ekmett Differential Revision: https://phabricator.haskell.org/D526
* Insert changelog entries for GHC 7.8.4Herbert Valerio Riedel2014-11-251-0/+8
| | | | [skip ci]
* Replace `STRICT[12345]` macros by `BangPatterns`Yuri de Wit2014-11-253-31/+6
| | | | | | | | | | This removes the macros `STRICT1()`, `STRICT2()`, `STRICT3()`, `STRICT4()`, and `STRICT5()` CPP macros from `HsVersions.hs` and replaces the few use sites by uses of `BangPatterns`. Reviewed By: hvr Differential Revision: https://phabricator.haskell.org/D525
* Update `deepseq` to latest 1.4.0.0 snapshotHerbert Valerio Riedel2014-11-251-0/+0
| | | | | This pulls in several `NFData` instances since the last submodule update.
* Document +RTS -xqSimon Marlow2014-11-251-0/+20
|
* Add +RTS -n<size>: divide the nursery into chunksSimon Marlow2014-11-258-58/+155
| | | | See the documentation for details.
* Make clearNursery freeSimon Marlow2014-11-2511-52/+144
| | | | | | | | | | | | | | | | | | | | | Summary: clearNursery resets all the bd->free pointers of nursery blocks to make the blocks empty. In profiles we've seen clearNursery taking significant amounts of time particularly with large -N and -A values. This patch moves the work of clearNursery to the point at which we actually need the new block, thereby introducing an invariant that blocks to the right of the CurrentNursery pointer still need their bd->free pointer reset. This should make things faster overall, because we don't need to clear blocks that we don't use. Test Plan: validate Reviewers: AndreasVoellmy, ezyang, austin Subscribers: thomie, carter, ezyang, simonmar Differential Revision: https://phabricator.haskell.org/D318
* Mark `Data.Typeable.Internal` as Trustworthy after consverstation withDavid Terei2014-11-242-2/+2
| | | | ekmett & hvr.
* Changelog entry and /Since/ for alloc-counter opsHerbert Valerio Riedel2014-11-243-0/+17
| | | | | | See b0534f78a73f972e279eed4447a5687bd6a8308e for more details [skip ci]
* Test #8031 in th/T8031Richard Eisenberg2014-11-242-0/+15
|
* Test #8044 in typecheck/should_fail/T8044Richard Eisenberg2014-11-243-0/+26
|
* Test #7643 in typecheck/should_compile/T7643.Richard Eisenberg2014-11-242-0/+12
|
* Add `--fwarn-trustworthy-safe` to `-Wall` again.David Terei2014-11-242-1/+4
| | | | | This redoes part of 475dd93efa which was reversed in 452d6aa95b after breaking validate on windows.
* Minor tweaks to API AnnotationAlan Zimmerman2014-11-245-14/+25
| | | | | | | | | | | | | | | | | | | Summary: Add missing Outputable instance for AnnotationComment Update documentation Adjust parser to capture annotations correctly Test Plan: ./validate Reviewers: austin Reviewed By: austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D520
* accessors to RTS flag values -- #5364Ömer Sinan Ağacan2014-11-245-30/+502
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Implementation of #5364. Mostly boilerplate, reading FILE fields is missing. Test Plan: - Get some feedback on missing parts. (FILE fields) - Get some feedback on module name. - Get some feedback on other things. - Get code reviewed. - Make sure test suite is passing. (I haven't run it myself) Reviewers: hvr, austin, ezyang Reviewed By: ezyang Subscribers: ekmett, simonmar, ezyang, carter, thomie Differential Revision: https://phabricator.haskell.org/D306 GHC Trac Issues: #5364 Conflicts: includes/rts/Flags.h
* Use the `patch` command detected by the top-level `configure`Herbert Valerio Riedel2014-11-241-2/+2
| | | | ...instead of invoking `patch` directly in `integer-gmp2/gmp/ghc.mk`
* Try to improve Make dependency for `ghc-gmp.h`Herbert Valerio Riedel2014-11-241-2/+4
| | | | | | | | | | | | | | | | | | This will hopefully workaround an issue where `libraries/integer-gmp2/include/ghc-gmp.h` gets deleted during cleanup but isn't regenerated. This situation is caused by `./validate` cleaning the tree with $make maintainer-clean NO_CLEAN_GMP=YES which doesn't doesn't clean the `gmp/` folder, and so the `include/ghc-gmp.h` file wasn't recreated (as it was previously a side-effect of building the intree GMP). Reviewed By: luite Differential Revision: https://phabricator.haskell.org/D523
* Update in-tree GMP to version 5.0.4Herbert Valerio Riedel2014-11-232-0/+1585
| | | | | | | This is mostly a proof of concept for updating the in-tree GMP via patch files (and therefore w/o introducing new blobs into the Git history). NOTE: The updated GMP 5.0.4 version is only used by the integer-gmp2 backend.
* Fix minor typo in 6d1c8ec79adf566d57d2c35aacHerbert Valerio Riedel2014-11-231-1/+1
|
* Persist build-time GMP ver to `HsIntegerGmp.h`Herbert Valerio Riedel2014-11-232-2/+42
| | | | | | | | | | | | | | | | | | | | | | | | | This creates the additional macro definitions in `HsIntegerGmp.h` which are useful for 3rd party `integer-gmp`-addon libraries. Here's an example for the definitions created for the in-tree GMP: #define GHC_GMP_INTREE 1 #define GHC_GMP_VERSION_MJ 5 #define GHC_GMP_VERSION_MI 0 #define GHC_GMP_VERSION_PL 4 #define GHC_GMP_VERSION (5 * 10000 + 0 * 100 + 4) And here's an example for a system-installed GMP: #define GHC_GMP_INTREE 0 #define GHC_GMP_VERSION_MJ 6 #define GHC_GMP_VERSION_MI 0 #define GHC_GMP_VERSION_PL 0 #define GHC_GMP_VERSION (6 * 10000 + 0 * 100 + 0) Part of #9281 Reviewed By: ekmett (via D522)
* Install `ghc-gmp.h` C include header file (#9281)Herbert Valerio Riedel2014-11-234-2/+16
| | | | | | | | | | | | This is mostly interesting when using the in-tree GMP, as there's no way otherwise to access the in-tree `gmp.h` header file after installation. In case `integer-gmp2` was build against a system-installed GMP library, `ghc-gmp.h` simply contains `#include <gmp.h>` for convenience. Reviewed By: ekmett Differential Revision: https://phabricator.haskell.org/D522
* Add `Storable` instances for `Complex` and `Ratio`Carter Tazio Schonwald2014-11-236-0/+58
| | | | | | | | | | | | | | | | | | The actual type-signatures of the new instances are: instance Storable a => Storable (Complex a) instance (Storable a, Integral a) => Storable (Ratio a) See also https://groups.google.com/d/msg/haskell-core-libraries/mjBSo2CQ3LU/0gwg0QvviOIJ Addresses #9826 Reviewed By: ekmett Differential Revision: https://phabricator.haskell.org/D519
* Define void using <$ (re #9827)David Feuer2014-11-231-2/+2
| | | | | | | | | `() <$ x` is sometimes better than `fmap (const ()) x` and should never be worse. Reviewed By: ekmett Differential Revision: https://phabricator.haskell.org/D521
* Call `popCountBigNat` directly (#9818)Herbert Valerio Riedel2014-11-221-1/+1
| | | | | This calls the `popCountBigNat` primitive directly instead of going through `Integer`'s `popCount`.
* Implement {gcd,lcm}/Natural optimisation (#9818)Herbert Valerio Riedel2014-11-221-0/+27
| | | | | | This provides the equivalent of the existing `{gcd,lcm}/Integer` optimisations for the `Natural` type, when using the `integer-gmp2` backend.
* Fix `fromInteger` constructing invalid `Natural`Herbert Valerio Riedel2014-11-221-1/+1
| | | | | | This fixes a case where `isValidNatural . fromInteger` would be `False`. Re #9818
* Add `isValidNatural` predicate (#9818)Herbert Valerio Riedel2014-11-221-0/+21
| | | | | | | | | This predicate function encodes the internal `Natural` invariants, and is useful for testsuites or code that directly constructs `Natural` values. C.f. `integer-gmp2`'s `isValidBigNat#` and `isValidInteger#` predicates for testing internal invariants.
* Add gcd/Word RULE-based optimisationHerbert Valerio Riedel2014-11-221-0/+9
| | | | | | This makes use of the `gcdWord` primitive provided by be7fb7e58c70cd9b0a933fb26cd5f2607d6dc4b2 which should make the `Word`-variant of `gcd` as performant as the `Int`-variant.
* Remove reference to `MIN_VERSION_integer_gmp2`Herbert Valerio Riedel2014-11-221-1/+1
| | | | | This is slipped in by accident as part of c774b28f76ee4c220f7c1c9fd81585e0e3af0e8a (re #9281)
* integer-gmp2: export `Word`-counterpart of gcdIntHerbert Valerio Riedel2014-11-222-1/+9
| | | | | | It's trivial for `integer-gmp2` (#9281) to provide it, and it'll be useful for a future 'Natural'-related commit, as well as providing a `Word` optimised `gcd`-RULE.
* Revert "Test Trac #9318"Herbert Valerio Riedel2014-11-223-20/+0
| | | | | | | This reverts commit 5760eb598e0dfa451407195f15072204c15233ed because the very same test was already added via 5eebd990ea7a5bc1937657b101ae83475e20fc7a and is causing `./validate` to fail due to "framework failure".