Tcl Source Code

Main
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2018 Conference, Houston/TX, US, Oct 15-19
Send your abstracts to tclconference@googlegroups.com or submit via the online form
by Aug 20.

Source Files

Public Interface

Private Interface

Directly Depends On Public Interface

Directly Depends On Private Interface of

Discussion

The routine TclGetMainLoop appears in no header file. It gets declared with MODULE_SCOPE but there doesn't appear to be any reason it could not be a static function.

The routine TclFullFinalizationRequested probably should move into (Initi/Fin)alize.

The core_zip_vfs Patch

The core_zip_vfs branch adds the ability to mount a zip archive concatenated to the current executable as a virtual file system, capable of hosting both env(TCL_LIBRARY) and kick off a bootloader (if a file called main.tcl is present).

This patch:

To build a self-contained executable:

cp tclsh mynewkit
# Build an empty zipfile and concat it to the executable
touch .empty
zip null.zip .empty
cat null.zip >> mynewkit
#
echo "puts {hello world}" > main.tcl
# The -A argument tells zip to offset itself from the executable
zip -A mynewkit main.tcl
./mynewkit
hello world
(Program exit)

For convenience the tcl Makefile has a "make tclkit", which make a tclkit with an embedded TCL_LIBRARY.

The tk Makefile has a "make tkkit" which provides a similar service for wish-based kits.

If the shells are compiled with --enable-shared=no, the Tcl/Tk libraries will be statically bound with the shells, and thus truly self-contained. Otherwise they will need access to the tcl/tk shared libraries. Either in the same directory as the executable, or tucked somewhere in your operating's systems library search path.