Installing ghc-2.06 with ghc-0.29 on HP-UX made some trouble: After hsc
was built (with 0.29), compiling the 2.06 libs with this fresh 2.06
resulted in some core dumps from hsc(-2.06). Quite weird, because the
installation of 2.05 with 0.29 some time ago went quite smoothly. A funny
ghc-0.29 bug? But anyway, this doesn't matter anymore...

So I decided to bite the bullet and give bootstrapping a try: First a
temporary ghc-2.06 was built using ghc-2.05, then ghc-2.06 booted itself,
and finally another round was made to see if a fixpoint was reached (cf.
gcc's installation). After this almost never-ending procedure, I tortured
our Linux-boxes in the same, almost inhuman way. Here the results of
approximately 10 cups of coffee:

   * Some imports are missing in the compiler sources. See attached patch.

   * The libraries (Posix and Socket stuff) need *two* "make all" to
     settle. Typical message from the second round:
        ghc: module version changed to 2; reason: usages changed

   * On Linux, hsc grew about 800k compared to the hsc compiled with 0.29.
     The size of the libraries stayed almost the same.  Hmmm...?!

   * On HP-UX, hsc's size remained almost constant (it shrank about 16k)
     compared to the hsc compiled with 2.05.  The libraries remained
     fairly constant, too.

Binary snapshots for both platforms will be available at

   ftp://ftp.informatik.uni-muenchen.de/local/pms/

very soon (= a few hours/days). As my trust in ghc-0.29 slightly
diminished, from now on all snapshots will be the results of a similar
bootstrapping process.

(When Sigbjorn's hacking credits for Haggis have increased up to the
critical mass, we can finally say goodbye to 0.29... :-)

A final point: Patches should better be sent as MIME-attachments, not by
cut-and-paste into the mailer. The latter way, tabs probably won't make
it to the yearning patcher. (I hope I remember that myself next time.)

And a request to the Happy-people: Please make Happy understand some kind
of comments in the specification.  Using Haskell comments in code blocks
from previous grammar rules (the cunning trick used in ghc's sources)
is quite awkward if one moves the rules around (and of course forgets to
move the corresponding comment with them).

Cheers,
Sven "caffeine" Panne


-- 
Sven Panne                                        Tel.: +49/89/2178-2235
LMU, Institut fuer Informatik                     FAX : +49/89/2178-2211
LFE Programmier- und Modellierungssprachen              Oettingenstr. 67
mailto:[EMAIL PROTECTED]            D-80538 Muenchen
http://www.pms.informatik.uni-muenchen.de/mitarbeiter/panne
diff -r -c fptools.old/ghc/compiler/coreSyn/CoreLint.lhs 
fptools.new/ghc/compiler/coreSyn/CoreLint.lhs
*** fptools.old/ghc/compiler/coreSyn/CoreLint.lhs       Wed Sep 10 14:30:41 1997
--- fptools.new/ghc/compiler/coreSyn/CoreLint.lhs       Fri Sep 19 13:33:52 1997
***************
*** 12,17 ****
--- 12,18 ----
      ) where
  
  IMP_Ubiq()
+ IMPORT_1_3(IO(hPutStr,stderr))
  
  import CmdLineOpts      ( opt_D_show_passes, opt_PprUserLength, opt_DoCoreLinting )
  import CoreSyn
diff -r -c fptools.old/ghc/compiler/typecheck/TcDeriv.lhs 
fptools.new/ghc/compiler/typecheck/TcDeriv.lhs
*** fptools.old/ghc/compiler/typecheck/TcDeriv.lhs      Fri Sep  5 18:24:05 1997
--- fptools.new/ghc/compiler/typecheck/TcDeriv.lhs      Fri Sep 19 13:33:53 1997
***************
*** 44,50 ****
  import PrelInfo               ( needsDataDeclCtxtClassKeys )
  import Maybes         ( maybeToBool )
  import Name           ( isLocallyDefined, getSrcLoc, ExportFlag(..), Provenance, 
!                         Name{--O only-}, SYN_IE(Module)
                        )
  import Outputable     ( PprStyle(..), Outputable(..){-instances e.g., (,)-} )
  import PprType                ( GenType, GenTyVar, GenClass, TyCon )
--- 44,50 ----
  import PrelInfo               ( needsDataDeclCtxtClassKeys )
  import Maybes         ( maybeToBool )
  import Name           ( isLocallyDefined, getSrcLoc, ExportFlag(..), Provenance, 
!                         Name{--O only-}, SYN_IE(Module), NamedThing(..)
                        )
  import Outputable     ( PprStyle(..), Outputable(..){-instances e.g., (,)-} )
  import PprType                ( GenType, GenTyVar, GenClass, TyCon )
diff -r -c fptools.old/ghc/compiler/typecheck/Unify.lhs 
fptools.new/ghc/compiler/typecheck/Unify.lhs
*** fptools.old/ghc/compiler/typecheck/Unify.lhs        Fri Sep  5 18:24:20 1997
--- fptools.new/ghc/compiler/typecheck/Unify.lhs        Fri Sep 19 13:33:53 1997
***************
*** 19,25 ****
  -- friends: 
  import TcMonad
  import Type   ( GenType(..), typeKind, mkFunTy, getFunTy_maybe, splitAppTys )
! import TyCon  ( TyCon, mkFunTyCon, isTupleTyCon, tyConArity )
  import Class  ( GenClass )
  import TyVar  ( GenTyVar(..), SYN_IE(TyVar), tyVarKind )
  import TcType ( SYN_IE(TcType), TcMaybe(..), SYN_IE(TcTauType), SYN_IE(TcTyVar),
--- 19,25 ----
  -- friends: 
  import TcMonad
  import Type   ( GenType(..), typeKind, mkFunTy, getFunTy_maybe, splitAppTys )
! import TyCon  ( TyCon, mkFunTyCon, isTupleTyCon, tyConArity, SYN_IE(Arity) )
  import Class  ( GenClass )
  import TyVar  ( GenTyVar(..), SYN_IE(TyVar), tyVarKind )
  import TcType ( SYN_IE(TcType), TcMaybe(..), SYN_IE(TcTauType), SYN_IE(TcTyVar),
diff -r -c fptools.old/happy/src/Makefile fptools.new/happy/src/Makefile
*** fptools.old/happy/src/Makefile      Thu Sep 11 16:57:29 1997
--- fptools.new/happy/src/Makefile      Fri Sep 19 14:53:02 1997
***************
*** 6,12 ****
  
  HAPPY    = happy
  
! MKDEPENDHS      := $(HC)
  
  VERSION  = 1.3
  HAPPYLIB = $(FPTOOLS_TOP_ABS)/happy/templates
--- 6,15 ----
  
  HAPPY    = happy
  
! HC=$(WithGhcHc)
! ifeq ($(Ghc2_0),NO)
! MKDEPENDHS      = $(MKDEPENDHS_1_2)
! endif
  
  VERSION  = 1.3
  HAPPYLIB = $(FPTOOLS_TOP_ABS)/happy/templates
***************
*** 40,45 ****
--- 43,49 ----
  
  boot ::
        if test -d $(FPTOOLS_TOP)/ghc; then \
+               (cd $(FPTOOLS_TOP)/ghc/utils/unlit && $(MAKE) boot); \
                (cd $(FPTOOLS_TOP)/ghc/driver && $(MAKE) boot); \
                (cd $(FPTOOLS_TOP)/ghc/utils/mkdependHS && $(MAKE) boot) \
        fi

Reply via email to