[project @ 1998-01-30 17:01:49 by simonm]
[ghc-hetmet.git] / ghc / docs / users_guide / 2-01-notes.lit
diff --git a/ghc/docs/users_guide/2-01-notes.lit b/ghc/docs/users_guide/2-01-notes.lit
deleted file mode 100644 (file)
index 5ac4d4c..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-Release~2.01 is the first release of Glasgow Haskell for Haskell~1.3.
-It represents a major step forward in GHC development since GHC~0.26
-(July 1995).  Note that we are also releasing GHC~0.29, the current
-state-of-play with the Haskell~1.2 compiler---at the same time as
-2.01.
-
-The announcement for this release is distributed as \tr{ANNOUNCE-2.01}
-in the top-level directory.  It contains very important caveats about
-2.01, which we do not repeat here!
-
-Information about ``what's ported to which machine'' is in the
-Installation Guide.  Since 0.26, we've improved our support for iX86
-(Intel) boxes, notably those running Linux.
-
-%************************************************************************
-%*                                                                      *
-\subsection[2-01-config]{New configuration things in 2.01}
-%*                                                                      *
-%************************************************************************
-
-%************************************************************************
-%*                                                                      *
-\subsection[2-01-user-visible]{User-visible changes in 2.01, including incompatibilities}
-%*                                                                      *
-%************************************************************************
-
-GHC~2.01 is a compiler for Haskell~1.3 and, as such, introduces many
-user-visible changes.  The GHC user's guide has a section to help you
-upgrade your programs to Haskell~1.3; all user-visible changes
-are described there (and not repeated here).
-
-%************************************************************************
-%*                                                                      *
-\subsection[2-01-options]{New or changed GHC command-line options}
-%*                                                                      *
-%************************************************************************
-
-A new flag, \tr{-recomp} invokes the new ``recompilation checker.''
-We recommend that you use it whenever you use `make' to build your
-Haskell programs.  Please see the User's Guide for details.
-
-The flags \tr{-fomit-derived-read} and
-\tr{-fomit-reexported-instances} have died; there is no longer any
-need for them.
-
-%************************************************************************
-%*                                                                      *
-\subsection[2-01-new-in-compiler]{New in the compiler proper}
-%*                                                                      *
-%************************************************************************
-
-Substantially rewritten.  Notable points:
-\begin{itemize}
-\item
-The typechecker, besides doing all the new 1.3
-features (constructor classes, records, etc.), has been made
-ready to do linear types (e.g., there are now ``usage
-variables'' as well as ``type variables'').
-
-\item
-The Core language now has one constructor for lambdas
-(\tr{Lam}; rather than two, \tr{CoLam} and \tr{CoTyLam});
-also, one constructor for applications (\tr{App}, rather
-than two, \tr{CoApp} and \tr{CoTyApp}).
-
-Consequently, new more-general datatypes for binders and
-arguments now exist (\tr{CoreBinder} and \tr{CoreArg},
-respectively).
-
-Again, the Core language is now ``linear types''-ready
-(though the work hasn't been done yet).
-
-A new Core constructor, \tr{Coerce}, exists to support the
-1.3 \tr{newtype} construct.
-
-\item
-The ``renamer''---the part of the compiler that implements
-the Haskell module system---has been completely rewritten.
-
-In part, this is because the 1.3 module system is radically
-changed from 1.2, even if the user is unlikely to notice.
-
-We've implemented the new system with a ``go to the
-horse's mouth'' scheme; that is, to discover the facts about
-an entity \tr{Foo.bar}, we {\em always} go to the interface
-for module \tr{Foo}; hence, we can never get duff information
-about \tr{bar} from some intermediary.
-
-Interface files are no longer mandated by the language, so
-they are completely different in 2.01 compared to 0.2x.  They
-will very likely change again.  All processing of interface
-files is done in Haskell now (the most likely reason why GHC
-has slowed down :-().
-
-\item
-Much less special pleading for the Prelude.  If you wanted
-to write your own Prelude and drop it in, you would have
-a fighting chance now.
-
-\item
-No more `make' dependency loops!  (Hooray!) The whole compiler
-will build in one `make' run, no fuss or bother.
-\end{itemize}
-
-%************************************************************************
-%*                                                                      *
-\subsection[2-01-new-in-libraries]{In the ``required'' libraries (incl. Prelude)}
-%*                                                                      *
-%************************************************************************
-
-We support standard 1.3 monadic I/O, to the best of our knowledge.
-
-The proposal for \tr{LibPosix} didn't make it into Haskell 1.3 I/O.
-So it's now a system library, \tr{-syslib posix}.  (And, of course,
-the \tr{Lib} prefix is gone.)
-
-%************************************************************************
-%*                                                                      *
-\subsection[2-01-new-in-glaexts]{New in ``Glasgow extensions'' library things}
-%*                                                                      *
-%************************************************************************
-
-The @PreludeGlaMisc@ and @PreludePrimIO@ interfaces have died.
-Use @PreludeGlaST@ instead.
-
-We don't really know what our interfaces-to-nonstandard-things will
-eventually look like...
-
-MallocPtrs now called ForeignObjs
-
-The @_PackedString@ gunk (with leading underscores) is gone.  Just
-\tr{import PackedString} and use ``normal'' names.
-
-All of the following are {\em gone}:
-\begin{verbatim}
-data _FILE  -- corresponds to a "FILE *" in C
-
-fclose  :: _FILE -> PrimIO Int
-fdopen  :: Int -> String -> PrimIO _FILE
-fflush  :: _FILE -> PrimIO Int
-fopen   :: String -> String -> PrimIO _FILE
-fread   :: Int -> Int -> _FILE -> PrimIO (Int, _ByteArray Int)
-freopen :: String -> String -> _FILE -> PrimIO _FILE
-fwrite  :: _ByteArray Int -> Int -> Int -> _FILE -> PrimIO Int
-
-appendChanPrimIO :: String -> String -> PrimIO ()
-appendFilePrimIO :: String -> String -> PrimIO ()
-getArgsPrimIO   :: PrimIO [String]
-readChanPrimIO  :: String -> PrimIO String
-\end{verbatim}
-
-%************************************************************************
-%*                                                                      *
-\subsection[2-01-new-in-syslibs]{In the ``system'' libraries}
-%*                                                                      *
-%************************************************************************
-
-The ``system'' libraries are no longer part of GHC (they lived in
-\tr{ghc/lib/}); they have been lifted out into a subsystem in their
-own right (they live in \tr{hslibs}).
-
-Of course, a GHC distribution will ``happen'' to have these libraries
-included; however, we hope the libraries will evolve into a large,
-flourishing, independently-maintained, and independently-distributed
-body of code---preferably compiler-independent, too!
-
-Renamings in the GHC system library (\tr{hslibs/ghc/}): The function
-\tr{BitSet.singletonBS} is now called \tr{unitBS}.  Similarly,
-\tr{FiniteMap.singletonFM} is now \tr{unitFM}.  \tr{Set.singletonSet}
-lingers briefly; \tr{unitSet} is also available now.
-
-We are {\em not} up-to-date with the HBC-for-1.3's HBC library (the source
-hasn't been released yet).
-
-The \tr{Either}, \tr{Maybe}, and \tr{Option} modules in the HBC
-library (\tr{hslibs/hbc/}) have been deleted---they are too close to
-what Haskell~1.3 provides anyway (hence, confusing).
-
-The POSIX support code is in \tr{hslibs/posix}.
-
-We have added a ``contrib'' system library (\tr{hslibs/contrib/});
-made up of code that was contributed to the ``Haskell library'',
-mostly by Stephen Bevan.  Quite of bit of code for numerical methods
-in there...
-
-%************************************************************************
-%*                                                                      *
-\subsection[2-01-new-in-rts]{In the runtime system}
-%*                                                                      *
-%************************************************************************
-
-We have made a point {\em not} to beat on the runtime system very much.
-Some bugs have been fixed since 0.26, of course.
-
-The GranSim (parallel-machine simulator) stuff is substantially improved
-(but you're better off using the 0.29 version of it).
-
-%************************************************************************
-%*                                                                      *
-%\subsection[2-01-new-elsewhere]{Other new stuff}
-%*                                                                      *
-%************************************************************************