- 01 Aug, 2007 3 commits
-
-
Simon Marlow authored
-
simonpj@microsoft.com authored
This bug showed up when I touched Data.Generics.Schemes, and then said make build.library.base This compiles the base library with --make, and I got an assertion failure in TcIface. The explanation is in Note [Tying the knot] in TcIface. As well as fixing the bug, I also impoved the assertion message. This might fix or improve other knot-tying problems with --make
-
simonpj@microsoft.com authored
-
- 06 Jul, 2007 1 commit
-
-
simonpj@microsoft.com authored
-
- 01 Aug, 2007 3 commits
-
-
simonpj@microsoft.com authored
Figuring out which type variables to generalise when inferring the type of a let-bound function is always trickier than I think! This patch fixes a bug (related, inevitably, to functional depenencies) found by iampure, Trac #1564. I'll add a test shortly.
-
Clemens Fruhwirth authored
-
Simon Marlow authored
-
- 31 Jul, 2007 1 commit
-
-
Simon Marlow authored
$(UseStage1) modifies $(HC) rather than $(GHC)
-
- 30 Jul, 2007 5 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 31 Jul, 2007 1 commit
-
-
Clemens Fruhwirth authored
Instead of attaching the information whether a Label is going to be accessed dynamically or not (distinction between IdLabel/DynLabel and additional flags in ModuleInitLabel and PlainModuleInitLabel), we hand dflags through the CmmOpt monad and the NatM monad. Before calling labelDynamic in PositionIndependentCode, we extract thisPackage from dflags and supply the current package to labelDynamic, so it can take this information into account instead of extracting it from the labels itself. This simplifies a lot of code in codeGen that just hands through this_pkg.
-
- 23 Jul, 2007 1 commit
-
-
Clemens Fruhwirth authored
-
- 22 Jul, 2007 1 commit
-
-
Clemens Fruhwirth authored
-
- 17 Jul, 2007 1 commit
-
-
Clemens Fruhwirth authored
-
- 13 Jul, 2007 2 commits
-
-
Clemens Fruhwirth authored
The cmm parser classified all unknown variables as imported. This behaviour is not changed with this patch. Explicitly imported variables get a different internal label type, namely ForeignLabel instead of RtsLabel. In PIC compilation, the NCG creates dynamic access for ForeignLabel, while RtsLabel are not treated as PIC when -package rts. Hence, putting explicit imports into cmm files enables the NCG to distinguish between RTS-external and RTS-internal symbols, and create the appropriate code.
-
Clemens Fruhwirth authored
Fix the knot-tying in loopDecls to actually do what its comment tells: provide access to global declarations
-
- 03 Jul, 2007 1 commit
-
-
Clemens Fruhwirth authored
-
- 28 Jun, 2007 1 commit
-
-
Clemens Fruhwirth authored
-
- 20 Jun, 2007 1 commit
-
-
Clemens Fruhwirth authored
-
- 30 Jul, 2007 3 commits
-
-
Simon Marlow authored
Compacting GC interacts badly with the new pointer-tagging feature, as it also uses the low bits of a pointer to encode some information during a collection. My original workaround didn't work, this more elaborate fix should be better.
-
Simon Marlow authored
ifBuildable now returns an exit code, with 1 indicating an unbuildable non-core package, and 0 otherwise. Hence we can now invoke the recursive make from the shell, sidestepping the problems in #1559 and #1560.
-
audreyt@audreyt.org authored
* ghc-asm: Finally did away with $* in a way that works with Perl 5.6~5.10+, by appending /m to all regexes.
-
- 29 Jul, 2007 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 27 Jul, 2007 1 commit
-
-
Simon Marlow authored
This patch implements pointer tagging as per our ICFP'07 paper "Faster laziness using dynamic pointer tagging". It improves performance by 10-15% for most workloads, including GHC itself. The original patches were by Alexey Rodriguez Yakushev <mrchebas@gmail.com>, with additions and improvements by me. I've re-recorded the development as a single patch. The basic idea is this: we use the low 2 bits of a pointer to a heap object (3 bits on a 64-bit architecture) to encode some information about the object pointed to. For a constructor, we encode the "tag" of the constructor (e.g. True vs. False), for a function closure its arity. This enables some decisions to be made without dereferencing the pointer, which speeds up some common operations. In particular it enables us to avoid costly indirect jumps in many cases. More information in the commentary: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/HaskellExecution/PointerTagging
-
- 26 Jul, 2007 12 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Simon Marlow authored
We now have a section that describes what hs_exit() does (including the "wait for foreign calls to return" behaviour), and more documentation on creating libraries of Haskell code. I also imported the section "Beware of DllMain()!" from the haskell.org wiki, with some minor editing.
-
rl@cse.unsw.edu.au authored
-
rl@cse.unsw.edu.au authored
-
rl@cse.unsw.edu.au authored
-
rl@cse.unsw.edu.au authored
-
rl@cse.unsw.edu.au authored
-
rl@cse.unsw.edu.au authored
-
rl@cse.unsw.edu.au authored
-
rl@cse.unsw.edu.au authored
-
rl@cse.unsw.edu.au authored
-