| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this change, the linker status logging output such as
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
is suppressed unless verbosity level is `-v2` or higher. This is done
to reduce the compiler message noise when TH is involved, which can
reduce the visibiliy of compile warnings.
Reviewed By: ekmett, austin
Differential Revision: https://phabricator.haskell.org/D232
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes Trac #9580, in which the Coercible machinery succeeded
even though the relevant data constructor was not in scope.
As usual I got dragged into a raft of refactoring changes,
all for the better.
* Delete TcEvidence.coercionToTcCoercion (now unused)
* Move instNewTyConTF_maybe, instNewTyCon_maybe to FamInst,
and rename them to tcInstNewTyConTF_maybe, tcInstNewTyCon
(They both return TcCoercions.)
* tcInstNewTyConTF_maybe also gets more convenient type,
which improves TcInteract.getCoercibleInst
* Define FamInst.tcLookupDataFamInst, and use it in TcDeriv,
(as well as in tcInstNewTyConTF_maybe)
* Improve error report for Coercible errors, when data familes
are involved Another use of tcLookupDataFamInst
* In TcExpr.tcTagToEnum, use tcLookupDataFamInst to replace
local hacky code
* Fix Coercion.instNewTyCon_maybe and Type.newTyConInstRhs to deal
with eta-reduced newtypes, using
(new) Type.unwrapNewTyConEtad_maybe and (new) Type.applyTysX
Some small refactoring of TcSMonad.matchFam.
|
| |
|
| |
|
|
|
|
| |
Thanks to Gabor for pointing this out
|
|
|
|
| |
Fixes Trac #9529
|
|
|
|
| |
This addresses Trac #5395
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit reverts the commits
e12a6a8 Propositional equality for Datatype meta-information
0a8e6fc Make constructor metadata parametrized (with intended parameter <- datatype)
f097b77 Implement sameConstructor
cc618e6 get roles right and fix a FIXME
79c7125 Actually parametrize the Constructor with the Datatype
7bd4bab Supply a reasonable name (should be derived from d_name tho)
09fcd70 Use 'd_name' as the name (should be derived from d_name tho)
4d90e44 Add default case (fixes -Werror)
and effectively resets ghc.git to the state it was at commit
8c79dcb4dc2c6b8b663fa0c2e61d40d0ac0e9996
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This warning (enabled by default) reports places where a context
implicitly binds a type variable, for example
type T a = {-forall m.-} Monad m => a -> m a
Also update Haddock submodule.
Test Plan: validate
Reviewers: hvr, goldfire, simonpj, austin
Reviewed By: austin
Subscribers: simonmar, ezyang, carter
Differential Revision: https://phabricator.haskell.org/D211
GHC Trac Issues: #4426
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing `decodeDouble_2Int#` primop is rather inconvenient to use
(and in fact is not even used by `integer-gmp`) as the mantissa is split
into 3 components which would actually fit in an `Int64#` value.
However, `decodeDouble_Int64#` is to be used by the new `integer-gmp2`
re-implementation (see #9281).
Moreover, `decodeDouble_2Int#` performs direct bit-wise operations on the
IEEE representation which can be replaced by a combination of the
portable standard C99 `scalbn(3)` and `frexp(3)` functions.
Differential Revision: https://phabricator.haskell.org/D160
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
While researching D176, I came across the following simplification
opportunity:
Not all functions that call utf8DecodeChar actually need the address
of the next char. And some need the 'number of bytes' read. So returning
nBytes instead of nextAddr should save a few addition and subtraction
operations, and makes the code a bit simpler.
Test Plan: it validates
Reviewers: simonmar, ezyang, austin
Reviewed By: austin
Subscribers: simonmar, ezyang, carter
Differential Revision: https://phabricator.haskell.org/D179
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The dynamic linking code was already there but it was not called
on flag changes in ghci.
Test Plan: validate
Reviewers: hvr, simonmar, austin
Reviewed By: austin
Subscribers: simonmar, ezyang, carter
Differential Revision: https://phabricator.haskell.org/D194
GHC Trac Issues: #1407
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
exprIsConApp_maybe now detects string literals and correctly
splits them. This means case-statemnts on string literals can
now push the literal into the cases.
fix trac issue #9400
Test Plan: validate
Reviewers: austin, simonpj
Reviewed By: austin, simonpj
Subscribers: simonmar, ezyang, carter
Differential Revision: https://phabricator.haskell.org/D199
GHC Trac Issues: #9400
|
|
|
|
|
|
|
| |
It was annoying to test GHCi directly, so I added a ghc-api unit test
of the function instead.
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This exposes *only* the type-classes w/o any of their methods.
This is the very first step for implementing BPP (see #9586), which
already requires breaking up several import-cycles leading back to `Prelude`.
Ideally, importing `Prelude` should be avoided in most `base` modules,
as `Prelude` does not define any entities, but rather re-exports
existing ones.
Test Plan: validate passes
Reviewers: ekmett, austin
Reviewed By: ekmett, austin
Subscribers: simonmar, ezyang, carter
Differential Revision: https://phabricator.haskell.org/D209
GHC Trac Issues: #9586
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The documentation for `seq` was recently augmented via #9390 &
cbfa107604f4cbfaf02bd633c1faa6ecb90c6dd7. However, it doesn't show
up in the Haddock generated docs because `#ifdef __HADDOCK__` doesn't
work as expected. Also, it's easier to just fix the problem at the
origin (which in this is case is the primops.txt.pp file).
The benefit/downside of this is that now the extended documentation
shows up everywhere `seq` is re-exported directly.
|
| |
|
|
|
|
|
|
|
| |
This also updates a few submodules to have their upper-bounds on
`time` relaxed to allow `time-1.5`. The only package that can't be
upgraded yet is `Cabal` due to API changes breaking `ghc-cabal`. This
needs to be addressed in a future commit.
|
|
|
|
|
| |
This left-over is definitely not needed anymore
and was probably missed in 527bcc41630918977c7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This includes pretty much all the changes needed to make `Applicative`
a superclass of `Monad` finally. There's mostly reshuffling in the
interests of avoid orphans and boot files, but luckily we can resolve
all of them, pretty much. The only catch was that
Alternative/MonadPlus also had to go into Prelude to avoid this.
As a result, we must update the hsc2hs and haddock submodules.
Signed-off-by: Austin Seipp <austin@well-typed.com>
Test Plan: Build things, they might not explode horribly.
Reviewers: hvr, simonmar
Subscribers: simonmar
Differential Revision: https://phabricator.haskell.org/D13
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is a first step toward allowing generic traversals of the AST without 'landmines', by removing the `panic`s located throughout `placeHolderType`, `placeHolderKind` & co.
See more on the discussion at https://www.mail-archive.com/ghc-devs@haskell.org/msg05564.html
(This also makes a corresponding update to the `haddock` submodule.)
Test Plan: `sh validate` and new tests pass.
Reviewers: austin, simonpj, goldfire
Reviewed By: austin, simonpj, goldfire
Subscribers: edsko, Fuuzetsu, thomasw, holzensp, goldfire, simonmar, relrod, ezyang, carter
Projects: #ghc
Differential Revision: https://phabricator.haskell.org/D157
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The commit fixes incorrect code generation of
integer-gmp package on ia64 due to C prototypes mismatch.
Before the patch prototypes for "foreign import prim" were:
StgWord poizh[];
After the patch they became:
StgFunPtr poizh();
Long story:
Consider the following simple example:
{-# LANGUAGE MagicHash, GHCForeignImportPrim, UnliftedFFITypes #-}
module M where
import GHC.Prim -- Int#
foreign import prim "poizh" poi# :: Int# -> Int#
Before the patch unregisterised build generated the
following 'poizh' reference:
EI_(poizh); /* StgWord poizh[]; */
FN_(M_poizh_entry) {
// ...
JMP_((W_)&poizh);
}
After the patch it looks this way:
EF_(poizh); /* StgFunPtr poizh(); */
FN_(M_poizh_entry) {
// ...
JMP_((W_)&poizh);
}
On ia64 it leads to different relocation types being generated:
incorrect one:
addl r14 = @ltoffx(poizh#)
ld8.mov r14 = [r14], poizh# ; r14 = address-of 'poizh#'
correct one:
addl r14 = @ltoff(@fptr(poizh#)), gp ; r14 = address-of-thunk 'poizh#'
ld8 r14 = [r14]
'@fptr(poizh#)' basically instructs assembler to creates
another obect consisting of real address to 'poizh' instructions
and module address. That '@fptr' object is used as a function "address"
This object is different for every module referencing 'poizh' symbol.
All indirect function calls expect '@fptr' object. That way
call site reads real destination address and set destination
module address in 'gp' register from '@fptr'.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
ghc runs 'gcc -v' to check if we run under vanilla gcc
or disaguised clang by checking for string
"gcc version <something>"
But this check does not always work as gcc has that string
localized via gettext mechanism:
(some gcc's locale strings)
be.po-msgstr "версія gcc %s\n"
da.po-msgstr "GCC version %s\n"
de.po-msgstr "gcc-Version %s %s\n"
el.po-msgstr "έκδοση gcc %s\n"
...
To ping gcc to English locale we now override environment
variable with 'LANGUAGE=en' value.
Fixes Issue #8825
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: validate
Reviewers: austin
Reviewed By: austin
Subscribers: simonmar, ezyang, carter
Differential Revision: https://phabricator.haskell.org/D185
GHC Trac Issues: #8825
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
I tried reading the lexer and the 2010 report side-by-side. Althought I didn't
quite finish, here are some small discrepancies that I found.
This revision may be low priority for reviewers, but having these commits just
in my local repository does no good either.
Changes:
* $nl was defined, but not used anywhere
* formfeed is a newline character
* add \: to $ascsymbol
For simplification reason, the colon (':') was added to the character
set $ascsymbol in the 2010 report. Here we make the same change.
* introduce the macros `qvarid`, `qconid`, `qvarsym` and `qconsym`
* foreign is a Haskell keyword
* add/update comments
Test Plan: Harbormaster (is awesome)
Reviewers: simonmar, hvr, austin
Reviewed By: austin
Subscribers: hvr, simonmar, ezyang, carter
Differential Revision: https://phabricator.haskell.org/D180
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Just skipping over a BOM, but leaving it in the Stringbuffer, is not
sufficient. The Lexer calls prevChar when a regular expression starts
with '^' (which is a shorthand for '\n^'). It would never match on the
first line, since instead of '\n', prevChar would still return '\xfeff'.
Test Plan: validate
Reviewers: austin, ezyang
Reviewed By: austin, ezyang
Subscribers: simonmar, ezyang, carter
Differential Revision: https://phabricator.haskell.org/D176
GHC Trac Issues: #6016
|
|
|
|
|
|
| |
...some files more or less recently touched by me
[ci skip]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original proposal text can be found at
http://www.haskell.org/pipermail/libraries/2014-August/023491.html
The proposal passed with a clear majority, and was additionally
confirmed by the core libraries committee.
*Compatibility Note*
Only code that imports `Data.Word` for the sole purpose of using `Word`
*and* requires to be `-Werror`-clean (due to `-fwarn-unused-imports`)
is affected by this change.
In order to write warning-free forward/backward compatible against `base`,
a variant of the following CPP-based snippet can be used:
-- Starting with base>4.7.0 or GHC>7.8 Prelude re-exports 'Word'
-- The following is needed, if 'Word' is the *only* entity needed from Data.Word
#ifdef MIN_VERSION_base
# if !MIN_VERSION_base(4,7,1)
import Data.Word (Word)
# endif
-- no cabal_macros.h -- fallback to __GLASGOW_HASKELL__
#elif __GLASGOW_HASKELL__ < 709
import Data.Word (Word)
#endif
This also updates the haddock submodule in order to avoid a compile warning
|
| |
|
| |
|
|
|
|
|
| |
See Note [Activation for INLINABLE worker]. This was preventing
Trac #6056 from working.
|
| |
|
|
|
|
|
|
| |
Previously INLINE and INLINEABLE were treated identically, but it's
crucial that we don't choose a wrapper (INLINE) as a loop breaker,
when it is mutually recursive with an INLINEABLE worker.
|
|
|
|
|
|
| |
The "InlineRule" is gone now, so this is just making the comments line
up with the code. A function does change its name though:
updModeForInlineRules --> updModeForStableUnfoldings
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previusly we simply weren't doing CSE at all on things
whose unfolding were not always-active, for reasons explained
in Note [CSE for INLINE and NOINLINE]. But that was bad!
Making something INLNEABLE meant that its RHS was no longer
CSE'd, and that made some nofib programs worse.
And it's entirely unnecessary. I thoguht it through again,
wrote new comments (under the same Note), and things are
better again.
|
|
|
|
| |
even for simplified/boot ModDetails (fixes #9417)
|
| |
|
| |
|
|
|
|
| |
Some others addressed as part of other recent patches.
|
|
|
|
|
|
|
|
|
|
|
| |
The conversions should now be correct w.r.t Unicode.
Also move a couple instances to avoid orphan instances.
Strictly speaking there's no need for these types to use FastString as
they do not need the unique feature. They could just use some other
compact string type, but ghc's internal utils don't have much support
for such a type, so we just use FastString.
|