Changes:
(Exceptions): A catch clause like `CATCH T(e):' introduces a read-only
variable `e' of type `T' within the block. The `(e)' part is
optional. New method Name() and new procedure Abort(). FatalError()
now takes a message string as argument.
(Object): The functions NewUCS4Region() and NewUCS4() have been
revived.
(ADT:ArrayList): New methods Sort() and Elements().
(ADT:StringBuffer): Now provides an INIT() method, covering the
functionality of the old NewCapacity() constructor. New method
CharsUTF16().
(ADT:Comparator): Provides a comparator class `String'.
(oo2c): Super calls can be issued for all type-bound procedures of the
base type, instead of just the procedure that is currently being
redefined.
(oo2c): The compiler warns if an INIT() method does not call the
INIT() of the base type.
Plus the usual number of bug fixes...
Changes:
* (Compiler) Initial support for parametric types.
* (Compiler) New option `--uses <ext-ident>' lists uses of the
declaration <ext-ident>. Scope of the search is the transitive
closure of all modules given on the command line.
* (Compiler) New option `--all' or `-A'. When used with `--make',
rebuild all modules for which sources are available.
* (IO:Select) Fix `Init' to call base type initializer as well.
In short, OOC is an Internet based project providing an Oberon-2
development platform. It consists of
* an optimizing compiler,
* a number of source code and compiler related tools,
* a set of standard library modules, and
* a reference manual.
oo2c is the first complete working compiler of the OOC project.
Instead of translating Oberon-2 modules to machine code, it generates
code for the most portable assembler in existence: ANSI-C. The
compiler was initially intended as a prototype backend for OOC, which
could then be used to evaluate and debug the frontend and the
optimization modules. However, it is now a full-fledged development
system, and among other things, it is being used to develop native
code OOC backends.