#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