Remove code that is dead now that we need >= 6.12 to build
Add LANGUAGE BangPatterns to modules that use them
avoid Foreign.unsafePerformIO
Add Data and Typeable instances to HsSyn The instances (and deriving declarations) have been taken from the ghc-syb package.
a faster appendFS
Rolling back: Make FastString thread-safe. This patch was the cause of the compile-time performance regression in #3796. My guess is that it is due to the use of unsafePerformIO which traverses the stack up to the first update frame, and perhaps we have a deep stack when reading the dictionary from a .hi file. In any case, since we're not relying on thread safety for FastStrings, I think the safest thing to do is back this out until we can investigate further.
Make FastString thread-safe. This is needed both for per-session parallelism and for allowing multiple concurrent sessions in the same process. With the help of atomicModifyIORef and unsafePerformIO it is also quite fast--an MVar would most likely be slower. On a full compilation of Cabal's head branch it was about 1-2 percent slower, but then overall compilation times varied by about 4 percent, so I think it's worth it.
Changes for the new IO library, mainly base-package modules moving around
Require a bang pattern when unlifted types are where/let bound; #3182 For now we only get a warning, rather than an error, because the alex and happy templates don't follow the new rules yet.
Document FastString and rename strLength to lengthLS
Get building GHC itself with Cabal more-or-less working Installing and bindist creation don't work, but they were already broken. Only tested validating with one setup.
Move some flags from the Makefile into module pragmas
Remove code that isn't used now that we assume that GHC >= 6.4
Change the last few (F)SLIT's into (f)sLit's
Don't use CPP for SLIT/FSLIT
Don't import FastString in HsVersions.h Modules that need it import it themselves instead.
Fix warnings in FastString, and check for empty case in head/tail
Whitespace only
lots of portability changes (#1405) 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
Fix CodingStyle#Warnings URLs