About the "plus"-patch for Tcl8.0.4 LICENCE TERMS The plus-patches are distributed under the same terms as Tcl/Tk. Read the file "licence.terms" for more information. ====================================================================== This patch contains the following enhancements: Shared library support If the option "--enable-shared" is given to the configure script both the static and shared libraries are created. Also in all directories where shared libraries are a pkgIndex.tcl file is created which contains references to all functions in these shared libraries. Because of the existance of pkgIndex.tcl files, the "package require" command is enough to load the shared libraries into tclsh. For example: >tclsh8.0 %package require Tk This single command is enough to load libtk8.0.so dynamically. The main window "." will appear and all tk commands are available. For some systems (e.g. SunOS4) this will not yet work in all situations, but usually the cause of such a failure is because of your system doesn't have a shared X11 library. Because the event loop enhancements (see below) are not yet functional in this patch, you have to provide your own event loop in your script. Standalone Applications In addition to Tcl_Init() and Tk_Init (or Xxx_Init in general) there are now additional functions Tcl_InitStandAlone() and Tk_InitStandAlone() (or Xxx_InitStandAlone in general). These perform the same function, only the Tcl and Tk libraries are compiled into the executable. This makes the executable larger, of course, but they will run on any system no matter if Tcl/Tk (or blt or Tix) is installed or not. Included is a program tcl2c, which translates tcl scripts into C source code. Compiling this code and linking with the necessary static libraries results in a standalone executable. It is possible to link your executable with shared libraries if you use the flag "-DSHARED" with your C-compiler. This will result in a much smaller executable, but it doesn't work standalone: it only works if Tcl/Tk/TclX, whichever libraries you link in, are installed on the system. The installed libraries don't need to be the plus- patched versions: the original ones are O.K. as well. C++-support The following files are changed such that they now can be compiled by any C or C++ compiler (both K&R and ANSI). Tcl tclAppInit.c tclTest.c tclUnixTest.c pkga.c pkgb.c pkgc.c pkgd.c pkge.c pkgf.c Tk tkAppInit.c tkTest.c tkSquare.c Loadable extensions If shared libraries are enabled, the executables tcltest and tktest are no longer created for testing purposes. In stead, loadable libraries Tcltest.so, Objtest.so, Proctest.so, Unixtest.so, Tktest.so and Tksquare.so are created which only contain the additional test functions. These loadable libraries will be used to test tclsh and wish. ---------------------------------------------------------------------------- The "plus"-patch is implemented by: Jan Nijtmans CMG (Computer Management Group) Arnhem B.V. email: Jan.Nijtmans@wxs.nl (private) Jan.Nijtmans@cmg.nl (work) url: http://home.wxs.nl/~nijtmans/