Skip to content
Snippets Groups Projects
Commit 69ab3973 authored by Simon Marlow's avatar Simon Marlow
Browse files

[project @ 1998-01-28 11:43:48 by simonm]

complete changes list for 3.00.
parent 3cf59347
No related merge requests found
* Multi-parameter type classes are fully implemented. There is more
Changes made since 2.10:
\begin{itemize}
\item Multi-parameter type classes are fully implemented. There is more
sharing of dictionaries than in 2.10, so there's a chance that
efficiency will increase a little too.
* Error messages from the type checker should be noticeably improved
* Warnings for unused bindings (-fwarn-unused-names)
[I havn't updated the driver to deal with this; can you pls?]
In general, are warnings properly documented, since that's
something GHC does much better now?
\item Error messages from the type checker should be noticeably improved
* The "boing" example works, and many other minor bug fixes.
\item Warnings for unused bindings @-fwarn-unused-names@.
Internally there are the following changes
\item The "boing" example works, and many other minor bug fixes.
* Can only be built with 2.10 or later; committed to Haskell 1.4
\item Can only be built with 2.10 or later; committed to Haskell 1.4
module system and libraries. Much cruft removed as a result.
* Dramatic clean-up of the PprStyle stuff. No explicit "sty" parameters
now; it's all handled under the hood in Outputable.lhs
\item Dramatic clean-up of the @PprStyle@ stuff. No explicit "sty"
parameters now; it's all handled under the hood in @Outputable.lhs@.
* The type Type has been substantially changed. Usage types have
\item The type @Type@ has been substantially changed. Usage types have
gone away entirely. Type is parameterised wrt the "flexi" slot
in type variables, rather than wrt the type variable itself.
That means that many instance decls become much simpler, because
they are polymorphic in the "flexi" slot rather than needing
(say) Outputable on the type variable.
(say) @Outputable@ on the type variable.
* The dictionary for each class is represented by a new
\item The dictionary for each class is represented by a new
data type for that purpose, rather than by a tuple. That in
turn means that Type can be a straightforward instance of Eq and Ord.
No need for eqSimpleTy, eqTy.
turn means that @Type@ can be a straightforward instance of @Eq@ and
@Ord@ No need for @eqSimpleTy@, @eqTy@.
* The resulting compiler is just slightly (2%) shorter than the
\item The resulting compiler is just slightly (2%) shorter than the
old one in terms of source code size.
\item Fix bug in posix signal handling.
\item @Int@ and @Word@ rewritten to use unboxed types and operations.
\item Removed @ghc/Error.{lhs,hi-boot}@
\item Moved contents of @Error@ to @GHCerr@ + adjusted
import lists of files that use old Error functionality.
\item Moved @seqError@ from @Prelude@ to @GHCerr@.
\item Fix a misleading type checker error msg.
\item Fix a bug in @floatBind@ in @Simplify.lhs@
\item Better failure message when entering an unimplemented instance method
\end{itemize}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment