- 02 Dec, 2014 3 commits
-
-
Simon Peyton Jones authored
This reverts commit 9e6e4796. I reverted it because one of these two patches 9e6e4796 Add purgeObj() b5e8b3b1 Make the linker API thread-safe causes a seg-fault on Windows. The seg-fault happens immediately the linker is invoked, in ghci or in Template Haskell. I believe that it is the "linker API thread-safe" commit that causes the seg-fault; it happens even if the "purgeObj" commit alone is reverted. But since the two patches mess with the same code, to revert the "linker API" patch I had revert both.
-
Simon Peyton Jones authored
-
Herbert Valerio Riedel authored
This replaces the note mentioning the lack of a `Natural`-type by a note pointing to the new "Numeric.Natural" (#9818) module.
-
- 01 Dec, 2014 9 commits
-
-
Herbert Valerio Riedel authored
Don't pass empty string `[]` as "action-if-not-given" to `AC_ARG_ENABLE()` macro, as this would otherwise lead to an empty else-block in the resulting bash `configure` script. This bug was introduced via cb0a503a. This issue was pointed out by @christiaanb Reviewed By: christiaanb Differential Revision: https://phabricator.haskell.org/D545
-
Simon Peyton Jones authored
{-# NOUNPACK #-} {-# NOUNPACK #-} ! were being parsed the same way. The former was wrong. Thanks to Alan Zimmerman for pointing this out
-
Simon Peyton Jones authored
Fixed by e6a2050e along with #9582, #9833
-
thomie authored
Summary: Commit 37d64a51 removed the preprocessing step for Parser.y. Reviewers: rodlogic, austin Reviewed By: austin Subscribers: carter, thomie Differential Revision: https://phabricator.haskell.org/D543
-
Simon Peyton Jones authored
Sorry about this. I somehow failed to include this one line in my patch.
-
Simon Peyton Jones authored
This finally solves the issue of instance-method signatures that are more polymorphic than the instanted class method. See Note [Instance method signatures] in TcInstDcls. A very nice fix for the two Trac tickets above.
-
Herbert Valerio Riedel authored
Differential Revision: https://phabricator.haskell.org/D544
-
Herbert Valerio Riedel authored
Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D541
-
Herbert Valerio Riedel authored
This reverts commit 460eebec. Thomas requested to revert the commit with the words: > Please revert this commit, it is horribly wrong. I'll have a proper look > later, but not supplying `-traditional` to the C preprocessor is the cause > of #9828. the reverted commit was related to #9094
-
- 30 Nov, 2014 11 commits
-
-
Herbert Valerio Riedel authored
Fwiw, this wasn't really a proper .lhs to begin with...
-
Herbert Valerio Riedel authored
Reviewers: austin Reviewed By: austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D540
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
sivteck authored
Summary: This patch changes the error message as suggested in trac issue #8815 comments. Reviewers: jstolarek, austin Reviewed By: jstolarek, austin Subscribers: jstolarek, thomie, carter Differential Revision: https://phabricator.haskell.org/D533 GHC Trac Issues: #8815
-
Austin Seipp authored
Summary: Signed-off-by: Austin Seipp <austin@well-typed.com> Test Plan: `./validate` Reviewers: hvr Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D537
-
Peter Trommler authored
Summary: In a statically linked GHCi symbol `environ` resolves to NULL when called from a Haskell script. When resolving symbols in a Haskell script we need to search the executable program and its dependent (DT_NEEDED) shared libraries first and then search the loaded libraries. We want to be able to override functions in loaded libraries later. Libraries must be opened with local scope (RTLD_LOCAL) and not global. The latter adds all symbols to the executable program's symbols where they are then searched in loading order. We want reverse loading order. When libraries are loaded with local scope the dynamic linker cannot use symbols in that library when resolving the dependencies in another shared library. This changes the way files compiled to object code must be linked into temporary shared libraries. We link with the last temporary shared library created so far if it exists. Since each temporary shared library is linked to the previous temporary shared library the dynamic linker finds the latest definition of a symbol by following the dependency chain. See also Note [RTLD_LOCAL] for a summary of the problem and solution. Cherry-picked commit 2f8b4c Changed linker argument ordering On some ELF systems GNU ld (and others?) default to --as-needed and the order of libraries in the link matters. The last temporary shared library, must appear before all other libraries. Switching the position of extra_ld_inputs and lib_path_objs does that. Fixes #8935 and #9186 Reviewers: austin, hvr, rwbarton, simonmar Reviewed By: simonmar Subscribers: thomie, carter, simonmar Differential Revision: https://phabricator.haskell.org/D349 GHC Trac Issues: #8935, #9186, #9480
-
Lennart Kolmodin authored
Summary: The bash completion is simple but works both for ghc and ghci. The README explains to the user what they have to do to get it working (hopefully nothing). Test Plan: Follow the README, then enjoy the cli completion in your terminal! Reviewers: austin Subscribers: thomie, carter, jstolarek Differential Revision: https://phabricator.haskell.org/D536 GHC Trac Issues: #9005
-
Alan Zimmerman authored
Summary: Attaching semis to preceding AST element, not following Test Plan: sh ./validate Reviewers: hvr, austin Reviewed By: austin Subscribers: cactus, thomie, carter Differential Revision: https://phabricator.haskell.org/D529
-
Lennart Kolmodin authored
Summary: Shorten long lines in DynFlags. Describe --show-options in ghci usage guide. Reviewers: jstolarek, austin Reviewed By: jstolarek, austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D532 GHC Trac Issues: #9259
-
Edward Z. Yang authored
Summary: Amazingly, the fix for this very old bug is quite simple: when type-checking, maintain a set of "visible orphan modules" based on the orphans list of modules which we explicitly imported. When we import an instance and it is an orphan, we check if it is in the visible modules set, and if not, ignore it. A little bit of refactoring for when orphan-hood is calculated happens so that we always know if an instance is an orphan or not. For GHCi, we preinitialize the visible modules set based on the list of interactive imports which are active. Future work: Cache the visible orphan modules set for GHCi, rather than recomputing it every type-checking round. (But it's tricky what to do when you /remove/ a module: you need a data structure a little more complicated than just a set of modules.) Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: new tests and validate Reviewers: simonpj, austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D488 GHC Trac Issues: #2182
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
- 29 Nov, 2014 8 commits
-
-
Herbert Valerio Riedel authored
`gcdExtInteger` has been available since `integer-gmp-0.5.1` (added via 71e29584)
-
Herbert Valerio Riedel authored
This also exposes the following two type-specialised modular exponentiation variants of `recipModInteger` useful for implementing a `recipModNatural` operation. recipModBigNat :: BigNat -> BigNat -> BigNat recipModWord :: Word# -> Word# -> Word# `recipModInteger` has been available since `integer-gmp-0.5.1` (added via 4d516855)
-
Herbert Valerio Riedel authored
This makes use of the `powMod*` primitives provided by `integer-gmp-1.0.0`. This is the `Natural`-version of the related `GHC.Integer.GMP.Internals.powModInteger` operation. The fallback implementation uses a square and multiply algorithm, compared to which the optimized GMP-based implementation needs much less allocations due to in-place mutation during the computation.
-
Herbert Valerio Riedel authored
This also exposes the following type-specialised modular exponentiation variants of `powModInteger` useful for implementing a `powModNatural` operation. powModBigNat :: BigNat -> BigNat -> BigNat -> BigNat powModBigNatWord :: BigNat -> BigNat -> Word# -> Word# powModWord :: Word# -> Word# -> Word# -> Word# `powModInteger` has been available since `integer-gmp-0.5.1` (added via 4d516855)
-
Herbert Valerio Riedel authored
A few instances were missed in 447f5926 Moreover, be more paranoid when testing for zero values, and try harder to avoid passing denormalized zero `mpz_t`-values into GMP functions.
-
thomasw authored
Summary: Properly detect insoluble wanteds This used to be correct, but was recently incorrectly refactored. Reviewers: austin, hvr Reviewed By: austin, hvr Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D531
-
Herbert Valerio Riedel authored
-
cactus authored
-
- 28 Nov, 2014 9 commits
-
-
thomasw authored
Summary: Add support for Partial Type Signatures, i.e. holes in types, see: https://ghc.haskell.org/trac/ghc/wiki/PartialTypeSignatures This requires an update to the Haddock submodule. Test Plan: validate Reviewers: austin, goldfire, simonpj Reviewed By: simonpj Subscribers: thomie, Iceland_jack, dominique.devriese, simonmar, carter, goldfire Differential Revision: https://phabricator.haskell.org/D168 GHC Trac Issues: #9478
-
Simon Peyton Jones authored
For ages NameSet has used different names, eg. addOneToNameSet rather than extendNameSet nameSetToList rather than nameSetElems etc. Other set-like modules use uniform naming conventions. This patch makes NameSet follow suit. No change in behaviour; this is just renaming. I'm doing this just before the fork so that merging is easier.
-
Simon Peyton Jones authored
This patche fixes Trac #9574. The previous Note [Renaming associated types] in RnTypes appears to me to be wrong; it confused class and instance declarations. I have: * Treated kind and type variables uniformly. Both must be bound on the LHS of an associated type instance. Eg instance C ('KProxy :: KProxy o) where type F 'KProxy = NatTr (Proxy :: o -> *) is illegal because 'o' is not bound on the LHS of the instance. * Moved the Note to RnSource and fixed it up This improves the error message from T7938. However it made the code in T6118 incorrect. We had: instance SingE (a :: Maybe k) where type Demote a = Maybe (Demote (Any :: k)) and that is now rejected, rightly I think.
-
Herbert Valerio Riedel authored
The `integerGmpInternals` test was disabled in c774b28f as many of the primitives tested in that test weren't available yet w/ `integer-gmp2`. However, most operations have been reimplemented by now, with the exception of recipModInteger :: Integer -> Integer -> Integer gcdExtInteger :: Integer -> Integer -> (Integer, Integer) powModSecInteger :: Integer -> Integer -> Integer -> Integer powModInteger :: Integer -> Integer -> Integer -> Integer powInteger :: Integer -> Word -> Integer which are still missing, and will (time permitting) be reimplemented over time.
-
Herbert Valerio Riedel authored
This also adds `nextPrimeWord#` and `nextPrimeBigNat` predicates. `nextPrimeInteger` has been available since `integer-gmp-0.5.1` (added via f4973548).
-
Simon Marlow authored
This allows us to replace an object without actually unloading the old object, which is necessary when we know we have references to the old object so it can't be completely unloaded. Using unloadObj() would cause the GC (CheckUnload) to repeatedly and fruitlessly try to unload the old object.
-
Simon Marlow authored
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.
-
Herbert Valerio Riedel authored
This also adds `testPrimeWord#` and `testPrimeBigNat` predicates. `testPrimeInteger` has been available since `integer-gmp-0.5.1` (added via f4973548). The `nextPrimeInteger` function is still missing though.
-
Simon Peyton Jones authored
This is a knock-on from the -dump-to-file changes. (I found that -ddump-cs-trace stuff wasn't coming out!)
-