AK (2023-11-14) Seeing a number of Replaced package require Tcl 8.X with package require Tcl 8.X- notes I believe that I should note that there might be a better way than this. 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. This is not my idea. It came from Rolf Ade in his work on making Tcllib ready for Tcl 9. I had to reread the package manpage to understand.
PO - 2023-11-13
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.0b1 | 9.0b1+9f0391c078075f932d389334cb30ca66b3215e477de6c0c9f4cd95b6f02d39df.gcc-702 |
Tk8.7b1 | 8.7b1+6e002715a6698c676a3e99eafaa1a0d68042de2b4d6a686c759a016c3bb05448.gcc-702.utf-16.win32 |
Please feel free to add your experiences, additions and comments.
Other porting experiences:
This table summarizes the status of the package ports.
The columns show the folllowing information:
Library | Start version | Ported version | Build | Require | Bawt Test | Responsible | Comments |
---|---|---|---|---|---|---|---|
apave | 3.4.8 | 4.3.6 | Yes | Yes | Yes | aplsimple | tested on Windows and Linux |
awthemes | 10.4.0 | Works | Yes | Yes | Yes | ||
BWidget | 1.9.16 | 1.9.17 | Yes | Yes | Yes | oehhar: Checked in upstream by [L4 ] | |
Canvas3d | 1.2.2 | 1.2.3 | Yes | Yes | Yes | ||
cawt | 2.9.4 | N/A | Yes | Yes | No | PO | Twapi not yet working with Tcl9 |
cffi | 1.2.0 | 1.2.1 | Yes | Yes | Yes | ||
critcl | 3.2 | 3.2.1 | Yes | Yes | N/A | AK | |
DiffUtil | 0.4.2 | 0.4.3 | Yes | Yes | Yes | ||
expect | 5.45.4 | NoTcl9 | No | No | No | ||
ffidl | 0.9.0 | 0.9.1 | Yes | Yes | Yes | ||
fitsTcl | 2.5 | 2.5.1 | Yes | Yes | Yes | ||
gdi | 0.9.9.15 | Works | Yes | Yes | N/A | ||
gorilla | 1.6.0 | 1.6.1 | Yes | Yes | N/A | ||
hdc | 0.2.0.1 | Works | Yes | Yes | N/A | ||
Img | 1.4.14 | 1.4.15 | Yes | Yes | Yes | PO | |
imgjp2 | 0.1 | 0.1.1 | Yes | Yes | Yes | ||
imgtools | 0.3 | 0.3.1 | Yes | Yes | Yes | ||
iocp | 1.1.0 | 1.1.1 | Yes | Yes | No | ||
itk | 4.2.3 | Works | Yes | Yes | Yes | ||
iwidgets | 4.1.1 | 4.1.2 | Yes | Yes | Yes | ||
materialicons | 0.2 | Works | Yes | Yes | Yes | ||
mawt | 0.4.1 | 0.4.3 | Yes | Yes | Yes | PO | |
memchan | 2.3 | 2.3.1 | Yes | Yes | No | ||
mentry | 3.18 | Works | Yes | Yes | Yes | ||
Mpexpr | 1.2 | 1.2.1 | Yes | Yes | Yes | ||
mqtt | 3.1 | 3.1.1 | Yes | Yes | Yes | ||
MuPDFWidget | 2.3.1 | Works | Yes | Yes | Yes | ||
nacl | 1.1 | 1.1.1 | Yes | Yes | Yes | ||
nsf | 2.4.0 | N/A | Yes | No | No | ||
ooxml | 1.6.1 | 1.6.2 | Yes | Yes | Yes | ||
oratcl | 4.6 | NoTcl9 | No | No | N/A | ||
parse_args | 0.3.3 | 0.3.4 | Yes | Yes | Yes | ||
pawt | 1.1.3 | Works | Yes | Yes | Yes | PO | |
pdf4tcl | 0.9.4 | Works | Yes | Yes | Yes | ||
pgintcl | 3.5.1 | 3.5.2 | Yes | Yes | N/A | ||
photoresize | 0.2 | 0.2.1 | Yes | Yes | Yes | ||
poApps | 2.11.0 | 2.12.1 | Yes | Yes | N/A | PO | |
poImg | 2.0.2 | 2.0.5 | Yes | Yes | Yes | PO | |
printer | 0.9.6.15 | 0.9.6.16 | Yes | Yes | Yes | ||
puppyicons | 0.1 | Works | Yes | Yes | Yes | ||
rbc | 0.2 | NoTcl9 | No | No | No | RZ tko::graph from tko version 0.4 | |
rl_json | 0.11.5 | 0.11.6 | Yes | No | No | ||
ruff | 2.3.0 | 2.3.1 | Yes | Yes | Yes | ||
scrollutil | 1.19 | Works | Yes | Yes | Yes | ||
shellicon | 0.1 | 0.1.1 | Yes | Yes | Yes | ||
shtmlview | 1.0.0 | 1.0.1 | Yes | Yes | Yes | ||
Snack | 2.2.11 | 2.2.12 | Yes | Yes | Yes | ||
tablelist | 6.22 | Works | Yes | Yes | Yes | ||
tbcload | 1.7.1 | 1.7.2 | Yes | No | N/A | ||
tcl3dBasic | 0.9.5 | 0.9.6 | Yes | Yes | Yes | PO | |
Tcladdressbook | 1.2.4 | NoTcl9 | No | No | N/A | ||
tclAE | 2.0.7 | NoTcl9 | No | No | N/A | ||
Tclapplescript | 2.2 | NoTcl9 | No | No | N/A | ||
tclargp | 0.2 | Works | Yes | Yes | Yes | ||
tclcompiler | 1.7.3 | 1.7.4 | Yes | Yes | No | ||
tclcsv | 2.3 | 2.3.1 | Yes | Yes | Yes | ||
tclfpdf | 1.6 | Works | Yes | Yes | Yes | ||
tclgd | 1.4 | 1.4.1 | Yes | Yes | Yes | ||
Tclkit | N/A | N/A | Yes | Yes | N/A | ||
tcllib | 1.21 | 2.0 | Yes | Yes | Yes | No tcllibc | |
tclMuPdf | 2.3 | Works | Yes | Yes | Yes | ||
tclparser | 1.8 | 1.8.1 | Yes | Yes | N/A | ||
tclpy | 0.4 | 0.4.1 | Yes | Yes | Yes | ||
tclssg | 2.2.1 | Works | Yes | Yes | N/A | ||
tcltls | 1.7.22 | 1.7.23 | Yes | Yes | Yes | ||
tclvfs | 1.4.2 | 1.4.3 | Yes | Yes | Yes | ||
tclws | 3.4.0 | 3.4.1 | Yes | Yes | N/A | oehhar: Ported upstream by commit [L5 ] | |
tclx | 8.4.4 | NoTcl9 | No | No | No | Stopped porting because of unknown replacement for Tcl_Value and Tcl_ValueType chrstphrchvz: see previous attempt https://github.com/flightaware/tclx/pull/12 | |
tdom | 0.9.3 | Works | Yes | Yes | Yes | ||
Tix | 8.4.3 | 8.4.4 | Yes | Yes | No | ||
tkcon | 2.7.10 | Works | Yes | Yes | N/A | ||
tkdnd | 2.9.3 | 2.9.4 | Yes | Yes | Yes | ||
Tkhtml | 3.0.1 | 3.0.2 | Yes | Yes | Yes | ||
tklib | 0.7 | 0.8 | Yes | Yes | N/A | ||
tkpath | 0.3.3 | NoTcl9 | No | No | No | RZ tko::path from tko version 0.4 | |
tkribbon | 1.1 | 1.2 | Yes | Yes | N/A | ||
tksqlite | 0.5.13 | 0.5.14 | Yes | Yes | N/A | ||
tksvg | 0.12 | 0.13 | Yes | Yes | Yes | Not needed for Tk 8.7. oehhar:Thanks, committed upstream and released with version 0.14 | |
Tktable | 2.11 | 2.11.1 | Yes | Yes | Yes | ||
tkwintrack | 2.0.1 | Works | Yes | Yes | N/A | ||
treectrl | 2.4.1 | 2.4.2 | Yes | Yes | Yes | ||
Trf | 2.1.4 | NoTcl9 | No | No | No | ||
trofs | 0.4.9 | NoTcl9 | No | No | No | ||
tserialport | 1.1 | 1.1.1 | Yes | Yes | Yes | ||
twapi | 4.7.2 | NoTcl9 | No | No | No | ||
tzint | 1.1 | 1.1.1 | Yes | Yes | Yes | ||
udp | 1.0.11 | 1.0.12 | Yes | Yes | No | ||
ukaz | 2.0a3 | Works | Yes | Yes | Yes | ||
vectcl | 0.2 | 0.2.1 | Yes | Yes | No | ||
wcb | 3.8 | Works | Yes | Yes | Yes | ||
windetect | 1.0.0 | Works | Yes | Yes | N/A | ||
winhelp | 1.1 | 1.1.1 | Yes | Yes | Yes |
Additional comments:
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 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 | |
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 #define Tcl_NewSizeIntObj Tcl_NewIntObj #endif
Replaced Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult with Tcl9 functions
#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) | |
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 | Recommended replacement ?? |
Replaced Tcl_DStringTrunc with Tcl_DStringSetLength | |
Replaced TclOffset 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 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 | Recommended replacement ?? |
Removed expressions using obsolete TCL_PARSE_PART1 | Recommended replacement ?? |
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 |
Additional comments:
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.0 just removes that deprecated API; Tcl 8.5 and 8.6 were the transition period (over a decade).
chrstphrchvz: Note that casting the NULL sentinel for Tcl_AppendResult()/Tcl_SetErrorCode() is not for Tcl 9 readiness, but rather something that should be done anyway for portability.
DGP: Any code still making use of the TCL_INTERP_DESTROYED flag should be converted to call the Tcl_InterpDeleted routine.
DGP: The last Tcl release where the TCL_PARSE_PART1 flag had any effect was Tcl 8.0. Just remove it.
File | Changes | Comments |
---|---|---|
Modules/FindTCL.cmake | Added search for tcl9tk87 library files in BAWT Setup script CMake.bawt |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Changed CONST to const | |
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 | |
Several files | Replaced NULL with (char *)NULL in calls of function Tcl_AppendResult or Tcl_SetErrorCode | |
Lib/tcl/std_vector.i | Replaced Tcl_GetBoolFromObj with SwigGetBoolFromObj | |
Lib/tcl/tclruntime.swg | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined |
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 | |
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 | |
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 |
---|---|---|
swigfiles/mawt.i | Replaced SWIG module name mawtLib with mawt | |
swigfiles/mawt.i | Added Tcl_Size related definitions, if TCL_SIZE_MAX is not defined | |
tclfiles/mawtInterface.tcl | Replaced namespace mawtlib with mawt | |
tclfiles/mawtQuery.tcl | Replaced namespace mawtlib with mawt | |
tclfiles/pkgIndex.tcl.in | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter |
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.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 |
---|---|---|
helper.tcl | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
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 |
---|---|---|
pkgIndex.tcl | Replaced package vsatisfies Tcl 8.X with package vsatisfies Tcl 8.X- |
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 | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Several files | Replaced "~" with file tildeexpand "~" for Tcl >= 9 using new proc GetHomeDir | |
Several files | Changed functionality: ttk::combobox::current returns empty string instead of -1 |
Additional comments:
File | Changes | Comments |
---|---|---|
pkgIndex.tcl.in | Added string totitle | |
generic/UTT_TclIf.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 |
---|---|---|
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 |
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 | |
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 |
---|---|---|
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 | |
generic/tixWidget.c | Replaced obsolete TK_X_EVENTS with TCL_WINDOW_EVENTS | |
generic/tixWidget.c | Replaced obsolete TK_DONT_WAIT with TCL_DONT_WAIT | |
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 | |
Updated tclconfig files |
Additional comments:
File | Changes | Comments |
---|---|---|
Lots of files | Replaced package require Tcl 8.X with package require Tcl 8.X- | |
Lots of files | 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 |
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 |
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 | |
Makefile.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 VOID to void | |
Several files | Replaced ìnt with Tcl_Size in functions having Tcl_Size as output parameter | |
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 |
---|---|---|
twapi/storage/dirmonitor.c | Replaced Tcl_UniCharCaseMatch with Tcl_StringCaseMatch | |
twapi/namedpipe/namedpipe.c | Replaced Tcl_DriverCloseProc with Tcl_DriverClose2Proc. Changed signature of NPipeCloseProc | |
twapi/namedpipe/namedpipe.c | Replaced TCL_CHANNEL_VERSION_4 with TCL_CHANNEL_VERSION_5 | |
twapi/include/twapi.h | tclStubsPtr->tcl_StaticLibrary not available in Tcl9 anymore. Replaced by Tcl_StaticPackage, which enables compilation, but Tcl_StaticPackage can/should not be used with stubs. | |
pkgIndex.tcl.in | Added string totitle |
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 |
---|---|---|
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 |
---|---|---|
Makefile.in | Added string totitle | |
Updated tclconfig files |
Additional comments: