#2619: Can't build older compiler
---------------------------------+------------------------------------------
    Reporter:  judah             |        Owner:                  
        Type:  bug               |       Status:  reopened        
    Priority:  normal            |    Milestone:  6.10.1          
   Component:  Compiler          |      Version:  6.11            
    Severity:  normal            |   Resolution:                  
    Keywords:                    |   Difficulty:  Unknown         
    Testcase:                    |           Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |  
---------------------------------+------------------------------------------
Comment (by igloo):

 Like Duncan says, this is not related to whether Cabal is used for
 building or not. In either case you need to tell Cabal or GHC which
 version to use. As it happens, it looks like this is already done in the
 new build system.

 While we will fix problems where it is not too burdensome to do so,
 building an older compiler with a newer compiler is not supported; from
 http://hackage.haskell.org/trac/ghc/wiki/Building/Prerequisites:
 {{{
 GHC can be built using either an earlier released version of GHC
 (currently 6.6 and
 later are supported), or bootstrapped using a GHC built from exactly the
 same sources.
 Note that this means you cannot in general build GHC using an arbitrary
 development
 snapshot, or a build from say last week. It might work, it might not - we
 don't
 guarantee anything. To be on the safe side, start your build using the
 most recently
 released stable version of GHC.

 In general, we support building with the previous 2 major releases, so:

     * To build 6.8.* you need GHC >= 6.4
     * To build 6.10.* you need GHC >= 6.6
 }}}
 There are good reasons we don't support it: New compilers may need
 different flags, provide libraries with different interfaces, etc, and the
 old version's build system can't anticipate that. It's also not something
 that we can really test.

 As far as I know, configure doesn't enforce this policy at all. We could
 make it fail if the bootstrapping compiler is:
  * too old (more than 2 major releases older than the version we are
 compiling. We couldn't do this properly for the change from 6.x to 7.x)
  * too new (newer than the version we are compiling)
  * a snapshot and not the same version as we are building
 unless a `--force` flag is given. As it's easier for buildbot clients to
 use the same version for both STABLE and HEAD, this would probably mean
 that we'd keep supporting 6.6 in 6.11, and only drop support once it
 becomes 6.12 and we stop building 6.10. We already do that in practice
 anyway.

 What do people think?

 > When can we finally get rid of Cabal and use the new build system?

 At the top of `ghc.mk`, there's a list of things that need to be done in
 the new build system before it can be merged into the HEAD:
 http://darcs.haskell.org/ghc-new-build-system/ghc.mk

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2619#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to