Dear Community, We are pleased to announce the availability of the Next Scripting Framework (NSF) 2.2.0. This is a maintenance release. Since the release of 2.1.0, ... Diff stats since 2.1.0: ... Major changes relative to 2.1.0 are: - ... New Features - NSF: * New command: nsf::definitionnamespace * Robustness improvements: + NsfHasTclSpace: ... * Performance improvements: + The lookup for (bytecode-compiled) object variables is now supported by a lookup cache to avoid repeated linear searches. + The number of string comparisons (strcmp) was reduced systematically, in method-parameter parsing and argument handling. + The number of strlen uses was reduced, especially in method-parameter parsing and argument handling. + ... - NX: * Improvements to incremental property methods: value=add and value=delete * Improvements to substdefault handling: + substdefault for properties and variables: make behaviour of per-object and per-class substdefaults consistent, early check for complete substitution scripts, ... + substdefault options * Improvements to ensemble methods: + Fix ensemble-method dispatch via colon dispatcher + [current nextmethod] + [current isnextcall] are now fully aware of ensemble methods, when being used from within. * Documentation (API and examples): + Added ... + Updated ... - XOTcl2: ... - MongoDB interface upgrade: * Upgraded driver and utilities to mongodb-c-driver 1.9.3 and libbson 1.9.3. * Add regular expression queries to conditions in nx::mongo - nx::test * Provide for expressing expected results in terms of error codes, rather than error messages. This is to prepare an upcoming reform on providing error codes from within NSF more extensively. - Documentation: * NSF now has support for TIP #59 introspection via ::nsf::pkgconfig; see https://core.tcl.tk/tips/doc/trunk/tip/59.md * Added tutorials on NX properties: tutorial-properties.tcl * Improved spelling: next-migration.txt, ... - Maintenance & bug fixes: * Execution namespace reform: NSF methods execute in their object's definition namespace, and not in the the proc's origin namespace. Rather than patching the proc commands namespace unconditionally (leading to counter-intuitive results using standard Tcl introspection on these commands), the execution namespace is maintained in a context structure and patched for executing the proc only. * Migration to 'bool' * Tcl 8.7: Preliminary support for a future Tcl 8.7 (as of Dec 2, 2016; commit 71fa1f9c91). NSF compiles under 8.7a0 and its regression tests execute successfully. * Misc (esp. NSF/C): + Reduced memory consumption via better member aligning of structs, esp. on 64-bit machines. + Bug fix: Avoid preemptive frees on %proc subsitution for forwarder methods. + Aliases: Avoid Tcl_obj re-creations * New configure option: "--enable-development=test" * Extended regression test suite: The test suite contains (for Tcl 8.6.8) now xxxx tests. - Packaging & distribution: * Initial support for the new nmake system of TEA (TIP 477) and MSVC 1914 (VS 2017; win/makefile.vc); various fixes to install target. The detailed changelog is available at https://next-scripting.org/xowiki/download/file/ChangeLog-2.1.0-2.2.0.log The Next Scripting Framework 2.2.0 (containing NX 2.2.0 and XOTcl 2.2.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