PERL = @PerlCmd@
RM = rm -f
MV = mv
+CP = cp -f
LN_S = @LN_S@
CHMOD = chmod
INSTALL = @INSTALL@
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
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
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..."
-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}