Announcing XOTcl 0.9.4
**********************

WHAT IS XOTCL?

  XOTcl is an object-oriented extension of Tcl that was derived from
  OTcl. In short, XOTcl tries to provide a highly flexible,
  reflective, component-based, and object-oriented environment. It
  integrates language support for high level concepts which are not
  found in other languages, with reasonable performance. It prevails
  the Tcl programming style and the dynamic/introspective nature of
  the language, rather than introducing other language's styles and
  rigidness (such as C++) into Tcl.


CHANGES relative to 0.9.3 are:

  - fixes:
 
     * separate reference counting for XOTcl objects and classes
       to avoid references from tcl_obj's internal representation
       to freed memory

     * fixes for AOL-Server (many thanks to Zoran Vasiljevic for 
       that and for his great help during fixing the problems above)

     * improved portability: horrible macro substitution 
       bug, when USE_ALLOCA or USE_MALLOC was specified; these
       are used for some platforms such as AIX

     * fixing path search for XOTcl library (bug was introduced in 
       0.9.3 in connection with TEA compliance)

     * fixed a bug in copy/move (many thanks for Artur Trzewik
       for reporting this) in connection with constructors 
       (constructors are not called automatically in copy/move
       operations anymore)

     * various small fixes in libraries (e.g. HTTP support, 
       generation of pkgIndex-files, using "my", ...)

  - enhancements:

     * new global command "my": 
       one can use now:

         Class Counter -parameter  {{n 0}}
         Counter instproc ++ {}    { my incr n }
         Counter instproc print {} { puts "actual value: [my n]"}

         Counter c1
         c1 ++
         c1 print

       In earlier versions it was necessary to use "[self]" 
       instead of "my". This change reduces the number of 
       special characters in XOTcl programs. 
       "[self]" will continue to be supported by XOTcl.
      
     * extended semantics of "new"

        a) Object new ...
        b) Object new -childof  ...
        c) Object new -volatile ...
        d) Object new -volatile -childof ...

       where (a) creates now "global" objects not in the global
       namespace anymore, but in the ::xotcl namespace, (b) can
       be used to create objects as child of other objects
       (e.g. as children of the actual object [self]; the objects
       are deleted, when the specified object is deleted).  (c)
       creates are "global" objects as in (a), but they are
       deleted, when the scope of the current
       tcl-proc/object-proc/instproc is left and (d) is a
       combination of (b) and (c).

  - optimizations:

     * XOTcl is trying to keep Tcl_Objs of type tclCmdNameType
       instead of converting it to XOTclObjectType aggressively.

     * A patch for Tcl 8.4a3 is available from the XOTcl web site
       for performance hungry applications to provide special
       byte-code-support for xotcl, that yields for classical
       benchmark programs up to 40%.  This patch is not likely to
       be integrated into the general Tcl core in the new or
       distant future.
  
 For more details, please consult the ChangeLog    

MORE INFO
  General and more detailed information about XOTcl and its components
  can be found at http://www.xotcl.org


Best regards,

Gustaf Neumann
Uwe Zdun

