• ANNOUNCE: TBCX v1.0 released

    From bagnon@miguel@bagnon.com to comp.lang.tcl on Sun Oct 26 21:01:11 2025
    From Newsgroup: comp.lang.tcl

    Hello everyone,

    I am pleased to announce the release of TBCX v1.0.

    TBCX is a C extension for Tcl 9.1+ that serializes compiled Tcl bytecode
    (plus enough metadata to reconstruct `proc`s, TclOO methods, and lambda constructs) into a compact binary file — and later allows to load that
    file into another interpreter for fast startup without re-parsing or re-compiling the original source. There’s also a disassembler for human-readable inspection.

    The binary files that store the bytecode are not encoded/obfuscated in
    any way. If you seek to hide the content of your Tcl source code, you
    will need to add additional mechanisms. Both tbcx::save and tbcx::load
    play nicely with Tcl input/output channels.

    Compatibility:

    This package supports only Tcl 9.1+. For previous versions you may want
    to use

    - https://github.com/tcltk-depot/tclcompiler
    - https://github.com/tcltk-depot/tbcload

    Project Homepage:

    https://github.com/bagnongithub/tbcx

    Documentation:

    https://bagnongithub.github.io/tbcx

    License:

    MIT License

    Feedback/Bug Reports:

    Feedback is welcome on the issue tracker https://github.com/bagnongithub/tbcx/issues
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From meshparts@alexandru.dadalau@meshparts.de to comp.lang.tcl on Mon Oct 27 07:53:40 2025
    From Newsgroup: comp.lang.tcl

    Am 26.10.2025 um 21:01 schrieb bagnon:
    Hello everyone,

    I am pleased to announce the release of TBCX v1.0.

    TBCX is a C extension for Tcl 9.1+ that serializes compiled Tcl bytecode (plus enough metadata to reconstruct `proc`s, TclOO methods, and lambda constructs) into a compact binary file — and later allows to load that file into another interpreter for fast startup without re-parsing or re-compiling the original source. There’s also a disassembler for human- readable inspection.

    The binary files that store the bytecode are not encoded/obfuscated in
    any way. If you seek to hide the content of your Tcl source code, you
    will need to add additional mechanisms. Both tbcx::save and tbcx::load
    play nicely with Tcl input/output channels.

    Compatibility:

    This package supports only Tcl 9.1+. For previous versions you may want
    to use

    https://github.com/tcltk-depot/tclcompiler
    https://github.com/tcltk-depot/tbcload

    Project Homepage:

       https://github.com/bagnongithub/tbcx

    Documentation:

       https://bagnongithub.github.io/tbcx

    License:

       MIT License

    Feedback/Bug Reports:

    Feedback is welcome on the issue tracker https://github.com/ bagnongithub/tbcx/issues

    I don't fully understand how this package works but I get it, that it
    makes loading of Tcl code faster, right?

    Is the compiled code also faster than the original Tcl code?
    For example, if I compile a Tcl procedure with TBCX, will that procedure
    run faster every time I call it?

    Thanks
    Alex
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Harald Oehlmann@wortkarg3@yahoo.com to comp.lang.tcl on Mon Oct 27 08:26:53 2025
    From Newsgroup: comp.lang.tcl

    Am 27.10.2025 um 07:53 schrieb meshparts:
    Is the compiled code also faster than the original Tcl code?
    For example, if I compile a Tcl procedure with TBCX, will that procedure
    run faster every time I call it?

    No. You only save the compile time the first time tcl sees your
    procedure. This is a one time saving.
    So, it is only the first call which is faster.

    Harald
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Harald Oehlmann@wortkarg3@yahoo.com to comp.lang.tcl on Mon Oct 27 09:12:51 2025
    From Newsgroup: comp.lang.tcl

    Hi Miquel,
    that sounds great !
    The "metadata assembly" of TCL-OO objects sounds like a totally new functionality.

    As you know, my aim is to get this as close to the core as possible.

    I hope, the MIT licence is compatible to the core licence.

    Thanks for all, I appreciate,
    Harald

    Am 26.10.2025 um 21:01 schrieb bagnon:
    Hello everyone,

    I am pleased to announce the release of TBCX v1.0.

    TBCX is a C extension for Tcl 9.1+ that serializes compiled Tcl bytecode (plus enough metadata to reconstruct `proc`s, TclOO methods, and lambda constructs) into a compact binary file — and later allows to load that file into another interpreter for fast startup without re-parsing or re-compiling the original source. There’s also a disassembler for human- readable inspection.

    The binary files that store the bytecode are not encoded/obfuscated in
    any way. If you seek to hide the content of your Tcl source code, you
    will need to add additional mechanisms. Both tbcx::save and tbcx::load
    play nicely with Tcl input/output channels.

    Compatibility:

    This package supports only Tcl 9.1+. For previous versions you may want
    to use

    https://github.com/tcltk-depot/tclcompiler
    https://github.com/tcltk-depot/tbcload

    Project Homepage:

       https://github.com/bagnongithub/tbcx

    Documentation:

       https://bagnongithub.github.io/tbcx

    License:

       MIT License

    Feedback/Bug Reports:

    Feedback is welcome on the issue tracker https://github.com/ bagnongithub/tbcx/issues

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From bagnon@miguel@bagnon.com to comp.lang.tcl on Mon Oct 27 09:46:40 2025
    From Newsgroup: comp.lang.tcl

    Thanks a lot Harald.

    I'm not an expert in source code license types, but changing the license
    would be the least of the problems here, let me know what you need.

    I encourage folks to try this, would be nice to have feedback from a
    wide usage.

    Best regards

    On 27/10/2025 09:12, Harald Oehlmann wrote:
    Hi Miquel,
    that sounds great !
    The "metadata assembly" of TCL-OO objects sounds like a totally new functionality.

    As you know, my aim is to get this as close to the core as possible.

    I hope, the MIT licence is compatible to the core licence.

    Thanks for all, I appreciate,
    Harald

    Am 26.10.2025 um 21:01 schrieb bagnon:
    Hello everyone,

    I am pleased to announce the release of TBCX v1.0.

    TBCX is a C extension for Tcl 9.1+ that serializes compiled Tcl
    bytecode (plus enough metadata to reconstruct `proc`s, TclOO methods,
    and lambda constructs) into a compact binary file — and later allows
    to load that file into another interpreter for fast startup without
    re-parsing or
    re-compiling the original source. There’s also a disassembler for
    human- readable inspection.

    The binary files that store the bytecode are not encoded/obfuscated in
    any way. If you seek to hide the content of your Tcl source code, you
    will need to add additional mechanisms. Both tbcx::save and tbcx::load
    play nicely with Tcl input/output channels.

    Compatibility:

    This package supports only Tcl 9.1+. For previous versions you may
    want to use

    https://github.com/tcltk-depot/tclcompiler
    https://github.com/tcltk-depot/tbcload

    Project Homepage:

        https://github.com/bagnongithub/tbcx

    Documentation:

        https://bagnongithub.github.io/tbcx

    License:

        MIT License

    Feedback/Bug Reports:

    Feedback is welcome on the issue tracker https://github.com/
    bagnongithub/tbcx/issues


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From saito@saitology9@gmail.com to comp.lang.tcl on Tue Oct 28 13:21:10 2025
    From Newsgroup: comp.lang.tcl

    On 10/26/2025 4:01 PM, bagnon wrote:
    Hello everyone,

    I am pleased to announce the release of TBCX v1.0.

    TBCX is a C extension for Tcl 9.1+ that serializes compiled Tcl bytecode
    Question:

    Do you need to compile source code first to use this package? Or does
    it first compile the source code and then serialize it?

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From bagnon@miguel@bagnon.com to comp.lang.tcl on Wed Oct 29 08:41:03 2025
    From Newsgroup: comp.lang.tcl

    On 28/10/2025 18:21, saito wrote:
    On 10/26/2025 4:01 PM, bagnon wrote:
    Hello everyone,

    I am pleased to announce the release of TBCX v1.0.

    TBCX is a C extension for Tcl 9.1+ that serializes compiled Tcl bytecode
    Question:

    Do you need to compile source code first to use this package?  Or does
    it first compile the source code and then serialize it?


    You pass tcl source code to the tbcx::save command, an this one takes
    care to compile and save/serialize it in one go.

    https://bagnongithub.github.io/tbcx/


    --- Synchronet 3.21a-Linux NewsLink 1.2