Lennart Augustsson reported a bug whereby some of your configuration
instructions were ignored and the system proceeded to build >100MB of
stuff!
Enclosed is a shar file with a small patch to fix this. Also
available from the usual archive sites.
In case you missed the announcement, version 0.06 is a pre-release for
hackers, porters, and enthusiasts. It is unlikely to be useful to
someone just trying to get a Haskell program running. (I can
recommend Lennart's HBC system for that :-)
Will Partain
#!/bin/sh
# This is a shell archive (produced by shar 3.49)
# To extract the files from this archive, save it to a file, remove
# everything above the "!/bin/sh" line above, and type "sh file_name".
#
# made 03/30/1992 08:38 UTC by partain@tegua
# Source directory /tmp_mnt/local/fp/src
#
# existing files will NOT be overwritten unless -c is specified
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 6257 -rw-rw-r-- ghc-0.06-patch-1
#
# ============= ghc-0.06-patch-1 ==============
if test -f 'ghc-0.06-patch-1' -a X"$1" != X"-c"; then
echo 'x - skipping ghc-0.06-patch-1 (File already exists)'
else
echo 'x - extracting ghc-0.06-patch-1 (Text)'
sed 's/:X//' << 'SHAR_EOF' > 'ghc-0.06-patch-1' &&
1. Apply this patch with
X
X % cd top-of-your-GHC-world
X % patch -p0 < this-patch-file
X
2. Delete the file lib/split_hc. (If you've already built things
X successfully, don't worry about this.)
X
3. The main problem is that {lib,runtime}/Jmakefile were overriding
X the chosen # of garbage collectors to compile for (with
X JMAKE_DEFINES). So you would get a *lot* more than you bargained
X for!
X
X If you've already tried building things & you only wanted the
X two-space collector ("std" setup), just delete all the junk
X associated with the other collectors. Something like this will
X do:
X
X % cd top-of-GHC-world
X % (cd lib; rm */*_1s.o */*_du.o */*_ap.o)
X % (cd runtime; rm */*_1s.sun?.o */*_du.sun?.o */*_ap.sun?.o)
X
X (You get the idea...) In each of those directories, also do:
X
X % make Makefile
X % make Makefile # yes, *twice*
X
4. You won't hurt anything by spinning over the whole tree, thusly:
X
X % cd top-of-GHC-world
X % make Makefile
X % make Makefiles
X % make depend
X % make all
X
diff -rc1 /local/fp2/ghc-0.06/PATCHLEVEL ./PATCHLEVEL
*** /local/fp2/ghc-0.06/PATCHLEVEL Fri Feb 14 12:03:55 1992
--- ./PATCHLEVEL Mon Mar 30 09:17:09 1992
***************
*** 1 ****
! The Glorious New Glasgow Haskell Compiler, version 0.06, patchlevel 0
--- 1 ----
! The Glorious New Glasgow Haskell Compiler, version 0.06, patchlevel 1
diff -rc1 /local/fp2/ghc-0.06/compiler/Jmakefile ./compiler/Jmakefile
*** /local/fp2/ghc-0.06/compiler/Jmakefile Fri Mar 27 19:19:41 1992
--- ./compiler/Jmakefile Sun Mar 29 13:57:24 1992
***************
*** 319,321 ****
X HaskellCompileWithMoreHeap(deSugar/Match,5000000)
! HaskellCompileWithMoreHeap(main/Main,6500000)
X HaskellCompileWithMoreHeap(prelude/AbsPrel,5000000)
--- 319,321 ----
X HaskellCompileWithMoreHeap(deSugar/Match,5000000)
! HaskellCompileWithMoreHeap(main/Main,7000000)
X HaskellCompileWithMoreHeap(prelude/AbsPrel,5000000)
diff -rc1 /local/fp2/ghc-0.06/lib/Jmakefile ./lib/Jmakefile
*** /local/fp2/ghc-0.06/lib/Jmakefile Fri Mar 20 16:12:57 1992
--- ./lib/Jmakefile Mon Mar 30 08:47:24 1992
***************
*** 32,34 ****
X
! JMAKE_DEFINES = -DGC2s_Wanted -DGC1s_Wanted -DGCdu_Wanted -DGCap_Wanted
X
--- 32,34 ----
X
! /* JMAKE_DEFINES = -DGC2s_Wanted -DGC1s_Wanted -DGCdu_Wanted -DGCap_Wanted */
X
***************
*** 57,58 ****
--- 57,60 ----
X chmod a+x $@
+
+ ExtraStuffToClean( ./split_hc )
X
diff -rc1 /local/fp2/ghc-0.06/lib/split_hc.prl ./lib/split_hc.prl
*** /local/fp2/ghc-0.06/lib/split_hc.prl Fri Mar 27 08:41:49 1992
--- ./lib/split_hc.prl Sun Mar 29 14:28:33 1992
***************
*** 104,105 ****
--- 104,106 ----
X print JMKF "\$(SRCS_HC_${f_base_fileonly}) : ${f_base}.hc\n";
+ print JMKF "\t\$(RM) ${f_base}.jm \$(SRCS_HC_${f_base_fileonly})\n";
X print JMKF "\t./split_hc ${f_base}.hc\n\n";
***************
*** 107,109 ****
X # ... and the "clean" line for it...
! print JMKF "ExtraStuffToClean( \$(SRCS_HC_${f_base_fileonly}) )\n";
X
--- 108,110 ----
X # ... and the "clean" line for it...
! print JMKF "ExtraStuffToClean( \$(SRCS_HC_${f_base_fileonly}) ${f_base}.jm
)\n";
X
diff -rc1 /local/fp2/ghc-0.06/mkworld/AllProjects.tmpl
./mkworld/AllProjects.tmpl
*** /local/fp2/ghc-0.06/mkworld/AllProjects.tmpl Wed Mar 25 13:04:25 1992
--- ./mkworld/AllProjects.tmpl Sun Mar 29 14:35:14 1992
***************
*** 136,138 ****
X #ifndef InstBinFlags
! #define InstBinFlags -m 0555 InstOwner InstGroup InstFileFlags InstStrip
X #endif
--- 136,138 ----
X #ifndef InstBinFlags
! #define InstBinFlags -m 0755 InstOwner InstGroup InstFileFlags InstStrip
X #endif
***************
*** 143,145 ****
X #ifndef InstScriptFlags
! #define InstScriptFlags -m 0555 InstOwner InstGroup InstFileFlags
X #endif
--- 143,145 ----
X #ifndef InstScriptFlags
! #define InstScriptFlags -m 0755 InstOwner InstGroup InstFileFlags
X #endif
***************
*** 146,148 ****
X #ifndef InstLibFlags
! #define InstLibFlags -m 0444 InstOwner InstGroup InstFileFlags
X #endif
--- 146,148 ----
X #ifndef InstLibFlags
! #define InstLibFlags -m 0644 InstOwner InstGroup InstFileFlags
X #endif
***************
*** 149,151 ****
X #ifndef InstDataLibFlags
! #define InstDataLibFlags -m 0444 InstOwner InstGroup InstFileFlags
X #endif
--- 149,151 ----
X #ifndef InstDataLibFlags
! #define InstDataLibFlags -m 0644 InstOwner InstGroup InstFileFlags
X #endif
***************
*** 152,154 ****
X #ifndef InstIncFlags
! #define InstIncFlags -m 0444 InstOwner InstGroup InstFileFlags
X #endif
--- 152,154 ----
X #ifndef InstIncFlags
! #define InstIncFlags -m 0644 InstOwner InstGroup InstFileFlags
X #endif
***************
*** 155,157 ****
X #ifndef InstDataFlags
! #define InstDataFlags -m 0444 InstOwner InstGroup InstFileFlags
X #endif
--- 155,157 ----
X #ifndef InstDataFlags
! #define InstDataFlags -m 0644 InstOwner InstGroup InstFileFlags
X #endif
***************
*** 158,160 ****
X #ifndef InstManFlags
! #define InstManFlags -m 0444 InstOwner InstGroup InstFileFlags
X #endif
--- 158,160 ----
X #ifndef InstManFlags
! #define InstManFlags -m 0644 InstOwner InstGroup InstFileFlags
X #endif
diff -rc1 /local/fp2/ghc-0.06/runtime/Jmakefile ./runtime/Jmakefile
*** /local/fp2/ghc-0.06/runtime/Jmakefile Wed Mar 18 19:10:06 1992
--- ./runtime/Jmakefile Mon Mar 30 09:11:39 1992
***************
*** 19,21 ****
X
! JMAKE_DEFINES = -DGC2s_Wanted -DGC1s_Wanted -DGCdu_Wanted -DGCap_Wanted
X
--- 19,21 ----
X
! /* JMAKE_DEFINES = -DGC2s_Wanted -DGC1s_Wanted -DGCdu_Wanted -DGCap_Wanted */
X
***************
*** 265,267 ****
X AllTarget(objs-$(BUILDPLATFORM)/libHSrts/**/gc/**/opt.a) @@\
! ExtraStuffToClean(objs-$(BUILDPLATFORM)/libHSrts/**/gc/**/opt.a) @@\
X objs-$(BUILDPLATFORM)/libHSrts/**/gc/**/opt.a:: objlist @@\
--- 265,267 ----
X AllTarget(objs-$(BUILDPLATFORM)/libHSrts/**/gc/**/opt.a) @@\
! ExtraStuffToClean(objlist objs-$(BUILDPLATFORM)/libHSrts/**/gc/**/opt.a) @@\
X objs-$(BUILDPLATFORM)/libHSrts/**/gc/**/opt.a:: objlist @@\
***************
*** 356,357 ****
--- 356,358 ----
X */
+ /*
X ExtraStuffToBeVeryClean( $(SRCS_C) )
***************
*** 358,363 ****
X ExtraStuffToBeVeryClean( $(STD_VERY_CLEAN) )
!
! clean ::
! (cd objs-sun4; $(RM) *.o)
! (cd objs-sun3; $(RM) *.o)
X
--- 359,361 ----
X ExtraStuffToBeVeryClean( $(STD_VERY_CLEAN) )
! */
X
SHAR_EOF
chmod 0664 ghc-0.06-patch-1 ||
echo 'restore of ghc-0.06-patch-1 failed'
Wc_c="`wc -c < 'ghc-0.06-patch-1'`"
test 6257 -eq "$Wc_c" ||
echo 'ghc-0.06-patch-1: original size 6257, current size' "$Wc_c"
fi
exit 0