[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rebuilding ghc changes interface hashes?

On Wed, Apr 06, 2011 at 12:40:45PM +0100, Ian Lynagh wrote:
> compiler/stage2/build/Config.hs includes cBooterVersion, so if you boot
> with a different version then you get different code => different ABI.
> We could just remove this. In theory, stage2 won't be affected by the
> bootstrapping compiler at all anyway.
> Alternatively, if we make a config file (as we were discussing for
> putting the paths to gcc and ar in) then it could go in there, and then
> wouldn't be part of the ABI.

Even if Simon prefers the config file approach (and there's still
the question wether the booter version is useful at all), attached
is an old patch in darcs format i found on my disk (dated april
24th 2010). Just in case anyone wants to play with it.

I still have to find my noticeses about wether cBooterVersion affects
more than only the ghc lib.

1 patch for repository http://darcs.volkswurst.de/ghc-6.12/ghc:

Sat Apr 24 20:46:21 CEST 2010  Matthias Kilian <kili@outback.escape.de>
  * Zap cBooterVersion, in an attempt to fix #4012
  Note: this is obviously just a workaround, not a real fix.

New patches:

[Zap cBooterVersion, in an attempt to fix #4012
Matthias Kilian <kili@outback.escape.de>**20100424184621
 Ignore-this: 18bf356e798b3c26bd4c8d2f2bc79789
 Note: this is obviously just a workaround, not a real fix.
] {
hunk ./compiler/ghc.mk 50
 	@echo "cProjectVersionInt    = \"$(ProjectVersionInt)\"" >> $@
 	@echo "cProjectPatchLevel    :: String" >> $@
 	@echo "cProjectPatchLevel    = \"$(ProjectPatchLevel)\"" >> $@
-	@echo "cBooterVersion        :: String" >> $@
-	@echo "cBooterVersion        = \"$(GhcVersion)\"" >> $@
 	@echo "cStage                :: String" >> $@
 	@echo "cStage                = show (STAGE :: Int)" >> $@
 	@echo "cIntegerLibrary       :: String" >> $@
hunk ./compiler/main/DynFlags.hs 2419
 compilerInfo :: [(String, Printable)]
 compilerInfo = [("Project name",                String cProjectName),
                 ("Project version",             String cProjectVersion),
-                ("Booter version",              String cBooterVersion),
                 ("Stage",                       String cStage),
                 ("Have interpreter",            String cGhcWithInterpreter),
                 ("Object splitting",            String cSplitObjs),
hunk ./ghc/Main.hs 646
     do hPutStr stderr "Glasgow Haskell Compiler, Version "
        hPutStr stderr cProjectVersion
        hPutStr stderr ", for Haskell 98, stage "
-       hPutStr stderr cStage
-       hPutStr stderr " booted by GHC version "
-       hPutStrLn stderr cBooterVersion
+       hPutStrLn stderr cStage
 -- We print out a Read-friendly string, but a prettier one than the
 -- Show instance gives us


[Fix the GHC API link in the main doc index.html
Ian Lynagh <igloo@earth.li>**20100422213226] 
Ian Lynagh <igloo@earth.li>**20100422160416] 
[Fix Trac #3950: unifying types of different kinds
 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
 I was assuming that the unifer only unified types of the 
 same kind, but now we can "defer" unsolved constraints that
 invariant no longer holds.  Or at least is's more complicated
 to ensure.  
 This patch takes the path of not assuming the invariant, which
 is simpler and more robust.  See
 Note [Mismatched type lists and application decomposition]
[Fix Trac #3943: incorrect unused-variable warning
 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
 In fixing this I did the usual little bit of refactoring
[Convert boot and boot-pkgs to perl
Ian Lynagh <igloo@earth.li>**20100415143919
 This stops us having to worry about sh/sed/... portability.
[Use $(MAKE), not make, when recursively calling make
Ian Lynagh <igloo@earth.li>**20100415121453] 
[Update the user guide so it talks about the newer "do rec" notation everywhere
Ian Lynagh <igloo@earth.li>**20100416205416
 Some of the problems highlighted in trac #3968.
[Fix typo
Ian Lynagh <igloo@earth.li>**20100416205412] 
[Implement try10Times in Makefile
Ian Lynagh <igloo@earth.li>**20100420165909
 Avoid using seq, as FreeBSD has jot instead.
[Give the right exit code in darcs-all
Ian Lynagh <igloo@earth.li>**20100421171339
 Our END block was calling system, which alters $?. So now we save and
 restore it.
[TAG old-time release
Ian Lynagh <igloo@earth.li>**20100422124334] 
Patch bundle hash:

Reply to: