Critcl 3.1.17 released

Published

Welcome to the C Runtime In Tcl (CriTcl for short) version 3.1.17.

This is a system to build C extension packages for Tcl on the fly, from C code embedded within Tcl scripts, for all who wish to make their code go faster.

See

The changes for version 3.1.17:

  1. Extension: Allow duplicate arg- and result-type definitions if they are fully identical.

  2. Bugfix. The application mishandled the possibility of identical-named critcl::tsources. Possible because critcl::tsources can be in subdirectories, a structure which is not retained in the assembled package, causing such files to overwrite each other and at least one lost. Fixed by adding a serial number to the file names in the assembled package.

  3. Bugfix in the static scanner which made it loose requirement information. Further added code to generally cleanup results at the end (removal of duplicates, mainly).

  4. Bugfix: Fixed issue #76. Support installation directories which are not in the auto_path. Without the patch the installed critcl will not find its own packages and fail. Thanks to Simon Bachmann for the report and patch, and then his patience with me to getting to actually apply it.

  5. Bugfix: Fixed issue #75. Extended critcl::include to now take multiple paths.

  6. Added new compatibility package lmap84.

  7. Fixed typos in various documentation files.

  8. Fixed bug introduced by commit 86f415dd30 (3.1.16 release). The separation of critcl::ccode into user and work layers means that location retrieval has to go one more level up to find the user location.

  9. New supporting package critcl::cutil. Provides common C level facilities useful to packages (assertions, tracing, memory allocation shorthands).

  10. Modified package critcl to make use of the new tracing facilities to provide tracing of arguments and results for critcl::ccommand and critcl::cproc invokations.

  11. Modified packages critcl and critcl::class to provide better function names for (class) method tracing. Bumped package critcl::class to version 1.0.7.

  12. Extended the support package critcl::literals with limited configurability. It is now able to generate code for C-level access to the pool without Tcl types (Mode c). The previously existing functionality is accesssible under mode tcl, which also is the default. Both modes can be used together.

  13. Extended the support package critcl::emap with limited configurability. It is now able to generate code for C-level access to the mapping without Tcl types (Mode c). The previously existing functionality is accessible under mode tcl, which also is the default. Both modes can be used together.

Happy Tcling.