• tcl 9 and tclkits

    From et99@21:1/5 to All on Mon Apr 21 19:01:02 2025
    Are tclkits supported in tcl 9?

    If so, where can I find a prebuilt windows binary tclkit for 9 so I can create my own starpacks.

    I used to get the latest tclkits from Ashok's sourceforge page, but alas, there are none there past 8.6.13 and Ashok has said no later versions will be hosted there.

    I also see that in his tcl programming language book version 2, tcl 9, the chapter on tclkits is removed. Does this mean tclkits are not a part of tcl 9?

    If not, is there an equivalent functionality.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Harald Oehlmann@21:1/5 to All on Tue Apr 22 09:22:07 2025
    Am 22.04.2025 um 04:01 schrieb et99:
    Are tclkits supported in tcl 9?

    If so, where can I find a prebuilt windows binary tclkit for 9 so I can create my own starpacks.

    I used to get the latest tclkits from Ashok's sourceforge page, but
    alas, there are none there past 8.6.13 and Ashok has said no later
    versions will be hosted there.

    I also see that in his tcl programming language book version 2, tcl 9,
    the chapter on tclkits is removed. Does this mean tclkits are not a part
    of tcl 9?

    If not, is there an equivalent functionality.



    The functionality is now build-in using the zipfs.

    I don't know where the documentation is. A bit is on the migration notes: https://core.tcl-lang.org/tcl/wiki?name=Migrating+scripts+to+Tcl+9&p

    Harald

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From JeffSmith@21:1/5 to All on Tue Apr 22 11:39:52 2025
    et99 <et99@rocketship1.me> posted:

    Are tclkits supported in tcl 9?

    If so, where can I find a prebuilt windows binary tclkit for 9 so I can create my own starpacks.

    I used to get the latest tclkits from Ashok's sourceforge page, but alas, there are none there past 8.6.13 and Ashok has said no later versions will be hosted there.

    I also see that in his tcl programming language book version 2, tcl 9, the chapter on tclkits is removed. Does this mean tclkits are not a part of tcl 9?

    If not, is there an equivalent functionality.


    A Windows tcl 9 tclkit can be obtained from BAWT 3.0.1 Tcl 9.0.1 Batteries included (64 bit)

    https://www.tcl3d.org/bawt/download/Tcl-BI/SetupTcl-BI-9.0.1-x64_Bawt-3.0.1.exe

    The tclkit is in the bin directory within the install directory.

    I suspect it’s the same for the 32 bit version

    https://www.tcl3d.org/bawt/download/Tcl-BI/SetupTcl-BI-9.0.1-x86_Bawt-3.0.1.exe

    Kind Regards

    Jeff Smith

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Paul Obermeier@21:1/5 to All on Tue Apr 22 16:04:58 2025
    Am 22.04.2025 um 13:39 schrieb JeffSmith:

    et99 <et99@rocketship1.me> posted:

    Are tclkits supported in tcl 9?

    If so, where can I find a prebuilt windows binary tclkit for 9 so I can create my own starpacks.

    I used to get the latest tclkits from Ashok's sourceforge page, but alas, there are none there past 8.6.13 and Ashok has said no later versions will be hosted there.

    I also see that in his tcl programming language book version 2, tcl 9, the chapter on tclkits is removed. Does this mean tclkits are not a part of tcl 9?

    If not, is there an equivalent functionality.


    A Windows tcl 9 tclkit can be obtained from BAWT 3.0.1 Tcl 9.0.1 Batteries included (64 bit)

    https://www.tcl3d.org/bawt/download/Tcl-BI/SetupTcl-BI-9.0.1-x64_Bawt-3.0.1.exe

    The tclkit is in the bin directory within the install directory.

    I suspect it’s the same for the 32 bit version

    https://www.tcl3d.org/bawt/download/Tcl-BI/SetupTcl-BI-9.0.1-x86_Bawt-3.0.1.exe

    Kind Regards

    Jeff Smith

    You do not need to download the complete Tcl-BI distribution.
    Tclkits for all BAWT supported platforms are available in 1 file at https://www.tcl3d.org/bawt/preview.html#tclkits

    Paul

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From et99@21:1/5 to Paul Obermeier on Tue Apr 22 13:28:40 2025
    On 4/22/2025 7:04 AM, Paul Obermeier wrote:

    You do not need to download the complete Tcl-BI distribution.
    Tclkits for all BAWT supported platforms are available in 1 file at https://www.tcl3d.org/bawt/preview.html#tclkits

    Paul

    Thanks, perfect!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Christian Gollwitzer@21:1/5 to All on Wed Apr 23 07:38:06 2025
    Am 22.04.25 um 09:22 schrieb Harald Oehlmann:
    Am 22.04.2025 um 04:01 schrieb et99:
    Are tclkits supported in tcl 9?


    The functionality is now build-in using the zipfs.

    I don't know where the documentation is. A bit is on the migration notes: https://core.tcl-lang.org/tcl/wiki?name=Migrating+scripts+to+Tcl+9&p


    I was also quite surprised that there is no step-by-step tutorial on how
    to build those zipkits. The wiki has several pages but it's unclear
    whether they are outdated or about some special system on top of this.

    I would think that you can do basically

    zip -r -J /path/to/tclsh topfolder/ zipkit

    to create those; however I'm unsure since tclsh nowadays already
    contains an attached ZIP for the init scripts. So how is it supposed to
    work?

    Christian

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ashok@21:1/5 to All on Sat Apr 26 08:41:55 2025
    You might find Section 25.3 in the second edition useful for single file deployment with Tcl 9.

    Alternatively, for an illustrative script, see https://wiki.tcl-lang.org/page/Single+file+applications+in+Tcl+9

    /Ashok


    On 4/22/2025 7:31 AM, et99 wrote:
    I also see that in his tcl programming language book version 2, tcl 9,
    the chapter on tclkits is removed. Does this mean tclkits are not a part
    of tcl 9?

    If not, is there an equivalent functionality.



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From et99@21:1/5 to Ashok on Sat Apr 26 18:22:21 2025
    On 4/25/2025 8:11 PM, Ashok wrote:
    You might find Section 25.3 in the second edition useful for single file deployment with Tcl 9.

    Alternatively, for an illustrative script, see https://wiki.tcl-lang.org/page/Single+file+applications+in+Tcl+9

    /Ashok


    On 4/22/2025 7:31 AM, et99 wrote:
    I also see that in his tcl programming language book version 2, tcl 9, the chapter on tclkits is removed. Does this mean tclkits are not a part of tcl 9?

    If not, is there an equivalent functionality.





    Thanks for those links. I will look at your book.

    I think we need a script to use existing .vfs directories, and do the equivalent of an [sdx.kit wrap name.exe -runtime ....exe] to use with the new zipfs code.

    I have over a dozen such directories. This would save a lot of work.

    I would try to write this myself, however, at present I'm now holding off using tcl 9 because of failures I get combining threads and package require commands. My test cases involve [package require Tk] and [package require math]. This is all on windows
    10.


    In the bawt tclkit, I actually get an access violation crash, likely on the Tk, since the temp folder doesn't have the dll for tk when it fails. In magicsplat and full install of bawt, no crashes, but errors trying package commands from within threads.
    The more threads I launch (with the same script) the more often it fails.

    Since it's only a sometimes fails, I tend to think it's a race condition. This never failed in 8.6. Perhaps some attempt at performance increase is at issue here.

    Unfortunately, I thus far can't get the failures with small core only code test cases, so I don't think it would be worth a ticket.

    Also, with the tclkits, some failures indicate that the package command is trying to load the tk dll before it's fully setup in the temp folder - as the error was some kind of a no permission message.

    I don't know how tcl 9 zipfs handles packages with dlls; I suspect they still will need to be exported to a temp folder, similar to tclkits.

    I do have a somewhat of a workaround in magicsplat and bawt full, I simply issue

    catch {package require Tk} ; package require Tk
    catch {package require math} ; package require math

    And then it takes many more tries to get the failures. This also indicates a timing problem. When it does fail, and the thread is still alive, I examine the value of auto_path and math is missing when it's the one that fails. When it works, there's an
    entry in the auto_path for math.

    However, this is hack I'd rather not have to do.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)