Index: doc/Announce2.1.0 =================================================================== diff -u -rce6a43ba9ffe0327d21f517f4e69b769c33b91de -r82d9a841583bf6f8ab50c5a2cd1b111abee9440d --- doc/Announce2.1.0 (.../Announce2.1.0) (revision ce6a43ba9ffe0327d21f517f4e69b769c33b91de) +++ doc/Announce2.1.0 (.../Announce2.1.0) (revision 82d9a841583bf6f8ab50c5a2cd1b111abee9440d) @@ -14,35 +14,58 @@ Major changes relative to 2.0.0 are: -a) +o) -b) +o) -c) +o) -d) Improved robustness: +o) Improved robustness: * Tcl command resolvers and command literals: Up to and including Tcl 8.6.6, there were subtle and unwanted - interactions between Tcl's command resolvers in certain corner - cases (which are used by NSF dispatcher for colon-prefixed messages - and helper commands) and Tcl's command literals. The issue and patches - were reported upstream to the Tcl core by Gustaf Neumann and will - enter an upcoming patch release (8.6.7). Our regression test-suite - was extended accordingly to track the issue. + interactions between Tcl's command resolvers (which are used by NSF + dispatcher for colon-prefixed messages and helper commands) in + certain corner cases and Tcl's command literals. The issue and + patches were reported upstream to the Tcl core by Gustaf Neumann + and will enter an upcoming patch release (8.6.7). Our regression + test-suite was extended accordingly to track the issue. See Tcl Fossil tickets ... and ... + * Finalizing NSF and NSF object systems: + + In this release, the finalization procedures of NSF (on process + exits, thread exits, and interp teardowns) has been revised. For + example, NSF's ExitHandler is guaranteed to be called just once in + the above scenarios (e.g., to avoid double frees of NSF + structures). + * UnsetTracedVars: + + Provide for a two-pass deletion logic during object shutdown, to + account for unset traces possibly reviving an object variable + under deletion. This corresponds to a recent memleak fix to + Tcl itself. See also Tcl Fossil ticket 4dbdd9af144dbdd9af14. +o) Improved scripted shells (e.g., nxsh, xotclsh): -e) Updated MongoDB interface: - - ... + * Don't quit due to inner [return] calls. -f) API changes: +o) Minor logging reform at the C-level (NsfLog, interp) so that + "nsf::configure debugLevel /severity/" will print error messages at + a level equal or greater than the given severity (0, 1, 2, 3). For + example, "nsf::configure debugLevel 0" will print everything, and + "nsf::configure debugLevel 3" will print just error messages while + omiting warnings etc. This is not entail changed logging semantics, + but helped remove some confusion at the C level. +o) Improved NSF/C code generator: Allows for specifying and generating + enum types. + +o) API changes: + Dropped methods: Added methods: @@ -52,14 +75,16 @@ ::nsf::current level -g) Documentation (API and examples): +o) Documentation (API and examples): Added: - New Rosetta implementations: Inheritance/single Add object variable dynamically + Tree traversal + Tokenizer Updated: @@ -78,15 +103,26 @@ Polymorphic copy Multiple distinct objects -h) Code changes (C): +o) Code changes (C): * Removed all implicit type-conversions, signed/unsigned comparisons as flagged by the following gcc/clang flags (ensure cleanness on 64bit) -Wconversion -Wsign-conversion -Wfloat-conversion -Wsign-compare. * Reduced variable scopes. + * Guarded against potential Tcl_Obj leaks, esp. when using + NsfMethodNamePath(), as indicated by valgrind. + * Refactored functions for topological sorting (TopoSort()) to + avoid redundancies. + * Addressed 16 code-quality issues as indicated by Coverity Scan, + incl. control-flow issues (risking NULL dereferencing), dead code + branches, etc. + * Removed uses of deprecated functions: Tcl_AppendResult, ... + * Based on the improve NSF/C code generator, proper enum types are + used in generated function signatures and the respective control + structures (switch). -i) Packaging: Updated TEA to 3.10 +o) Packaging: Updated TEA to 3.10 The Next Scripting Framework 2.1.0 (containing NX and XOTcl 2.1.0) can be obtained from https://next-scripting.org/.