PO - Update on 2024-07-09 incorporating remarks and comments.
This page is the summary of my experiences trying to port the Tcl packages or programs supported by BAWT to Tcl9.
The following Tcl and Tk versions have been used for the porting tests:
Tcl9.0b2 | 9.0b2+3266fc297b4ae23ee1ddffb7fe35c1ede4939efc774f46d7d6378083842d1d15.gcc-702 |
Tk9.0b2 | 9.0b2+58f75f997e2e1438a8f04978c3c8c0f21e4bbd88bbff83680149ad4553f00c44.gcc-702.win32 |
The tables below are based on the following Excel file: https://www.tcl3d.org/bawt/download/Tcl9-Port.xlsx
Please feel free to add your experiences, additions and comments.
Other porting experiences:
Porting tools:
This table summarizes the status of the package ports.
The columns show the folllowing information:
Note, that the ported versions also work with Tcl/Tk 8.6.15 and 8.7.b1.
Package | Start version | Ported version | Build | Require | Bawt Test | Responsible | Active Tcl9 Development | Comments |
---|---|---|---|---|---|---|---|---|
CMake | 3.25.2 | Works | Yes | N/A | N/A | No | Works with simple patch applied in BAWT Build script. | |
SWIG | 4.2.1 | Works | Yes | N/A | N/A | PO | Yes | |
apave | 4.4.5 | Works | Yes | Yes | Yes | aplsimple | Yes | |
awthemes | 10.4.0 | Works | Yes | Yes | Yes | No | ||
BWidget | 1.9.16 | 1.10.0 | Yes | Yes | Yes | oehhar | Yes | Released 2024-10-15 |
Canvas3d | 1.2.2 | 1.2.3 | Yes | Yes | No | No | ||
cawt | 2.9.6 | Works | Yes | Yes | Yes | PO | Yes | Needs Twapi 5.0 for Tcl 9. |
cffi | 1.2.0 | 1.2.1 | Yes | Yes | Yes | APN | Yes | |
critcl | 3.2 | 3.2.1 | Yes | Yes | N/A | AK | Yes | Repository version working. No official release yet. |
DiffUtil | 0.4.2 | 0.4.3 | Yes | Yes | Yes | No | ||
expect | 5.45.4 | NoTcl9 | No | No | No | No | ||
ffidl | 0.9.0 | 0.9.1 | Yes | Yes | Yes | No | ||
fitsTcl | 2.5 | 2.5.1 | Yes | Yes | Yes | No | ||
gdi | 0.9.9.15 | Works | Yes | Yes | N/A | No | ||
gorilla | 1.6.0 | 1.6.1 | Yes | Yes | N/A | No | ||
hdc | 0.2.0.1 | Works | Yes | Yes | N/A | No | ||
Img | 2.0b1 | Works | Yes | Yes | Yes | PO | Yes | |
imgjp2 | 0.1 | 0.1.1 | Yes | Yes | Yes | No | ||
imgtools | 0.3 | 0.3.1 | Yes | Yes | Yes | No | ||
iocp | 1.1.0 | 1.1.1 | Yes | Yes | Yes | APN | Yes | Version 2.0a0 available. |
itk | 4.2.5 | Works | Yes | Yes | Yes | core.tcl-lang.org | Yes | |
iwidgets | 4.1.1 | 4.1.2 | Yes | Yes | Yes | No | ||
materialicons | 0.2 | Works | Yes | Yes | Yes | No | ||
mawt | 0.4.4 | Works | Yes | Yes | Yes | PO | Yes | |
memchan | 2.3 | 2.3.1 | Yes | Yes | No | No | ||
mentry | 4.2 | Works | Yes | Yes | Yes | nemethi | Yes | |
Mpexpr | 1.2 | 1.2.1 | Yes | Yes | Yes | No | Not working with gcc 14. | |
mqtt | 3.1 | 3.1.1 | Yes | Yes | Yes | No | ||
MuPDFWidget | 2.3.1 | 2.3.2 | Yes | Yes | Yes | No | ||
nacl | 1.1 | 1.1.1 | Yes | Yes | Yes | No | ||
nsf | 2.4.0 | NoTcl9 | No | No | No | Gn | Yes | Repository version working. No official release yet. |
ooxml | 1.8 | Works | Yes | Yes | Yes | ALX | Yes | |
oratcl | 4.6 | NoTcl9 | No | No | N/A | No | ||
parse_args | 0.3.3 | 0.3.4 | Yes | Yes | Yes | No | Newer version 0.5.1 available. Release file not working because of wrong links. | |
pawt | 1.1.3 | Works | Yes | Yes | Yes | PO | Yes | |
pdf4tcl | 0.9.4 | Works | Yes | Yes | Yes | Peter Spjuth | Yes | |
pgintcl | 3.5.1 | 3.5.2 | Yes | Yes | N/A | No | ||
photoresize | 0.2 | 0.2.1 | Yes | Yes | Yes | No | ||
poApps | 2.13.0 | Works | Yes | Yes | N/A | PO | Yes | |
poImg | 2.0.5 | Works | Yes | Yes | Yes | PO | Yes | |
printer | 0.9.6.15 | 0.9.6.16 | Yes | Yes | Yes | No | ||
puppyicons | 0.1 | Works | Yes | Yes | Yes | No | ||
rbc | 0.2 | NoTcl9 | No | No | No | No | See package tko::graph as replacement. | |
rl_json | 0.11.5 | 0.11.6 | Yes | No | No | No | Newer version 0.15.1 available. Release file not working because of wrong links. | |
ruff | 2.3.0 | 2.3.1 | Yes | Yes | Yes | APN | Yes | Repository version working. No official release yet. |
scrollutil | 2.2 | Works | Yes | Yes | Yes | nemethi | Yes | |
shellicon | 0.1 | 0.1.1 | Yes | Yes | Yes | No | ||
shtmlview | 1.0.0 | 1.0.1 | Yes | Yes | Yes | No | ||
Snack | 2.2.11 | 2.2.12 | Yes | Yes | Yes | No | ||
tablelist | 7.2 | Works | Yes | Yes | Yes | nemethi | Yes | |
tbcload | 1.7.1 | 1.7.2 | Yes | No | No | No | ||
tcl3dBasic | 0.9.5 | 1.0a1 | Yes | Yes | Yes | PO | Yes | Repository version working. No official release yet. |
Tcladdressbook | 1.2.4 | NoTcl9 | No | No | N/A | No | ||
tclAE | 2.0.7 | NoTcl9 | No | No | N/A | No | ||
Tclapplescript | 2.2 | NoTcl9 | No | No | N/A | No | ||
tclargp | 0.2 | Works | Yes | Yes | Yes | No | ||
tclcompiler | 1.7.3 | 1.7.4 | Yes | Yes | No | No | ||
tclcsv | 2.3 | 2.3.1 | Yes | Yes | Yes | No | ||
tclfpdf | 1.6 | Works | Yes | Yes | Yes | No | ||
tclgd | 1.4 | 1.4.1 | Yes | Yes | Yes | No | ||
Tclkit | N/A | N/A | Yes | Yes | N/A | No | ||
tcllib | 2.0 | Works | Yes | Yes | Yes | aku | Yes | Repository version working. No official release yet. |
tclMuPdf | 2.3 | 2.3.1 | Yes | Yes | Yes | N/A | Newer version 2.4 available. Not tested yet. | |
tclparser | 1.8 | 1.8.1 | Yes | Yes | N/A | No | ||
tclpy | 0.4 | 0.4.1 | Yes | Yes | Yes | No | ||
tclssg | 2.3.0 | Works | Yes | Yes | N/A | dbohdan | Yes | |
tcltls | 1.7.22 | 1.7.23 | Yes | Yes | Yes | core.tcl-lang.org | Yes | Repository version 1.8. No official release yet. |
tclvfs | 1.4.2 | 1.4.3 | Yes | Yes | Yes | No | ||
tclws | 3.4.0 | 3.4.1 | Yes | Yes | N/A | oehhar | Yes | Repository version working. No official release yet. |
tclx | 8.4.4 | NoTcl9 | No | No | No | No | Current release 8.6.3 not yet working with Tcl 9. | |
tdom | 0.9.5 | Works | Yes | Yes | Yes | de | Yes | |
Tix | 8.4.3 | NoTk9 | No | No | No | No | ||
tkcon | 2.7.11 | Works | Yes | Yes | N/A | No | ||
tkdnd | 2.9.3 | 2.9.4 | Yes | Yes | Yes | petasis | Yes | Repository version working. No official release yet. |
Tkhtml | 3.0.1 | 3.0.2 | Yes | Yes | Yes | No | ||
tklib | 0.8 | Works | Yes | Yes | N/A | aku | Yes | |
tko | 0.4 | Works | Yes | Yes | Yes | rz | Yes | Replacement for rbc and tkpath. |
tkpath | 0.3.3 | NoTcl9 | No | No | No | No | See package tko::path as replacement. | |
tkribbon | 1.1 | 1.2 | Yes | Yes | N/A | No | ||
tksqlite | 0.5.13 | 0.5.14 | Yes | Yes | N/A | No | ||
tksvg | 0.14 | Works | Yes | Yes | Yes | oehhar | Yes | Not needed for Tk 8.7 and newer. SVG support built into Tk. |
Tktable | 2.11 | 2.11.1 | Yes | Yes | Yes | emiliano | Yes | |
tkwintrack | 2.0.1 | 2.0.2 | Yes | Yes | N/A | No | ||
treectrl | 2.4.1 | 2.4.2 | Yes | Yes | Yes | No | ||
Trf | 2.1.4 | NoTcl9 | No | No | No | No | ||
trofs | 0.4.9 | NoTcl9 | No | No | No | No | ||
tserialport | 1.1 | 1.1.1 | Yes | Yes | Yes | No | ||
twapi | 4.7.2 | 5.0a1 | Yes | Yes | Yes | APN | Yes | Repository version working. No official release yet. |
tzint | 1.1 | 1.1.1 | Yes | Yes | Yes | No | ||
udp | 1.0.11 | 1.0.12 | Yes | Yes | No | APN | Yes | Tcl9 version available at https://core.tcl-lang.org/tcludp . Not tested yet. |
ukaz | 2.0a3 | 2.0.0 | Yes | Yes | Yes | No | ||
vectcl | 0.2 | 0.2.1 | Yes | Yes | No | No | ||
wcb | 4.0 | Works | Yes | Yes | Yes | nemethi | Yes | |
windetect | 1.0.0 | 1.0.1 | Yes | Yes | N/A | No | ||
winhelp | 1.1 | 1.1.1 | Yes | Yes | Yes |
Additional comments:
This table summarizes the changes done for porting Tcl programs.
Some of the actions are described first as code examples.
Replaced package require Tcl 8.X with package require Tcl 8.X-
Replaced package require Tk 8.X with package require Tk 8.X-
An alternative to the above is as follows:
AK While going from 8.X to 8.X- opens the package to 9, it also opens it to 10, 11, etc. A more restricted way would be to go to package require Tcl 8.X 9. The two requirements, 8.X, and 9 are OR-ed. The command accepts the Tcl version, if it matches at least one of the requirements. With this change the package is opened to 9, but not beyond.
Common changes in Tcl files | Comments |
---|---|
Replaced $tcl_platform with $::tcl_platform in namespaces | |
Replaced package require Tcl 8.X with package require Tcl 8.X- | |
Replaced package require Tk 8.X with package require Tk 8.X- | |
Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- | |
Added string totitle in pkgIndex.tcl.in or pkgIndex.tcl | |
Added string totitle in Makefile.in | |
Replaced "~" with file tildeexpand "~" for Tcl >= 9 | |
Replaced obsolete case command with switch | |
Use source -encoding utf-8 instead of plain source | |
Changed functionality: ttk::combobox::current returns empty string instead of -1 | |
Check for octal numbers. |
Additional comments:
This table summarizes the changes done for porting C/C++ extensions.
Some of the actions are described first as code examples.
Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined
/* Check, if Tcl version supports Tcl_Size, which was introduced in Tcl 8.7 and 9. */ #ifndef TCL_SIZE_MAX #include <limits.h> #define TCL_SIZE_MAX INT_MAX #ifndef Tcl_Size typedef int Tcl_Size; #endif #define TCL_SIZE_MODIFIER "" #define Tcl_GetSizeIntFromObj Tcl_GetIntFromObj #endif
Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions
DKF: Note that Tcl_SaveResult() has basically been deprecated since Tcl 8.5 because it doesn't handle the full state of the interpreter (and can't; not enough space in the Tcl_SavedResult structure definition and that's caller allocated; by comparison, Tcl_InterpState is an opaque handle and has its definition entirely managed by Tcl's internals). Unless you need the code to still work in Tcl 8.4 and before, you should update to use the new API. Tcl 9 just removes that deprecated API. Tcl 8.5 and 8.6 were the transition period (over a decade).
#if TCL_MAJOR_VERSION < 9 Tcl_SavedResult savedResult; #else Tcl_InterpState savedResult; #endif #if TCL_MAJOR_VERSION < 9 Tcl_SaveResult(interp, &savedResult); #else savedResult = Tcl_SaveInterpState(interp, TCL_OK); #endif #if TCL_MAJOR_VERSION < 9 Tcl_RestoreResult(interp, &savedResult); #else Tcl_RestoreInterpState(interp, savedResult); #endif #if TCL_MAJOR_VERSION < 9 Tcl_DiscardResult(&state); #else Tcl_DiscardInterpState(state); #endif
Common changes in C/C++ files | Comments |
---|---|
Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
Replaced Tcl_PkgRequire(interp, "Tk", "8.X", 0) with Tcl_PkgRequire(interp, "Tk", "8.X-", 0) | |
Replaced Tk_InitStubs(interp, "8.X") with Tk_InitStubs(interp, "8.X-") | |
Added #include <stdarg.h> | |
Removed _ANSI_ARGS_ statements | |
Added definition of _ANSI_ARGS_ | Too lazy to replace them all |
Added definition of TCL_VARARGS | Too lazy to replace them all |
Changed CONST to const | |
Changed CONST84 to const | |
Changed CONST86 to const | |
Changed VOID to void | |
Replaced TCL_CHANNEL_VERSION_2 with TCL_CHANNEL_VERSION_5 | |
Replaced TCL_CHANNEL_VERSION_4 with TCL_CHANNEL_VERSION_5 | |
Unicode related changes | |
Replaced Tcl_UniCharNcasecmp with Tcl_UtfNcasecmp | |
Replaced Tcl_UniCharNcmp with Tcl_UtfNcmp | |
Replaced Tcl_UniCharCaseMatch with Tcl_StringCaseMatch | |
Replaced Tcl_Backslash with Tcl_UtfBackslash | |
Replaced Tcl_DStringTrunc with Tcl_DStringSetLength | |
Replaced TclOffset with offsetof | |
Replaced Tk_Offset with offsetof | |
Replaced Tcl_WinUtfToTChar with Tcl_UtfToChar16DString | |
Replaced Tk_BackgroundError with Tcl_BackgroundError | |
Replaced Tk_CancelIdleCall with Tcl_CancelIdleCall | |
Replaced Tk_DoWhenIdle with Tcl_DoWhenIdle | |
Replaced Tk_EventuallyFree with Tcl_EventuallyFree | |
Replaced Tk_Preserve with Tcl_Preserve | |
Replaced Tk_Release with Tcl_Release | |
Replaced Tk_InternalBorderWidth with Tk_InternalBorderLeft | |
Replaced TkpDrawHighlightBorder with Tk_DrawHighlightBorder for Tcl >= 9 | |
Replaced TkpMakeWindow with Tk_MakeWindow for Tcl >= 9 | |
Replaced TclSetPreInitScript with Tcl_SetPreInitScript for Tcl >= 9 | |
Added parameter compRule to Tk_PhotoPutBlock for Tcl >= 9 | |
Replaced Tk_PhotoPutBlock_NoComposite with Tk_PhotoPutBlock(..., TK_PHOTO_COMPOSITE_OVERLAY) | |
Replaced Tcl_PanicVA with `Tcl_Panic using method described in TIP 422 | |
Replaced panic with Tcl_Panic | |
Replaced Tcl_DriverCloseProc with Tcl_DriverClose2Proc. Changed signature of corresponding function. | |
Removed expressions using obsolete TCL_INTERP_DESTROYED | DGP: Any code still making use of the TCL_INTERP_DESTROYED flag should be converted to call the Tcl_InterpDeleted routine. |
Removed expressions using obsolete TCL_PARSE_PART1 | DGP: The last Tcl release where the TCL_PARSE_PART1 flag had any effect was Tcl 8.0. Just remove it. |
Removed expressions using obsolete TK_CONFIG_OPTION_SPECIFIED | |
Replaced obsolete TCL_OUT_LINE_COMPILE with TCL_ERROR | |
Replaced obsolete TK_X_EVENTS with TCL_WINDOW_EVENTS | |
Replaced obsolete TK_DONT_WAIT with TCL_DONT_WAIT | |
Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions | |
Updated tclconfig files | |
Updated files config.guess and config.sub | |
Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Replaced NULL or 0 with (Tcl_Size *)NULL in functions having Tcl_Size as input parameter | |
Replaced NULL with (char *)NULL in calls of function Tcl_AppendResult or Tcl_SetErrorCode | chrstphrchvz: Note that casting the NULL sentinel is not for Tcl 9 readiness, but rather something that should be done anyway for portability. |
Additional comments:
File | Changes | Comments |
---|---|---|
Modules/FindTCL.cmake | Added search for tcl9tk87 library files in BAWT Build script CMake.bawt | |
Modules/FindTCL.cmake | Added search for tcl9tk90 library files in BAWT Build script CMake.bawt |
Additional comments:
File | Changes | Comments |
---|---|---|
demo/tree.tcl | Replaced "~" with file tildeexpand "~" for Tcl >= 9 | |
dropsite.tcl | Replaced $tcl_platform with $::tcl_platform in namespaces | |
statusbar.tcl | Replaced package require Tk 8.X with package require Tk 8.X- | |
widget.tcl | Replaced package require Tcl 8.X with package require Tcl 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
generic/c3dsearch.c | Removed CONST86 in struct | |
generic/c3d.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Several files | Replaced Tk_Offset with offsetof | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
generic/tclhBase.h | Used definitions of Tclh_SSizeT and Tclh_USizeT as are used for Tcl 8 | TODO |
generic/tclhBase.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/tclhPointer.h | Added #include <stdarg.h> | |
pkgIndex.tcl.in | Added string totitle | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
build.tcl | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
lib/critcl/critcl.tcl | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
lib/critcl/pkgIndex.tcl | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
generic/diffutil.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
generic/diffutil.c | Replaced Tcl_UniCharNcasecmp with Tcl_UtfNcasecmp | |
generic/diffutil.c | Replaced Tcl_UniCharNcmp with Tcl_UtfNcmp | |
generic/diffutil.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/diff.c | Unicode related changes | |
Several files | Changed CONST to const | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
generic/ffidl.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
generic/ffidl.c | Changed CONST to const | |
generic/ffidl.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/ffidl.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
library/ffidlrt.tcl | Replaced $tcl_platform with $::tcl_platform in namespaces | |
library/ffidlrt.tcl | Need to correct stubs number of obsolete Tcl_GetUnicode and Tcl_GetByteArrayFromObj | TODO |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
configure.in | Added search for Tcl9 libraries. | |
fitsTcl.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced NULL or 0 with (Tcl_Size *)NULL in functions having Tcl_Size as input parameter | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
sources/tcllib | Updated csv module to 0.8.1 | |
sources/tcllib | Updated md5 module to 2.0.8 | |
sources/tcllib | Updated sha1module to 2.0.4 | |
sources/tcllib | Updated sha1module to 1.0.7 | |
gorilla.tcl | Replaced "~" with file tildeexpand "~" for Tcl >= 9 |
Additional comments:
File | Changes | Comments |
---|---|---|
Makefile.in | Added string totitle | |
imgjp2.c | Replaced Tk_PhotoPutBlock_NoComposite with Tk_PhotoPutBlock(..., TK_PHOTO_COMPOSITE_OVERLAY) | |
imgjp2.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
imgjp2.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
generic/imgtoolsDecl.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
win/tclWinIocp.c | Replaced TCL_CHANNEL_VERSION_4 with TCL_CHANNEL_VERSION_5 | |
win/tclWinIocp.c | Replaced Tcl_DriverCloseProc with Tcl_DriverClose2Proc. Define IocpChannelClose only for Tcl < 9. | |
win/tclWinIocpTcp.c | Replaced Tcl_DStringTrunc with Tcl_DStringSetLength | |
win/tclWinIocpWinsock.c | Replaced Tcl_DStringTrunc with Tcl_DStringSetLength | |
win/tclWinIocpUtil.c | Replaced Tcl_PanicVA with Tcl_Panic using method described in TIP 422 | |
win/tclhBase.h | Declared for Tcl9: typedef ptrdiff_t Tclh_SSizeT | TODO |
win/tclPointer.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
win/tclWinIocp.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
win/iwidgets.tcl | Replaced $iwidgets with $::iwidgets in namespaces | |
iwidgets.tcl.in | Replaced $iwidgets with $::iwidgets in namespaces | |
iwidgets.tcl.in | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed CONST84 to const | |
Several files | Changed VOID to void | |
Several header files | Added definition of _ANSI_ARGS_ | |
generic/memchanInt.h | Corrected #if ((TCL_MAJOR_VERSION >= 8) && ...) to #if ((TCL_MAJOR_VERSION == 8) && ...) | |
generic/memchanInt.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/memchan.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed CONST84 to const | |
Several files | Changed VOID to void | |
Several files | Removed _ANSI_ARGS_ statements | |
./generic/mpexpr.h | Added definition of TCL_VARARGS | |
./generic/mpparse.c | Replaced Tcl_Backslash with Tcl_UtfBackslash |
Additional comments:
File | Changes | Comments |
---|---|---|
mqtt-3.1.tm | Replaced package require Tcl 8.X with package require Tcl 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl | Replaced package require Tk 8.X with package require Tk 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
generic/nacl.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/nacl.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
generic/parse_args.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
generic/parse_args.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
generic/parse_argsInt.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
pgin.tcl | Replaced package require Tcl 8.X with package require Tcl 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
generic/photoresize_wrap.cpp | Changed CONST to const | |
generic/photoresize_wrap.cpp | Replaced NULL or 0 with (Tcl_Size *)NULL in functions having Tcl_Size as input parameter | |
generic/photoresize_wrap.cpp | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/photoresize_wrap.cpp | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
printer.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
printer.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
printer.c | Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Removed _ANSI_ARGS_ statements | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
generic/rl_json.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
pkgIndex.tcl.in | Added string totitle | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed CONST86 to const | |
Several files | Added definition of _ANSI_ARGS_ | |
Several files | Added definition of TCL_VARARGS | |
Several files | Removed expressions using obsolete TCL_INTERP_DESTROYED |
Additional comments:
File | Changes | Comments |
---|---|---|
ruff.tcl | Replaced package require Tcl 8.X with package require Tcl 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
shellicon.c | Changed CONST to const | |
shellicon.c | Replaced Tcl_AppendResult with Tcl_SetResult for return of image name |
Additional comments:
File | Changes | Comments |
---|---|---|
shtmlview/shtmlview.tcl | Replaced $tcl_platform with $::tcl_platform in namespaces |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed CONST84 to const | |
Several files | Changed CONST86 to const | |
Several files | Removed _ANSI_ARGS_ statements | |
generic/jkSound.h | Added #if TCL_MAJOR_VERSION >= 9 to hide obsolete Tcl_SeekOld and Tcl_TellOld | |
generic/snack.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Several files | Removed expressions using obsolete TCL_INTERP_DESTROYED | |
Several files | Removed expressions using obsolete TCL_PARSE_PART1 | |
Several files | Removed expressions using obsolete TK_CONFIG_OPTION_SPECIFIED | |
Several files | Replaced Tk_Offset with offsetof |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed VOID to void | |
cmpInt.h | Added definition of _ANSI_ARGS_ | |
cmpRead.c | Replaced TclOffset with offsetof | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
CMakeModules/Macros.cmake | Added macro GET_TCL_MAJOR_VERSION | |
tcl3dOgl/Togl/togl.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
tcl3dOgl/Togl/togl.c | Replaced Tk_Preserve with Tcl_Preserve | |
tcl3dOgl/Togl/togl.c | Replaced Tk_Release with Tcl_Release | |
tcl3dOgl/Togl/togl.c | Replaced TkpMakeWindow with Tk_MakeWindow for Tcl >= 9 | |
tcl3dOgl/Togl/togl.c | Replaced panic with `Tcl_Panic | |
tcl3dOgl/Togl/togl.c | Replaced Tk_DoWhenIdle with Tcl_DoWhenIdle | |
tcl3dOgl/Togl/togl.c | Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions | |
tcl3dOgl/Togl/togl.c | Replaced Tk_Offset with offsetof | |
Several files | Replaced NULL or 0 with (Tcl_Size *)NULL in functions having Tcl_Size as input parameter | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
swigfiles/tcl3dDefines.i | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several pkgIndex.tcl files | Use source -encoding utf-8 instead of plain source | |
Several pkgIndex.tcl files | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- | |
Several SWIG files | Adapted SWIG module names |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed CONST84 to const | |
cmpInt.h | Added definition of _ANSI_ARGS_ | |
cmpInt.h | Replaced panic with Tcl_Panic | |
cmpWrite.c | Replaced TclOffset with offsetof | |
cmpWrite.c | Replaced obsolete TCL_OUT_LINE_COMPILE with TCL_ERROR | |
cmpWrite.c | Replaced NULL or 0 with (Tcl_Size *)NULL in functions having Tcl_Size as input parameter | |
cmpWrite.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
cmpWrite.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
src/tclcsv.c | Changed CONST to const | |
pkgIndex.tcl.in | Added string totitle | |
src/csv.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
generic/tclgdtcl.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
generic/tclgd.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/tclgd.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
kbskit/generic/kitInit.c | Replaced TclSetPreInitScript with Tcl_SetPreInitScript for Tcl >= 9 | |
Several files | Changed CONST to const | |
Several files | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
Several files | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- | |
kbskit/library/setupvfs.tcl | Added ability to specify different Tcl and Tk versions. | |
TclVfs/generic/vfs.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
Several files | Removed _ANSI_ARGS_ statements | |
vqtcl/generic/vlerq.c | Replaced Tcl_WinUtfToTChar with Tcl_UtfToChar16DString | |
Several files | Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions | |
Several files | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter |
Additional comments:
File | Changes | Comments |
---|---|---|
tclParser.c | Changed CONST to const | |
tclParser.c | Removed _ANSI_ARGS_ statements | |
tclParser.c | Used Tcl_Size for size parameter of TclFindElement for Tcl >= 9 | |
tclParser.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
tclParser.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
generic/tclpy.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
generic/tclpy.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/tclpy.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
pkgIndex.tcl.in.cmake | Added string totitle |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Removed _ANSI_ARGS_ statements | |
Several files | Changed CONST to const | |
Several files | Changed CONST84 to const | |
Several files | Changed VOID to void | |
tlsIO.c | Replaced TCL_CHANNEL_VERSION_2 with TCL_CHANNEL_VERSION_5 | |
tls.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
tls.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
tls.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
tls.c | Replaced NULL or 0 with (Tcl_Size *)NULL in functions having Tcl_Size as input parameter | |
pkgIndex.tcl.in | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- | |
Updated files config.guess and config.sub |
Additional comments:
File | Changes | Comments |
---|---|---|
generic/vfs.c | Removed _ANSI_ARGS_ statements | |
generic/vfs.c | Changed CONST to const | |
generic/vfs.c | Changed CONST86 to const | |
generic/vfs.c | Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions | |
generic/vfs.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/vfs.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
generic/vfs.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
library/vfs.tcl.in | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- | |
Several files | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Replaced package require Tcl 8.X with package require Tcl 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed VOID to void | |
generic/tix.h | Added definition of _ANSI_ARGS_ | |
generic/tix.h | Added definition of TCL_VARARGS | |
generic/tix.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/tixInt.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/tixGrSort.c | Replaced Tcl_DStringTrunc with Tcl_DStringSetLength | |
Several files | Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions | |
Several files | Replaced Tk_Preserve with Tcl_Preserve | |
Several files | Replaced Tk_Release with Tcl_Release | |
Several files | Replaced Tk_CancelIdleCall with Tcl_CancelIdleCall | |
Several files | Replaced Tk_DoWhenIdle with Tcl_DoWhenIdle | |
Several files | Replaced Tk_EventuallyFree with Tcl_EventuallyFree | |
Several files | Replaced Tk_BackgroundError with Tcl_BackgroundError | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Several files | Replaced Tk_Offset with offsetof | |
generic/tixWidget.c | Replaced obsolete TK_X_EVENTS with TCL_WINDOW_EVENTS | |
generic/tixWidget.c | Replaced obsolete TK_DONT_WAIT with TCL_DONT_WAIT | |
generic/tixForm.c | Replaced Tk_InternalBorderWidth with Tk_InternalBorderLeft | |
library/Init.tcl | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
Makefile.in | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
library/tkdnd.tcl | Added string totitle | |
Several files | Replaced Tk_BackgroundError with Tcl_BackgroundError | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Several files | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
win/OleDND.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
win/OleDND.h | Unicode related changes | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed VOID to void | |
Several files | Removed _ANSI_ARGS_ statements | |
src/htmltcl.c | Added #include <stdarg.h> | |
src/htmltcl.c | Replaced Tcl_PkgRequire(interp, "Tcl", "8.X", 0) with Tcl_PkgRequire(interp, "Tcl", "8.X-", 0) | |
src/htmlimage.c | Added parameter compRule to Tk_PhotoPutBlock for Tcl >= 9 | |
src/html.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
hv/hv3see.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Several files | Replaced Tk_Offset with offsetof | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed VOID to void |
Additional comments:
File | Changes | Comments |
---|---|---|
CMakeLists.txt | Replaced tkribbon with Tkribbon in load command | |
generic/TkRibbon_Widget.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
win/TkRibbon.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Several files | Replaced Tk_Offset with offsetof |
Additional comments:
File | Changes | Comments |
---|---|---|
tksqlite.tcl | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
tksqlite.tcl | Replaced ttk with ::ttk in namespaces | |
tksqlite.tcl | Replaced "~" with file tildeexpand "~" for Tcl >= 9 |
Additional comments:
File | Changes | Comments |
---|---|---|
generic/tkTable.c | Removed expressions using obsolete TCL_INTERP_DESTROYED | TODO |
generic/tkTable.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Several files | Changed CONST to const | |
Several files | Changed CONST84 to const | |
Several files | Changed VOID to void | |
Several files | Removed _ANSI_ARGS_ statements | |
Several files | Replaced Tk_Offset with offsetof | |
Makefile.in | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
tkwintrack.tcl | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
Several files | Changed VOID to void | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Several files | Replaced Tk_Offset with offsetof | |
generic/tkTreeUtils.c | Removed _ANSI_ARGS_ statements | |
generic/tkTreeCtrl.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/qebind.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/qebind.c | Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions | |
generic/tkTreeDisplay.c | Replaced TkpDrawHighlightBorder with Tk_DrawHighlightBorder for Tcl >= 9 | |
generic/tkTreeElem.c | Removed expressions using obsolete TCL_INTERP_DESTROYED | |
Makefile.in | Added string totitle | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
Updated files config.guess and config.sub | ||
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
generic/tzint.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/tzint.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
generic/udp_tcl.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/udp_tcl.c | Changed CONST to const | |
generic/udp_tcl.c | Changed CONST86 to const | |
generic/udp_tcl.c | Replaced Tcl_DriverCloseProc with Tcl_DriverClose2Proc. Changed signature of corresponding function. | |
generic/udp_tcl.c | Added #include <stdarg.h> | |
generic/udp_tcl.c | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
ukaz.tcl | Replaced package require Tk 8.X with package require Tk 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
generic/vmparser.c | Changed CONST to const | |
generic/vmparser.c | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
generic/vectclInt.h | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
windetect.tcl | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- |
Additional comments:
File | Changes | Comments |
---|---|---|
Makefile.in | Added string totitle | |
Updated tclconfig files |
Additional comments: