______________________________________________________________________________
critcl − Introduction To CriTcl
Be welcome to the C Runtime In Tcl (short: CriTcl), a system for embedding and using C code from within Tcl [http://core.tcl-lang.org/tcl] scripts.
Adding C code to Tcl [http://core.tcl-lang.org/tcl]/Tk [http://core.tcl-lang.org/tk] has never been easier.
Improve performance by rewriting the performance bottlenecks in C.
Import the functionality of shared libraries into Tcl scripts.
CriTcl started life as an experiment by Jean-Claude Wippler and was a self-contained Tcl package to build C code into a Tcl/Tk extension on the fly. It was somewhat inspired by Brian Ingerson’s Inline for Perl, but is considerably more lightweight.
It is for the last 5% to 10% when pure Tcl, which does go a long way, is not sufficient anymore. I.e. for
|
[1] |
when the last bits of performance are needed, |
|||
|
[2] |
access to 3rd party libraries, |
|||
|
[3] |
hiding critical pieces of your library or application, and |
|||
|
[4] |
simply needing features provided only by C. |
To make the reader’s topics of interest easy to find this documentation is roughly organized by Quadrants [https://documentation.divio.com/], i.e.
| Study | Work
----------- + --------------- + -----------------
Practical | Tutorials | How-To Guides
| (Learning) | (Problem solving)
----------- + --------------- + -----------------
Theoretical | Explanations | References
| (Understanding) | (Knowledge)
Note: At this point in time the documentation consists mainly of references, and a few how-to guides. Tutorials and Explanations are in need of expansion, this is planned.
|
• |
AnKH [https://core.tcl-lang.org/akupries/ankh] |
|||
|
• |
TclYAML [https://core.tcl.tk/akupries/tclyaml] |
|||
|
• |
Linenoise [https://github.com/andreas-kupries/tcl-linenoise] |
|||
|
• |
KineTcl [https://core.tcl.tk/akupries/kinetcl] |
|||
|
• |
Inotify [https://chiselapp.com/user/andreas_kupries/repository/inotify] |
|||
|
• |
TclMarpa [https://core.tcl.tk/akupries/marpa] |
|||
|
• |
CRIMP [https://core.tcl.tk/akupries/crimp] |
This section is currently empty.
This section is currently empty.
|
[1] |
How To Get The CriTcl Sources. |
|||
|
[2] |
How To Install CriTcl. |
|||
|
[3] |
How To Use CriTcl - A light introduction through examples. |
|||
|
[4] |
NEW: How To Adapt Critcl Packages for Tcl 9. |
|
[1] |
The CriTcl License |
|||
|
[2] |
CriTcl Releases & Changes |
|||
|
[3] |
CriTcl Application Reference |
|||
|
[4] |
CriTcl Package Reference |
|||
|
[5] |
CriTcl cproc Type Reference |
|||
|
[6] |
CriTcl - Utilities |
|||
|
[7] |
CriTcl - C-level Utilities |
|||
|
[8] |
CriTcl - C-level Callback Utilities |
|||
|
[9] |
CriTcl - Wrap Support - String/Integer mapping |
|||
|
[10] |
CriTcl - Wrap Support - Bitset en- and decoding |
|||
|
[11] |
CriTcl - Wrap Support - Enum en- and decoding |
|||
|
[12] |
CriTcl - Code Gen - Constant string pools |
|||
|
[13] |
CriTcl - Code Gen - Tcl Interp Associations |
|||
|
[14] |
CriTcl - Code Gen - C Classes |
|||
|
[15] |
CriTcl Application Package Reference |
|||
|
[16] |
Guide To The CriTcl Internals |
Jean Claude Wippler, Steve Landers, Andreas Kupries
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report them at https://github.com/andreas-kupries/critcl/issues. Ideas for enhancements you may have for either package, application, and/or the documentation are also very welcome and should be reported at https://github.com/andreas-kupries/critcl/issues as well.
C code, Embedded C Code, calling C code from Tcl, code generator, compile & run, compiler, dynamic code generation, dynamic compilation, generate package, linker, on demand compilation, on-the-fly compilation
Glueing/Embedded C code
Copyright (c)
Jean-Claude Wippler
Copyright (c) Steve Landers
Copyright (c) 2011-2024 Andreas Kupries