- 27 Oct, 2010 1 commit
-
-
Simon Marlow authored
-
- 13 Oct, 2010 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
- 27 Oct, 2010 1 commit
-
-
simonpj@microsoft.com authored
See Note [SPECIALISE pragmas] in TcBinds. Fixes Trac #444.
-
- 26 Oct, 2010 1 commit
-
-
Simon Marlow authored
-
- 21 Oct, 2010 1 commit
-
-
Thomas Schilling authored
-
- 24 Oct, 2010 1 commit
-
-
Michal Terepeta authored
-
- 26 Oct, 2010 5 commits
-
-
gwright@antiope.com authored
This patch fixes two bugs in the Mach-O linker and adds debugging statements to the same. The bugs: 1. The test for symbol->n_value == 0 is removed and replaced by a test of the flag field. Checking the n_value field was just wrong; the value of a symbol should only be examined when allocating space for a common block, in which case the n_value field gives the size of the block. This bug led to an infrequently occuring linker crash. I believe the behavior of the linker now agrees with the intent of the sketchy Apple documentation. 2. Jump islands were being filled with garbage instead of the the location of the referenced symbol. This caused relocations of type X86_64_RELOC_GOT and X86_64_RELOC_GOT_LOAD to eventually lead to crashes. The fix is simply to look up the symbol. Enough debug statements have been added to follow the operation of the Mach-O linker while it loads modules. They are not yet as informative and well organized as for ELF. Improving the debug statements will require some reorganization of the code -- the Mach-O linker seems basically sound, but is crying out for some refactoring and commenting.
-
Ian Lynagh authored
findDupsEq is quadratic, whereas removeDups is n log n. Fixes T1969 regression.
-
Ian Lynagh authored
-
Ian Lynagh authored
-
simonpj@microsoft.com authored
We were failing to float out a binding that could be floated, because of a confusion in the Lam case of floatExpr. In investigating this I also discoverd that there is really no point at all in giving a different level to variables in a binding group, so I've now given them all the same (in SetLevels.lvlLamBndrs The overall difference is quite minor in a nofib run: Program Size Allocs Runtime Elapsed ------------------------------------------------------------- Min +0.0% -8.5% -28.4% -28.7% Max +0.0% +0.7% -0.7% -1.1% Geometric Mean +0.0% -0.0% -11.6% -11.8% I don't trust those runtimes, but smaller is good! The 8.5% improvement in allocation in fulsom, and seems real. The 0.7% allocation increase only happens in programs with very small allocation. I tracked one down to a call of this form GHC.IO.Handle.Internals.mkDuplexHandle5 = \ args -> GHC.IO.Handle.Internals.openTextEncoding1 mb_codec ha_type (\mb_encoder mb_decoder -> blah) With the new floater the argument of openTextEncoding1 becomes (let lvl = .. in \mb_encoder mb_decoder -> blah) And rightly so. However in fact this argument is a continuation and hence is called once, so the floating is fruitless. Roll on one-shot-function analysis (which I know how to do but fail to get to!).
-
- 31 Aug, 2010 1 commit
-
-
simonpj@microsoft.com authored
-
- 26 Oct, 2010 3 commits
-
-
simonpj@microsoft.com authored
Previously, the demand analyser assumed that every binder starts off with no strictness info. But now that we are preserving strictness on nesting bindings in interface files, that assumption is no longer correct, because an inlined function might have a nested binding with strictness set. So we need to know when we are in the initial sweep, so that we can set the strictness to 'bottom'. See Note [Initialising strictness]
-
simonpj@microsoft.com authored
By not taking account of SCC notes we were inadvertently discarding some, which led to mis-counted entries with -O Should fix (part of) Trac #4414
-
simonpj@microsoft.com authored
At last. A bug that is really easy to fix.
-
- 25 Oct, 2010 5 commits
-
-
simonpj@microsoft.com authored
As Roman reported in #4428, nested let-bindings weren't being recorded with their unfoldings. Needless to say, fixing this had more knock-on effects than I expected.
-
simonpj@microsoft.com authored
"Short-cut" substitution means "do nothing if the substitution is empty". We *never* want do to that in the simplifier because even though the substitution is empty, the in-scope set has useful information: * We get up-to-date unfoldings; and that in turn may reduce the number of iterations of the simplifier * We avoid space leaks, because failing to substitute may hang on to old Ids from a previous iteration (This is what was causing the late inlining of foo in Trac #4428.)
-
simonpj@microsoft.com authored
There is an accompanying patch for libraries base template-haskell
-
simonpj@microsoft.com authored
This has been wrong for a long time. Fixes Trac #4431.
-
simonpj@microsoft.com authored
-
- 24 Oct, 2010 1 commit
-
-
Ian Lynagh authored
-
- 17 Oct, 2010 1 commit
-
-
pho@cielonegro.org authored
dist-install/build/ffi.h should have a dependency on ffitarget.h as *_stub.c requires it during the stage-2 build.
-
- 23 Oct, 2010 5 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
You can't use TH with a profiling compiler.
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 22 Oct, 2010 5 commits
-
-
Ian Lynagh authored
Major changes are: * Version number now includes full GHC version and arch * Uninstaller copes with multiple versions
-
dimitris@microsoft.com authored
Optimised the representation of Inert Sets to use Maps to get to the relevant inert constraint faster.
-
simonpj@microsoft.com authored
There are two main changes * New LANGUAGE option RebindableSyntax, which implies NoImplicitPrelude * if-the-else becomes rebindable, with function name "ifThenElse" (but case expressions are unaffected) Thanks to Sam Anklesaria for doing most of the work here
-
simonpj@microsoft.com authored
This would have produced a more civilised error for Trac #4396
-
Ian Lynagh authored
-
- 21 Oct, 2010 7 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
- add link to inno setup docs, so readers don't have to guess what ghc.iss might be - add Task section, and associated most Registry actions with separate (sub)tasks, so that file associations, default action, and PATH setting can be optional - copy license file into doc directory - install icon file again, so that DefaultIcon is no longer a dangling pointer (#4352) - only delete ghc_haskell key if empty (in case there were other tools using it) - add versioned GHCi to right-click menu (to allow for multiple tool installs)
-
simonpj@microsoft.com authored
See Note [Localise pattern binders]
-
simonpj@microsoft.com authored
-