Welcome to the C Runtime In Tcl (CriTcl for short) version 3.1.13.
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
Merged PR #43. Fixed bug loading adjunct Tcl sources.
Fixes in documentation and generated code of package
critcl::enum
. Bumped to version 1.0.1.
Fixes in documentation of package critcl::bitmap
.
New package critcl::emap
. In essence a variant or cross of
critcl::bitmap
with behaviour like critcl::enum
.
Merged PR #49. Fixed documentation typo.
Merged PR #46. Fixed documentation typo.
Merged PR #47. Fixes to test results to match the accumulated code changes. Also made portable across Tcl versions (varying error syntax).
New predefined argument- and result-type wideint
mapping
to Tcl_WideInt
.
New predefined argument-type bytes
mapping to tuple of
byte-array data and length.
Note: The existing type bytearray
(and its aliases)
was left untouched, to keep backward compatibility.
Modified the internal interface between the Tcl shim and C
function underneath critcl::cproc
with respect to the
handling of optional arguments. An optional argument X
now
induces the use of two C arguments, X
and has_X
. The
new argument has_X
is of boolean
(int
)
type. It is set to true
when X
is set, and set to
false
when X
has the default value. C code which
cares about knowing if the argument is default or not is now
able to check that quickly, without having to code the default
value inside.
Note: This change is visible in the output of the advanced
commands argcnames
, argcsignature
,
argvardecls
, and argconversion
.
Fixed issue #50 and documented the availability of variable
interp
(type Tcl_Interp*
) within critcl::cinit
C code fragments.
Note that while the old, undocumented name of the variable,
ip
, is still usable, it is deprecated. It will be fully
removed in two releases, i.e. for release 3.1.15. The
variable name was changed to be consistent with other code
environments.
Fixed issue #51. Disabled the generation of #line
directives for critcl::config lines 0
coming from template
files, or code generated with them before the final value of
this setting was known.
Fixed issue with handling of namespaced package names in
critcl::iassoc
. Equivalent to a bug in
critcl::class
fixed for critcl 3.1.1, critcl::class
1.0.1.
Note: literals
, enum
, emap
, and
bitmap
do not require a fix as they are all built on top
of iassoc
.
Fixed issue 42. Clear ::errorInfo
immediately after
startup to prevent leakage of irrelevant (caught) errors into
our script and confusing the usage code.
Fixed issue 40. Keep the order of libraries, and allow duplicates. Both are things which are occasionally required for proper linking.
Extended the utility package critcl::literals
to declare a
cproc
result-type for a pool.
Further fixed the generated header to handle multiple inclusion.
Bumped version to 1.1.
Fixed issue with utility package critcl::bitmap
.
Fixed the generated header to handle multiple inclusion.
Bumped version to 1.0.1.
Created new utility package critcl::enum
for the quick and
easy setup and use of mappings between C values and Tcl
strings. Built on top of critcl::literals
.
Added examples demonstrating the use of the utility packages
critcl::literals
, critcl::bitmap
, and
critcl::enum
Happy Tcling.