| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This is a knock-on from the -dump-to-file changes.
(I found that -ddump-cs-trace stuff wasn't coming out!)
|
|
|
|
| |
We were wrongly simply dropping the bang, in tidy_bang_pat.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
And also sync type signature under '#ifndef GHCI'
Tested by setting
GhcWithInterpreter = NO
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
They were being inadvertently suppressed, even if you said -fwarn-incomplete-record-updates
See Trac #5728
|
|
|
|
| |
(see #9838)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Signed-off-by: Austin Seipp <austin@well-typed.com>
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
[skip ci]
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
This pulls in several `NFData` instances since the last
submodule update.
|
| |
|
|
|
|
| |
See the documentation for details.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
ekmett & hvr.
|
|
|
|
|
|
| |
See b0534f78a73f972e279eed4447a5687bd6a8308e for more details
[skip ci]
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This redoes part of 475dd93efa which was reversed in 452d6aa95b after
breaking validate on windows.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
...instead of invoking `patch` directly in `integer-gmp2/gmp/ghc.mk`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
`() <$ x` is sometimes better than `fmap (const ()) x` and should
never be worse.
Reviewed By: ekmett
Differential Revision: https://phabricator.haskell.org/D521
|
|
|
|
|
| |
This calls the `popCountBigNat` primitive directly instead of going
through `Integer`'s `popCount`.
|
|
|
|
|
|
| |
This provides the equivalent of the existing `{gcd,lcm}/Integer`
optimisations for the `Natural` type, when using the `integer-gmp2`
backend.
|
|
|
|
|
|
| |
This fixes a case where `isValidNatural . fromInteger` would be `False`.
Re #9818
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This makes use of the `gcdWord` primitive provided by
be7fb7e58c70cd9b0a933fb26cd5f2607d6dc4b2 which should make the
`Word`-variant of `gcd` as performant as the `Int`-variant.
|
|
|
|
|
| |
This is slipped in by accident as part of
c774b28f76ee4c220f7c1c9fd81585e0e3af0e8a (re #9281)
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This reverts commit 5760eb598e0dfa451407195f15072204c15233ed
because the very same test was already added via
5eebd990ea7a5bc1937657b101ae83475e20fc7a and is causing
`./validate` to fail due to "framework failure".
|