2019-05-06 Stefan Sobernig * nsf-gridfs.test: Add one more piece of harness to test suite [ce93f504] * library/mongodb/*: Ran NSF MongoDB tests, against MongoDB 4.0.9 and Mongo-C driver 1.14.0 (both, latest stable); updated README.md accordingly, and fixed gridfs tests that hadn't been corrected for renaming README to README.md [c1f4cdc0] 2019-05-03 Stefan Sobernig * nx.tcl, properties.test: Add exists accessor to properties and variables; incl. tests and documentation [fc11b238] * Updated changelog, fixed stats in announcement [63fa3171] 2019-05-03 Stefan Sobernig * Regenerated documentation [6cbeef2d] * Object.man: Remove line break in script evaluation [f7541b47] * Bump version number from 2.3a0 to 2.3 [77a193c1] 2019-05-02 Gustaf Neumann * nsf.c (MergeInheritanceLists, NsfNSCopyVarsCmd) (NsfCallStackFindCallingContext): Reduce dead store operations and null after dereference [e89a635d] 2019-05-01 Gustaf Neumann * nsfObj.c (FilterregDupInternalRep, CscListAdd, CscAlloc): Improve spelling [7aad1f9b] 2019-04-30 Stefan Sobernig * tests/*.test: Add 'package prefer latest' to remaining test files. [8e2e356e] * ChangeLog-2.2.0-2.3.0.log, Announce2.3.0: Fix typos [6630359b], fix a remainder in changelog [1997fa85], done content-wise [4a1f3640] 2019-04-26 Stefan Sobernig * 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-23 Stefan Sobernig * 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] 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] 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] 2019-04-19 Gustaf Neumann * nsf.c, nsfError.c: Minor code cleanup [9333a832] * nsf.c (ForwardArg): Add asserts [dcbc76a2] 2019-04-19 Stefan Sobernig * 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 * 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 * nsf.c (NextSearchAndInvoke): Addressing Coverity defect 337829 (dereference before null check) [f5000938] 2019-04-15 Gustaf Neumann * nsf.c: Make spelling more consistent [7b2d369f] * next-migration.txt: Fix typo [b568b39b] * nsf.c (NsfCCreateMethod): Provide a more conservative change for setting autonamed flag [ecda5a16] * object-system.test: Provide more context info when the version mismatch test fails [ff219acd] * Makefile.in: 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 * nsf.c (NsfCCreateMethod): Fix access of potentially freed object to set the autonamed property (indicated by valgrind). 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] * nsf.c (NsfProcStubDeleteProc): Plug leakage of command structure (found by valgrind) [545663bd] 2019-04-14 Stefan Sobernig * ChangeLog-2.2.0-2.3.0: Add changelog and announcement files (WIP) [13bbfb85] 2019-04-12 Gustaf Neumann * nsf.c: Muniro formatting changes [5e7610d4] 2019-04-12 Stefan Sobernig * 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 * appveyor.yml: Prepare deploy mode for [1d6dbca6, f7f11897, f9090473, ebaa3d49, b2825a79] 2019-04-10 Stefan Sobernig * .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 * .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] 2019-04-08 Stefan Sobernig * .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] 2019-03-31 Gustaf Neumann * Object.man, nsfInt.h, nx.tcl, properties.test: 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] 2019-03-29 Stefan Sobernig * .travis.yml: Fix test [a7a09d79] 2019-03-28 Stefan Sobernig * .travis.yml: Add caching support for tclkits. [24caeb31, 14b0a59b, 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] 2019-03-22 Stefan Sobernig * 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] 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] 2019-03-21 Gustaf Neumann * nx-mongo.tcl, nx-mongo.test: Add "bson asJSON" convenience method [6cff9d9b] 2019-03-20 Stefan Sobernig * 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 * nsf.c (NextSearchAndInvoke), submethods.test: Fixed explicit "next" call in ensemble leading to unwanted "unknown" handler call [156a37fe] 2019-03-18 Gustaf Neumann * nsf.c (CompiledLocalsLookup, CompiledColonLocalsLookupBuildCache): Since we know length, we can replace strcmp by memcmp [c3085d62] 2019-03-17 Gustaf Neumann * forward.test: Trigger new travis build [61b88669] * forward.test: Error message on stack overflow differs on windows and unix for Tcl 8.5, see CheckCStack. [8b333a99] * forward.test: We see now a different error message in tcl8.5 for a recursive loop (drop test?) [c0221269] * nsf.c (MethodHandleObj): Improve type cleanness [b86d0335] * forward.test: Deactivate under windows for the time being [3abc6a6f] * forward.test (methods.test): Make test more robust ("file lstat" returns less data under windows) [a65f2c7d] * nsf.c, nsfInt.h (ALLOC_ON_STACK): Added an alternative variant of ALLOC_ON_STACK [459516f9] 2019-03-16 Gustaf Neumann * tutorial.html, tutorial2.html, next-migration.html, next-tutorial.html: Improve spelling [93875ccd, 3d145fa5, 38ea9f94] * protected.test, Object.man: Align names (use "subclass" instead of "sub-class") [0697a2e3, f52d344b] * nsf.c (ComputeLevelObj): Align behavior of "current activelevel" with "... callinglevel" in case no NSF frame is found [d5f0e46c] * nsf.c: Fix typos and make spelling more uniform. [c465bb71] * methods.test: Add regression test for testing the behavior of :upvar from toplevel tclsh with and without filters [85eec46a] * nsf.c (ComputeLevelObj): Conservative fix for "current callinglevel"; probably more to come [587c2fab] 2019-03-15 Stefan Sobernig * nx.tcl, xotcl2.tcl: Fully qualify uses of Tcl's upvar and uplevel, to avoid confusion when introducing equally named procs/ cmds in the OS namespaces. [bb1a4116] 2019-03-14 Gustaf Neumann * nsf.c: Minor cleanup, factor out common strings (e.g., "::nsf::classes") [3b608d8c] 2019-03-13 Gustaf Neumann * nsf.c, next-migration.txt, , next-tutorial.txt, /metadataAnalyzer.xotcl, speedtest.xotcl, langRef2.xotcl: Improve spelling and formatting [0f30ab62, 67639f37, b9fcdec2] * nsf.c, speedtest.xotcl: Improved handling of object property autonamed [c86c0775] * serializer.tcl: Preserve overriding slot accessor methods defined via XOTcl instprocs during serialization. [542f9ead] 2019-03-12 Stefan Sobernig * win/makefile.vc: COMDAT folding can lead to unusable, pointless function-pointer comparisons (Nsf_ConvertToSwitch vs. Nsf_ConvertToBoolean). Reported for /opt:icf under Visual Studio 2017 under x86. Kudos to Ashok P. Nadkarni. [cb565d85] 2019-03-11 Gustaf Neumann * nsf.c (VolatileMethod): Allow to render an object "volatile" or non-volatile via the object property volatile. [3ebbf610] 2019-03-10 Gustaf Neumann * nx-reference-one.test, tests/*, bagel.tcl, gentclAPI.tcl, serializer.tcl: Improve spelling [9ef8ab28, e5a313d7, 2321487a, 83a7bb90] * makefile.vc: Make sure, the install directory exists before copying data to it [c822857c] * nx-mongo.tcl: MongoDB interface: add option "-asJSON" to "find all" to ease interaction e.g. with single page applications. [9cdb38c7] * nsf.c, nsfObj.c: Improve spelling [38aa0536] * speedtest.xotcl: Added a more complex test for testing "new" + volatile [e5df6994] 2019-03-09 Gustaf Neumann * object-system.test: Add minimal regression test for object property "autonamed" [206792ca] * nsf.c (ArgumentDefaults): make code assumptions clear by adding asserts. [e3d180a2] 2019-03-08 Gustaf Neumann * Adjust regression test to more specific error message [0a73b191] * improved error message "not allowed to have default": make clear, this is stems from a parameter specification * nsfAPI.decls, nsf.c: Added object property "autonamed" (set automatically for objects created via "new") [1279a7ec] * nsf.c: Improved backward compatibility of XOTcl2 volatile method with XOTcl1 [1279a7ec] * speedtest.xotcl: Extended regression test [1279a7ec] 2019-03-07 Gustaf Neumann * xotcl2.tcl: Added new variant of "volatile" trying to mimic the XOTcl1 volatile behavior. [b6046263] * nsf.c: added experimental feature NSF_WITH_TCL_OBJ_TYPES_AS_CONVERTER, which uses registered TclObjTypes as value checkers (currently deactivated) [b6046263] * nx.tcl: whitespace change [6a97bd03] 2019-02-18 Gustaf Neumann * Httpd.xotcl: Protect legacy HTTPd against XSS on error messages [6b093438] 2019-02-06 Gustaf Neumann * nx-zip.tcl: base package nx::zip on Tcl 8.6 builtins instead of relying on the Trf package [c1579421] 2019-01-15 Gustaf Neumann * nsf.c: Use "nonnull_assert" only in combination with "nonnull" declaration [af4c4944] 2019-01-14 Stefan Sobernig * .travis.yml, appveyor.yml: Update build array to 8.6.9 [90c8d70e] * nsf-cmd.test: Make new tests 8.5-savy [167e2369] * nsf.c (NsfProcStub): Re-order logic, so that the availability of a shadow proc cmd is tested first (re-fetch) and the parameter passing comes second, conditional on an available dispatch target. [884a7145] * nsf-cmd.test: Add test rename (target) conflicts for the shadowed procs; improve test formatting [6e91b118] * nsf.c (NsfStubProc): Improve comment formatting [a85b80f5] 2019-01-11 Stefan Sobernig * nsf-cmd.test: Modernize tests to work on error codes. [f93d46e6] * nsf.c, nsf-cmd.test: Fixed nsf::procs for (unintended) deletes of the shadowed proc, plus test cases. [d01fb5ad] * nsf.c, nsfShadow.c (NsfProcStubDeleteProc, Nsf_RenameObjCmd): Provide for coupled renaming of the nsf::proc pairs; and coupled deletion. [2a2f1043] * nsf.c (NsfProcStub, InvokeShadowedProc): Provide for re-fetching (e.g., deleted) ::nsf::procs::* commands, to allow for renamed nsf::procs to run. * nsf-cmd.test: Added test to cover re-fetch [ed5cc784] * nsf.c, nsfInt.h (NsfProcStub, NsfProcClientData): Apply namespace reform to nsf::procs, to prevent proc redefinition after a proc rename to fail. * nsf-cmd.test: Add test case to document/ to cover failing rename + redefine. [47f388cd] 2018-12-22 Gustaf Neumann * nsfUtil.c: Improve code documentation [b3541927] * nsf.c: Remove unneeded assignment [5a153b21] 2018-12-15 Gustaf Neumann * nsf.c: Reduce dead assignments and variable scopes [405ace78] * Httpd.xotcl: Make sure the path ends with a slash [b49c37ce] 2018-12-14 Gustaf Neumann * Httpd.xotcl: Security fix: avoid directory traversal attack in old XOTcl HTTP class [d074fd50] 2018-11-18 Gustaf Neumann * configure: Regenerated configure script [ebae8e0f] * nsfInt.h: Improve handling of HAVE_INTTYPES_H under windows [d7bc5d63] * nsfInt.h: make sure, macros HAVE_INTPTR_T and HAVE_UINTPTR_T are set (should probably upgrade to newer TEA version) [d4cb464a] * Makefile.in: fix typo [e8b9e471] 2018-11-17 Gustaf Neumann * nsfInt.h: Guard definition of PRIxPTR by HAVE_INTTYPES_H and not by HAVE_STDINT_H [dea74ea7] * nsf.c, nsfInt.h: improve type cleanness [6ebbaeee] * README.release: fix typo [af212472] 2018-11-04 Gustaf Neumann * ChangeLog-2.0b5-2.0.0.log, next-tutorial.txt, Announce-1.6.0: Remove comma before "that" [b5c493af] * doc.test, interp.test, tcloo.test, varresolution.test: Use consistently US spelling variation [357028ca] 2018-11-03 Gustaf Neumann * nsf.c, nsfObj.c: Remove comma before that [f92df553] 2018-10-24 Stefan Sobernig * disposition.test, parameters.test: Adjust tests to reflect the changed representational behavior for numerics (int, wide) according to TIP 514 (now in Tcl 8.7a2+). [fca63858] 2018-10-23 Gustaf Neumann * Object.man: Improve spelling [bee99fc8] * nsf.c: Help static analyser to parse statements [8d65f0a7] 2018-10-12 Gustaf Neumann * Class.man, Object.man: Use consistently US spelling variants [f8df1c79] 2018-10-11 Stefan Sobernig * Makefile.in, win/makefile.vc: Add TCL_PKG_PREFER_LATEST to avoid version hick-ups (stable beating latest) somewhere from TCLLIBPATH etc. [b820ed69] 2018-10-02 Gustaf Neumann * README.release: Update to make sure, all version numbers in configure.ac are updated properly [3754aac2] 2018-09-30 Stefan Sobernig * configure: Make sure configure is stashed with repo, as autotools are not automatically re-generated (e.g., in build array) [a46a3361] * object-system.test: Add a simple test to catch incomplete version bumps earlier [7fa23e7c] 2018-09-29 Gustaf Neumann * configure.ac: bump also NSF_MINOR_VERSION after release [b439657b] 2018-09-28 Gustaf Neumann * follow the Tcl, not the OpenACS numbering scheme [f7b560fc] * prefer US american spelling variants [9aa53ef6] * change version number to first version number after the 2.2.0 release (2.3d0) [dd3cfbfd] * fix usernames at Sourceforge [f92b5538]