Skip to content
  • John Ericson's avatar
    Per stage headers, ghc_boot_platform.h -> stage 0 ghcplatform.h · 05419e55
    John Ericson authored and Marge Bot's avatar Marge Bot committed
    The generated headers are now generated per stage, which means we can
    skip hacks like `ghc_boot_platform.h` and just have that be the stage 0
    header as proper. In general, stages are to be embraced: freely generate
    everything in each stage but then just build what you depend on, and
    everything is symmetrical and efficient. Trying to avoid stages because
    bootstrapping is a mind bender just creates tons of bespoke
    mini-mind-benders that add up to something far crazier.
    
    Hadrian was pretty close to this "stage-major" approach already, and so
    was fairly easy to fix. Make needed more work, however: it did know
    about stages so at least there was a scaffold, but few packages except
    for the compiler cared, and the compiler used its own counting system.
    That said, make and Hadrian now work more similarly, which is good for
    the transition to Hadrian. The merits of embracing stage aside, the
    change may be worthy for easing that transition alone.
    05419e55