Package for compiling Tcl bytecode into LLVM IR (and hence to native code). Depends on tclbdd and llvmtcl. May form the basis for the fastest path of the Tcl execution engine in 9.0; performance is good, but dependencies are complex.
https://core.tcl.tk/tclquadcode
https://chiselapp.com/user/kbk/repository/tclquadcode
This package can sometimes make code that is _stunningly_ faster than standard Tcl. Seriously fast. It depends on what the code is doing though.
Performance Category | General Speedup Expected |
---|---|
Numeric code: integers | 20 to 25 times |
Numeric code: floating point | around 10 times |
String code | often about 50%; sometimes less |
Structure code: lists and dicts | around 2 times |
Error handling | around 2 times |
Global variables | probably no big change |
I/O code | no significant change (not a design objective) |
Note that optimisations can also be applied between procedures (provided all relevant procedures are compiled at once). This may make some code get an even greater acceleration.