| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
For 7.2 we ignore the trust value in the package info we get given,
and always trust packages
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changeset bd6f5de7bb41f868522c6db2ad2793477840297e
Author: Simon Peyton Jones <simonpj@microsoft.com>
Fix two bugs in caes-floating (fixes Trac #5453)
The problem is documented in the ticket. The patch
does two things
1. Make exprOkForSpeculation return False for a non-exhaustive case
2. In SetLevels?.lvlExpr, look at the *result* scrutinee, not the
*input* scrutinee, when testing for evaluated-ness
|
| |
|
|
|
|
| |
A long standing bug. The patch fixes Trac #5410
|
|
|
|
| |
See Note [Looking up Exact RdrNames] in RnEnv
|
|
|
|
| |
(#5402)
|
|
|
|
|
|
|
|
|
|
| |
maskUninterruptible state instead of ordinary mask, due to a
misinterpretation of the way the TSO_INTERRUPTIBLE flag works.
Remarkably this must have been broken for quite some time. Indeed we
even had a test that demonstrated the wrong behaviour (conc015a) but
presumably I didn't look hard enough at the output to notice that it
was wrong.
|
|
|
|
|
| |
See comment for details. I've tried quite hard, but haven't been able
to make a small test case that reproduces the bug.
|
|
|
|
|
|
|
| |
in X86.CodeGen.getNonClobberedOperand: two code fragments were the
wrong way around, and we were using the wrong size on an
instruction (32 bits instead of the word size). This bit of the code
generator must have never worked!
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
We were returning the tycon of a type family *instance*
as a binder, and it just isn't!
Consequential tidy-ups follow. I tripped over this on
the way to something else. I'm not sure it was causing
a problem, but it is Plainly Wrong.
|
|
|
|
|
|
| |
TH quotation was using mkName rather than newName for
top-level definitions, which is plain wrong as #5379
points out.
|
| |
|
|
|
|
| |
As discussed in #5377
|
| |
|
|
|
|
|
|
| |
This reverts commit d02a1979d5c5eacd2c5daea7f5852a98988b4d97.
Apparently there are still problems with gmp. See #5293 for more details.
|
|
|
|
|
|
|
|
| |
We were putting
includes/ghcautoconf.h
includes/ghcconfig.h
includes/ghcplatform.h
into bindists twice.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently export list in .hi files are partitioned by module
export M T(C1,C2)
N f,g
In each list we only have OccNames, all assumed to come from
the parent module M or N resp.
This patch changes the representatation so that export lists
have full Names:
export M.T(M.C1,M.C2), N.f, N.g
Numerous advatages
* AvailInfo no longer needs to be parameterised; it always
contains Names
* Fixes Trac #5306. This was the main provocation
* Less to-and-fro conversion when reading interface files
It's all generally simpler. Interface files should not get bigger,
becuase they have a nice compact representation for Names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a plugin is loaded, it currently gets linked against a *newly loaded* copy
of the GHC package. This would not be a problem, except that the new copy has its
own mutable state that is not shared with that state that has already been initialized by
the original GHC package.
This leads to loaded plugins calling GHC code which pokes the static flags,
and then dying with a panic because the static flags *it* sees are uninitialized.
There are two possible solutions:
1. Export the symbols from the GHC executable from the GHC library and link
against this existing copy rather than a new copy of the GHC library
2. Carefully ensure that the global state in the two copies of the GHC
library matches
I tried 1. and it *almost* works (and speeds up plugin load times!) except
on Windows. On Windows the GHC library tends to export more than 65536 symbols
(see #5292) which overflows the limit of what we can export from the EXE and
causes breakage.
(Note that if the GHC exeecutable was dynamically linked this wouldn't be a problem,
because we could share the GHC library it links to.)
We are going to try 2. instead. Unfortunately, this means that every plugin
will have to say `reinitializeGlobals` before it does anything, but never mind.
I've threaded the cr_globals through CoreM rather than giving them as an
argument to the plugin function so that we can turn this function into
(return ()) without breaking any plugins when we eventually get 1. working.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
some info<->entry conversions
Conflicts:
compiler/cmm/CmmDecl.hs
|
| |
|
|
|
|
|
| |
Now that the in-tree gmp has been upgraded, it should no longer be
necessary, according to #5293.
|
|
|
|
|
|
| |
linker warnings
- "-Wl,-no_pie" can be removed once GMP gets updated
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An claimed short-cut optimisation was actually an error.
The optimisation was this: when looking up (C a b), where
'a' and 'b' are type variables, we were returning [] immediately
if the instance environment had no instances of form (C a b).
Why? Because the thing being looked up definitely won't match
(C Int Bool), say.
BUT it will *unify* with (C Int Bool) and we care very much
about things it might unify with. If we neglect them we may
silently allow incoherent instance selection, and that is
exactly what happened in #5095.
The fix is easy: remove the "optimisation".
|
| |
|
|
|
|
|
|
| |
This fixes Trac #5147, which was going wrong because
the class ABI fingerprint wasn't changing when we added
or removed a Show instance to the associated type.
|
| |
|
| |
|
| |
|
| |
|
| |
|