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