After quite a few cups of coffee "make binary-dist" finally works for
ghc-2.08 on Linux and HP-UX. The following bugs have been fixed
(diff output simply pasted at the end of the mail as Glasgow's mailer
doesn't speak MIME):
* lit-deatify forgets to allocate a buffer for a file name, so
building the documentation failed from time to time. This is
a bug from the "how-did-this-ever-work?"-category. You need
flex to rebuild lit-deatify.c from lit-deatify (or simply add
the two lines by hand :-)
* Some \index{...} commands in the documentations were split over
two lines, resulting in some warnings. Nothing serious, but anyway...
* A \item[foo] was \item{foo}, resulting in an error while building
the documentation.
* Some $$ have to be protected from expansion in newer Bashs. This
has to be done in mk/target.mk *and* distrib/Makefile-bin.in.
The former bug has been reported before.
* Two patches sent by Sigbjorn (mangler and PackedString stuff)
Because it is very likely that the TABs in the following diffs get lost
(i.e. are converted to spaces), it's available in its full glory at:
http://www.pms.informatik.uni-muenchen.de/mitarbeiter/panne/diff-2.08
-----------------------------------------------------------------------
diff -c -r fptools.orig/literate/lit-deatify/lit-deatify.flex
fptools/literate/lit-deatify/lit-deatify.flex
*** fptools.orig/literate/lit-deatify/lit-deatify.flex Fri Jun 20 11:05:45 1997
--- fptools/literate/lit-deatify/lit-deatify.flex Thu Oct 16 14:17:24 1997
***************
*** 153,158 ****
--- 153,160 ----
}
<Norm>^"srcfile!_!"(.+)"!_!"([0-9]+)"!_!"\n {
+ if (srcfile_name != NULL) free(srcfile_name);
+ srcfile_name = (char *)malloc(yyleng); /* a little too big, but who
+cares? :-) */
sscanf(yytext+10,"%[^!]!_!%d", srcfile_name, &lineno);
if (lineno > 0) {
ECHO;
diff -c -r fptools.orig/docs/installing.lit fptools/docs/installing.lit
*** fptools.orig/docs/installing.lit Fri Oct 3 17:22:20 1997
--- fptools/docs/installing.lit Thu Oct 16 14:34:35 1997
***************
*** 283,291 ****
%-------------------------------------------------------------------
\item[\tr{i386-*-freebsd} (PCs running FreeBSD 2.2 or higher, and
! NetBSD/OpenBSD using FreeBSD emulation):] \index{i386-*-freebsd:
! registerised port} GHC~2.08 works registerised. Supports same set of
! bundles as the above.
\index{i386-*-freebsd: profiling---yes}
\index{i386-*-freebsd: concurrent---yes}
--- 283,291 ----
%-------------------------------------------------------------------
\item[\tr{i386-*-freebsd} (PCs running FreeBSD 2.2 or higher, and
! NetBSD/OpenBSD using FreeBSD emulation):]
! \index{i386-*-freebsd: registerised port} GHC~2.08 works registerised.
! Supports same set of bundles as the above.
\index{i386-*-freebsd: profiling---yes}
\index{i386-*-freebsd: concurrent---yes}
***************
*** 1460,1466 ****
to happen that you can read and understand any wierd special cases yourself.
\begin{description}
! \item{@HS_PROG@.} If @HS_PROG@ is defined, you get rules with the
following targets:
\begin{description}
\item[@HS_PROG@] itself. This rule links @$(OBJS)@ with the Haskell
--- 1460,1466 ----
to happen that you can read and understand any wierd special cases yourself.
\begin{description}
! \item[@HS_PROG@.] If @HS_PROG@ is defined, you get rules with the
following targets:
\begin{description}
\item[@HS_PROG@] itself. This rule links @$(OBJS)@ with the Haskell
diff -c -r fptools.orig/ghc/docs/users_guide/prof-output.lit
fptools/ghc/docs/users_guide/prof-output.lit
*** fptools.orig/ghc/docs/users_guide/prof-output.lit Thu Jun 27 17:57:48 1996
--- fptools/ghc/docs/users_guide/prof-output.lit Thu Oct 16 14:27:03 1997
***************
*** 40,47 ****
How many dictionaries this cost centre evaluated.
\end{description}
! In addition you can use the \tr{-P} RTS option \index{\tr{-P<sort> RTS
! option (profiling)}} to get the following additional information:
\begin{description}
%-------------------------------------------------------------
\item[\tr{ticks}:] The raw number of time ``ticks'' which were
--- 40,48 ----
How many dictionaries this cost centre evaluated.
\end{description}
! In addition you can use the \tr{-P} RTS option
! \index{\tr{-P<sort> RTS option (profiling)}} to get the following
! additional information:
\begin{description}
%-------------------------------------------------------------
\item[\tr{ticks}:] The raw number of time ``ticks'' which were
diff -c -r fptools.orig/distrib/Makefile-bin.in fptools/distrib/Makefile-bin.in
*** fptools.orig/distrib/Makefile-bin.in Thu Oct 9 17:22:58 1997
--- fptools/distrib/Makefile-bin.in Thu Oct 16 16:35:21 1997
***************
*** 139,148 ****
$(RM) bin/$(platform)/$(package)-$(version)/$$i.bak; \
test -f bin/$(platform)/$(package)-$(version)/$$i && $(MV)
bin/$(platform)/$(package)-$(version)/$$i
bin/$(platform)/$(package)-$(version)/$$i.bak; \
echo "#! $(PERL)" >
bin/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"bindir='$(bindir)';" >>
bin/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"libdir='$(real_libdir)';" >>
bin/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"libexecdir='$(real_libdir)';" >>
bin/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"datadir='$(real_datadir)';" >>
bin/$(platform)/$(package)-$(version)/$$i ; \
cat bin/$(platform)/$(package)-$(version)/$$i.prl >>
bin/$(platform)/$(package)-$(version)/$$i ; \
$(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \
echo "Done."; \
--- 139,148 ----
$(RM) bin/$(platform)/$(package)-$(version)/$$i.bak; \
test -f bin/$(platform)/$(package)-$(version)/$$i && $(MV)
bin/$(platform)/$(package)-$(version)/$$i
bin/$(platform)/$(package)-$(version)/$$i.bak; \
echo "#! $(PERL)" >
bin/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"bindir='$(bindir)';" >>
bin/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"libdir='$(real_libdir)';" >>
bin/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"libexecdir='$(real_libdir)';" >>
bin/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"datadir='$(real_datadir)';" >>
bin/$(platform)/$(package)-$(version)/$$i ; \
cat bin/$(platform)/$(package)-$(version)/$$i.prl >>
bin/$(platform)/$(package)-$(version)/$$i ; \
$(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \
echo "Done."; \
***************
*** 152,163 ****
$(RM) lib/$(platform)/$(package)-$(version)/$$i.bak; \
test -f lib/$(platform)/$(package)-$(version)/$$i && $(MV)
lib/$(platform)/$(package)-$(version)/$$i
lib/$(platform)/$(package)-$(version)/$$i.bak; \
echo "#! $(PERL)" >
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"bindir='$(bindir)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"libdir='$(real_libdir)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"libexecdir='$(real_libdir)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"datadir='$(real_datadir)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"SED='$(SED)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo $$"RAWCPP='$(RAWCPP)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
cat lib/$(platform)/$(package)-$(version)/$$i.prl >>
lib/$(platform)/$(package)-$(version)/$$i; \
$(CHMOD) $(BIN_PERMS) lib/$(platform)/$(package)-$(version)/$$i; \
echo "Done."; \
--- 152,163 ----
$(RM) lib/$(platform)/$(package)-$(version)/$$i.bak; \
test -f lib/$(platform)/$(package)-$(version)/$$i && $(MV)
lib/$(platform)/$(package)-$(version)/$$i
lib/$(platform)/$(package)-$(version)/$$i.bak; \
echo "#! $(PERL)" >
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"bindir='$(bindir)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"libdir='$(real_libdir)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"libexecdir='$(real_libdir)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"datadir='$(real_datadir)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"SED='$(SED)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
! echo '$$'"RAWCPP='$(RAWCPP)';" >>
lib/$(platform)/$(package)-$(version)/$$i ; \
cat lib/$(platform)/$(package)-$(version)/$$i.prl >>
lib/$(platform)/$(package)-$(version)/$$i; \
$(CHMOD) $(BIN_PERMS) lib/$(platform)/$(package)-$(version)/$$i; \
echo "Done."; \
diff -c -r fptools.orig/mk/target.mk fptools/mk/target.mk
*** fptools.orig/mk/target.mk Tue Oct 7 17:14:04 1997
--- fptools/mk/target.mk Thu Oct 16 14:18:14 1997
***************
*** 479,488 ****
@for i in $(INSTALL_SCRIPTS); do \
$(RM) $$i.tmp; \
echo "#! $(PERL)" > $$i.tmp ; \
! echo $$"bindir='$(bindir)';" >> $$i.tmp ; \
! echo $$"libdir='$(libdir)';" >> $$i.tmp ; \
! echo $$"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
! echo $$"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
echo $(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_OPTS)) $$i.tmp
$(bindir)/$$i ; \
$(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_BIN_OPTS)) $$i.tmp
$(bindir)/$$i ; \
--- 479,488 ----
@for i in $(INSTALL_SCRIPTS); do \
$(RM) $$i.tmp; \
echo "#! $(PERL)" > $$i.tmp ; \
! echo '$$'"bindir='$(bindir)';" >> $$i.tmp ; \
! echo '$$'"libdir='$(libdir)';" >> $$i.tmp ; \
! echo '$$'"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
! echo '$$'"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
echo $(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_OPTS)) $$i.tmp
$(bindir)/$$i ; \
$(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_BIN_OPTS)) $$i.tmp
$(bindir)/$$i ; \
***************
*** 508,517 ****
@for i in $(INSTALL_LIB_SCRIPTS); do \
$(RM) $$i.tmp; \
echo "#! $(PERL)" > $$i.tmp ; \
! echo $$"bindir='$(bindir)';" >> $$i.tmp ; \
! echo $$"libdir='$(libdir)';" >> $$i.tmp ; \
! echo $$"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
! echo $$"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libdir) ; \
$(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libdir)/$$i ; \
--- 508,517 ----
@for i in $(INSTALL_LIB_SCRIPTS); do \
$(RM) $$i.tmp; \
echo "#! $(PERL)" > $$i.tmp ; \
! echo '$$'"bindir='$(bindir)';" >> $$i.tmp ; \
! echo '$$'"libdir='$(libdir)';" >> $$i.tmp ; \
! echo '$$'"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
! echo '$$'"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libdir) ; \
$(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libdir)/$$i ; \
***************
*** 537,546 ****
@for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
$(RM) $$i.tmp; \
echo "#! $(PERL)" > $$i.tmp ; \
! echo $$"bindir='$(bindir)';" >> $$i.tmp ; \
! echo $$"libdir='$(libdir)';" >> $$i.tmp ; \
! echo $$"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
! echo $$"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libexecdir) ; \
$(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libexecdir)/$$i ; \
--- 537,546 ----
@for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
$(RM) $$i.tmp; \
echo "#! $(PERL)" > $$i.tmp ; \
! echo '$$'"bindir='$(bindir)';" >> $$i.tmp ; \
! echo '$$'"libdir='$(libdir)';" >> $$i.tmp ; \
! echo '$$'"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
! echo '$$'"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libexecdir) ; \
$(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libexecdir)/$$i ; \
diff -c -r fptools.orig/ghc/driver/ghc-asm.lprl fptools/ghc/driver/ghc-asm.lprl
*** fptools.orig/ghc/driver/ghc-asm.lprl Thu Sep 4 01:49:16 1997
--- fptools/ghc/driver/ghc-asm.lprl Thu Oct 16 14:23:44 1997
***************
*** 976,981 ****
--- 976,982 ----
$c =~
s/^\s+ldil.*\n\s+ldo.*\n\s+bv.*\n(.*\n)?\s+\.EXIT/$1\t.EXIT/;
} elsif ( $TargetPlatform =~ /^i386-/ ) {
$c =~ s/^\tmovl \$${T_US}${symb}_fast\d+,\%edx\n\tjmp
\*\%edx\n//;
+ $c =~ s/^\tmovl \$${T_US}${symb}_fast\d+,\%ecx\n\tjmp
+\*\%ecx\n//;
$c =~ s/^\tmovl \$${T_US}${symb}_fast\d+,\%eax\n\tjmp
\*\%eax\n//;
} elsif ( $TargetPlatform =~ /^mips-/ ) {
$c =~ s/^\tjmp \$31,\(\$27\),0\n\t\.align 4\n\t\.end/\t.align
4\n\t.end/;
diff -c -r fptools.orig/hslibs/ghc/src/PackedString.lhs
fptools/hslibs/ghc/src/PackedString.lhs
*** fptools.orig/hslibs/ghc/src/PackedString.lhs Tue Aug 26 00:45:49 1997
--- fptools/hslibs/ghc/src/PackedString.lhs Thu Oct 16 14:23:42 1997
***************
*** 609,615 ****
-}
runST (
let
! (rle,len_filtered) = filter_ps len# 0# 0# []
len_filtered# = case len_filtered of { I# x# -> x#}
in
if len# ==# len_filtered# then
--- 609,615 ----
-}
runST (
let
! (rle,len_filtered) = filter_ps (len# -# 1#) 0# 0# []
len_filtered# = case len_filtered of { I# x# -> x#}
in
if len# ==# len_filtered# then
-----------------------------------------------------------------------
--
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