Index: ChangeLog-2.2.0-2.3.0.log =================================================================== diff -u -r22becf70dfa35f297ba970bee8190e749dfcf911 -r4a1f36409db7323cb829db48c5d714d9d5ddd37e --- ChangeLog-2.2.0-2.3.0.log (.../ChangeLog-2.2.0-2.3.0.log) (revision 22becf70dfa35f297ba970bee8190e749dfcf911) +++ ChangeLog-2.2.0-2.3.0.log (.../ChangeLog-2.2.0-2.3.0.log) (revision 4a1f36409db7323cb829db48c5d714d9d5ddd37e) @@ -1,276 +1,205 @@ -2019-04-12 Gustaf Neumann +2019-04-26 Stefan Sobernig - * nsf.c: Muniro formatting changes [5e7610d4] + * forward.test: Constrain the max recursion depth around recursive + forwards, so that we do not run into early crashes on systems with + limited stack sizes (when the stack is saturated before a recursion + limit is hit). This fixes test runs on MinGW/ gcc builds at AppVeyor. + [6debf965] -2019-04-12 Stefan Sobernig +2019-04-23 Stefan Sobernig - - Provide 2.2 builds on Appveyor [955967fa] + * forward.tests: Provide some background comment on platform-dependent + error messages as test conditions (infinite loop) and make sure tests + under 8.6 are executed as intended. [e760812b] + * Continued work in changelog and announcement (still WIP) + [22becf70] - - Use maintenance branch for 2.2, to fulfil presence requirements of - build descriptor [034ea94d] +2019-04-21 Gustaf Neumann + * nsf.c: Added "pure" declarations [0d57967b] + * nsf.c, nsfObj.c, nsfProfile.c, nsfStack.c, nsfShadow.c: Removed + null test after dereferences, avoid potentail null dereferences in + error cases [1f532a9d, ef01bf0b] - - Provide for 2.2.0 builds, and fix allowed failures [25d6f9a3] +2019-04-20 Gustaf Neumann + * nsf.c (NsfObjectPropertyCmd): Improve code safety and remove + dead statement [727ef73d] + * nsf.c (DispatchDefaultMethod): Get rid of warning of static + checker, reduce number of returns before end of function + [3c3c372b] - - Deploy mode for Appveyor builds [fb2a31e7] +2019-04-19 Gustaf Neumann -2019-04-11 Stefan Sobernig + * nsf.c, nsfError.c: Minor code cleanup [9333a832] + * nsf.c (ForwardArg): Add asserts [dcbc76a2] +2019-04-19 Stefan Sobernig - - Add missing install instruction [skip travis] [b2825a79] + * ChangeLog-2.2.0-2.3.0.log, Announce2.3.0: Continued work in + changelog and announcement (still WIP) + [4f0774c0] +2019-04-18 Gustaf Neumann - - Fix yaml [skip travis] [ebaa3d49] + * nsf.c (NsfCCreateMethod): Revised fix for memory leak on + "hyper-volatile" objects. it seems, we have to set the + _is_autonamed flag in advance of obj initialization [0aabdb62] +2019-04-17 Gustaf Neumann - - Fix yaml [skip travis] [f9090473] + * nsf.c (NextSearchAndInvoke): Addressing coverty defect 337829 + (dereference before null check) + [f5000938] +2019-04-15 Gustaf Neumann - - Fix yaml [skip travis] [f7f11897] + - make spelling more consitent [7b2d369f] + - fix typo [b568b39b] + - Provide a more conservative change for setting autonamed flag + [ecda5a16] + - provide more context info when the version mismatch test fails + [ff219acd] + - remove "-Wabi" for standard intense checking + - more troubles then benefits [b55cf93e] + * nsfInt.h: Improve consistency of naming parameters denoting NSF + objects [6dc8e9ad] +2019-04-15 Stefan Sobernig - - Add deploy key to AppVeyor [skip travis] [1d6dbca6] + * nsf.c (NsfCCreateMethod): Fix access of potentially freed object to + set the autonamed property (indicated by valdgrind). When destroyed + and cleaned during DoObjInitialization, "newObject" will remain as a + dangling pointer. Besides, setting the property before + DoObjInitialization will make the object property available from within + the initcmd or init method. [08bf8cbe] -2019-04-10 Stefan Sobernig + * nsf.c (NsfProcStubDeleteProc): Plug leakage of command structure + (found by valgrind) [545663bd] +2019-04-14 Stefan Sobernig - - Remove context noise (directory tree) from the tarballs [585904b1] + * ChangeLog-2.2.0-2.3.0: Add changelog and announcement files + (WIP) [13bbfb85] +2019-04-12 Gustaf Neumann - - - * configure, configure.ac: Make sure 'git describe' uses --always, to - not fail on truncated checkouts without tags in reach (as on Travis) - [168c4584] + * nsf.c: Muniro formatting changes [5e7610d4] +2019-04-12 Stefan Sobernig - - Provide some harness around 'make test', to avoid swallowing failing - test suites in light of the write-error condition [e97d7fb1] + * appveyor.yml: Provide 2.2 builds on Appveyor [955967fa, 034ea94d] + * .travis.yml: Provide for 2.2.0 builds, and fix allowed failures [25d6f9a3] + * appveyor.yml: Deploy mode for Appveyor builds [fb2a31e7] +2019-04-11 Stefan Sobernig - - - * nsf.c (NsfDebugShowObj): For consistency, stick with %x using PRIxPTR - [eb1d421a] + * appveyor.yml: Prepare deploy mode for [1d6dbca6, f7f11897, + f9090473, ebaa3d49, b2825a79] +2019-04-10 Stefan Sobernig - - *nsf.c (NsfDebugShowObj): Simplify from using %x to %p, to avoid - PTR2UINT (which, starting with 8.7, will return u long, not u int) - [e270ccdb] + * .travis.yml: Remove context noise (directory tree) from the tarballs [585904b1] + * configure, configure.ac: Make sure 'git describe' uses --always, to + not fail on truncated checkouts without tags in reach (as on Travis) + [168c4584] + * build.tcl: Provide some harness around 'make test', to avoid swallowing failing + test suites in light of the write-error condition [e97d7fb1] + * nsf.c (NsfDebugShowObj): For consistency, stick with %x using PRIxPTR + [eb1d421a, e270ccdb] 2019-04-09 Stefan Sobernig - - - Completed rewrite, ufff [31aa3666] - - - - Another try [66f716d0] - - - - Fix gcc version for macos [e6ecd0ce] - - - - Rewrite build matrix (testing) [3b557e75] - - - - Refine build matrix [f7b03ccc] - - - - Refine build matrix [73e3884a] - - - - Make tarball names more explanatory [7dcde484] - - - - linux image requires more generic fix, Python module variant not - available [aed8ea31] - - - - Change script block [7f3d59b9] - - - - Test NONBLOCK fix for write error [bf3b3810] - - - - Change http:// occurrences to https://, if applicable (URLs tested) + * .travis.yml: Refined build matrix, included actual gcc for macOS + into build matrix [31aa3666, 66f716d0]; made tarball names more + explanatory [7dcde484]; NONBLOCK fix for write error [aed8ea31, + bf3b3810] + * Change http:// occurrences to https://, if applicable (URLs tested) [a963e889] + * .travis.yml: Fix ssh/scp calls [76e8cc2b], avoid host check + [260b0eab], Fix permissions [aef46edc] - - - Fix permissions [aef46edc] - - - - Avoid ssh-add [368429d7] - - - - Avoid host check [260b0eab] - - - - Fix ssh/scp calls [76e8cc2b] - - - - Re-enable install target [ae50ec69] - - - - Add a debugging statement around make test [0da374a0] - 2019-04-08 Stefan Sobernig - - - Stepping back, continued [2cf4592b] - - - - Stepping back, sigh [a16d90cc] - - - - Attempt at write-error fix [6803f779] - - - - Leave it be, for the moment [7ecd981f] - - - - Don't stop on stderr print-outs [fccfdc03] - - - - Make calls less verbose, are we hitting a limit? [caf2b43e] - - - - Avoid colliding paths [91e76546] - - - - Activate some introspection [16f15e09] - - - - Fold separate bash calls into one [049a0557] - - - - Fix configure path [90e3ef3c] - - - - Now with com [60dcfe05] - - - - Rebuild key, once again [f0ed06ec] - - - - Adding new key [94cd1b31] - - - - Add build script with install target [a3c52384] - - - - Fix glitch in openssl call [0e7be046] - - - - Test for auto-deployment of builds [56752f08] - - - - Prepare for automated deploymnent of build artifacts [skip travis] - [1eacec29] - - - - - * apps/build.tcl: Revert URL change for build script, archive is + * .travis.yml: Provide for automated deployment of build artifacts + on Travis CI [1eacec29 - 56752f08] + * apps/build.tcl: Revert URL change for build script, archive is retrieved broken otherwise? [09dab29b] + * Rewrite URLs containing tcl.tk as authority to tcl-lang.org + [1711d246] - - - Rewrite URLs containing tcl.tk as authority to tcl-lang.org [1711d246] - 2019-03-31 Gustaf Neumann + * Object.man, nsfInt.h, nx.tcl, properties.test: Improve spelling + [a8c1439e] - - improve spelling [a8c1439e] - 2019-03-29 Gustaf Neumann + * nsf.c (ForwardArg): Move new assertion to the right place + [713b8852] + * Object.man, tutorial.html: Improve wording [cfb3421c] + * nsf.c: Ease human tracing of uninitialized/NULL values + [e8349924] - - move new assertion to the right place [713b8852] - - - - improve wording [cfb3421c] - - - - ease human tracing of uninitialized/NULL values [e8349924] - 2019-03-29 Stefan Sobernig + * .travis.yml: Fix test [a7a09d79] - - Fix test [a7a09d79] - 2019-03-28 Stefan Sobernig + * .travis.yml: Add caching support for tclkits. [24caeb31, + 14b0a59b, b28a01de] - - Complete caching by testing for kits [24caeb31] - - - - fix descriptor [14b0a59b] - - - - Add caching support to travis descriptor [b28a01de] - 2019-03-27 Gustaf Neumann + * Makefile.in, configure.ac, configure: Improve robustness of + configure/ make procedure in the absence of generated DTRACE + artifacts so that they are truly conditional on the corresponding + configure flags for DTRACE. Thanks to Zoran fore + reporting. [e9f818e5, e3968e8c, d13e45f7] - - add generated configure file for change - e3968e8c972a8ac13bfaba27fcf2ae9e36689211 [e9f818e5] - - - - address dtrace triggers from Makefile, although not configured - [e3968e8c] - - - - try to simplify Makefile dependencies for DTRACE [d13e45f7] - 2019-03-22 Stefan Sobernig - - - - * nsf.c (NsfOUplevelMethod, NsfOUpvarMethod): Silence compiler warnings + * nsf.c (NsfOUplevelMethod, NsfOUpvarMethod): Silence compiler warnings on nonnull/NULL compares. [32cc7bc9] + * nsf.c (NsfOUplevelMethod, NsfOUpvarMethod) + (NsfCallstackFindCallingContext): Reform of uplevel and + upvar methods, based on the recent feedback by Zoran. + First, uplevel and upvar methods, as well as [current + callinglevel] now behave consistently (re frame skipping + for mixin and filter transparency). If there is no + innermost enclosing proc frame, the innermost non-proc + (e.g., namespace) frame is selected (rather than a "#0" + as default). Second, argument handling for both uplevel + (i.e., level sniffing in multi-arg case) and upvar (e.g., + made silent TCL_ERROR for invalid argument arities + explicit) have been fixed. + * Object.man, methods.test: Added documentation for both methods + (Object.man) and tests. [baee0c34] - - - - * nsf.c (NsfOUplevelMethod, NsfOUpvarMethod, - NsfCallstackFindCallingContext): Reform of uplevel and - upvar methods, based on the recent feedback by Zoran. - First, uplevel and upvar methods, as well as [current - callinglevel] now behave consistently (re frame skipping - for mixin and filter transparency). If there is no - innermost enclosing proc frame, the innermost non-proc - (e.g., namespace) frame is selected (rather than a "#0" - as default). Second, argument handling for both uplevel - (i.e., level sniffing in multi-arg case) and upvar (e.g., - made silent TCL_ERROR for invalid argument arities - explicit) have been fixed. - * Object.man, methods.test: Added documentation for both methods - (Object.man) and tests. [baee0c34] - 2019-03-22 Gustaf Neumann + * nsf.c (NsfDListAppend): Reduce dead assignments improve + indentation of variables [4f234291] + * gentclAPI.tcl (ConvertTo*): Avoid variable name "index" in + generated code since "index" shadows an outer function [8a19ff2e] - - reduce dead assignments improve indentation of variables [4f234291] - - - - avoid variable name "index" in generated code since "index" shadows - an outer function [8a19ff2e] - 2019-03-21 Gustaf Neumann + * nx-mongo.tcl, nx-mongo.test: Add "bson asJSON" convenience + method [6cff9d9b] - - mongodb: add "bson asJSON" convenience method [6cff9d9b] - 2019-03-20 Stefan Sobernig - - - Fix YAML syntax [0dac3440] - - - - appveyor.yml: Provide for caching the tclkit running the build + * appveyor.yml: Fix YAML syntax [0dac3440] + * appveyor.yml: Provide for caching the tclkit running the build script, to improve robustness and availability [0a587021] 2019-03-20 Gustaf Neumann - - handle ticket #3 on sourceforge: explicit "next" call in ensemble - leads to unwanted "unknown" handler call [156a37fe] + * nsf.c (NextSearchAndInvoke), submethods.test: Fixed explicit "next" + call in ensemble leading to unwanted "unknown" handler call [156a37fe] 2019-03-18 Gustaf Neumann Index: doc/Announce2.3.0 =================================================================== diff -u -r22becf70dfa35f297ba970bee8190e749dfcf911 -r4a1f36409db7323cb829db48c5d714d9d5ddd37e --- doc/Announce2.3.0 (.../Announce2.3.0) (revision 22becf70dfa35f297ba970bee8190e749dfcf911) +++ doc/Announce2.3.0 (.../Announce2.3.0) (revision 4a1f36409db7323cb829db48c5d714d9d5ddd37e) @@ -38,16 +38,32 @@ rendered volatile or not (in addition to using the volatile method on the object). + * Reform of uplevel and upvar: First, uplevel and upvar methods, as + well as [current callinglevel] and [self callinglevel] now + behave consistently (re frame skipping for mixin and filter + transparency). If there is no innermost enclosing proc frame, + the innermost non-proc (e.g., namespace) frame is selected + (rather than a "#0" as a default). Second, argument handling for + both uplevel (i.e., level sniffing in multi-arg case) and + upvar (e.g., made silent TCL_ERROR for invalid argument + arities explicit) have been fixed. + - NX: + * Method combination for ensemble methods: Using [next] at the end + of chains of ensemble methods fired the unknown handler, + unintentionally. This was fixed. * 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: ... + for volatile objects (see "volatile reform" above). + * Improved compatibility of XOTcl2 with XOTcl1 behaviour for + uplevel/upvar from within methods (see "uplevel/ upvar reform" + above). - nx::serializer: @@ -56,7 +72,13 @@ - MongoDB: - * Added JSON serializer: The "find all" method now accepts the + * Added JSON serializer: The "find all" and "bson" methods now + provide for JSON-formatted results, on request. + + ::nx::mongo::Class "find all" -asJSON + ::nx::mongo::Object bson asJSON + + accept the -asJSON flag to return a JSON formatted string. This is to facilitate implementing single-page JavaScript applications. @@ -75,24 +97,35 @@ * 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 + (core.tcl-lang.org/tcl branch "core-8-branch"). NSF compiles and its regression tests execute successfully. - * Misc (esp. NSF/C): + * Misc (esp. NSF/C): Ran valgrind checks, plugged one source of + potential leaks (NsfProcStubDeleteProc) and one invalid read on a + dangling pointer (NsfCCreateMethod). * Test suite: Fix recursion tests on 8.5 (windows-only, forward.test) for platform-specific error messages (CheckCStack), - obsolete for 8.6 with NRE. + obsolete for 8.6 with NRE. Guarded test case on recursive + forwards, to avoid preemptive crashes on stack-size limited + systems. - 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). + * Improve robustness of configure/ make procedure in the absence of + generated DTRACE artifacts so that they are truly conditional + on the corresponding configure flags for DTRACE. + * Improved robustness of Windows (nmake) installation routines by testing for the existence of the install directory. + * Rendered inference of GIT commit in autotools setup more robust, in + light of partial GIT checkouts (e.g., w/o tags). + The detailed changelog is available at https://next-scripting.org/xowiki/download/file/ChangeLog-2.2.0-2.3.0.log