Plus patches
|
 |
| references since December 16, 2000 |
- tcl8.3.1plus.patch.gz
(created: 2000-5-14)
- A patch for Tcl8.3.1, which various enhancements and bug-fixes. See
below.
- tcl8.3.1plus.tar.gz (created: 2000-5-14)
- Complete distribution of Tcl8.3.1+ (with plus-patch already
applied)
- tcl831plus.zip
(created: 2000-5-14)
- The same as tcl8.3.1plus.tar.gz, only in a different format.
- tk8.3.1plus.tar.gz
(created: 2000-5-14)
- Complete distribution of Tk8.3.1+ (with plus-patch already
applied)
- tk831plus.zip
(created: 2000-5-14)
- The same as tk8.3.1plus.tar.gz, only in a different format.
- tcl+-8.3.1-1.i386.rpm
(created: 2000-5-15 by Jean-Luc Fontaine)
- Binary distribution of Tcl8.3.1+ (with plus-patch already applied) for
Linux (Redhat 6.2 i386). Matching Tk version not available yet.
- tcl8.3
8.3.0-1
- Binary distribution of Tcl8.3.0+ (with plus-patch already applied) for
Debian Linux, maintained by David Engel
- tk8.3
8.3.0-1
- Binary distribution of Tk8.3.0+ (with plus-patch already applied) for
Debian Linux, maintained by David Engel
- tcl823plus.exe
(created: 2000-1-21, 8.3.1 version not yet available)
- Binary distribution of Tcl/Tk8.2.3+ (with plus-patch, dash-patch,
img-patch and elide.patch already applied) for Windows
95/98/NT/2000.
- tclplug2.1b1-unoff.exe
(created: 1999-10-8, 8.3.1 version not yet available)
- Binary distribution of Tcl/Tk8.2.1+ (with plus-patch, dash-patch,
img-patch and elide.patch already applied) for Windows 95/98/NT/2000,
Netscape/Internet Explorer plugin versions.
- tcl8.0.4plus.patch.gz
(created: 1999-1-12, 252223 bytes)
- A patch for Tcl8.0.4, which adds more support for shared libraries and
standalone applications. See below.
- tk8.0.4plus.patch.gz
(created: 1999-1-12, 85215 bytes)
- A patch for Tk8.0.4, which adds more support for shared libraries and
standalone applications. See below.
- tcl8.0.4plus.tar.gz
(created: 1999-1-12, 1626962 bytes)
- Complete distribution of Tcl8.0.4+ (with plus-patch already
applied)
- tk8.0.4plus.tar.gz
(created: 1998-1-12, 2156754 bytes)
- Complete distribution of Tk8.0.4+ (with plus-patch, dash-patch,
img-patch and elide.patch already applied)
- tcl804plus.exe
(created: 1998-1-23, 2156754 bytes)
- Binary distribution for Windows 95/98/NT.
- itcl2.2plus.patch.gz
(updated: 1997-3-17)
- A patch for Itcl2.2, which adds more support for Shared libraries and
Standalone applications. See below.
- tcl7.6p2plus.patch.gz
(updated: 1997-4-29)
- A patch for Tcl7.6p2, which adds more support for Shared libraries and
Standalone applications. See below.
- tcl7.6p2plus.tar.gz
(updated: 1997-4-29)
- Complete distribution of Tcl7.6p2+ (with above patch already
applied)
- tk4.2p2plus.patch.gz
(updated: 1997-4-29)
- A patch for Tk4.2p2, which adds more support for Shared libraries and
Standalone applications. See below.
- tk4.2p2plus.tar.gz
(updated: 1997-4-29)
- Complete distribution of Tk4.2p2+ (with above patch and dash-patch
already applied)
- tclX7.6.0plus.patch.gz
(updated: 1997-3-18)
- A patch for TclX7.6.0, which adds more support for Shared libraries
and Standalone applications. See below. Requires either Itcl 2.2 or
Tcl7.6(p2)/Tk4.2(p2) with the corresponding plus-patches.
- tcl7.5p1plus.patch.gz
- No longer supported.
- tk4.1p1plus.patch.gz
- No longer supported.
Tcl/Tk 8.0.6 and higher have an important new feature: Stub tables. This
feature allows loadable extensions to link to Tcl, even on platforms with a
weak shared library implementation (such as Windows). Extensions built this
way can be loaded by standalone executables on all platforms. Stub tables have
many more advantages, but here only is an outline how to use it in
extensions.
Building extensions using the stub tables, goes as follows:
- The first function in Xxx_Init() should be Tcl_InitStubs() in stead of
Tcl_PkgRequire():
if (Tcl_InitStubs(interp, version, exact) == NULL) {
return TCL_ERROR;
}
For Tk-based extensions, use Tk_InitStubs() as well.
This code assures that the stub table will be correctly initialized. If
anything is wrong (e.g. Tcl or Tk doesn't have stub table support), a
proper error-message will be generated.
- Define the symbol
USE_TCL_STUBS during compilation. If you
don't do that, Tcl_InitStubs functions identical to
Tcl_PkgRequire. This is purposely, so extensions can be built
either with or without stub table support without changing the source
code. The symbol USE_TCL_STUBS is all you need to make the
switch between stub-enabled and normal extensions.
For Tk, the corresponding symbols is USE_TK_STUBS. Normally
you will want to link against both Tcl's and Tk's stub table, so you need
to define both of these symbols.
- Link the extension with the Tcl stub library (-ltclstub8.3) in stead of
the shared library (-ltcl8.3). Tk-based extensions should be linked with
both the Tcl and the Tk stub library (-ltkstub8.3).
WARNING: Stub-enabled extensions need a stub-enabled version of Tcl in
order to run. Tcl/Tk 8.0.6 and later provide that.
These patches currently are supported only for Tcl8.3.1/Tk8.3.1. They
contain serveral enhancements (which are summarized below) and many bug fixes.
The most changes are in the configure script and the Makefile, but also some
changes are made in the code. All changes are 100% upwards compatible with the
corresponding offical Tcl/Tk releases.
Event Loop
Tclsh8.x is fully event-driven. That means that after the script is
finished the application will start an event-loop which is compatible with the
Tk event-loop. This means that loading Tk dynamically into tclsh (package
require Tk) has exactly the same effect as running wish. On Windows the DOS
command-line console is used in stead of the Tk console. But applications can
also provide their own event-loop, if they wish.
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 loading is enabled, the executables tcltest and tktest are no longer
created for testing purposes. In stead, loadable libraries Tcltest.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.


| Written by: |
Updated: December 16, 2000 |
- Jan Nijtmans
LogicaCMG, Arnhem B.V.