OTcl Change Log

Version 0.96 (30 September 95)

  1. Renamed OTclInit to Otcl_Init and versioned AppInit files plus Makefile so that a dynamically loadable libotcl.so is produced for loading into tcl7.5. [Potential Incompatibility]
  2. Added OTclGet/Set/UnsetObjectData to allow C api users to associate clientdata with an object/class pair.
  3. Fixed bug in instvar so that it works properly in conjunction with uplevel.
  4. Added OTclNextMethod for combining methods from C.
  5. Pruned stack space in OTclDispatch (for a higher recursion limit) and removed fixed argument limit.
  6. Added OTclSet/Get/UnsetInstVar for manipulating object instance variables from C.
  7. Added configure scripts and generalized Makefile.
  8. Conditional compilation support for Tcl/Tk 7.3/3.6
  9. Fixed instance variable cleanup when the object is destroyed to ensure that unset traces are called, with errors reported where possible, and arrays are cleaned up.
  10. Added OTclAsObject, OTclAsClass for safe casting of method clientdata to objects and classes.
  11. Renamed OCreate, CCreate, ODelete, and CDelete to fit other naming scheme, changing Delete return codes in the process. They now return a Tcl code for better error indication, as well as leave a message in the interpreter. [Potential Incompatibility]
  12. Pruned object memory layouts for the normal case.
  13. Proc and Instproc methods now remove the method if both the args and body parameters are empty. [Potential Incompatibility]
  14. Added OTclRemovePMethod and OTclRemoveIMethod for removing methods from C.
  15. Renamed OTclAddOMethod to OTclAddPMethod for consistency. [Potential Incompatibility]
  16. Made Otcl_Init safe for multiple calls per interpreter, returning 1 for success, and 0 for repeat initializations.
  17. Added unknown method, which is invoked if regular dispatch fails. Now the unknown method on Class handles automatic creation.
  18. Added otcl_mkindex, otcl_load, for autoloading support.

Version 0.95 (6 August 95)


Note: Version 0.95 introduces a user visible change. The code of earlier versions can be updated by changing each create proc to an init instproc. The method no longer takes the name of the object to create, but is invoked on the object just after it is created and hence maniupulates the object through self. This change was made to regularize method combination with next. Method combination now works in the same way for classes as for objects.
  1. Added info default/instdefault option
  2. Support for multiple interpreters
  3. Added array method matching the tcl array command
  4. Separated creation into allocation plus initialization. Now init instprocs are typically added to classes, while alloc and create are provided by the system. [Incompatibility]
  5. Removed method combination rule for classes [Potential Incompatibility]
  6. Objects obtain their name from interpreter and so may be safely renamed
  7. Switched to Get/SetCommandInfo/Name interface
  8. Simplified destroy of classes. Now instances are also destroyed, and super and sub classes are unlinked from the inheritance graph. [Potential Incompatibility]
  9. Fixed bug in recovery of superclass method from cycles
  10. Added info subclass option to discover direct subclasses and query for indirect ones.
  11. Superclass method enforces implicit dependence order. [Potential Incompatibility]
  12. info heritage takes a match pattern as its final argument

Version 0.94 (24 July 95)

  1. Fixed bug in set on classes
  2. Removed unneeded newvar code
  3. Cleaned up documentation errors
  4. Fixed repeat combination bug with next on class procs
  5. otcl.h no longer pulls in tclInt.h
  6. Changed set, unset, instvar implementation to use Tcl_xxVar directly
  7. Any call through Tcl_DeleteCommand triggers proper object cleanup
  8. Fixed bug with info vars

Version 0.93 (19 July 95)

  1. Fixed bug in class create instcommand
  2. Fixed bug in next when used from class create proc
  3. Added example from workshop paper to test.tcl

Version 0.92 (17 July 95)

  1. Added querying for indirect superclasses
  2. Added array instance variables
  3. Added unset method for objects
  4. Reworked instance variable interface to Tcl variables
  5. Better error message for class dispatch problems
  6. Fixed bug in changing superclasses
  7. Fixed AppInit for real 7.4/4.0
  8. Added test.tcl test and example script

Version 0.91 (12 July 95)

  1. Fixed bug in next
  2. Made set method match Tcl set with implicit get
  3. Renamed info option "variables" to "vars" to match Tcl
  4. Fixed bug in info procs
  5. Removed hidden args from info args for consistency

Version 0.90 (1 July 95)

  1. First OTcl release