From 06b618affc043f92c8c01e00bbe3ff2fb8fdf6e0 Mon Sep 17 00:00:00 2001 From: sof Date: Mon, 24 Mar 1997 05:01:49 +0000 Subject: [PATCH] [project @ 1997-03-24 05:01:47 by sof] 2.02 fixes --- distrib/Makefile-bin.in | 19 +++--- distrib/RELEASE | 162 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 171 insertions(+), 10 deletions(-) diff --git a/distrib/Makefile-bin.in b/distrib/Makefile-bin.in index c741518..9243850 100644 --- a/distrib/Makefile-bin.in +++ b/distrib/Makefile-bin.in @@ -82,6 +82,7 @@ version = 2.02 PERL = @PerlCmd@ RM = rm -f MV = mv +CP = cp -f LN_S = @LN_S@ CHMOD = chmod INSTALL = @INSTALL@ @@ -137,7 +138,7 @@ config-pkgs :: echo $$"bindir='$(bindir)';" >> bin/$(platform)/$(package)-$(version)/$$i; \ echo $$"libdir='$(real_libdir)';" >> bin/$(platform)/$(package)-$(version)/$$i; \ echo $$"datadir='$(real_datadir)';" >> bin/$(platform)/$(package)-$(version)/$$i; \ - cat bin/$(platform)/$(package)-$(version)/$(package).prl >> 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."; \ done @@ -166,10 +167,10 @@ in-place :: install-dirs :: $(INSTALL_DIR) $(bindir) - (cd lib/$(platform)/$(package)-$(version); find . -type d -exec sh -c '$(INSTALL_DIR) $0 $(real_libdir)/$0' {} \; ) - (cd share/$(package)-$(version); find . -type d -exec sh -c '$(INSTALL_DIR) $0 $(real_datadir)/$0' {} \; ) + (cd lib/$(platform)/$(package)-$(version); find . -type d -exec sh -c '../../../$(INSTALL_DIR) $$0 $(real_libdir)/$$0' {} \; ) + (cd share/$(package)-$(version); find . -type d -exec sh -c '../../$(INSTALL_DIR) $$0 $(real_datadir)/$$0' {} \; ) -install :: config-pkgs mk-version-symlinks install-dirs install-bin install-libs install-data +install :: config-pkgs mk-version-symlinks install-dirs install-bin install-libs install-datas .PHONY: install-bin install-libs install-datas @@ -177,18 +178,18 @@ install-bin: for i in $(PACKAGE_BINS); do \ $(INSTALL_BIN) bin/$(platform)/$(package)-$(version)/$$i $(bindir); \ done; - for in in $(VERSION_SYMLINKS_FOR) ""; do \ - if [ "x$$i" != "x"]; then \ - $(INSTALL_BIN) bin/$(platform)/$(package)-$(version)/$$i $(bindir); \ + for i in $(VERSION_SYMLINKS_FOR) ""; do \ + if [ "x$$i" != "x" ]; then \ + ( cd $(bindir); $(LN_S) $$i $$i-$(version) ); \ fi; \ done install-libs: - (cd lib/$(platform)/$(package)-$(version); find . -type f -exec sh -c '$(INSTALL_LIB) $0 $(real_libdir)/$0' {} \; ) + (cd lib/$(platform)/$(package)-$(version); find . -type f -exec sh -c '$(CP) $$0 $(real_libdir)/$$0' {} \; ) install-datas: - (cd share/$(package)-$(version); find . -type f -exec sh -c '$(INSTALL_DATA) $0 $(real_datadir)/$0' {} \; ) + (cd share/$(package)-$(version); find . -type f -exec sh -c '$(INSTALL_DATA) $$0 $(real_datadir)/$$0' {} \; ) show-install-setup: @echo "Install setup..." diff --git a/distrib/RELEASE b/distrib/RELEASE index 4653a81..3977e1f 100644 --- a/distrib/RELEASE +++ b/distrib/RELEASE @@ -1 +1,161 @@ -ToDo +This is the pre-mangled text of the 2.02-specific part of the +GHC release notes. + +====================================================================== +Release~2.02 is the first release of Glasgow Haskell for Haskell~1.4. + +The announcement for this release is distributed as \tr{ANNOUNCE-2.02} +in the top-level directory. It contains very important caveats about +2.02, which we do not repeat here! + +Information about ``what's ported to which machine'' is in the +Installation Guide. Since 2.01, we've added support for Win32 +(Windows NT and Windows 95). + +%************************************************************************ +%* * +\subsection[2-02-config]{New configuration things in 2.02} +%* * +%************************************************************************ + +%************************************************************************ +%* * +\subsection[2-02-user-visible]{User-visible changes in 2.02, including incompatibilities} +%* * +%************************************************************************ + +GHC~2.02 is a compiler for Haskell~1.4 and, as such, introduces a +bunch of user-visible changes. The GHC user's guide has a section to +help you upgrade your programs to Haskell~1.4 from 1.2; all +user-visible changes are described there (and not repeated here). + +%************************************************************************ +%* * +\subsection[2-02-options]{New or changed GHC command-line options} +%* * +%************************************************************************ + +\begin{itemize} +\item GHC now warns of possibly-incomplete patterns in case expressions +and function bindings. You can suppress these warnings with @-fno-warn-incomplete-patterns@. + +GHC also warns of completely overlapped patterns. You can't switch this off. + +\item GHC can warn of shadowed names, though it does not do so by default. +Just occasionally this shows up +an otherwise hard-to-find bug. To warn of shadowed names use @-fwarn-name-shadowing@ + +\item You can now generate `make' dependencies via the compiler +driver, use the option @-M@ together with the list source files to compute +the dependencies for. By default, the dependencies will be appended to +the file \tr{Makefile} in the current directory. + +\item For hackers, the flag @-dshow-rn-trace@ shows what the renamer is up to. +Sit back and marvel. + +\end{itemize} + + +%************************************************************************ +%* * +\subsection[2-02-new-in-compiler]{New in the compiler proper} +%* * +%************************************************************************ + +\begin{itemize} +\item +Completely new ``make-world'' system, properly documented (at last) in the +installation guide. No Jmakefiles; but you *need* Gnu make +(gmake). The more recent the better (v 3.70+). + +\item +The ``renamer''---the part of the compiler that implements +the Haskell module system---has been completely rewritten, again. + +The format of interface files has changed significantly. Interface files +generated by 2.01 will not work with 2.02. + +\item +Even less special pleading for the Prelude than in 2.01. If you wanted +to write your own Prelude and drop it in, you would have +a really good chance now. +\end{itemize} + + +%************************************************************************ +%* * +\subsection[2-02-new-in-libraries]{In the libraries} +%* * +%************************************************************************ + +The libraries have been completely reorganised. There's a description in +\sectionref{syslibs}. + + +%************************************************************************ +%* * +\subsection[2-02-new-in-syslibs]{In ``hslibs'' libraries} +%* * +%************************************************************************ + + +%************************************************************************ +%* * +\subsection[2-02-new-in-rts]{In the runtime system} +%* * +%************************************************************************ + +\begin{itemize} +\item @ForeignObjs@ are properly deallocated when execution halts, as well +as when the garbage collector spots the @ForeignObj@ as being unreferenced. +This is important if you are using a @ForeignObj@ to refer to +a @COM@ object or other remote resource. You want that resource to be relased +when the program terminates. + +\item Files handles in the IO prelude are implemented using +@ForeignObjs@, and closed when the file handle is unreferenced. This +means that if you open zillions of files then just letting go of the +file handle is enough to close it. +\end{itemize} + +%************************************************************************ +%* * +\subsection[2-02-new-elsewhere]{Other new stuff} +%* * +%************************************************************************ + +2.02 is released together with Green Card, a foreign-language +interface generator for Haskell. More details elsewhere... + + +%************************************************************************ +%* * +\subsection[2-02-troublespots]{Known troublespots} +%* * +%************************************************************************ + +The 2.02 compiler has the following known deficiencies: + +\begin{description} +\item[native code generator, x86:] + +The native code generator for x86 platforms is by default switched +off, as the code the compiler produces with it enabled was discovered +just before releaseing to be wonky. Rather than delay the release +further, GHC on x86 platforms rely on \tr{GCC} as their +backend for now. Hopefully fixed soon. + +\item[Simplifier looping:] + +The simplifier(Glasgow-speak for optimiser) has been observed to get +into a loop in one or two cases. If you should observe this, please +report it as a bug - the work around is to turn off optimisation. + +\item[Undefined @*_vap_info@ symbols:] + +If the linker complains about some undefined @*_vap_info@ symbols when +linking 2.02 compiled programs (very unlikely) - fix this by compiling +the module where the references are coming from with +@-fno-lambda-lifting@. + +\end{description} -- 1.7.10.4