summaryrefslogtreecommitdiff
path: root/compiler/main/DriverPipeline.hs
Commit message (Collapse)AuthorAgeFilesLines
* Move -fno-cse flags from Makefile into pragmasIan Lynagh2008-07-111-0/+3
| | | | These are needed for GLOBAL_VAR's to work properly
* Fix build; Opt_LinkHaskell98 is now Opt_AutoLinkPackagesIan Lynagh2008-07-081-2/+2
|
* Add a flag to disable linking with the haskell98 packageIan Lynagh2008-07-051-1/+3
|
* Now that we require GHC >= 6.4.2, System.IO.Error is always availableIan Lynagh2008-06-201-1/+1
|
* Use -fforce-recomp rather than -no-recompIan Lynagh2008-06-141-2/+2
|
* Handle errors in an OPTIONS pragma when preprocessingIan Lynagh2008-06-141-11/+0
|
* Allow flags to be marked as deprecatedIan Lynagh2008-06-141-1/+2
|
* Pass dynflags down through to pragStateIan Lynagh2008-06-141-1/+1
| | | | so we no longer need to use defaultDynFlags there
* Cmm back end upgradesdias@eecs.harvard.edu2008-05-291-52/+68
| | | | | | | | | | | | | | | | | | | | | 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
* (F)SLIT -> (f)sLit in DriverPipelineIan Lynagh2008-04-121-2/+2
|
* Don't import FastString in HsVersions.hIan Lynagh2008-03-291-0/+1
| | | | Modules that need it import it themselves instead.
* Remove redundant type sigIan Lynagh2008-03-251-1/+0
|
* Convert more UniqFM's back to LazyUniqFM'sIan Lynagh2008-02-071-1/+1
| | | | | | | | | | | | | | | 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
* Use -framework-path flags during the cc phase. Fixes trac #1975.judah.jacobson@gmail.com2007-12-121-0/+10
|
* Fix references to FilepathClemens Fruhwirth2008-01-171-2/+2
|
* Use runPhase_MoveBinary also for generating a dynamic library wrapperClemens Fruhwirth2008-01-161-8/+43
|
* Remove -fhardwire-lib-paths in favour of -dynload sysdepClemens Fruhwirth2008-01-101-3/+7
|
* Fix slash direction on Windows with the new filePath codeIan Lynagh2008-01-161-9/+14
|
* Add Main.dyn_o deployed into the RTS library dir to linking (see DLLNOTES ↵Clemens Fruhwirth2008-01-101-1/+9
| | | | for rational)
* FilePath fixesIan Lynagh2008-01-121-1/+0
|
* Use System.FilePathIan Lynagh2008-01-121-74/+79
|
* fix validation failure on non-i386Simon Marlow2008-01-021-3/+3
|
* Extend API for compiling to and from CoreTim Chevalier2007-12-251-40/+40
| | | | | | | 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.
* FIX -stubdir bug: the .hc file was #including the wrong _stub.h filenameSimon Marlow2007-09-261-2/+2
| | | | | | | | | 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).
* Notice when C modules have changed when deciding whether or not to linkIan Lynagh2007-09-231-3/+6
| | | | Based on a patch from Lemmih
* Whitespace changes onlyIan Lynagh2007-09-231-41/+41
|
* Move OPTIONS pragmas above commentsIan Lynagh2007-09-211-7/+7
| | | | Fixes building with -Werror (i.e. validate) and GHC < 6.6
* esacpe backslashes in the filename in the .rc fileSimon Marlow2007-09-121-1/+3
|
* Remove --export-all-symbols for DLL linking, it is default and prevents us ↵Clemens Fruhwirth2007-08-311-1/+0
| | | | from using .def files
* refactoring: eliminate DriverPipeline.CompResult and GHC.upsweep_compileSimon Marlow2007-09-101-46/+46
|
* FIX #1677; poor error message for misspelled module declarationSimon Marlow2007-09-111-1/+1
|
* FIX #1650: ".boot modules interact badly with the ghci debugger"Simon Marlow2007-09-051-2/+2
| | | | | | | | | | | | | | | | | | | In fact hs-boot files had nothing to do with it: the problem was that GHCi would forget the breakpoint information for a module that had been reloaded but not recompiled. It's amazing that we never noticed this before. The ModBreaks were in the ModDetails, which was the wrong place. When we avoid recompiling a module, ModDetails is regenerated from ModIface by typecheckIface, and at that point it has no idea what the ModBreaks should be, so typecheckIface made it empty. The right place for the ModBreaks to go is with the Linkable, which is retained when compilation is avoided. So now I've placed the ModBreaks in with the CompiledByteCode, which also makes it clear that only byte-code modules have breakpoints. This fixes break022/break023
* don't generate .hi-boot/.o-boot files in GHCiSimon Marlow2007-09-041-8/+7
|
* Fix CodingStyle#Warnings URLsIan Lynagh2007-09-041-1/+1
|
* Use OPTIONS rather than OPTIONS_GHC for pragmasIan Lynagh2007-09-031-2/+2
| | | | | | | 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 modulesIan Lynagh2007-09-011-0/+7
|
* Allow redirection of -ddump-* to fileBen.Lippmeier@anu.edu.au2007-08-211-2/+6
| | | | | | Whilst compiling Main.hs with -ddump-stg, ddump-asm and friends you can how add -ddump-to-file and you'll get the dumps redirected to Main.dump-stg, Main.dump-asm etc.
* FIX #1271: create manifests, and embed them in executables on WindowsSimon Marlow2007-08-101-1/+56
| | | | | | | | | | | | | | | | | | | We have 4 new flags: -fno-gen-manifest suppresses creation of foo.exe.manifest -fno-embed-manifest suppresses embedding of the manifest in the executable -pgmwindres specify a program to use instead of windres -optwindres extra options to pass to windres "windres" is now copied from mingw and included in a binary distribution.
* FIX #1427, #1569: gcc 4.2.x needs -fno-toplevel-reorderSimon Marlow2007-08-211-4/+8
| | | | | | | | | | | | | We now have various flags that need to be passed to gcc, but only if the local gcc version supports them. So instead of wiring this knowledge into ghc when it is built, we now put these "extra gcc flags" into a text file in $libdir, extra-gcc-flags, which is created by configure. It is also created by the configure script of a binary distribution, so a binary dist is independent of the gcc version used to build it. Hopefully I got the binary-dist stuff right, but binary dists aren't currently working so we'll need to come back and check this.
* Link Windows DLLs and OSX dylibs correctly in linkDynLibClemens Fruhwirth2007-08-071-18/+54
|
* FIX part of #1372, improvements to the recompilation checkerSimon Marlow2007-08-031-6/+6
| | | | | | | | | | | | This patch adds a check that each imported module is listed in the dependencies from the previous interface. It catches the following cases and forces recompilation: - an exposed package has been upgraded - we are compiling with different package flags - a home module that was shadowing a package module has been removed - a new home module has been added that shadows a package module I haven't yet added the package timestamping as described in #1372.
* Only add -rpath to linker invocation when -dynamicClemens Fruhwirth2007-08-011-1/+1
|
* Add hardwire-lib-paths option and make it default for inplace invocationsClemens Fruhwirth2007-07-171-2/+4
|
* Create .hi-boot and .o-boot files in --make mode; fixes trac #1322Ian Lynagh2007-07-191-3/+3
| | | | | We were recompiling the .hs-boot files each time, as we were never writing out the compilation results.
* Generalize linkDynLib for ELF platformsClemens Fruhwirth2007-06-271-5/+33
| | | | | | | | | | To create a dynamic shared object (DSO) on ELF platforms, we invoke "gcc -shared". This in turn invokes ld. We supply -Bsymbolic to the linker, as "ld -Bsymbolic -shared -o <lib> <objs>" resolves all references from <objs> to <objs> at library creation time. See http://hackage.haskell.org/trac/ghc/wiki/Commentary/PositionIndependentCode
* Renames functions and constructors to fit their new ability for dynamic linkingClemens Fruhwirth2007-06-271-17/+11
| | | | | | function: staticLink -> linkBinary (will link non static binaries too) function: doMkDLL -> linkDynLib (as we can link on ELF too where DLL is an inappropriate term) constructor: MkDLL -> LinkDynLib
* Warning fix for unused and redundant importsMichael D. Adams2007-05-101-2/+0
|
* Change tabs to spaces in string literalsIan Lynagh2007-04-161-6/+6
|
* Rationalise GhcMode, HscTarget and GhcLinkSimon Marlow2007-04-111-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up the GHC API, and adds some functionality: we can now compile to object code inside GHCi. Previously we had: data GhcMode = BatchCompile | Interactive | OneShot | JustTypecheck | MkDepend data HscTarget = HscC | HscAsm | HscJava | HscInterpreted | HscNothing There was redundancy here; if GhcMode is Interactive, then only HscInterpreted makes sense, and JustTypecheck required HscNothing. Now we have: data GhcMode = CompManager -- ^ --make, GHCi, etc. | OneShot -- ^ ghc -c Foo.hs | MkDepend -- ^ ghc -M, see Finder for why we need this and HscTarget remains as before. Previously GhcLink looked like this: data GhcLink = NoLink | StaticLink Now we have: data GhcLink = NoLink | LinkBinary | LinkInMemory The idea being that you can have an HscTarget of HscAsm (for example) and still link in memory. There are two new flags: -fobject-code selects object code as the target (selects either -fasm or -fvia-C, whichever is the default) This can be usd with ':set' in GHCi, or on the command line. -fbyte-code sets byte-code as the target. Only works in GHCi. One day maybe this could save the byte code in a file when used outside GHCi. (names chosen for consistency with -fno-code). Changes to the GHC API: newSession no longer takes the GhcMode argument. The GhcMode defaults to CompManager, which is usually what you want. To do JustTypecheck now, just set hscTarget to HscNothing.
* small cleanupsSimon Marlow2007-03-081-2/+2
|