% Copyright (C) 1989, Digital Equipment Corporation
% All rights reserved.
% See the file COPYRIGHT for a full description.
%
% Last modified on Mon Jan  4 14:49:07 PST 1993 by muller
%      modified on Thu Dec 10 09:25:22 PST 1992 by kalsow


\chapter{History}

\paragraph{Version 2.11} is the first public release of the {\tt FormsVBT}
window toolkit and the {\tt Zeus} animation system.

\paragraph{Version 2.10} includes a port to the {\tt HP/PA} and {tt SUN 386i}
architectures and many improvements to the {\tt IBM RS/6000} port.

\paragraph{Version 2.0} implements the twelve language changes (i.e. generics,
IEEE floating point interfaces, ...) that are included in
\cite{m3-Nel91}.  Version stamp checking was moved into the {\tt m3}
driver, which also supports {\tt -make} mode and generates enough type
declarations to make debugging tolerable.  The compiler internals were
rearranged and many bugs were removed.  Better code is produced.

\paragraph{Version 1.6} fixes many bugs that have been reported.
It also introduces the {\tt SUN3}, {\tt UMAX} and {\tt ARM}
architectures.  Some Unix interfaces have been added or modified ({\tt
Usocket}, {\tt Udir}, {\tt Uexec}, {\tt Uerror}). The names in the
{\tt Rd} and {\tt Wr} interfaces are now more coherent. The new {\tt
Pkl} interface allow input/output of binary data structures.  The
runtime has been rewritten to be mostly in \modula; this allows for
clean interfaces to the runtime; some limitations have been removed
(profiling; scheduling).  The driver has been rewritten, so as to
support shared libraries (on {\tt IBMR2}, by default);
the syntax of some options has changed.

\paragraph{Version 1.5} supports five new architectures ({\tt AP300},
{\tt AIX386}, {\tt IBMR2}, {\tt IBMRT} and {\tt HP300}). The driver
has been modified to improve portability of user systems. The
\srcmodula libraries have been reorganized, and of course known bugs
have been fixed. New demonstration programs and games are included.

\paragraph{Version 1.4} is the second public release of \srcmodula.
It uses the new features of version 1.3 and was alpha-tested by
several SRC clients.  This version added {\tt <*UNUSED*>} and {\tt
<*OBSOLETE*>} pragmas, simplified coverage profiling by having the
compiler directly generate the counters, reduced the number of \#{\tt
line} directives in the generated C, added ``map'' procedures so that
the garbage collector can efficiently locate global references, packed
enumerations into smaller C types, and fixed several bugs.

\paragraph{Version 1.3} is for internal use only.  This version serves to
snapshot the massive editing that has taken place since 1.2.  This
version fixed the variable renaming problems, made {\tt TEXT} a {\tt
REF ARRAY OF CHAR}, converted the text implementation to \modula,
passed nested procedures as closures, used C initialization where
possible for constants and variables, added warning messages, and
fixed many bugs.

\paragraph{Version 1.2}

Thanks to the new technology introduced in 1.1, porting the compiler
to other machines is much easier.  We have ported it to DECstation~3100
running Ultrix~3.1. A few bugs have been fixed.  The driver processes
the options {\tt -D} and {\tt -B} in a slightly different way.

The installation procedure is new, and we no longer furnish
executables as the intermediate C files are present on the release. 
Because the intermediate C files vary according to the target machine,
there are separate \tar files for each of the supported machines.
However, each distribution contains all of the sources; only the intermediate
C files differ.

\paragraph{Version 1.1}

This version is for internal use only. The main difference with
Version 1.0 is the use of \rcs and the use of {\tt imake}
rather than the standard {\tt make}.

\paragraph{Version 1.0}

This version is the first public release of the \srcmodula system. It
contains a \modula compiler and runtime, a core library, a coverage
analyzer, a dependency checker, a \modula pretty printer, and a small
test suite of \modula programs.  The compiler generates C as an
intermediate code.

It is known to run on VAX Ultrix 3.1.  We have not tested the software
in any other configurations.  The software may function correctly on
other versions of Ultrix, and if recompiled, may even work on other
machines.

