% 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.