Forum OpenACS Development: Announcement: XOTcl 1.6.2 available

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
strictly needed.

Best regards
-gustaf neumann

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