logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

critcl - Introduction To CriTcl

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.

Category

       Glueing/Embedded C code

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]   GuideToTheCriTclInternals

Tutorials - Practical Study - To Learn

       This section is currently empty.

See Also