Changes from b1.0 to b1.1
-------------------------

Bug Fixes

        Minor bug fixes with error messages.

        $this can now be used in constructors to invoke other methods
        up the object that exist at, or below the same level in
        the inheritance hierarchy. Cannot call a method of your
        parent class in your constructor.

        Transient commands don't corrupt global commands. Global commands
        aren't available in implementation or interface body.

	Fixed the core dump on returning NULL object pointer form a
	C++ member function.

Additional Functionality

        C++ can instantiate <class>_otcl in C++ using the constructor
        described in CDL and the resulting object can be passed into
        Object Tcl correctly.

        Supports arrays as class and instance attributes

        CDL now supports the "double" type of argument and return.

Changes

        CDL change. the obref type of argument and return is now
        obptr. This change was made to make way for the new obref type
        which is a C++ reference type. All CDL's prior to b1.1 need to have
        "obref" changed to "obptr" in order for them to compile.

	The obref return type takes an optional flag "-new" that indicates
	that the returned object should be copied into a new object on the
	heap.

        CDL now generates header files as well as source using
        -h and -c flags to CDL.

        The cdl "pass" command now accepts a first parameter of "-h"
        or "-s" to specify whether the passed lines are to go into the
        header file or source file.

	Optional -isA flag on the CDL class command.
	class MyClass -isA {Class1 Class2 Class3} { ... }
        The list of classes specified is the list of C++ class above this
	class in the hierarchy, not just the immidiate base classes. This is
	used to support the casting of objects between C++ and Otcl.
	There was a problem in b1.0 where class B (C++) inherited from
	class A (C+) and and object of class B from Otcl wouldn't be cast
	correctly when passed to a method requiring an A*.

        Global Tcl commands have been opened up for use in CDL files.

	Object Tcl now builds with tcl7.3/tcl7.4b3 and tk3.6/tk4.0b3.

Installation & Testing

        Thanks go to Mark Diekhans for writing autoconf installation scripts
        and a more refined test script.

Porting

	Ported to Win32!

Changes from b1.1 to 1.0
------------------------

BUGS Fixed

	Constructors that construct internal objects caused the outer
	otclNew command to return the inner object as a reference. This
	has now been fixed.

Configuration

	OTCL_LIBRARY enviornment file now needed. Should point at the
	otcl.tcl file in the libray dubdirectory of the ObjectTcl
	distribution (or it's installed location).

Distributed Processing

	Support for the following commands:

	otcl oserver init ?low? ?high?
		low = low tcp/ip port number and hi = ...
	otcl oserver process ?script?
		This commands are only needed if your process is
		going to server objects. Only objects created after the
		init command can be used externally.

	otcl oserver getAddress
	otcl remoteClass name address ?alias?

	Problems with DP: It is conceivable that two peers could make
	symultaneous request of each other and then deadlock - I do have a
	solution but it is a little expensive to implement. If it ever becomes
	a problem, I will fix it.

CDL

	Abstract classes can now be handled by CDL. Otcl doesn't understand
	them so its is still possible to inherit from an abstract class and not
	provide an implementation for an abstract method - on invocation
	the CDL binding stub method will be invoked. Use the "-abstract' flag
	on the "method" command. See Test_cdl.cdl for an example.

	NULL, null and 0 passed into C++ from Tcl are converted to NULL's for
	C++ object pointers.
