For the detailed changes see
https://andreas-kupries.github.io/critcl/doc/files/critcl_changes.html#section2
====
Two BREAKING changes since 3.1.18.1
1. Tcl Core Version
- 3.2 needs Tcl 8.6 to run
- 3.2 generates Tcl 8.6 extensions by default
- 3.2 is __still able__ to generate 8.4/8.5 extensions
(See `critcl::tcl` command)
2. The syntax of `build.tcl install` was wholly rewritten.
Scripts using it have to be adapted.
FEATURES
1. `cproc` allows near-C argument syntax.
IOW `cproc foo {double alpha, int max} ...` is now ok.
As are `cproc foo {double alpha ,int max} ...`
and `cproc foo {double alpha , int max} ...`
Note the comma in its various locations.
1. `cproc` allows range-limited scalar types. I.e. `int > 3 < 10`
is now a type limited to integer values in the range `4..9`.
Can use all of `>`, `>=`, `<`, `<=`, in combinations.
1. `cproc` now allows length-limited lists, type-restricted lists, and in
combination.
For example, `[4]` is a generic list limited to exactly 4 elements.
Wheras `[]int` (and `int[]`) are lists whose elements have to be integers.
And `[4]int` combines the length limit and type restrictions.
The types `[]` (and `[*]`) are aliases of the existing basic `list` type.
For syntax nearer to C the form `type foo[]` etc, for an argument `foo` is
recognized too.
Limitation: It is not possible to nest lists, nor can they be combined
with
range-limited scalars. I.e. types like `[][][]foo` are not possible, nor
`[]int > 0`, or similar.
This is used by Tcllib's updated `map::slippy` C accelerator to handle
lists of geographic locations, boxes, points, ... See commit [2e83f22d34]
Happy Xmas and good new year.
--
Happy Tcling,
Andreas Kupries <and...@gm...>
<https://core.tcl-lang.org/akupries/>
<https://akupries.tclers.tk/>
Developer @ SUSE Software Solutions Germany GmbH
-------------------------------------------------------------------------------
|