[PO] - 2023-04-05 This page is the summary of my experiences trying to port the Tcl packages or programs supported by [BAWT] to Tcl 9. The versions used for the tests were Tcl 9.0b1 (a97f381771) and Tk 8.7b1 (002da37d). Note, that all changes listed below regarding `size_t` must be replaced with either `ptrdiff_t` or `Tcl_Size`, if https://core.tcl-lang.org/tips/doc/trunk/tip/660.md%|%TIP 660%|% will be accepted, which I strongly encourage. Table `Packages` lists all packages looked at and their current status. Tables `Changes in Tcl` and `Changes in C` summarize all changes done at the Tcl and C level for all packages. All other tables summarize the changes done for each individual package or program. Please feel free to add your experiences, additions and comments. ---- [PO] - 2023-08-08 * See also [Rolf Ade]'s EuroTcl2023 presentation [https://openacs.org/conf2023/info/download/file/porting-tcllib-tcl9.pdf%|%Porting tcllib to Tcl 9] * See also [Tcl 9 functions using Tcl_Size] ---- <> **Packages** This table summarizes the status of the package ports. The columns show the folllowing information: * '''Library:''' The name and a link to the package home page. * '''Tcl8 Version:''' The version number and a link to the source of the package as used in BAWT for Tcl 8.6. * '''Tcl9 Version:''' The version number and a link to the source of the modified package. If no entry is given, then either the Tcl8 version is working or I did not look at the package or it was too much effort. * '''Build:''' The modified package could be compiled with Tcl 9. * '''Require:''' A `package require` suceeded for the package with Tcl 9. * '''Bawt Test:''' The simple BAWT test program for this package works with Tcl 9. * '''Module Tests:''' I did not perform any package module tests right now. * '''Responsible:''' Add a link, if you are the maintainer or feel responsible for this package. * '''Comments:''' Short comments regarding this package. Add longer comments at the end of the table. %| Library | Tcl8 Version | Tcl9 Version | Build | Require | Bawt Test | Module Tests | Responsible | Comments|% &|https://aplsimple.github.io/en/tcl/pave/index.html%|%apave%|%|https://www.tcl3d.org/bawt/download/InputLibs/apave-3.4.8.7z%|%3.4.8%|%||`Yes`|`Yes`|`Yes`||||& &|https://sourceforge.net/projects/tcl-awthemes/%|%awthemes%|%|https://www.tcl3d.org/bawt/download/InputLibs/awthemes-10.4.0.7z%|%10.4.0%|%||`Yes`|`Yes`|`Yes`||||& &|https://core.tcl-lang.org/bwidget/%|%BWidget%|%|https://www.tcl3d.org/bawt/download/InputLibs/BWidget-1.9.16.7z%|%1.9.16%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/BWidget-1.9.17.7z%|%1.9.17%|%|`Yes`|`Yes`|`Yes`||||& &|http://3dcanvas.tcl-lang.org/%|%Canvas3d%|%|https://www.tcl3d.org/bawt/download/InputLibs/Canvas3d-1.2.2.7z%|%1.2.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/Canvas3d-1.2.3.7z%|%1.2.3%|%|`Yes`|`Yes`|`Yes`||||& &|http://www.cawt.tcl3d.org/%|%cawt%|%|https://www.tcl3d.org/bawt/download/InputLibs/cawt-2.9.2.7z%|%2.9.2%|%||`Yes`|`Yes`|`No`||[PO]|No tests possible due to Twapi not yet working|& &|https://github.com/apnadkarni/tcl-cffi%|%cffi%|%|https://www.tcl3d.org/bawt/download/InputLibs/cffi-1.2.0.7z%|%1.2.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/cffi-1.2.1.7z%|%1.2.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://andreas-kupries.github.io/critcl/%|%critcl%|%|https://www.tcl3d.org/bawt/download/InputLibs/critcl-3.2.7z%|%3.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/critcl-3.2.1.7z%|%3.2.1%|%|`Yes`|`Yes`|`N/A`||||& &|https://github.com/pspjuth/DiffUtilTcl/%|%DiffUtil%|%|https://www.tcl3d.org/bawt/download/InputLibs/DiffUtil-0.4.2.7z%|%0.4.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/DiffUtil-0.4.3.7z%|%0.4.3%|%|`Yes`|`Yes`|`No`|||BAWT demo hangs|& &|https://sourceforge.net/projects/expect/%|%expect%|%|https://www.tcl3d.org/bawt/download/InputLibs/expect-5.45.4.7z%|%5.45.4%|%||`No`|`No`|`No`||||& &|https://github.com/prs-de/ffidl%|%ffidl%|%|https://www.tcl3d.org/bawt/download/InputLibs/Ffidl-0.9.0.7z%|%0.9.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/Ffidl-0.9.1.7z%|%0.9.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://heasarc.gsfc.nasa.gov/docs/software/ftools/fv/fitsTcl_home.html%|%fitsTcl%|%|https://www.tcl3d.org/bawt/download/InputLibs/fitsTcl-2.5.7z%|%2.5%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/fitsTcl-2.5.1.7z%|%2.5.1%|%|`Yes`|`Yes`|`Yes`||||& &|http://www.schwartzcomputer.com/tcl-tk/tcl-tk.html%|%gdi%|%|https://www.tcl3d.org/bawt/download/InputLibs/gdi-0.9.9.15.7z%|%0.9.9.15%|%||`Yes`|`Yes`|`N/A`||||& &|https://github.com/zdia/gorilla/wiki%|%gorilla%|%|https://www.tcl3d.org/bawt/download/InputLibs/gorilla-1.6.0.7z%|%1.6.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/gorilla-1.6.1.7z%|%1.6.1%|%|`Yes`|`Yes`|`N/A`||||& &|http://www.schwartzcomputer.com/tcl-tk/tcl-tk.html%|%hdc%|%|https://www.tcl3d.org/bawt/download/InputLibs/hdc-0.2.0.1.7z%|%0.2.0.1%|%||`Yes`|`Yes`|`N/A`||||& &|https://sourceforge.net/projects/tkimg/%|%Img%|%|https://www.tcl3d.org/bawt/download/InputLibs/Img-1.4.14.7z%|%1.4.14%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/Img-1.4.15.7z%|%1.4.15%|%|`Yes`|`Yes`|`Yes`||||& &|https://www.androwish.org/home/dir?name=jni/imgjp2%|%imgjp2%|%|https://www.tcl3d.org/bawt/download/InputLibs/imgjp2-0.1.7z%|%0.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/imgjp2-0.1.1.7z%|%0.1.1%|%|`Yes`|`Yes`|`Yes`||||& &|http://tkimgtools.sourceforge.net/%|%imgtools%|%|https://www.tcl3d.org/bawt/download/InputLibs/imgtools-0.3.7z%|%0.3%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/imgtools-0.3.1.7z%|%0.3.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://github.com/apnadkarni/iocp/%|%iocp%|%|https://www.tcl3d.org/bawt/download/InputLibs/iocp-1.1.0.7z%|%1.1.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/iocp-1.1.1.7z%|%1.1.1%|%|`Yes`|`Yes`|`No`||||& &|https://sourceforge.net/projects/incrtcl/%|%itk%|%|https://www.tcl3d.org/bawt/download/InputLibs/itk-4.1.0.7z%|%4.1.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/itk-4.1.1.7z%|%4.1.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://sourceforge.net/projects/incrtcl/%|%iwidgets%|%|https://www.tcl3d.org/bawt/download/InputLibs/iwidgets-4.1.1.7z%|%4.1.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/iwidgets-4.1.2.7z%|%4.1.2%|%|`Yes`|`Yes`|`Yes`||||& &|https://www.androwish.org/%|%materialicons%|%|https://www.tcl3d.org/bawt/download/InputLibs/materialicons-0.2.7z%|%0.2%|%||`Yes`|`Yes`|`Yes`||||& &|http://www.mawt.tcl3d.org/%|%mawt%|%|https://www.tcl3d.org/bawt/download/InputLibs/mawt-0.4.1.7z%|%0.4.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/mawt-0.4.2.7z%|%0.4.2%|%|`Yes`|`Yes`|`Yes`||[PO]||& &|http://memchan.sourceforge.net/%|%memchan%|%|https://www.tcl3d.org/bawt/download/InputLibs/memchan-2.3.7z%|%2.3%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/memchan-2.3.1.7z%|%2.3.1%|%|`Yes`|`Yes`|`N/A`||||& &|http://www.nemethi.de/%|%mentry%|%|https://www.tcl3d.org/bawt/download/InputLibs/mentry-3.16.7z%|%3.16%|%||`Yes`|`Yes`|`Yes`||||& &|https://sourceforge.net/projects/mpexpr/%|%Mpexpr%|%|https://www.tcl3d.org/bawt/download/InputLibs/Mpexpr-1.2.7z%|%1.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/Mpexpr-1.2.1.7z%|%1.2.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://chiselapp.com/user/schelte/repository/mqtt/home%|%mqtt%|%|https://www.tcl3d.org/bawt/download/InputLibs/mqtt-3.1.7z%|%3.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/mqtt-3.1.1.7z%|%3.1.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://sourceforge.net/projects/irrational-numbers/%|%MuPDFWidget%|%|https://www.tcl3d.org/bawt/download/InputLibs/MuPDFWidget-2.2.7z%|%2.2%|%||`Yes`|`Yes`|`Yes`||||& &|https://tcl.sowaswie.de/repos/fossil/nacl/home%|%nacl%|%|https://www.tcl3d.org/bawt/download/InputLibs/nacl-1.1.7z%|%1.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/nacl-1.1.1.7z%|%1.1.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://next-scripting.org%|%nsf%|%|https://www.tcl3d.org/bawt/download/InputLibs/nsf-2.4.0.7z%|%2.4.0%|%||`Yes`|`Yes`|`Yes`||||& &|https://tcl.sowaswie.de/repos/fossil/ooxml/home%|%ooxml%|%|https://www.tcl3d.org/bawt/download/InputLibs/ooxml-1.6.1.7z%|%1.6.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/ooxml-1.6.2.7z%|%1.6.2%|%|`Yes`|`Yes`|`Yes`||||& &|http://oratcl.sourceforge.net%|%oratcl%|%|https://www.tcl3d.org/bawt/download/InputLibs/oratcl-4.6.7z%|%4.6%|%||`No`|`No`|`N/A`||||& &|https://github.com/RubyLane/parse_args%|%parse_args%|%|https://www.tcl3d.org/bawt/download/InputLibs/parse_args-0.3.3.7z%|%0.3.3%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/parse_args-0.3.4.7z%|%0.3.4%|%|`Yes`|`Yes`|`Yes`||||& &|http://www.pawt.tcl3d.org/%|%pawt%|%|https://www.tcl3d.org/bawt/download/InputLibs/pawt-1.1.0.7z%|%1.1.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/pawt-1.1.1.7z%|%1.1.1%|%|`Yes`|`Yes`|`Yes`||[PO]||& &|https://sourceforge.net/projects/pdf4tcl/%|%pdf4tcl%|%|https://www.tcl3d.org/bawt/download/InputLibs/pdf4tcl-0.9.4.7z%|%0.9.4%|%||`Yes`|`Yes`|`Yes`||||& &|https://sourceforge.net/projects/pgintcl/%|%pgintcl%|%|https://www.tcl3d.org/bawt/download/InputLibs/pgintcl-3.5.1.7z%|%3.5.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/pgintcl-3.5.2.7z%|%3.5.2%|%|`Yes`|`Yes`|`N/A`||||& &|https://github.com/auriocus/PhotoResize%|%photoresize%|%|https://www.tcl3d.org/bawt/download/InputLibs/photoresize-0.2.7z%|%0.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/photoresize-0.2.1.7z%|%0.2.1%|%|`Yes`|`Yes`|`Yes`||||& &|http://www.poSoft.de/html/poTools.html%|%poApps%|%|https://www.tcl3d.org/bawt/download/InputLibs/poApps-2.11.0.7z%|%2.11.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/poApps-2.12.0.7z%|%2.12.0%|%|`Yes`|`Yes`|`N/A`||||& &|http://www.poSoft.de/%|%poImg%|%|https://www.tcl3d.org/bawt/download/InputLibs/poImg-2.0.2.7z%|%2.0.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/poImg-2.0.3.7z%|%2.0.3%|%|`Yes`|`Yes`|`Yes`||[PO]||& &|http://www.schwartzcomputer.com/tcl-tk/tcl-tk.html%|%printer%|%|https://www.tcl3d.org/bawt/download/InputLibs/printer-0.9.6.15.7z%|%0.9.6.15%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/printer-0.9.6.16.7z%|%0.9.6.16%|%|`Yes`|`Yes`|`N/A`||||& &|https://sourceforge.net/projects/irrational-numbers/%|%publisher%|%|2.0||`Yes`|`Yes`|`N/A`||||& &|https://www.androwish.org/%|%puppyicons%|%|https://www.tcl3d.org/bawt/download/InputLibs/puppyicons-0.1.7z%|%0.1%|%||`Yes`|`Yes`|`Yes`||||& &|http://www.sourceforge.net/projects/rbctoolkit/%|%rbc%|%|https://www.tcl3d.org/bawt/download/InputLibs/rbc-0.2.7z%|%0.2%|%||`No`|`No`|`No`||||& &|https://github.com/RubyLane/rl_json%|%rl_json%|%|https://www.tcl3d.org/bawt/download/InputLibs/rl_json-0.11.5.7z%|%0.11.5%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/rl_json-0.11.6.7z%|%0.11.6%|%|`Yes`|`No`|`No`||||& &|https://ruff.magicsplat.com/%|%ruff%|%|https://www.tcl3d.org/bawt/download/InputLibs/ruff-2.3.0.7z%|%2.3.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/ruff-2.3.1.7z%|%2.3.1%|%|`Yes`|`Yes`|`N/A`||||& &|http://www.nemethi.de/%|%scrollutil%|%|https://www.tcl3d.org/bawt/download/InputLibs/scrollutil-1.17.7z%|%1.17%|%||`Yes`|`Yes`|`Yes`||||& &|http://wiki.tcl-lang.org/17859%|%shellicon%|%|https://www.tcl3d.org/bawt/download/InputLibs/shellicon-0.1.7z%|%0.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/shellicon-0.1.1.7z%|%0.1.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://github.com/mittelmark/shtmlview/%|%shtmlview%|%|https://www.tcl3d.org/bawt/download/InputLibs/shtmlview-1.0.0.7z%|%1.0.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/shtmlview-1.0.1.7z%|%1.0.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://github.com/scottypitcher/tcl-snack%|%Snack%|%|https://www.tcl3d.org/bawt/download/InputLibs/Snack-2.2.11.7z%|%2.2.11%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/Snack-2.2.12.7z%|%2.2.12%|%|`Yes`|`Yes`|`Yes`||||& &|http://www.nemethi.de/%|%tablelist%|%|https://www.tcl3d.org/bawt/download/InputLibs/tablelist-6.20.7z%|%6.20%|%||`Yes`|`Yes`|`N/A`||||& &|https://github.com/ActiveState/teapot/tree/master/lib/tbcload%|%tbcload%|%|https://www.tcl3d.org/bawt/download/InputLibs/tbcload-1.7.1.7z%|%1.7.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tbcload-1.7.2.7z%|%1.7.2%|%|`Yes`|`No`|`N/A`||||& &|https://www.tcl3d.org/%|%tcl3dBasic%|%|https://www.tcl3d.org/bawt/download/InputLibs/tcl3d-0.9.5.7z%|%0.9.5%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tcl3d-0.9.6.7z%|%0.9.6%|%|`Yes`|`Yes`|`Yes`||[PO]||& &|https://sourceforge.net/projects/tcladdressbook/%|%Tcladdressbook%|%|https://www.tcl3d.org/bawt/download/InputLibs/Tcladdressbook-1.2.4.7z%|%1.2.4%|%||`No`|`No`|`N/A`||||& &|https://sourceforge.net/projects/tclae/%|%tclAE%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclAE-2.0.7.7z%|%2.0.7%|%||`No`|`No`|`N/A`||||& &|https://sourceforge.net/projects/tclapplescript/%|%Tclapplescript%|%|https://www.tcl3d.org/bawt/download/InputLibs/Tclapplescript-2.2.7z%|%2.2%|%||`No`|`No`|`N/A`||||& &|http://www.chevreux.org/projects_tcl.html%|%tclargp%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclargp-0.2.7z%|%0.2%|%||`Yes`|`Yes`|`Yes`||||& &|https://github.com/ActiveState/teapot/tree/master/lib/tclcompiler%|%tclcompiler%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclcompiler-1.7.3.7z%|%1.7.3%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tclcompiler-1.7.4.7z%|%1.7.4%|%|`Yes`|`Yes`|`No`||||& &|https://sourceforge.net/projects/tclcsv%|%tclcsv%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclcsv-2.3.7z%|%2.3%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tclcsv-2.3.1.7z%|%2.3.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://github.com/lamuzzachiodi/tclfpdf%|%tclfpdf%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclfpdf-1.5.7z%|%1.5%|%||`Yes`|`Yes`|`Yes`||||& &|https://github.com/flightaware/tcl.gd%|%tclgd%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclgd-1.4.7z%|%1.4%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tclgd-1.4.1.7z%|%1.4.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://sourceforge.net/projects/kbskit/%|%Tclkit%|%|NA|NA|`Yes`|`Yes`|`N/A`||||& &|https://core.tcl-lang.org/tcllib%|%tcllib%|%|https://www.tcl3d.org/bawt/download/InputLibs/tcllib-1.21.7z%|%1.21%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tcllib-1.22.7z%|%1.22%|%|`Yes`|`No`|`No`|||No tcllibc|& &|https://sourceforge.net/projects/irrational-numbers/%|%tclMuPdf%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclMuPdf-2.1.1.7z%|%2.1.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tclMuPdf-2.3.7z%|%2.3%|%|`Yes`|`Yes`|`Yes`||||& &|https://github.com/flightaware/TclProDebug/tree/master/lib/tclparser%|%tclparser%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclparser-1.8.7z%|%1.8%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tclparser-1.8.1.7z%|%1.8.1%|%|`Yes`|`Yes`|`N/A`||||& &|https://github.com/aidanhs/libtclpy%|%tclpy%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclpy-0.4.7z%|%0.4%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tclpy-0.4.1.7z%|%0.4.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://github.com/tclssg/tclssg%|%tclssg%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclssg-2.2.1.7z%|%2.2.1%|%||`Yes`|`Yes`|`N/A`||||& &|http://core.tcl-lang.org/tcltls/%|%tcltls%|%|https://www.tcl3d.org/bawt/download/InputLibs/tcltls-1.7.22.7z%|%1.7.22%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tcltls-1.7.23.7z%|%1.7.23%|%|`Yes`|`Yes`|`N/A`||||& &|https://sourceforge.net/projects/tclvfs/%|%tclvfs%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclvfs-1.4.2.7z%|%1.4.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tclvfs-1.4.3.7z%|%1.4.3%|%|`Yes`|`Yes`|`N/A`||||& &|https://core.tcl-lang.org/tclws/%|%tclws%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclws-3.4.0.7z%|%3.4.0%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tclws-3.4.1.7z%|%3.4.1%|%|`Yes`|`Yes`|`N/A`||||& &|https://github.com/flightaware/tclx/%|%tclx%|%|https://www.tcl3d.org/bawt/download/InputLibs/tclx-8.4.4.7z%|%8.4.4%|%||`No`|`No`|`No`||||& &|http://tdom.org/%|%tdom%|%|https://www.tcl3d.org/bawt/download/InputLibs/tdom-0.9.3.7z%|%0.9.3%|%||`Yes`|`Yes`|`Yes`||||& &|http://tix.sourceforge.net/%|%Tix%|%|https://www.tcl3d.org/bawt/download/InputLibs/Tix-8.4.3.7z%|%8.4.3%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/Tix-8.4.4.7z%|%8.4.4%|%|`Yes`|`Yes`|`No`||||& &|https://github.com/wjoye/tkcon/%|%tkcon%|%|https://www.tcl3d.org/bawt/download/InputLibs/tkcon-2.7.10.7z%|%2.7.10%|%||`Yes`|`Yes`|`N/A`||||& &|https://github.com/petasis/tkdnd%|%tkdnd%|%|https://www.tcl3d.org/bawt/download/InputLibs/tkdnd-2.9.3.7z%|%2.9.3%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tkdnd-2.9.4.7z%|%2.9.4%|%|`Yes`|`Yes`|`No`|||tkdnd works on Linux and Darwin|& &|http://tkhtml.tcl.tk/index.html%|%Tkhtml%|%|https://www.tcl3d.org/bawt/download/InputLibs/Tkhtml-3.0.1.7z%|%3.0.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/Tkhtml-3.0.2.7z%|%3.0.2%|%|`Yes`|`Yes`|`Yes`||||& &|https://core.tcl-lang.org/tklib%|%tklib%|%|https://www.tcl3d.org/bawt/download/InputLibs/tklib-0.7.7z%|%0.7%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tklib-0.8.7z%|%0.8%|%|`Yes`|`Yes`|`N/A`||||& &|http://chiselapp.com/user/rene/repository/tkpath/%|%tkpath%|%|https://www.tcl3d.org/bawt/download/InputLibs/tkpath-0.3.3.7z%|%0.3.3%|%||`No`|`No`|`No`||||& &|https://github.com/petasis/tkribbon%|%tkribbon%|%|https://www.tcl3d.org/bawt/download/InputLibs/tkribbon-1.1.7z%|%1.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tkribbon-1.2.7z%|%1.2%|%|`Yes`|`Yes`|`N/A`||||& &|http://reddog.s35.xrea.com/wiki/TkSQLite.html%|%tksqlite%|%|https://www.tcl3d.org/bawt/download/InputLibs/tksqlite-0.5.13.7z%|%0.5.13%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tksqlite-0.5.14.7z%|%0.5.14%|%|`Yes`|`Yes`|`N/A`||||& &|https://github.com/oehhar/tksvg/%|%tksvg%|%|https://www.tcl3d.org/bawt/download/InputLibs/tksvg-0.12.7z%|%0.12%|%||`Yes`|`Yes`|`Yes`||||& &|http://tktable.sourceforge.net/%|%Tktable%|%|https://www.tcl3d.org/bawt/download/InputLibs/Tktable-2.11.7z%|%2.11%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/Tktable-2.11.1.7z%|%2.11.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://sourceforge.net/projects/tkwintrack/%|%tkwintrack%|%|https://www.tcl3d.org/bawt/download/InputLibs/tkwintrack-2.0.1.7z%|%2.0.1%|%||`Yes`|`Yes`|`N/A`||||& &|https://sourceforge.net/projects/tktreectrl/%|%treectrl%|%|https://www.tcl3d.org/bawt/download/InputLibs/treectrl-2.4.1.7z%|%2.4.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/treectrl-2.4.2.7z%|%2.4.2%|%|`Yes`|`Yes`|`Yes`||||& &|http://tcltrf.sourceforge.net/%|%Trf%|%|https://www.tcl3d.org/bawt/download/InputLibs/Trf-2.1.4.7z%|%2.1.4%|%||`No`|`No`|`No`||||& &|https://math.nist.gov/~DPorter/tcltk/trofs/%|%trofs%|%|https://www.tcl3d.org/bawt/download/InputLibs/trofs-0.4.9.7z%|%0.4.9%|%||`No`|`No`|`N/A`||||& &|https://tcl.sowaswie.de/repos/fossil/tserialport/home%|%tserialport%|%|https://www.tcl3d.org/bawt/download/InputLibs/tserialport-1.1.7z%|%1.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tserialport-1.1.1.7z%|%1.1.1%|%|`Yes`|`Yes`|`N/A`||||& &|https://twapi.magicsplat.com/%|%twapi%|%|https://www.tcl3d.org/bawt/download/InputLibs/twapi-4.7.2.7z%|%4.7.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/twapi-4.7.3.7z%|%4.7.3%|%|`Yes`|`No`|`N/A`||||& &|https://tcl.sowaswie.de/repos/fossil/tzint/home%|%tzint%|%|https://www.tcl3d.org/bawt/download/InputLibs/tzint-1.1.7z%|%1.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/tzint-1.1.1.7z%|%1.1.1%|%|`Yes`|`Yes`|`Yes`||||& &|https://sourceforge.net/projects/tcludp/%|%udp%|%|https://www.tcl3d.org/bawt/download/InputLibs/udp-1.0.11.7z%|%1.0.11%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/udp-1.0.12.7z%|%1.0.12%|%|`Yes`|`Yes`|`N/A`||||& &|https://github.com/auriocus/ukaz%|%ukaz%|%|https://www.tcl3d.org/bawt/download/InputLibs/ukaz-2.0a3.7z%|%2.0a3%|%||`Yes`|`Yes`|`Yes`||||& &|http://auriocus.github.io/VecTcl/%|%vectcl%|%|https://www.tcl3d.org/bawt/download/InputLibs/vectcl-0.2.7z%|%0.2%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/vectcl-0.2.1.7z%|%0.2.1%|%|`Yes`|`Yes`|`No`||||& &|http://www.nemethi.de/%|%wcb%|%|https://www.tcl3d.org/bawt/download/InputLibs/wcb-3.8.7z%|%3.8%|%||`Yes`|`Yes`|`N/A`||||& &|https://sourceforge.net/projects/tkwintrack/%|%windetect%|%|https://www.tcl3d.org/bawt/download/InputLibs/windetect-1.0.0.7z%|%1.0.0%|%||`Yes`|`Yes`|`N/A`||||& &|https://www.androwish.org/index.html/dir?name=undroid/winhelp%|%winhelp%|%|https://www.tcl3d.org/bawt/download/InputLibs/winhelp-1.1.7z%|%1.1%|%|https://www.tcl3d.org/bawt/download/Preview/Tcl9/winhelp-1.1.1.7z%|%1.1.1%|%|`Yes`|`Yes`|`Yes`||||& '''Additional comments:''' ---- **Changes in Tcl** %| 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.||& &|Changed functionality: `ttk::combobox::current` returns empty string instead of -1||& &|Check for octal number.||& '''Additional comments:''' ---- **Changes in C** %| 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 `||& &|Removed `_ANSI_ARGS_` statements||& &|Added definition of `_ANSI_ARGS_`|Only as quick workaround|& &|Added definition of `TCL_VARARGS`|Only as quick workaround|& &|||& &|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`||& &|||& &|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`||& &|Compile `Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult` only for Tcl < 9|Recommended replacement ??|& &|||& &|Used `size_t` for size parameter of `Tcl_GetStringFromObj` for Tcl >= 9||& &|Added definition of `TCL_NULL`: `(size_t*)NULL` for Tcl >= 9, else `NULL`||& &|Replaced `NULL` or `0` with `TCL_NULL` in `Tcl_GetStringFromObj` calls||& &|Replaced `-1` with `TCL_INDEX_NONE` in call of `Tcl_NewStringObj`||& &|Replaced `-1` with `TCL_INDEX_NONE` in call of `Tcl_DStringAppend`||& '''Additional comments:''' * Instead of just using NULL (which does not work with new Tcl macros in C++), use (size_t *) NULL. ---- **CMake** %| File | Changes | Comments|% &|Modules/FindTCL.cmake|Added search for `tcl9tk87` library files in BAWT Setup script `CMake.bawt`||& '''Additional comments:''' ---- **SWIG** %| File | Changes | Comments|% &|Several files|Changed `CONST` to `const`||& &|Several files|Replaced `NULL` or `0` with `TCL_NULL` in `Tcl_GetStringFromObj` calls||& &|Several files|Replaced `Tcl_GetBoolFromObj` with `SwigGetBoolFromObj`||& &|Several files|Used `size_t` for size parameter of `Tcl_GetStringFromObj` for Tcl >= 9||& &|Lib/tcl/tclapi.swg|Added definition of `TCL_NULL`: `(size_t*)NULL` for Tcl >= 9, else `NULL`||& &|Source/Modules/tcl8.cxx|Added command line parameter `-tcl9` for Tcl9 related initialization code||& '''Additional comments:''' * Instead of generating CONST use const. * Instead of just using NULL (which does not work with new Tcl macros in C++), use (size_t *) NULL. * Rename Tcl_GetBoolFromObj to SwigGetBoolFromObj, as Tcl_GetBoolFromObj is a macro in Tcl9. ---- **Tk** %| File | Changes | Comments|% &|xlib/X11/Xlib.h|Replaced `_X_DEPRECATED EXTERN KeySym XKeycodeToKeysym` with `EXTERN _X_DEPRECATED KeySym XKeycodeToKeysym`||& '''Additional comments:''' * Change needed for C++ packages using X: photoresize Tcl3D tkdnd ---- **BWidget** %| File | Changes | Comments|% &|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:''' ---- **Canvas3d** %| File | Changes | Comments|% &|generic/c3dsearch.c|Removed `CONST86` in struct||& '''Additional comments:''' ---- **cffi** %| File | Changes | Comments|% &|generic/tclhBase.h|Used definitions of `Tclh_SSizeT` and `Tclh_USizeT` as are used for Tcl 8|TODO|& &|generic/tclhPointer.h|Added `#include `||& &|pkgIndex.tcl.in|Added `string totitle`||& '''Additional comments:''' ---- **critcl** %| 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-`||& '''Additional comments:''' ---- **DiffUtil** %| 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`||& &|Several files|Changed `CONST` to `const`||& '''Additional comments:''' ---- **ffidl** %| 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`||& &|library/ddidlrt.tcl|Replaced `$tcl_platform` with `$::tcl_platform` in namespaces||& &|library/ddidlrt.tcl|Need to corrected stubs number of obsolete `TclGetUnicode` and `TclGetByteArrayFromObj`|TODO|& '''Additional comments:''' ---- **fitsTcl** %| File | Changes | Comments|% &|configure.in|Added search for Tcl9 libraries.||& '''Additional comments:''' ---- **gorilla** %| 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 `sha1`module to 2.0.4||& &|sources/tcllib|Updated `sha1`module to 1.0.7||& &|gorilla.tcl|Replaced `"~"` with `file tildeexpand "~"` for Tcl >= 9.||& '''Additional comments:''' ---- **Img** %| File | Changes | Comments|% &|libpng/win/makefile.vc|Adapted stub lib names for Tcl9.||& &|win/rules-img.vc|Adapted stub lib names for Tcl9.||& &|tclconfig/tcl.m4|Line 3210: Replaced `PACKAGE_LIB_PREFIX` with `PACKAGE_LIB_PREFIX8`||& &|Several files|Unified `WIN32` definitions to `_WIN32`||& '''Additional comments:''' ---- **imgjp2** %| File | Changes | Comments|% &|Makefile.in|Added `string totitle`||& &|imgjp2.c|Replaced `Tk_PhotoPutBlock_NoComposite` with `Tk_PhotoPutBlock(..., TK_PHOTO_COMPOSITE_OVERLAY)`||& '''Additional comments:''' ---- **imgtools** %| File | Changes | Comments|% &|pkgIndex.tcl.in|Added `string totitle`||& '''Additional comments:''' ---- **iocp** %| 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 size_t Tclh_SSizeT`||& '''Additional comments:''' ---- **itk** %| File | Changes | Comments|% &|Several files|Changed `CONST` to `const`||& &|Several files|Removed `_ANSI_ARGS_` statements||& &|generic/itkArchBase.c|Replaced `Tcl_DStringTrunc` with `Tcl_DStringSetLength`||& &|generic/itkUtil.c|Changed `VOID` to `void`||& &|pkgIndex.tcl.in|Replaced `package vsatisfies Tcl 8.X` with `package vsatisfies Tcl 8.X-`||& '''Additional comments:''' ---- **iwidgets** %| 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-`||& '''Additional comments:''' ---- **mawt** %| File | Changes | Comments|% &|./swigfiles/mawt.i|Replaced SWIG module name `mawtLib` with `mawt`||& &|./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-`||& '''Additional comments:''' ---- **memchan** %| 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) && ...)`||& '''Additional comments:''' ---- **Mpexpr** %| 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:''' ---- **mqtt** %| File | Changes | Comments|% &|mqtt-3.1.tm|Replaced `package require Tcl 8.X` with `package require Tcl 8.X-`||& '''Additional comments:''' ---- **nacl** %| File | Changes | Comments|% &|pkgIndex.tcl.in|Added `string totitle`||& '''Additional comments:''' ---- **ooxml** %| File | Changes | Comments|% &|helper.tcl|Replaced `package require Tcl 8.X` with `package require Tcl 8.X-`||& '''Additional comments:''' ---- **parse_args** %| File | Changes | Comments|% &|generic/parse_args.c|Replaced `Tcl_PkgRequire(interp, "Tcl", "8.X", 0)` with `Tcl_PkgRequire(interp, "Tcl", "8.X-", 0)`||& '''Additional comments:''' ---- **pawt** %| File | Changes | Comments|% &|pkgIndex.tcl|Replaced `package vsatisfies Tcl 8.X` with `package vsatisfies Tcl 8.X-`||& '''Additional comments:''' ---- **pgintcl** %| File | Changes | Comments|% &|pgin.tcl|Replaced `package require Tcl 8.X` with `package require Tcl 8.X-`||& '''Additional comments:''' ---- **photoresize** %| File | Changes | Comments|% &|pkgIndex.tcl.in|Added `string totitle`||& &|generic/photoresize_wrap.cpp|Changed `CONST` to `const`||& &|generic/photoresize_wrap.cpp|Replaced `NULL` with `TCL_NULL` in `Tcl_GetStringFromObj` calls||& '''Additional comments:''' ---- **poApps** %| 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:''' ---- **poImg** %| File | Changes | Comments|% &|pkgIndex.tcl.in|Added `string totitle`||& '''Additional comments:''' ---- **printer** %| File | Changes | Comments|% &|printer.c|Compile `Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult` only for Tcl < 9||& '''Additional comments:''' ---- **rl_json** %| File | Changes | Comments|% &|Several files|Changed `CONST` to `const`||& &|Several files|Removed `_ANSI_ARGS_` statements||& &|pkgIndex.tcl.in|Added `string totitle`||& '''Additional comments:''' ---- **rbc** %| 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:''' * Stopped porting because of lots of other needed changes ---- **ruff** %| File | Changes | Comments|% &|ruff.tcl|Replaced `package require Tcl 8.X` with `package require Tcl 8.X-`||& '''Additional comments:''' ---- **shellicon** %| File | Changes | Comments|% &|shellicon.c|Changed `CONST` to `const`||& &|shellicon.c|Replaced `Tcl_AppendResult` with `Tcl_SetResult` for return of image name||& '''Additional comments:''' ---- **shtmlview** %| File | Changes | Comments|% &|shtmlview/shtmlview.tcl|Replaced `$tcl_platform` with `$::tcl_platform` in namespaces||& '''Additional comments:''' ---- **Snack** %| 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`||& &|Several files|Removed expressions using obsolete `TCL_INTERP_DESTROYED`||& &|Several files|Removed expressions using obsolete `TCL_PARSE_PART1`||& '''Additional comments:''' ---- **tbcload** %| 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`||& '''Additional comments:''' * Critical compiler warnings regarding `int *` vs. `size_t *` with ExceptionRange * `package require tbcload` generates error message: InitTypes: failed to find the int type ---- **tcl3dBasic** %| File | Changes | Comments|% &|CMakeModules/Macros.cmake|Added macro `GET_TCL_MAJOR_VERSION`||& &|tcl3dOgl/Togl/togl.c|Added definition of `TCL_NULL`: `(size_t*)NULL` for Tcl >= 9, else `NULL`||& &|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|Compile `Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult` only for Tcl < 9||& &|Several files|Replaced `NULL` or `0` with `TCL_NULL` in `Tcl_GetStringFromObj` calls||& &|Several files|Used `size_t` for size parameter of `Tcl_GetStringFromObj` for Tcl >= 9||& &|Several pkgIndex.tcl files|Replaced `package vsatisfies Tcl 8.X` with `package vsatisfies Tcl 8.X-`||& &|Several SWIG files|Adapted SWIG module names||& &|CMakeLists.txt|Retrieve Tcl major number needed as parameter for SWIG.||& '''Additional comments:''' ---- **tclcompiler** %| File | Changes | Comments|% &|Several files|Changed `CONST` to `const`||& &|Several files|Changed `CONST84` to `const`||& &|cmpInt.h|Added definition of `_ANSI_ARGS_`||& &|cmpInt.h|Always define macro `panic` as `Tcl_Panic`||& &|cmpWrite.c|Replaced `TclOffset` with `offsetof`||& &|cmpWrite.c|Replaced obsolete `TCL_OUT_LINE_COMPILE` with `TCL_ERROR`||& '''Additional comments:''' * Critical compiler warnings regarding `int *` vs. `size_t *` with ForeachVarList ---- **tclcsv** %| File | Changes | Comments|% &|src/tclcsv.c|Changed `CONST` to `const`||& &|pkgIndex.tcl.in|Added `string totitle`||& '''Additional comments:''' ---- **tclgd** %| 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)`||& '''Additional comments:''' ---- **Tclkit** %| File | Changes | Comments|% &|kbskit/generic/kitInit.c|Replaced `TclSetPreInitScript` with `Tcl_SetPreInitScript` for Tcl >= 9||& &|kbskit/generic/rechan.c|Compile `Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult` only 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`||& '''Additional comments:''' ---- **tcllib** %| 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:''' ---- **tclparser** %| File | Changes | Comments|% &|tclParser.c|Changed `CONST` to `const`||& &|tclParser.c|Removed `_ANSI_ARGS_` statements||& &|tclParser.c|Used `size_t` for size parameter of `TclFindElement` for Tcl >= 9||& '''Additional comments:''' ---- **tclpy** %| File | Changes | Comments|% &|generic/tclpy.c|Replaced `Tcl_PkgRequire(interp, "Tcl", "8.X", 0)` with `Tcl_PkgRequire(interp, "Tcl", "8.X-", 0)`||& &|pkgIndex.tcl.in.cmake|Added `string totitle`||& '''Additional comments:''' ---- **tcltls** %| 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)`||& &|pkgIndex.tcl.in|Replaced `package vsatisfies Tcl 8.X` with `package vsatisfies Tcl 8.X-`||& '''Additional comments:''' '''[chrstphrchvz] - 2023-08-11 08:52:52''' Still https://core.tcl-lang.org/tcl/info/d1554fca55e9%|%crashes%|% because it does not implement a `close2Proc()` which is mandatory in Tcl 9 (see https://core.tcl-lang.org/tips/doc/trunk/tip/562.md%|%TIP 562%|%). ---- **tclvfs** %| 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|Compile `Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult` only for Tcl < 9||& &|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-`||& '''Additional comments:''' ---- **tclws** %| File | Changes | Comments|% &|Several files|Replaced `package require Tcl 8.X` with `package require Tcl 8.X-`||& '''Additional comments:''' ---- **tclx** %| File | Changes | Comments|% &|Several files|Changed `CONST` to `const`||& &|Several files|Changed `VOID` to `void`||& &|Several files|Added definition of `TCL_VARARGS`||& &|Several files|Removed expressions using obsolete `TCL_PARSE_PART1`||& '''Additional comments:''' * Stopped porting because of unknown replacement for Tcl_Value and Tcl_ValueType ---- **tix** %| 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/tixGrSort.c|Replaced `Tcl_DStringTrunc` with `Tcl_DStringSetLength`||& &|Several files|Compile `Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult` only for Tcl < 9||& &|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`||& &|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-`||& '''Additional comments:''' * BAWT demo crashes ---- **tkdnd** %| File | Changes | Comments|% &|library/tkdnd.tcl|Added `string totitle`||& &|Several files|Replaced `Tk_BackgroundError` with `Tcl_BackgroundError`||& &|Several files|Replaced `-1` with `TCL_INDEX_NONE` in call of `Tcl_NewStringObj`||& &|Several files|Replaced `-1` with `TCL_INDEX_NONE` in call of `Tcl_DStringAppend`||& &|win/TkDND_OleDND.cpp|Used `size_t` for size parameter of `Tcl_GetStringFromObj` for Tcl >= 9||& '''Additional comments:''' * No drag and drop possible on Windows. Linux and Darwin work. ---- **tkhtml** %| 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 `||& &|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||& '''Additional comments:''' ---- **tklib** %| 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:''' ---- **tkpath** %| File | Changes | Comments|% &|Several files|Changed `CONST` to `const`||& &|Several files|Changed `VOID` to `void`||& '''Additional comments:''' * Stopped porting because of lots of needed Tk_OptionSpec adaptions ---- **tkribbon** %| File | Changes | Comments|% &|CMakeLists.txt|Replaced `tkribbon` with `Tkribbon` in `load` command||& '''Additional comments:''' ---- **tksqlite** %| 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||& '''Additional comments:''' ---- **tktable** %| File | Changes | Comments|% &|./generic/tkTable.c|Removed expressions using obsolete `TCL_INTERP_DESTROYED`||& &|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-`||& '''Additional comments:''' ---- **treectrl** %| File | Changes | Comments|% &|Several files|Changed `CONST` to `const`||& &|Several files|Changed `VOID` to `void`||& &|generic/tkTreeUtils.c|Removed `_ANSI_ARGS_` statements||& &|generic/qebind.c|Compile `Tcl_SavedResult, Tcl_DiscardResult, Tcl_SaveResult, Tcl_RestoreResult` only for Tcl < 9||& &|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` ||& '''Additional comments:''' ---- **tserialport** %| File | Changes | Comments|% &|pkgIndex.tcl.in|Added `string totitle` ||& '''Additional comments:''' ---- **twapi** %| 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:''' * Compiles, but does not work with `package require` ---- **tzint** %| File | Changes | Comments|% &|pkgIndex.tcl.in|Added `string totitle`||& '''Additional comments:''' ---- **udp** %| File | Changes | Comments|% &|pkgIndex.tcl.in|Added `string totitle`||& &|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 `||& '''Additional comments:''' ---- **vectcl** %| File | Changes | Comments|% &|pkgIndex.tcl.in|Added `string totitle`||& &|generic/vmparser.c|Changed `CONST` to `const`||& '''Additional comments:''' ---- **winhelp** %| File | Changes | Comments|% &|Makefile.in|Added `string totitle`||& '''Additional comments:'''