[GHC] #16069: Proposal to resolve some confusion about stages in Hadrian
GHC
ghc-devs at haskell.org
Wed Dec 19 12:17:22 UTC 2018
#16069: Proposal to resolve some confusion about stages in Hadrian
-------------------------------------+-------------------------------------
Reporter: mpickering | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.3
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
The current situation with hadrian is that
1. We build libraries required to build the stage2 compiler with stage1
and place them in `_build/stage1`.
2. The `stage2` compiler is built with `stage1` and then placed in
`_build/stage1`.
3. Executables built using the `stage2` compiler such as haddock then also
use the libraries built by the `stage1` compiler even though they are
being built with the `stage2` compiler.
However, this is problematic because when you want to build a `stage3`
compiler, we want to actually build the libraries again using the `stage2`
compiler and place them in `_build/stage2`. If we follow the existing
logic for executables built using the `stage2` compiler then in order to
build a `stage3` compiler we would just reuse all the libraries from
`_build/stage1` which seems incorrect.
The proposal is simply thus:
1. When building an executable at stageN, we use libraries also built at
stageN. Concretely, if we want to build `haddock`, a stage2 executable,
then we also have to build all the libraries it needs with the `stage2`
compiler and install them into a package database in `_build/stage2`.
2. The definition of "build" can be configured. By default, in order to
"build" a stage2 library we copy it from the stage1 database but it is
configurable to rebuild it with the stage2 compiler as we would want to
for stage3.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16069>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list