8.5.3 - * Transition to TclOO * Added 'my' construct to call local methods and procedures - These will be manditory at some point, though I may just put a wrapper in the preprocessor 8.5.0 - Was going to call it 8.0, but since it only runs under tcl 8.5 I thought I'd be clever. * Completely reworked to remove to replace sqlite with dicts. * About twice as fast on my benchmark tests * Utilizes namespace ensembles to improve introspection on class method calls * Support for embedded arrays removed. All builtin functions exploiting them have been retooled to use dicts - the "hash" keyword has been deprecated. It now just maps a variable. No special handling performed. (Meh, like anyone is using Tao in the field) * Object and class data are stored as dicts instead of arrays [object_array] and [class_array] have been replaced by [object_dict] and [class_dict] * Licensing changed to BSD 7.2.0 - Performance Enhancements * Test script now uses TclTest. (Benchmark scripts do not yet, nor should they) * Used the [K] concept with stacks to enhance performance with stack pushing, popping, etc. * Added a new ::tao::topstack variable to eliminate a lot of the access to ::tao::opeek that didn't require the object's state * Unknown now checks for the existance of an object FIRST, and then the existance for a class, and THEN the default Tcl behavior. * Because unknown is so much smarter, we not longer need to define a procedure to handle a clobject. (Again, this is only going to get simpler folks.) Bug Fixes: * Object delete no knows not to "unmake" the now non-existant procedure for an object. * The test script now runs all the way through! (woohoo) Language Changes: * Streamlined the ::clobject concept. It now just creates a class, and then creates an object of the same name. The proceedures in the clobject namespace still execute as (and only as) if they were called as the singleton object. * clobjects now store data in exactly the same place as other objects. This fixes things like cget. And since I'm the only one who uses it so far, I don't think anyone will be affected by not being able to interchangably use "namespace" variables with object local variables. Coming Attractions: * User selectable Metakit/Sqlite back end 7.1.1 - New features * Added the ability for classes to "inherit" methods from a tcl namespace as dumb proceedures. This is done with a: namespace import [pattern...] statement in the class definition * updated the test proceedure * The methods "Container" and "Handle" are now imported from the ::tao namespace instead of re-created in the ::tao::root class * Added several proceedures to odieutil to detect and manipulate mac numbers, ipaddress, and hostnames * (Beat me whip me make me write bad checks, I forgot to bump the revision on odieutil before packageing it.) * Tweaked the naming scheme for directories to use a more standard [package][version] instead of [package]-[version] 7.1.0 - Bug Fixes, schema modifications, slight behavior changes * File paths normalized before being passed to sqlite (was causing problems under Linux) * Object cache and class index are now combined into on sqlite file (tao.sqlite) * Class compiled state is now read from a memory table instead of checking for the existance of [namespace]::constructor * You can now retain object state between calls by setting ::tao(persistant_objects) 1 before calling package require tao 7.0.2 - Several bug fixes for Windows. * Cache now defaults to ~/.tao instead of /tmp. * References to odie cleaned up. * Bug in unknown resolver corrected. 7.0.1 - Initial Release that actually works outside of Sean's workshop 7.0.0 - Initial Release of TAO to the Public