From: Andreas K. <aku...@sh...> - 2020-02-14 03:40:39
|
Hello all. Critcl 3.1.18 has been released today. C Runtime In Tcl, or CriTcl, is a system for compiling C code embedded in Tcl on the fly and either loading the resulting objects into Tcl for immediate use or packaging them for distribution. Use CriTcl to improve performance by rewriting in C those routines that are performance bottlenecks. The full set of changes since 3.1.17 is in the commit log. A smaller overview can be found at http://andreas-kupries.github.io/critcl/doc/files/changes.html Focusing that list even more, on the new features: * (Developer support). Merged pull request #96 from sebres/main-direct-invoke. Enables direct invokation of the "main.tcl" file for starkits from within a dev checkout, i.e. outside of a starkit, or starpack. * Added channel types to the set of builtin argument and result types. The argument types are for simple channel access, access requiring unshared channels, and taking the channel fully into the C level, away from Tcl. The result type comes in variants for newly created channels, known channels, and to return taken channels back to Tcl. The first will register the returned value in the interpreter, the second assumes that it already is. * Package `critcl::class` bumped to version 1.1. Extended with the ability to create a C API for classes, and the ability to disable the generation of the Tcl API. * Package `critcl::cutil` bumped to version 0.2. Added macros ALLOC_PLUS and STRDUP. * Package `critcl::iassoc` bumped to version 1.1. Refactored internals to generate an include header for use by .c files. This now matches what other generator packages do. The template file is inlined and removed. * New package `critcl::callback` providing C-level functions and data structures to manage callbacks from C to Tcl. * Package `critcl::literals` bumped to version 1.3. Added mode `+list` enabling the conversion of multiple literals into a list of their strings. * Package `critcl::enum` bumped to version 1.1. Added basic mode handling, supporting `tcl` (default) and `+list` (extension enabling the conversion of multiple enum values into a list of their strings). * Package `critcl::emap` bumped to version 1.2. Extended existing mode handling with `+list` extension enabling the conversion of multiple emap values into a list of their strings. * Extended the set of available types by applying a few range restrictions to the scalar types (int, long, wideint, double, float). Example: `int > 0` is now a viable type name. This is actually more limited than the description might let you believe. Wrt the restricted scalar types, it is the cartesian of (int, long, wideint, double, float) x (<, <=, >, >=) x (0, 1) -- See you, Andreas Kupries <aku...@sh...> <https://core.tcl-lang.org/akupries/> Developer @ SUSE Software Canada ULC <and...@su...> Tcl'2019, Nov 5-8, Houston, TX, USA. http://www.tcl.tk/community/tcl2019/ ------------------------------------------------------------------------------- |