Dear Community, We are pleased to announce the availability of the Next Scripting Framework (NSF) 2.3.0. The changes are mostly ... See below for the details. Diff stats since 2.2.0: 122 files changed, 4440 insertions(+), 2339 deletions(-) Major changes relative to 2.2.0 are: New Features - NSF: * Rename reform for nsf::procs: NSF procedures can now be safely renamed (or deleted) using the [rename] command. This was only partially supported before, and could also lead to crashes (when redefining a renamed nsf::proc). * New object property "autonamed": NSF objects having been created using "new", rather than using "create", can now be tested for this condition using the object property "autonamed": % package req nx % nsf::object::property [nx::Object new] autonamed 1 % nsf::object::property [nx::Object create o] autonamed 0 This is to avoid having to rely on pattern sniffing of the command names. In addition, the propery is now set early enough, right after allocating the NSF object, to test for the autonaming condition from within the creation procedure (ttrace). * Extended object property "volatile": By setting or unsetting the object property "volatile", a given NSF object can now be rendered volatile or not (in addition to using the volatile method on the object). - NX: * nx::zip rewrite: nx::zip now uses the built-in Tcl 8.6 encode and decode facilties, if available, rather than requiring the Trf package to be present. - XOTcl: * Improved compatibility of XOTcl2 with XOTcl1 behaviour for volatile objects: ... - nx::serializer: * Improved backward compatibility: Preserve overriding accessor/ mutators methods (instprocs) for slots. - MongoDB: * Added JSON serializer: The "find all" method now accepts the -asJSON flag to return a JSON formatted string. This is to facilitate implementing single-page JavaScript applications. - Documentation: * Added documentation of uplevel and upvar methods. - Maintenance & bug fixes: * VLA reform: Avoid the use of variable-length arrays (VLA) when building argument vectors of Tcl_Objs internally to NSF. Use fixed-sized ones (stack-allocated for a size known at compile time or dynamically allocated above) to prevent from potential overflows and to produce more time-efficient instructions. * Tcl 8.7: Support for Tcl 8.7a1 and the upcoming, unreleased Tcl 8.7a2 (core.tcl.tk branch "core-8-branch"). NSF compiles and its regression tests execute successfully. * Misc (esp. NSF/C): * Test suite: Fix recursion tests on 8.5 (windows-only, forward.test) for platform-specific error messages (CheckCStack), obsolete for 8.6 with NRE. - Build environments: * Turned off COMDAT folding (/opt:icf) under nmake builds which can lead to unusable, pointless function-pointer comparisons (Nsf_ConvertToSwitch vs. Nsf_ConvertToBoolean). * Improved robustness of Windows (nmake) installation routines by testing for the existence of the install directory. The detailed changelog is available at https://next-scripting.org/xowiki/download/file/ChangeLog-2.2.0-2.3.0.log The Next Scripting Framework 2.3.0 (containing NX 2.3.0 and XOTcl 2.3.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