Dear OpenACS Community,
XOTcl 1.6.2 is available. The biggest change for OpenACs
is the Tcl level cleanup routine ::xotcl::finalize which
calls all destructors for XOTcl objects and deletes the
XOTcl objects from memory. This is relevant for thread
cleanup (when e.g. an idle timeout or the configured
number of threads is exceeded).
Previously, thread cleanup was performed directly by the Tcl
cleanup routines through the usual C-level hooks for thread
exit. However, this can be a problem, since aolserver first
does its own cleanup (e.g. free thread local storage) and
calls then Tcl cleanup. This is in principle ok, except
when Tcl cleanup calls for some reasons ns_* functions. In
this situation weird things and memory leaks might occur.
ns_* functions can be called at this time, when e.g.
XOTcl destructors are registered. The same can happen
with Tcl traces.
Through the new XOTcl level support it is now possible
to call the XOTcl cleanup (and potential destructors)
at a safe time, before aolserver cleanup, by using
the aolserver "delete trace". xotcl-core in CVS head
uses now ::xotcl::finalize when it is available.
In general, an upgrade to 1.6.2 is recommended, but not
Announcing XOTcl 1.6.2
We are pleased to announce the availability of XOTcl 1.6.2
Major changes relative to 1.6.1 are:
* Functional extensions:
- handle nonposargs in method "copy" properly
- new command ::xotcl::finalize
(for forcing cleanup and destuctor execution at a time in
a multi-threaded environment, where it is still safe to execute
all Tcl commands)
* Extended and generalized "info" method
- Added "<class> mixinof -closure ?pattern?"
Query the objects for which <class> is used as a per-object-mixin
(directly or indirectly)
* Fixes for potential crashes
- Implemented proper downgrading of Classes to Objects (handle
cases, where something was created first as an object and is
reclassed/recreated later as a class) and vice versa
- Reset mixin order for per-object mixins, when the superclass of
a class is deleted, which is used as per-object mixin
* Improved documentation
* Extended regression tests
* Some code cleanup
For more details about the changes, please consult the ChangeLog and
General and more detailed information about XOTcl and its components
can be found at http://www.xotcl.org