(* RECORD OF MAJOR CHANGES

Created by:     Dave Berry, LFCS, University of Edinburgh
                db@lfcs.ed.ac.uk
Date:           24 Jan 1991

Maintenance:    Author


DESCRIPTION

   This file documents major changes made to the library, using the RCS
   system to log comments.


RCS LOG

$Log: CHANGES,v $
# Revision 1.20  1991/10/29  19:47:20  db
# Made SML/NJ 0.74 the default version, & used its built-in Vectors.
# Added installation option for Poly/ML's make system.
#
# Revision 1.19  1991/10/22  19:04:25  db
# Fixed bugs in String.sml and elsewhere.  Also fixed broken RCS files.
# Added portable versions of ML-LEX and ML-YACC to contrib file.
# Added AsciiOrdString, LexOrdString and LexOrdList to documentation,
# and added the signatures FULL_ORD and FULL_SEQ_ORD to support them.
# Added map, apply, fold and fold' to Set, EqSet and MonoSet.
#
# Revision 1.18  91/09/13  16:31:25  16:31:25  db (Dave Berry)
# Fixed bugs in nj-sml/ByteArray (which was defining a new Array structure!)
# and in Hash.  Also added Hash to the build_all files.
# 
# Revision 1.17  91/07/02  15:12:59  15:12:59  db (Dave Berry)
# Fixed bug in Array.copy.
# 
# Revision 1.16  91/05/28  16:08:33  16:08:33  db (Dave Berry)
# RELEASE VERSION.
# Added copyright notice, latex style files, and some very minor
# tidying up.
# 
# Revision 1.15  91/03/22  14:18:27  14:18:27  db (Dave Berry)
# Added Gene Rollins's Hash entry and Nick Rothwell's EqFinMap entry.
# 
# Revision 1.14  91/03/08  14:16:03  14:16:03  db (Dave Berry)
# Added print functions to all entries that already had a string function.
# This is partly for convenience and partly for efficiency.
# 
# Revision 1.13  91/02/22  14:10:24  14:10:24  db (Dave Berry)
# Replaced several uses of the General.Nat exception with local Size
# exceptions, to improve modularity.
# 
# Revision 1.12  91/02/11  21:26:08  21:26:08  db (Dave Berry)
# Changed stream entries to use the pervasive implementation of streams.
# I now believe that any problems with end_of_stream on interactive streams,
# or with error messages, are the responsibility of the compiler writer.
# See streams/README for more explanation.
# 
# Revision 1.11  91/02/11  21:14:18  21:14:18  db (Dave Berry)
# MAJOR REORGANISATION.
# 	Many of the library entries have been broken into smaller units.
# 	Comparison functions for sequences andstrings are found in separate
# entries, as their can be several orderings on most entries.  (The orderings
# in Int, Real and Byte are the obvious ones, and don't preclude others
# being defined in new entries.)
# 	Parse and read functions now always appear in separate entries, as
# often they're not needed.
# 	String no longer includes StringType, and both have been subdivided.
# 	Several new "generic" signatures have been added.  They define types
# with an ordering function, an equality function, read and parse functions,
# string conversion functions, or some combinations of these.  These
# signatures will be useful when defining MonoSets, Monovectors etc.
# 	The *Object structures associated with several types have been removed.
# Structures passed as arguments to functors will be cut down as necessary;
# the *Object structures were little more than an efficiency hack, quite
# out of place here.  Moreover, most functors don't take full Objects as
# parameters anymore, but use one of the new generic signatures.
# 
# Revision 1.10  91/02/05  11:11:24  11:11:24  db (Dave Berry)
# Revised design of stream entries.  First, they now provide the same
# functions and types as the pervasives at top level, so that they completely
# replace the pervasive versions if they are used at all.  Secondly, eof
# indications on instreams are now treated as if they were extra characters
# on the stream.  So input will consume them, lookahead won't consume them,
# and (eof i) is defined as (lookahead i = ""), as in the Definition of SML.
# Clarification: input retruns the remaining characters up to an end of file,
# as before, but clears the end-of-file status at the same time.
# I contend that this implementation of streams should be provided by
# compilers, so use of the versions of the stream entries that redefine
# the types should now be optional.
# 
# Revision 1.9  91/01/31  13:46:16  13:46:16  db (Dave Berry)
# Renamed loadFun and loadStr to loadEntry, since the entries share the
# same namespace in the OS file system.
# 
# Revision 1.8  91/01/31  11:09:28  11:09:28  db (Dave Berry)
# Changed parse functions.  Previously there was one set of functions that
# parsed a value from the start of a string, returning just that value, and
# a second set that parsed a value from an exploded string, returning both
# that value and the rest of the exploded string.  Now there is one set
# of functions that parses a value from the start of a string and returns
# that value and the rest of the string.  This gives a much neater
# interface.  I'm assuming that either these functions won't be hotspots
# and/or that string operations (esecially extract) will be implemented
# efficiently by the compiler.
# 
# Revision 1.7  91/01/26  15:14:58  15:14:58  db (Dave Berry)
# Renamed RefVector and REF_VECTOR to Array and ARRAY, to match common 
# practice.
# 
# Revision 1.6  91/01/25  20:43:02  20:43:02  db (Dave Berry)
# Revised tag declarations in all files for the make system.
# Gave explicit tags to signatures.
# Changed INSTALL script to add path names of signatures to ML_CONSULT file.
# Removed portable/{Object.sml, Sequence.sml, RefSequence.sml} which are
# 	now redundant (they previously served only to load the corresponding
# 	signatures).
# 
# Revision 1.5  91/01/25  16:57:54  16:57:54  db (Dave Berry)
# Changed signature names to all upper case.  There are 3 reasons for this:
# 	1. It's common practice in other people's code.
# 	2. Differentiating between signatures and structures/functors is
# 	   helpful when writing about the code, even though it's not
# 	   necessary in the code itself.
# 	3. The make tags for signatures and structures/functors have to
# 	   be different, and this is theeasiest way of achieving that.
# 
# Revision 1.4  91/01/24  18:03:20  18:03:20  db (Dave Berry)
# Removed Load.sml.  The new build files just define loadLibrary; users
# don't need to see loadFun, loadStr and loadSig.
# 
# Revision 1.3  91/01/24  18:01:57  18:01:57  db (Dave Berry)
# Removed version values from everything that had them.  It wasn't clear
# what these represented - the version of the signatures, the structures,
# the functors or the functor arguments.
# 
# Revision 1.2  91/01/24  17:56:40  17:56:40  db (Dave Berry)
# Changes made so far since I started the major revision at the
# beginning of the year:
# 	Added core definitions of vectors, arrays and a few utilities.
# 	Incorporated Nick Rothwell's make system.
# 	Redesigned the load and build files.
# 	Added the INSTALL script.
# 	Used RCS to record changes.
# 	Added sets - needed by Nick's make system.
# 	Created .dist directories for implementation-specific versions
# 		of the library, to avoid redundancy when changing files.
# 		This has yet to be integrated into the INSTALL script.
# 	Created this file to record global changes.
# 
# Revision 1.1  91/01/24  17:56:12  17:56:12  db (Dave Berry)
# Initial revision
# 

*)

val libraryVersion = "Edinburgh SML Library, $Revision: 1.20 $, $Date: 1991/10/29 19:47:20 $."
