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 * New command: ::nsf::cmd::info disassemble * 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. + coloncmd reform: dispatch of [:method ...] by up to 30% - 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 substdefault (to-do) - 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 * Improved portability between platforms/ OS * Added auto-cleanup of resources (objects) for long-living execution environments (destroy_on_cleanup). * More robust serialisation of object graphs, by preserving birth classes in serialization. - 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. - DTrace support (Mac OS X): Adjusted NSF/DTrace integration for changes on recent Mac OS X (incl. SIP). See dtrace/README for instructions. - 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, ... - Continued testing: NSF is now continuously built and tested under Linux, Mac OS X, and Windows against different Tcl targets, using different tool chains (gcc, clang, MinGW, MSVC). For this purpose, there is now an official GitHub mirror at: https://github.com/nm-wu/nsf Build and test reports are available from: https://travis-ci.com/nm-wu/nsf https://ci.appveyor.com/project/mrcalvin/nsf-2ylk0 - 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 + Guarded against potential Tcl_Obj leaks, esp. when using "NsfMethodNamePath", as indicated by valgrind. + Silenced warnings emitted by GCC 8.1+ on strncat and strncpy. + Addressed 5 code-quality issues as indicated by Coverity Scan, incl. control-flow issues (risking NULL dereferencing) and buffer overflows in string operations. + Silence warnings under MSVC 1914 * 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