home *** CD-ROM | disk | FTP | other *** search
- Object Tcl b1.1
- ----------------
-
- Introduction
- ------------
-
- Firstly, thankyou for taking the time to download the Object Tcl extension and
- we hope you find it useful. We welcome any comments you may have and can be
- contacted at "otcl@x.co.uk".
-
- We would like to take this opportunity to draw your attention to the Object Tcl
- license in file "LICENSE.TXT". This license is also duplicated in all of the
- source files.
-
- The Object Tcl home page resides at:
-
- http://www.x.co.uk/devt/ObjectTcl/
-
- Building
- --------
-
- The distribution comes with an auto configuration file called "configure" that
- will generate a Makefile specific for your environment. Within the
- distribution top level directory type "./configure".
-
- The Makefile generates is suitable for use with tc7.3/tk3.6 and
- tcl7.4b3/tk4.0b3.
-
- The resulting Makefile has the following targets:
-
- libotcl.a: This is the Object Tcl library that implements the
- Tcl extension package. It is built from all of the source
- files prefixed with "Otcl".
-
- otclsh: This is a version of the Tcl shell that includes the Object
- Tcl extension.
-
- owish: This is a version of the Tk shell that includes th Object
- Tcl extension.
-
- otcltest: This is similar to the otclsh target except it also has the
- C++ test classes built in.
-
- cdl: This is the CDL processor and it is built from all of the
- source files prefixed with "Cdl".
-
- test: This target executes the test script "tscript found in the
- "tests" subdirectory.
-
- install: Install Object Tcl libraries and public header files.
-
- clean: Remove all of the derived object and binary files.
-
- distclean: Cleans the Object Tcl distribution completely including
- Makefile and auto configuration cache files.
-
- Environment Variables
- ---------------------
-
- OTCL_LIBRARY should be set to point to the installed location of
- ./library/otcl.tcl or the version kept under this distribution directory.
-
- Platform Problems
- -----------------
-
- On SCO ODT3.0 using the C++ language system, the compiler
- flag "-dbx" must be used (CXXFLAGS in the Makefile) to stop
- a multiple declaration problem.
-
- Test Script
- -----------
-
- The directory "tests" contains the test script "tscript".
-
- The script "tscript" is a Tcl script that performs a sanity check upon the
- tsh executable.
-
- To execute the test, type "make test" from within the top level Object Tcl
- directory or cd to the tests directory and type "../otcltest tscript".
-
- The test script automatically compares the actually results aginst the expected
- results and reports any differences. If all tests pass then no exceptions
- will be reported.
-
- Example
- -------
-
- Example code can be found in the "examples" subdirectory.
-
- A simple example exists in examples/Simple and a more complicated
- example of Object Tcl-DP is given in examples/TicTacToe.
-
- Issues
- ------
-
- There is a general issue with the Object Tcl system regarding the scoping of
- C++ classes, objects and Tcl interpreters. Obviously C++ classes and objects
- have process scope but Object Tcl objects have only interpreter scope.
- At the moment, the Object Tcl system will not work correctly with a multiple
- interpreter application.
-
- Related to the above problem is an issue regarding which interpreter to use
- for evaluating method bodies when the method call originated, via dynamic
- binding, from C++. The C++ code doesn't understand Tcl and isn't passing around
- Tcl interp structures for use in evaluation. The current solution to this
- forces the one interpreter restriction on an application.
-
- Known Bugs
- ----------
-
- o You can attempt to otclDelete <class> and it core dumps. Not
- investigated yet but I assume you can otclDelete <anything other than
- an object> and it will core.
-
- Bug & Suggestion Reporting
- --------------------------
-
- Please contact us via e-mail @ otcl@x.co.uk with any bugs you find or
- suggestions you have.
-
- Future
- ------
-
- The following list outlines the areas we are considering for future
- releases (not in any order).
-
- o Addressing mutli-interpreter issues.
-
- o CDL Additions for
- -in, -out and -inout arguments + C++ reference types.
-
- o Run Time Type Information.
-
- o Autoloading of class on first use.
-
- o Debugging support.
-
- o Polymorphic methods based on Object arguments, exported from C++
- possibly a way of typing arguments in Tcl.
-
- o Polymorphic methods based on number of arguments/
-
- o Exporting standard C and C++ functions using CDL.
-
- o Support for enum and #defines from C/C++.
-
- o Operator exporting from C++.
- New "operator" command in CDL.
-
- o Void * as a CDL type.
-
- o Variable arguments passed between C++ and Otcl.
- Could be done with an "argcargv" CDL type command
- that actually transforms to two variables.
-
- o Support for exporting abstract C++ classes to Otcl along
- with Otcl understanding and enforcing the concept of abstract
- classes from C++ an in Otcl.
-
-