Forum OpenACS Development: Announcement: Next Scripting Framework 2.4.0 available

Dear Community,

We are pleased to announce the availability of the Next Scripting Framework (NSF) 2.4.0. The changes are mostly perfective improvements in terms of bug fixes, Tcl version compatibility, and API consistency. See below for the details.

Diff stats since 2.3.0:

182 files changed, 26862 insertions(+), 20338 deletions(-)
Major changes relative to 2.3.0 are: NSF now compiles and runs with Tcl 9 (core.tcl-lang.org/tcl main branch at the time of writing, August 2022). This way, NSF/NX/XOTcl can be used with the Tcl 8.5.* series, Tcl 8.6.*, and Tcl 8.7.* and Tcl 9.* on Linux/Windows/macOS. One can see the results of the compilations and test runs on
https://github.com/nm-wu/nsf/actions
https://ci.appveyor.com/project/mrcalvin/nsf-2ylk0/history
Selected changes worth mentioning:
  • Maintenance & bug fixes:
    • Tcl 9: For the first time, NSF now compiles and its test suite completes with Tcl 9. Kudos to Jan Njitmans.
    • Tcl 8.7:
      • Support for the Tcl 8.7a5 release (core.tcl-lang.org/tcl branch "core-8-branch"). NSF compiles and its regression tests execute successfully (including TCL_NO_DEPRECATE).
      • NSF is now TIP-538 ready (Tcl starting relying on libtommath as an extrinsic dependency).
    • Fixed type name abbreviation bug: Previous versions did not handle cases correctly where an application type name starts with the same character sequence as a built-in type. So it was not possible to define a type "object_id", since a spec of the form "x:object_id" was interpreted as "x:object" ("object" is a predefined type). Now, such type name abbreviations are not allowed.
    • Plugged a small memory leak when using mp_int (libtommath) data internally.
    • Fixed a crash when using volatile combined with method "configure" in XOTcl 2.
    • Fixed crashes due to internal cache mismanagement of flag names processed by configure/ cget. See com.lang.tcl posting.
    • Fixed exit from non-threaded NSF builds (will not hang anymore).
    • Added a warning when a slot name hints a typing error.

  • Build environments, automated builds:
    • Made "Makefile" more robust in light of file paths containing whitespace characters
    • Due to Travis becoming unavailable, we moved to GitHub Actions for automated builds on Linux and macOS. Windows builds are still served by AppVeyor.

  • XOTcl:
    • "dict" is now available as a per-object method, similar to "array".

  • MongoDB:
    • Tested the NSF MongoDB binding against latest stable releases of MongoDB (5.0.9) and MongoDB-C driver (1.22.1).
    • Fixed test case for gridfs and file renaming

  • Documentation:
    • Improved wording and corrected spelling in man pages, tutorials, and examples.

The detailed changelog is available at https://next-scripting.org/xowiki/download/file/ChangeLog-2.3.0-2.4.0.log The Next Scripting Framework 2.4.0 (containing NX 2.4.0 and XOTcl 2.4.0) can be obtained from https://next-scripting.org/. Please report issues and wishes by opening a ticket at https://sourceforge.net/p/next-scripting/tickets/.

Best regards
- Gustaf Neumann
- Stefan Sobernig