[ooc-compiler] oo2c-2.0.18 released
Brought to you by:
mva
From: Michael v. A. <Mic...@de...> - 2004-02-05 22:32:27
|
Almost all changes from 2.0.17 to .18 deal with the interaction between the oo2c run-time system and the gc: atomic objects, finalization, and weak references. All of this was contributed by Stewart Greenhill. Changelog: Heap objects of which the compiler knows that they do not contain any pointers (or which are marked as NO_TRACED_POINTERS) are allocated using GC_malloc_atomic(). Depending on the heap usage of a program, this may reduce the chance that the GC classifies objects as live because it considers non-pointer data as pointers, and may reduce the cost of tracing live objects. A finalization method can be specified for classes derived from Object.Object (or RT0.Object), simply by redefining the Finalize() method. It is called by the run-time system before the object is collected by the gc. A new library module `WeakRef' implements weak pointers to objects; that is, pointers that do not keep the referenced object live as far as the gc is concerned. If a WeakRef pointer refers to an object that is reclaimed, then this pointer is automatically set to NIL. Bug fixes for some scenarios involving parametric types (in particular, parameter passing to procedure arguments of parametric array types) are included as well. -- mva |