- 28 Nov, 2008 2 commits
-
-
Thomas Schilling authored
With this change it should be possible to perform something similar to 'load' by traversing the module graph in dependency order and calling '{parse,typecheck,load}Module' on each. Of course, if you want smart recompilation checking you should still use 'load'.
-
Thomas Schilling authored
parameter to 'InteractiveStatus' to a 'Maybe'.
-
- 25 Nov, 2008 1 commit
-
-
Thomas Schilling authored
This patch entails a major restructuring of HscMain and a small bugfix to MkIface (which required the restructuring in HscMain). In MkIface: - mkIface* no longer outputs orphan warnings directly and also no longer quits GHC when -Werror is set. Instead, errors are reported using the common IO (Messages, Maybe result) scheme. In HscMain: - Get rid of the 'Comp' monad. This monad was mostly GhcMonad + two reader arguments, a ModSummary for the currently compiled module and a possible old interface. The latter actually lead to a small space-leak since only its hash was needed (to check whether the newly-generated interface file was the same as the original one). Functions originally of type 'Comp' now only take the arguments that they actually need. This leads to slighly longer argument lists in some places, however, it is now much easier to see what is actually going on. - Get rid of 'myParseModule'. Rename 'parseFile' to 'hscParse'. - Join 'deSugarModule' and 'hscDesugar' (keeping the latter). - Rename 'typecheck{Rename}Module{'}' to 'hscTypecheck{Rename}'. One variant keeps the renamed syntax, the other doesn't. - Parameterise 'HscStatus', so that 'InteractiveStatus' is just a different parameterisation of 'HscStatus'. - 'hscCompile{OneShot,Batch,Nothing,Interactive}' are now implemented using a (local) typeclass called 'HsCompiler'. The idea is to make the common structure more obvious. Using this typeclass we now have two functions 'genericHscCompile' (original 'hscCompiler') and 'genericHscRecompile' (original 'genComp') describing the default pipeline. The methods of the typeclass describe a sort of "hook" interface (in OO-terms this would be called the "template method" pattern). One problem with this approach is that we parameterise over the /result/ type which, in fact, is not actually different for "nothing" and "batch" mode. To avoid functional dependencies or associated types, we use type tags to make them artificially different and parameterise the type class over the result type. A perhaps better approach might be to use records instead. - Drop some redundant 'HscEnv' arguments. These were likely different from what 'getSession' would return because during compilation we temporarily set the module's DynFlags as well as a few other fields. We now use the 'withTempSession' combinator to temporarily change the 'HscEnv' and automatically restore the original session after the enclosed action has returned (even in case of exceptions). - Rename 'hscCompile' to 'hscGenHardCode' (since that is what it does). Calls in 'GHC' and 'DriverPipeline' accordingly needed small adaptions.
-
- 22 Nov, 2008 1 commit
-
-
Thomas Schilling authored
It now uses the standard warning log and error reporting mechanism.
-
- 21 Nov, 2008 1 commit
-
-
Thomas Schilling authored
Parse errors during dependency analysis or options parsing really shouldn't kill GHC; this is particularly annoying for GHC API clients.
-
- 07 Nov, 2008 1 commit
-
-
Simon Marlow authored
The sense of the #ifdef was wrong
-
- 13 Oct, 2008 1 commit
-
-
Clemens Fruhwirth authored
Do not filter the rts from linked libraries in linkDynLib as Windows does not allow unresolved symbols
-
- 07 Oct, 2008 1 commit
-
-
Clemens Fruhwirth authored
-
- 23 Sep, 2008 1 commit
-
-
Simon Marlow authored
-
- 14 Sep, 2008 1 commit
-
-
Thomas Schilling authored
-
- 01 Sep, 2008 1 commit
-
-
Simon Marlow authored
When linking in --make we check the modification time of the executable against the modification time of the object files, and only re-link if any object file is newer. However, we should also check the modification times of packages, since the recompilation checker also tracks dependencies in packages. In a GHC build this means that if you recompile stage2 and don't manage to change any fingerpints, we won't recompile Main but we'll still re-link it.
-
- 26 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 21 Aug, 2008 1 commit
-
-
Simon Marlow authored
Now that we don't include any header files in .hc apart from our own, the cc-options from packages are at best superfluous, so don't pass them. We still pass them to .c compilations, although I've just made changes to Cabal so that cc-options from a .cabal file are not copied into the InstalledPackageInfo. Most uses of cc-options in Cabal are clearly intended to be local to the package, but they were being propagated everywhere, almost certainly unintentionally. The way is left open for Cabal to allow packages to specify cc-options that get propagated in the future, if we find a use case for this.
-
- 31 Jul, 2008 1 commit
-
-
Ian Lynagh authored
TopHandler now uses the new extensible exceptions module, so we need to interact with it using the new types.
-
- 30 Jul, 2008 1 commit
-
-
Ian Lynagh authored
-
- 24 Jul, 2008 1 commit
-
-
Simon Marlow authored
We want to be able to pick the RTS flavour (e.g. -threaded) when we link the final program.
-
- 11 Jul, 2008 1 commit
-
-
Ian Lynagh authored
These are needed for GLOBAL_VAR's to work properly
-
- 08 Jul, 2008 1 commit
-
-
Ian Lynagh authored
-
- 05 Jul, 2008 1 commit
-
-
Ian Lynagh authored
-
- 20 Jun, 2008 1 commit
-
-
Ian Lynagh authored
-
- 14 Jun, 2008 4 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
so we no longer need to use defaultDynFlags there
-
- 29 May, 2008 1 commit
-
-
dias@eecs.harvard.edu authored
Several changes in this patch, partially bug fixes, partially new code: o bug fixes in ZipDataflow - added some checks to verify that facts converge - removed some erroneous checks of convergence on entry nodes - added some missing applications of transfer functions o changed dataflow clients to use ZipDataflow, making ZipDataflow0 obsolete o eliminated DFA monad (no need for separate analysis and rewriting monads with ZipDataflow) o started stack layout changes - no longer generating CopyIn and CopyOut nodes (not yet fully expunged though) - still not using proper calling conventions o simple new optimizations: - common block elimination -- have not yet tried to move the Adams opt out of CmmProcPointZ - block concatenation o piped optimization fuel up to the HscEnv - can be limited by a command-line flag - not tested, and probably not yet properly used by clients o added unique supply to FuelMonad, also lifted unique supply to DFMonad
-
- 12 Apr, 2008 1 commit
-
-
Ian Lynagh authored
-
- 29 Mar, 2008 1 commit
-
-
Ian Lynagh authored
Modules that need it import it themselves instead.
-
- 25 Mar, 2008 1 commit
-
-
Ian Lynagh authored
-
- 07 Feb, 2008 1 commit
-
-
Ian Lynagh authored
These fix these failures: break008(ghci) break009(ghci) break026(ghci) ghci.prog009(ghci) ghci025(ghci) print007(ghci) prog001(ghci) prog002(ghci) prog003(ghci) at least some of which have this symptom: Exception: expectJust prune
-
- 12 Dec, 2007 1 commit
-
-
judah.jacobson@gmail.com authored
-
- 17 Jan, 2008 1 commit
-
-
Clemens Fruhwirth authored
-
- 16 Jan, 2008 1 commit
-
-
Clemens Fruhwirth authored
-
- 10 Jan, 2008 1 commit
-
-
Clemens Fruhwirth authored
-
- 16 Jan, 2008 1 commit
-
-
Ian Lynagh authored
-
- 10 Jan, 2008 1 commit
-
-
Clemens Fruhwirth authored
-
- 12 Jan, 2008 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 02 Jan, 2008 1 commit
-
-
Simon Marlow authored
-
- 25 Dec, 2007 1 commit
-
-
chevalier@alum.wellesley.edu authored
Added API support for compiling Haskell to simplified Core, and for compiling Core to machine code. The latter, especially, should be considered experimental and has only been given cursory testing. Also fixed warnings in DriverPipeline. Merry Christmas.
-
- 26 Sep, 2007 1 commit
-
-
Simon Marlow authored
Using -stubdir together with hierarchical modules, -fvia-C, and --make is essentially broken in 6.6.x. Recently discovered by Cabal's use of -stubdir. Test cases: driver027/driver028 (I've updated them to use -fvia-C, in order to test for this bug).
-