Add separate functions for querying DynFlag and ExtensionFlag options and remove the temporary DOpt class workaround.
Super-monster patch implementing the new typechecker -- at last This major patch implements the new OutsideIn constraint solving algorithm in the typecheker, following our JFP paper "Modular type inference with local assumptions". Done with major help from Dimitrios Vytiniotis and Brent Yorgey.
Remove GHC's haskell98 dependency
Make TcDefaults warning-free
(F)SLIT -> (f)sLit in TcDefaults
Don't import FastString in HsVersions.h Modules that need it import it themselves instead.
Monadify typecheck/TcDefaults: use return and standard monad functions
Fix CodingStyle#Warnings URLs
Use OPTIONS rather than OPTIONS_GHC for pragmas Older GHCs can't parse OPTIONS_GHC. This also changes the URL referenced for the -w options from WorkingConventions#Warnings to CodingStyle#Warnings for the compiler modules.
Add {-# OPTIONS_GHC -w #-} and some blurb to all compiler modules
Make the type-defaulting in GHCi use () as the first default type See Trac #1200 This is a somewhat experimental fix. I'm not sure we want it in 6.6.1 The idea is explained in Note [Default unitTy] in TcSimplify. In interative mode (or with -fextended-default-rules) we add () as the first type we try when defaulting. This has very little real impact, except in the following case. Consider: Text.Printf.printf "hello" This has type (forall a. IO a); it prints "hello", and returns 'undefined'. We don't want the GHCi repl loop to try to print that 'undefined'. The neatest thing is to default the 'a' to (), rather than to Integer (which is what would otherwise happen; and then GHCi doesn't attempt to print the (). So in interactive mode, we add () to the list of defaulting types.
Fix defaulting for overloaded strings This patch fixes the typechecking of the default declaration itself, when overloaded strings are involved. It also documents the behaviour in the user manual. nofib/spectral/power should work again now!
Add support for overloaded string literals. The class is named IsString with the single method fromString. Overloaded strings work the same way as overloaded numeric literals. In expressions a string literals gets a fromString applied to it. In a pattern there will be an equality comparison with the fromString:ed literal. Use -foverloaded-strings to enable this extension.
Module header tidyup, phase 1 This patch is a start on removing import lists and generally tidying up the top of each module. In addition to removing import lists: - Change DATA.IOREF -> Data.IORef etc. - Change List -> Data.List etc. - Remove $Id$ - Update copyrights - Re-order imports to put non-GHC imports last - Remove some unused and duplicate imports
Reorganisation of the source tree Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.