- 17 Jan, 2008 7 commits
-
-
Isaac Dupree authored
re-recording to avoid new conflicts was too hard, so I just put it all in one big patch :-( (besides, some of the changes depended on each other.) Here are what the component patches were: Fri Dec 28 11:02:55 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> * document BreakArray better Fri Dec 28 11:39:22 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> * properly ifdef BreakArray for GHCI Fri Jan 4 13:50:41 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * change ifs on __GLASGOW_HASKELL__ to account for... (#1405) for it not being defined. I assume it being undefined implies a compiler with relatively modern libraries but without most unportable glasgow extensions. Fri Jan 4 14:21:21 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * MyEither-->EitherString to allow Haskell98 instance Fri Jan 4 16:13:29 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * re-portabilize Pretty, and corresponding changes Fri Jan 4 17:19:55 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * Augment FastTypes to be much more complete Fri Jan 4 20:14:19 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * use FastFunctions, cleanup FastString slightly Fri Jan 4 21:00:22 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * Massive de-"#", mostly Int# --> FastInt (#1405) Fri Jan 4 21:02:49 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * miscellaneous unnecessary-extension-removal Sat Jan 5 19:30:13 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * add FastFunctions
-
simonpj@microsoft.com authored
Oops -- missed this from previous commit; sorry
-
simonpj@microsoft.com authored
This patch addresses a problem that Roman found in SpecConstr. Consider: foo :: Maybe Int -> Maybe Int -> Int foo a b = let j b = foo a b in case b of Nothing -> ... Just n -> case a of Just m -> ... j (Just (n+1)) ... Nothing -> ... j (Just (n-1)) ... We want to make specialised versions for 'foo' for the patterns Nothing (Just v) (Just a) (Just b) Two problems, caused by the join point j. First, j does not scrutinise b, so j won't be specialised f for the (Just v) pattern. Second, j is defined where the free var 'a' is not evaluated. Both are solved by brutally inlining j at its call sites. This risks major code bloat, but it's relatively quick to implement. The flag -fspec-inline-join-points causes brutal inlining for a non-recursive binding of a function whose RHS contains calls of a recursive function The (experimental) flag is static for now, and I have not even documented it properly.
-
Clemens Fruhwirth authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
The add_evals code in Simplify.simplAlt had bit-rotted. Example: data T a = T !a data U a = U !a foo :: T a -> U a foo (T x) = U x Here we should not evaluate x before building the U result, because the x argument of T is already evaluated. Thanks to Roman for finding this.
-
- 16 Jan, 2008 8 commits
-
-
simonpj@microsoft.com authored
I can't remember where this bug showed up, but we were abstracting over a coercion variable (co :: a ~ T), without also abstracting over 'a'. The fix is simple.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
This fixes Trac #2024; worth merging onto 6.8 branch.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
Rules for imported things are now kept in the global rule base, not attached to the global Id. The rule-check pass hadn't kept up. This should fix it.
-
Clemens Fruhwirth authored
Add dyn-wrapper.c used as cross-plattform launch wrapper for executables using dynamic libraries in non-standard places
-
Clemens Fruhwirth authored
-
- 10 Jan, 2008 2 commits
-
-
Clemens Fruhwirth authored
-
Clemens Fruhwirth authored
-
- 16 Jan, 2008 7 commits
-
-
Clemens Fruhwirth authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
simonpj@microsoft.com authored
The core type-matcher Unify.match was previouly using tcView to expand types, because it must treat newtypes as distinct from their representation. But that meant that it also treated the PredType {C Int} as distinct from its representation type (:TC Int). And that in turn was causing a rule not to fire, because the argument types didn't match up. For this to happen we need to get a situation where we have a = :DC blah blah -- Dictionary ....(f a)..... Now a has type (:TC Int), bu the RULE for f expects an argument of type {C Int}. Roman found that just this was happening.
-
simonpj@microsoft.com authored
I can't think how this one escaped for so long, but (error "foo") should have arityType ABot, just as 'error' itself does. This improves eta expansion. I spotted it when looking at the function Data.Array.Parallel.Arr.BBArr.writeMBB in the ndp package.
-
- 10 Jan, 2008 2 commits
-
-
Clemens Fruhwirth authored
-
Clemens Fruhwirth authored
-
- 31 Dec, 2007 1 commit
-
-
Clemens Fruhwirth authored
-
- 15 Jan, 2008 1 commit
-
-
Ian Lynagh authored
We were making filenames like dist/build/GHC/Base.p_.o rather than dist/build/GHC/Base.p_o
-
- 14 Jan, 2008 2 commits
-
-
mainland@eecs.harvard.edu authored
-
Ian Lynagh authored
-
- 15 Jan, 2008 2 commits
-
-
rl@cse.unsw.edu.au authored
-
chak@cse.unsw.edu.au. authored
-
- 14 Jan, 2008 1 commit
-
-
Ian Lynagh authored
-
- 13 Jan, 2008 7 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
Split off a FastBool module, to avoid a circular import with Panic
-
Ian Lynagh authored
-