- Mar 31, 2011
-
-
dimitris authored
We were not prioritizing the interaction of equalities in the worklist, because pre-canonicalization solved the constraints one by one, in their arrival order. This patch fixes this, so it's a generally useful improvement, mainly for efficiency. It makes #4981 go away, although it's not a definite answer to the cause of the problem. See discussion on Trac.
-
Simon Peyton Jones authored
This patch just puts a better SrcSpan on the AbsBinds produced by the type checker
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
(See Trac #3011.)
-
Simon Peyton Jones authored
This just disables the coercion optimiser, mainly for measurements in the paper
-
Simon Peyton Jones authored
This dumps a (one-line) listing of the size of the Core program, just after tidying
-
- Mar 30, 2011
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
- Mar 29, 2011
-
-
Simon Marlow authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
This fixes a couple of duplicates that had crept in, and also renumbers everything so that they are monotonically increasing through the file.
-
- Mar 28, 2011
-
-
Ian Lynagh authored
-
- Mar 29, 2011
-
-
Simon Marlow authored
-
- Mar 27, 2011
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- Mar 26, 2011
-
-
Ian Lynagh authored
The .hsc files aren't currently safe for cross-compilation on Windows: libraries\haskeline\.\System\Console\Haskeline\Backend\Win32.hsc:160 directive "let" is not safe for cross-compilation
-
- Mar 25, 2011
-
-
Ian Lynagh authored
-
Simon Marlow authored
Here's a bit of erroneous code: 00000c5c <s1ad_info>: c5c: 8b 45 08 mov 0x8(%ebp),%eax c5f: d9 46 03 flds 0x3(%esi) c62: dd d9 fstp %st(1) c64: d9 55 08 fsts 0x8(%ebp) c67: 89 c6 mov %eax,%esi c69: c7 45 00 24 0c 00 00 movl $0xc24,0x0(%ebp) c70: f7 c6 03 00 00 00 test $0x3,%esi c76: 75 ac jne c24 <s1ac_info> So we should be doing some ffrees before the jne. The code that inserts the ffrees wasn't expecting to do it for a conditional jump, because they are usually local, but we have a late optimisation that shortcuts jumps-to-jumps, and that can result in a non-local conditional jump. This at least fixes an instance of the bug that I was able to reproduce, let's hope there aren't any more.
-
Edward Z. Yang authored
-
Simon Peyton Jones authored
-
- Mar 22, 2011
-
-
Edward Z. Yang authored
Previously, -ddump-cmmz was used to dump out the "Raw Cmm" right before it gets passed to the backends, as well as all of the intermediate phases in the new code generator. Unfortunately, there are a lot of intermediate phases, which means -ddump-cmmz takes a very long time with -fnew-codegen for large programs, even if you're only interested in the final result. Here we split up -ddump-cmmz into -ddump-cmmz (now exclusively for the new code generator) and -ddump-raw-cmm (for both code generation paths.) The old flag was not documented in the manual, so hopefully not too many people will be surprised by this change.
-
Edward Z. Yang authored
-
- Mar 23, 2011
-
-
Edward Z. Yang authored
When allocating new objects on the heap, we previously returned a CmmExpr containing the heap pointer as well as the tag expression, which would be added to the code graph upon first usage. Unfortunately, this meant that untagged heap pointers living in registers might be spilled to the stack, where they interacted poorly with garbage collection (we saw this bug specifically with the compacting garbage collector.) This fix immediately tags the register containing the heap pointer, so that unless we have extremely unfriendly spill code, the new pointer will never be spilled to the stack untagged. An alternate solution might have been to modify allocDynClosure to tag the pointer upon the initial register allocation, but not all invocations of allocDynClosure tag the resulting pointer, and threading the consequent CgIdInfo for the cases that did would have been annoying.
-
- Mar 21, 2011
-
-
Simon Peyton Jones authored
This fixes the Lint error, but still risks leaving stupid let { x=y } bindings in the code. But no time to fix that today. (Leave the ticket open for that reason.)
-
- Mar 18, 2011
-
-
Simon Marlow authored
-
- Mar 23, 2011
-
-
Ian Lynagh authored
Patch from Brian Bloniarz
-
- Mar 22, 2011
-
-
Ian Lynagh authored
* Some refactoring * Support for Windows filenames * Some support for installed trees (as Windows "bindists" are really install trees)
-
- Mar 21, 2011
-
-
Ian Lynagh authored
It's just an internal GHC library, for now at least
-
Ian Lynagh authored
-
- Mar 09, 2011
-
-
altaic authored
-
- Mar 20, 2011
-
-
batterseapower authored
-
Ian Lynagh authored
We used to have MK_INSTALL_DEST = "$(shell cygpath $1)" but this meant we ended up with "$(shell cygpath "[...]/html/`basename $$i`")" and the $(...) gets evaluated before the makefile rule, so the for loop hasn't been run, and so $i isn't defined. So we were taking the basename of the empty string, meaning docs weren't being installed in the right place. Now we have MK_INSTALL_DEST = $$(cygpath $1) so the evaluation happens in the shell, while the for loop is running.
-
- Mar 17, 2011
-
-
Ian Lynagh authored
-
- Mar 16, 2011
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
In particular, this makes it possible to compare release bindists (with profiling files) and validate bindists (without them).
-