critcl - Introduction To CriTcl
Contents
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.
Category
Glueing/Embedded C code
Copyright
Copyright (c) Jean-Claude Wippler
Copyright (c) Steve Landers
Copyright (c) 2011-2024 Andreas Kupries
doc 3.3.1 critcl(3tcl)
Description
Be welcome to the CRuntimeInTcl (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.
Explanations - Theoretical Knowledge - To Understand
This section is currently empty.
History & Motivation
CriTcl started life as an experiment by Jean-ClaudeWippler 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.
How-To Guides - Practical Work - To Solve Problems
[1] HowToGetTheCriTclSources.
[2] HowToInstallCriTcl.
[3] HowToUseCriTcl - A light introduction through examples.
[4] NEW: HowToAdaptCritclPackagesforTcl9.
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
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]
Name
critcl - Introduction To CriTcl
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-ToGuides
| (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.
References - Theoretical Work - To Gain Knowlegde
[1] TheCriTclLicense
[2] CriTclReleases&Changes
[3] CriTclApplicationReference
[4] CriTclPackageReference
[5] CriTclcprocTypeReference
[6] CriTcl-Utilities
[7] CriTcl-C-levelUtilities
[8] CriTcl-C-levelCallbackUtilities
[9] CriTcl-WrapSupport-String/Integermapping
[10] CriTcl-WrapSupport-Bitseten-anddecoding
[11] CriTcl-WrapSupport-Enumen-anddecoding
[12] CriTcl-CodeGen-Constantstringpools
[13] CriTcl-CodeGen-TclInterpAssociations
[14] CriTcl-CodeGen-CClasses
[15] CriTclApplicationPackageReference
[16] GuideToTheCriTclInternalsTutorials - Practical Study - To Learn
This section is currently empty.
