- 22 Oct, 2007 1 commit
-
-
Simon Marlow authored
-
- 18 Oct, 2007 1 commit
-
-
Simon Marlow authored
This is Wolfgang Thaller's patch sent to cvs-ghc recently, with extra commentary by me. It turns out that this patch is not just a cleanup, it is also necessary for GHCi to work on x86_64 with shared libraries, because previously lookupSymbol() was creating jump-table entries for all symbols looked up that resolved outside 2Gb, whereas Wolfgang's version only generates jump-table entries for 32-bit symbol references in object code that we load.
-
- 17 Oct, 2007 1 commit
-
-
Simon Marlow authored
-
- 16 Oct, 2007 1 commit
-
-
Simon Marlow authored
-
- 19 Oct, 2007 2 commits
-
-
Simon Marlow authored
The hs_hpc_module() prototype in RtsExternal.h didn't match its usage: we were passing StgWord-sized parameters but the prototype used C ints. I think it accidentally worked because we only ever passed constants that got promoted. The constants unfortunately were sometimes negative, which caused the C compiler to emit warnings. I suspect PprC.pprHexVal may be wrong to emit negative constants in the generated C, but I'm not completely sure. Anyway, it's easy to fix this in CgHpc, which is what I've done.
-
chak@cse.unsw.edu.au. authored
We used to zonk quantified type variables to regular TyVars. However, this leads to problems. Consider this program from the regression test suite: eval :: Int -> String -> String -> String eval 0 root actual = evalRHS 0 root actual evalRHS :: Int -> a evalRHS 0 root actual = eval 0 root actual It leads to the deferral of an equality (String -> String -> String) ~ a which is propagated up to the toplevel (see TcSimplify.tcSimplifyInferCheck). In the meantime `a' is zonked and quantified to form `evalRHS's signature. This has the *side effect* of also zonking the `a' in the deferred equality (which at this point is being handed around wrapped in an implication constraint). Finally, the equality (with the zonked `a') will be handed back to the simplifier by TcRnDriver.tcRnSrcDecls calling TcSimplify.tcSimplifyTop. If we zonk `a' with a regular type variable, we will have this regular type variable now floating around in the simplifier, which in many places assumes to only see proper TcTyVars. We can avoid this problem by zonking with a skolem. The skolem is rigid (which we requirefor a quantified variable), but is still a TcTyVar that the simplifier knows how to deal with.
-
- 18 Oct, 2007 1 commit
-
-
chak@cse.unsw.edu.au. authored
MERGE TO STABLE
-
- 19 Oct, 2007 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
- 18 Oct, 2007 8 commits
-
-
duncan.coutts@worc.ox.ac.uk authored
This means that it'll work with all the packages that specify a cabal-version
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
Fixes some gratuitous warnings when compiling via C with -fhpc
-
Simon Marlow authored
-
Simon Marlow authored
I misread the code, now added a comment to explain why it isn't necessary
-
- 17 Oct, 2007 2 commits
-
-
Simon Marlow authored
For some reason the C-- version of recordMutable wasn't verifying that the object was in an old generation before attempting to add it to the mutable list, and this broke maessen_hashtab. This version of recordMutable is only used in unsafeThaw#.
-
Simon Marlow authored
These changes were apparently lost during "massive changes to add a 'zipper' representation of C-"
-
- 18 Oct, 2007 2 commits
-
-
chak@cse.unsw.edu.au. authored
MERGE TO STABLE
-
chak@cse.unsw.edu.au. authored
-
- 17 Oct, 2007 5 commits
-
-
chak@cse.unsw.edu.au. authored
* A bug reported by Andrew Appleyard revealed that subFunTys did take neither type families nor equalities into account. In a fairly obscure case there was also a coercion ignored.
-
Simon Marlow authored
Also common-up some duplicate bits in the platform-specific code
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
- 25 Sep, 2007 1 commit
-
-
Simon Marlow authored
-
- 17 Oct, 2007 1 commit
-
-
simonpj@microsoft.com authored
-
- 16 Oct, 2007 5 commits
-
-
simonpj@microsoft.com authored
The massive 'Uni' program produced a situation in which a function that had a worker/wrapper split was chosen as a loop breaker. If the worker is exposed in the interface file, then an importing module may go into an inlining loop: see comments on TidyPgm.tidyWorker. This patch fixes the inlining bug. The code that gives rise to this bizarre case is still not good (it's a bunch of implication constraints and we are choosing a bad loop breaker) but the first thing is to fix the bug. It's rather hard to produce a test case! Please merge to the 6.8 branch.
-
simonpj@microsoft.com authored
See Note [Arrows and patterns] in TcPat. This fixes Trac 1662. Test is arrows/should_compile/arrowpat.hs Please merge
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
- 10 Oct, 2007 1 commit
-
-
Dan Licata authored
This patch implements three new features: * view patterns (syntax: expression -> pat in a pattern) * working versions of record wildcards and record puns See the manual for detailed descriptions. Other minor observable changes: * There is a check prohibiting local fixity declarations when the variable being fixed is not defined in the same let * The warn-unused-binds option now reports warnings for do and mdo stmts Implementation notes: * The pattern renamer is now in its own module, RnPat, and the implementation is now in a CPS style so that the correct context is delivered to pattern expressions. * These features required a fairly major upheaval to the renamer. Whereas the old version used to collect up all the bindings from a let (or top-level, or recursive do statement, ...) and put them into scope before renaming anything, the new version does the collection as it renames. This allows us to do the right thing with record wildcard patterns (which need to be expanded to see what names should be collected), and it allows us to implement the desired semantics for view patterns in lets. This change had a bunch of domino effects brought on by fiddling with the top-level renaming. * Prior to this patch, there was a tricky bug in mkRecordSelId in HEAD, which did not maintain the invariant necessary for loadDecl. See note [Tricky iface loop] for details.
-
- 15 Oct, 2007 2 commits
-
-
Simon Marlow authored
-
chak@cse.unsw.edu.au. authored
-
- 10 Oct, 2007 1 commit
-
-
chak@cse.unsw.edu.au. authored
-
- 04 Oct, 2007 1 commit
-
-
chak@cse.unsw.edu.au. authored
-
- 03 Oct, 2007 1 commit
-
-
chak@cse.unsw.edu.au. authored
-
- 12 Oct, 2007 1 commit
-
-
Simon Marlow authored
Now allocate() is a synonym for allocateInGen(). I also made various cleanups: there is now less special-case code for supporting -G1 (two-space collection), and -G1 now works with -threaded.
-