table of contents
- NAME
- DESCRIPTION
- HISTORY & MOTIVATION
- OVERVIEW
- KNOWN USERS
- TUTORIALS - PRACTICAL STUDY - TO LEARN
- EXPLANATIONS - THEORETICAL KNOWLEDGE - TO UNDERSTAND
- HOW-TO GUIDES - PRACTICAL WORK - TO SOLVE PROBLEMS
- REFERENCES - THEORETICAL WORK - TO GAIN KNOWLEGDE
- AUTHORS
- BUGS, IDEAS, FEEDBACK
- KEYWORDS
- CATEGORY
- COPYRIGHT
critcl(3tcl) | C Runtime In Tcl (CriTcl) | critcl(3tcl) |
NAME¶
critcl - Introduction To CriTcl
DESCRIPTION¶
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)
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
AUTHORS¶
Jean Claude Wippler, Steve Landers, Andreas Kupries
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
COPYRIGHT¶
Copyright (c) Jean-Claude Wippler Copyright (c) Steve Landers Copyright (c) 2011-2024 Andreas Kupries
3.3.1 | doc |