From: Andreas K. <and...@gm...> - 2022-12-15 19:22:41
|
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 ------------------------------------------------------------------------------- |