critcl3tcl
Introduction to critcl
Overview
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.
History & motivation
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. |
Overview
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.
Known users
•
|
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] |
Tutorials - practical study - to learn
This section is currently empty.
Explanations - theoretical knowledge - to understand
This section is currently empty.
How-to guides - practical work - to solve problems
[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. |
References - theoretical work - to gain knowlegde
[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 |
Bugs, ideas, feedback
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.
Keywords
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
Category
Glueing/Embedded C code