diff options
Diffstat (limited to 'compiler/GHC')
-rw-r--r-- | compiler/GHC/Core/Opt/SpecConstr.hs | 3 | ||||
-rw-r--r-- | compiler/GHC/Driver/Env.hs | 7 | ||||
-rw-r--r-- | compiler/GHC/Driver/Pipeline/Execute.hs | 2 | ||||
-rw-r--r-- | compiler/GHC/SysTools/BaseDir.hs | 2 | ||||
-rw-r--r-- | compiler/GHC/Tc/Gen/Splice.hs | 2 | ||||
-rw-r--r-- | compiler/GHC/Utils/Error.hs | 4 |
6 files changed, 11 insertions, 9 deletions
diff --git a/compiler/GHC/Core/Opt/SpecConstr.hs b/compiler/GHC/Core/Opt/SpecConstr.hs index d714cc0764..490eab28fb 100644 --- a/compiler/GHC/Core/Opt/SpecConstr.hs +++ b/compiler/GHC/Core/Opt/SpecConstr.hs @@ -474,7 +474,8 @@ deprecated): and then add *that* type as a parameter to the loop body The reason #2 is deprecated is because it requires GHCi, which isn't -available for things like a cross compiler using stage1. +available for things like a stage0 compiler without the external +interpreter. Here's a (simplified) example from the `vector` package. You may bring the special 'force specialization' type into scope by saying: diff --git a/compiler/GHC/Driver/Env.hs b/compiler/GHC/Driver/Env.hs index 6f23139f26..08e9150b30 100644 --- a/compiler/GHC/Driver/Env.hs +++ b/compiler/GHC/Driver/Env.hs @@ -127,9 +127,10 @@ platform (= code build platform). The internal interpreter can be used when both platforms are the same and when the built code is compatible with the compiler itself (same way, etc.). This -interpreter is not always available: for instance stage1 compiler doesn't have -it because there might be an ABI mismatch between the code objects (built by -stage1 compiler) and the stage1 compiler itself (built by stage0 compiler). +interpreter is not always available: for instance the compiler built in stage 0 +doesn't have it because there might be an ABI mismatch between the code objects +(built in stage 1 by the stage 0 compiler) and the stage 0 compiler itself +(built in stage 0 by the probuilt bootstrap compiler compiler). In most cases, an external interpreter can be used instead: it runs in a separate process and it communicates with the compiler via a two-way message diff --git a/compiler/GHC/Driver/Pipeline/Execute.hs b/compiler/GHC/Driver/Pipeline/Execute.hs index 08a63c0125..eeedb9733e 100644 --- a/compiler/GHC/Driver/Pipeline/Execute.hs +++ b/compiler/GHC/Driver/Pipeline/Execute.hs @@ -188,7 +188,7 @@ runLlvmLlcPhase pipe_env hsc_env input_fn = do -- Observed at least with target 'arm-unknown-linux-gnueabihf'. -- -- - -- With LLVM4, llc -O3 crashes when ghc-stage1 tries to compile + -- With LLVM4, llc -O3 crashes when ghc-stage0 tries to compile -- rts/HeapStackCheck.cmm -- -- llc -O3 '-mtriple=arm-unknown-linux-gnueabihf' -enable-tbaa /var/folders/fv/xqjrpfj516n5xq_m_ljpsjx00000gn/T/ghc33674_0/ghc_6.bc -o /var/folders/fv/xqjrpfj516n5xq_m_ljpsjx00000gn/T/ghc33674_0/ghc_7.lm_s diff --git a/compiler/GHC/SysTools/BaseDir.hs b/compiler/GHC/SysTools/BaseDir.hs index 03169523c6..bffa45dad5 100644 --- a/compiler/GHC/SysTools/BaseDir.hs +++ b/compiler/GHC/SysTools/BaseDir.hs @@ -47,7 +47,7 @@ On Windows: - ghc never has a shell wrapper. - we can find the location of the ghc binary, which is $topdir/<foo>/<something>.exe - where <something> may be "ghc", "ghc-stage2", or similar + where <something> may be "ghc", "ghc-stage1", or similar - we strip off the "<foo>/<something>.exe" to leave $topdir. from topdir we can find package.conf, ghc-asm, etc. diff --git a/compiler/GHC/Tc/Gen/Splice.hs b/compiler/GHC/Tc/Gen/Splice.hs index 13cd3e71c9..cfa954ee03 100644 --- a/compiler/GHC/Tc/Gen/Splice.hs +++ b/compiler/GHC/Tc/Gen/Splice.hs @@ -336,7 +336,7 @@ quotationCtxtDoc br_body 2 (ppr br_body) - -- The whole of the rest of the file is the else-branch (ie stage2 only) + -- The whole of the rest of the file is the else-branch (i.e. stage1+ only) {- Note [How top-level splices are handled] diff --git a/compiler/GHC/Utils/Error.hs b/compiler/GHC/Utils/Error.hs index c2b708b56a..93cc3ff7c4 100644 --- a/compiler/GHC/Utils/Error.hs +++ b/compiler/GHC/Utils/Error.hs @@ -533,7 +533,7 @@ To actually produce the eventlog, you need an eventlog-capable GHC build: $ hadrian/build -j "stage1.ghc-bin.ghc.link.opts += -eventlog" With Make: - $ make -j GhcStage2HcOpts+=-eventlog + $ make -j GhcStage1HcOpts+=-eventlog You can then produce an eventlog when compiling say hello.hs by simply doing: @@ -542,7 +542,7 @@ doing: $ _build/stage1/bin/ghc -ddump-timings hello.hs -o hello +RTS -l If GHC was built with Make: - $ inplace/bin/ghc-stage2 -ddump-timing hello.hs -o hello +RTS -l + $ inplace/bin/ghc-stage1 -ddump-timing hello.hs -o hello +RTS -l You could alternatively use -v<N> (with N >= 2) instead of -ddump-timings, to ask GHC to report timings (on stderr and the eventlog). |