Index: ChangeLog-2.0.0-2.1.0.log =================================================================== diff -u -r002cbfc96938b4f45625b93d5d5ccd08e8f89ed5 -rc6c4a9ed2e8d3375bf80e670cd09e3640a9fbf0d --- ChangeLog-2.0.0-2.1.0.log (.../ChangeLog-2.0.0-2.1.0.log) (revision 002cbfc96938b4f45625b93d5d5ccd08e8f89ed5) +++ ChangeLog-2.0.0-2.1.0.log (.../ChangeLog-2.0.0-2.1.0.log) (revision c6c4a9ed2e8d3375bf80e670cd09e3640a9fbf0d) @@ -1,1174 +1,1747 @@ 2016-10-27 Stefan Sobernig - * xotcl2.tcl - (Class->unknown): Fix regressions due to uplevel mambo-jumbo. [020d3d6] - (Class->unknown): Make sure that Class->unknown bypasses filter and mixin - frames. [9dcea26] + xotcl2.tcl: + - Fix regressions due to uplevel mambo-jumbo. [020d3d6] + - Make sure that Class->unknown bypasses filter and mixin + frames. [9dcea26] 2016-10-26 Stefan Sobernig - * nsf.c (ExitHandler): Re-locate clearing history from finalize to - ExitHandler. [59b4e8c] + nsf.c + - ExitHandler(): Re-locate clearing history from finalize to + ExitHandler. [59b4e8c] 2016-10-22 Stefan Sobernig - * nsf.c (NsfFinalizeCmd): Clear Tcl's history list explicitly - before finalizing NSF. See also Tcl ticket 1ae12987cb. [6be629e] + nsf.c: + - NsfFinalizeCmd(): Clear Tcl's history list explicitly before + finalizing NSF. See also Tcl ticket 1ae12987cb. [6be629e] 2016-10-16 Stefan Sobernig - * nx.tcl (nx::Class->unknown): Rewrite unknown message to include - '?...?'. [371cc41] + nx.tcl: + - nx::Class->unknown: Rewrite unknown message to include '?...?'. + [371cc41] - * nsfStack.c: Unify writing style. [114df8b] + nsfStack.c: + - Unify writing style. [114df8b] - * nsfProfile.c: Fix typos in code comments. [5447fe0] + nsfProfile.c: + - Fix typos in code comments. [5447fe0] - * nsfFunPtrHashTable.c: Fix typos in code comments. [6e37cdb] + nsfFunPtrHashTable.c: + - Fix typos in code comments. [6e37cdb] 2016-10-15 Gustaf Neumann - * nsfError.c: Cleanup: remove spurious blank in error message, fix - typo in print string. [e0da9e0] + nsfError.c: + - Cleanup: remove spurious blank in error message, fix typo in + print string. [e0da9e0] 2016-10-15 Stefan Sobernig - * nx.tcl: Commit missing unknown message change. [dafe310] + nx.tcl: + - Commit missing unknown message change. [dafe310] 2016-10-15 Gustaf Neumann - * nsf.h, nsfError.c: - (NsfNoCurrentObjectError): Improve comment and signature. [5abaa15] - Improve wording of other comments, keep comments within the limits of - the header/trailer line. [5abaa15] + nsf.h, nsfError.c: + - NsfNoCurrentObjectError: Improve comment and signature. [5abaa15] + - Improve wording of other commends, keep comments within the limits of + the header/trailer line. [5abaa15] 2016-10-14 Stefan Sobernig - * Testsuite: Adjust the test suite for the latest rewording of - the nx::Class unknown message. [2717622] + Test suite: + - Adjust the test suite for the latest rewording of the + nx::Class unknown message. [2717622] - * nsfError.c: Fixed typos and unified writing style in code comments. - [f139db6] + nsfError.c: + - Fixed typos and unified writing style in code comments. + [f139db6] - * nsfObj.c: Fix some typos and align writing style. [1ce1f6a] + nsfObj.c: + - Fix some typos and align writing style. [1ce1f6a] 2016-10-14 Gustaf Neumann - * nsf.c: Fix typos in comments, align commenting style. [5ba5873] + nsf.c: + - Fix typos in comments, align commenting style. [5ba5873] - * nx.tcl: Make xotcl::Class->unknown hint more explicit and + nx.tcl: + - Make xotcl::Class->unknown hint more explicit and verbose. [4dda010] 2016-10-13 Stefan Sobernig - * nsf.c: - (ObjectSystemsCleanup): Remove interp resolvers explicitly before - the physical cleanup round. [371e0e3] - (DeleteProcsAndVars): Silence compiler warning and reduce variable - scope (spotted with memtracking on). [7992ec4] + nsf.c: + - ObjectSystemsCleanup: Remove interp resolvers explicitly before + the physical cleanup round. [371e0e3] + - DeleteProcsAndVars: Silence compiler warning and reduce variable + scope (spotted with memtracking on). [7992ec4] 2016-10-12 Stefan Sobernig - * shells.test: Add two tests on try/finally. [ce511c8] + shells.test: + - Add two tests on try/finally. [ce511c8] - * nx-shell.tcl: - Extend the exit wrapper to include Tcl 8.6 try [8f55f92] - Make sure that the proper exit code is provided when - leaving the -c stdin mode. [f83d0a1] + nx-shell.tcl + - Extend the exit wrapper to include Tcl 8.6 try [8f55f92] + - Make sure that the proper exit code is provided when + leaving the -c stdin mode. [f83d0a1] 2016-10-12 Gustaf Neumann - * shells.test: - Add two more tests of plain tclsh. [0c79f62] - Remove superfluous (and incorrect) tests. [3f7e49e] reverting - [152c1d3] - Extend regression test for shell with tests in [info - nameofexecutable] rather than in nxsh [152c1d3] + shells.test: + - Add two more tests of plain tclsh. [0c79f62] + - Remove superfluous (and incorrect) tests. [3f7e49e] reverting + [152c1d3] - * nsf.c (NsfLog): Don't call Tcl eval operations from NsfLog() in phyical - destroy round. + nsf.c: + - Don't call tcl eval operations from NsfLog() in phyical + destroy round. + - Extend regression test for shell with tests in [info + nameofexecutable] rather than in nxsh [152c1d3] 2016-10-12 Stefan Sobernig - * shells.test: Add some more tests. [31727ed] + shells.test: + - Add some more tests [31727ed] - * nx-shell.tcl (nx::shell2): Rewrote in-shell exit support to - avoid Tcl's native exit and to unwind gracefully to avoid NSF - refcount leaks on exit; bumped package number. [0956bd0] + nx-shell.tcl: + - nx::shell2: Rewrote in-shell exit support to avoid Tcl's native + exit and to unwind gracefully to avoid NSF refcount leaks on exit; + bumped package number. [0956bd0] 2016-10-10 Gustaf Neumann - * nsf.c, nsfInt.h: Improve sanity test in ISOBJ(): obj->bytes - might only be NULL when type is given. [472a3c5] + nsf.c, nsfInt.h: + - Improve sanity test in ISOBJ(): obj->bytes might only be NULL + when type is given. [472a3c5] 2016-10-09 Stefan Sobernig - * TEA (tcl.m4): Updated m4/tcl.m4 to most recent TEA version: - 3.10, regenerated autotools artifacts. [4a30a3a] + TEA: + - Updated m4/tcl.m4 to most recent TEA version: 3.10, regenerated + autotools artifacts. [4a30a3a] 2016-10-08 Gustaf Neumann - * nsfUtil.c: Cleanup of strnstr() (when the clib function is not available). - [a8b3805] + nsfUtil.c: + - Cleanup of strnstr() (when the clib function is not available). + [a8b3805] - * generic/*: - Cleaning up white spaces (mostly strip trailing spaces, remove a - few tabs). [77ba24e] - Cleanup of type conversions. [1d1ca56] - Reduce variable scopes. [fbd52e6] + generic/*: + - Cleaning up white spaces (mostly strip trailing spaces, remove a + few tabs). [77ba24e] + - Cleanup of type conversions. [1d1ca56] + - Reduce variable scopes. [fbd52e6] 2016-10-07 Gustaf Neumann - * nsf.c: Cleanup of type conversions in first ~18000 lines. [4e70d6d] + nsf.c: + - Cleanup of type conversions in first ~18000 lines. [4e70d6d] 2016-10-07 Stefan Sobernig - * current.man (current.man): Extend doc on nx::current to include - nx::current level [d49b5f9] + current.man: + - Extend doc on nx::current to include 'nx::current level' + [d49b5f9] 2016-10-07 Gustaf Neumann - * nsf.c: Cleanup of type conversions in first ~6000 lines. [099e1ee] + nsf.c: + - Cleanup of type conversions in first ~6000 lines. [099e1ee] - * nsf.c, nsfAPI.* - (NsfCurrentCmd): New subcommand "nsf::current level", which - returns an empty string when outside an NSF frame/level. [8465a13] - (NsfCurrentCmd): Keep compatibility with traditional "nsf::current - activelevel" by returning 1, if we are not on an NSF - frame. [8465a13] reverting [dbd850e]. + nsf.c, nsfAPI.*: + - New subcommand "nsf::current level", which returns an empty + string when outside an NSF frame/level. [8465a13] + - Keep compatibility with traditional "nsf::current activelevel" + (continue to return 1, if we are not on an NSF frame). [8465a13] + reverting [dbd850e]. 2016-10-06 Gustaf Neumann - * nsf.c (NsfCurrentCmd): Return from "nsf::current callinglevel" - the value 0 (instead of 1), when it is called outside of an NSF - frame, which has an NSF object associated. [dbd850e] + nsf.c: + - Return from "nsf::current callinglevel" the value 0 (instead of + 1), when it is called outside of an NSF frame, which has an NSF + object associated. [dbd850e] 2016-10-05 Stefan Sobernig - * nsf.c (UnsetTracedVars): Silence compiler warning under 8.5 by providing + nsf.c: + - UnsetTracedVars: Silence compiler warning under 8.5 by providing an explicit cast. [abfaf40] - * Documentation - (rosetta-single-inheritance.tcl):Add another Rosetta example: - Inheritance/Single [c7738a3] - (rosetta-multiple-inheritance.tcl): Fix typo L3 -> C3 [3617b69] - (Object.man): Include missing doc in 'info lookup parameters' and 'info - lookup syntax' [4bfe0ad] + Documentation: + - Add another Rosetta example: Inheritance/Single [c7738a3] + - rosetta-multiple-inheritance.tcl: Fix typo L3 -> C3 [3617b69] + - Object.man: Include missing doc in 'info lookup parameters' and 'info + lookup syntax' [4bfe0ad] 2016-10-04 Stefan Sobernig - * nsf.c: - (ParamOptionParse): 'virtualobjectargs' and 'virtualclassargs' - defaulted to ConvertViaCmd when parsed from Tcl spec; explicitly - set ConvertToNothing to match the intended semantics and to avoid - false warnings (e.g., missing type=virtualobjectargs type checker). - [03b838a] - (NsfParameterInfoCmd): Correct two typos in in-code - comment. [6d563e2] + nsf.c: + - ParamOptionParse: 'virtualobjectargs' and 'virtualclassargs' + defaulted to ConvertViaCmd when parsed from Tcl spec; explicitly + set ConvertToNothing to match the intended semantics and to avoid + false warnings (e.g., missing type=virtualobjectargs type checker). + [03b838a] + - NsfParameterInfoCmd: Correct two typos in in-code + comment. [6d563e2] 2016-10-02 Stefan Sobernig - * Makefile.in: Register Rosetta examples. [ec6103a] + Makefile.in: + - Register Rosetta examples. [ec6103a] 2016-10-02 Gustaf Neumann - * nsf.c, nsf.h: Make NSF compilable with "-DTCL_NO_DEPRECATED". [9cce0c1] + - make nsf compilable with "-DTCL_NO_DEPRECATED" [9cce0c1] 2016-10-01 Stefan Sobernig - * Documentation: - Remove redundant Rosetta example implementations. [14d4d3a] - (rosetta-multiple-inheritance.tcl): Added another Rosetta example: - multiple inheritance. [92c1ac3] + - Remove redundant Rosetta example implementations [14d4d3a] + + + - Added another Rosetta example: multiple inheritance [92c1ac3] + 2016-09-30 Stefan Sobernig - * nsf.c (RemoveInstance): Fix typo and improve wording of nsf::log warning - slightly. [8a106d9] - * Documentation - (Object.man): Correct the documentation bit on Object->copy. [4b2d241] - (rosetta-clone.tcl): Added another Rosetta example: Polymorphic copy [922c0ab] + - RemoveInstance(): Fix typo and improve wording of nsf::log warning + slightly [8a106d9] + + - Object.man: Correct the documentation bit on Object->copy [4b2d241] + + + - Added another Rosetta example: Polymorphic copy [922c0ab] + 2016-09-29 Stefan Sobernig - * nsf.c, methods.test (DispatchUnknownMethod): Make sure that - arcane method names make it into proper unknown error mesages - incl. names representing invalid Tcl lists; tests included; - checked by valgrind [4b78042] - * Documentation - (rosetta-add-variable.tcl): Adding yet another Rosetta example: Add object variable - dynamically. [ed0f5cb] - (rosetta-add-variable.tcl): Fix typo [e33e0a2] + - DispatchUnknownMethod(): Make sure that arcane method names make it + into proper unknown error mesages (incl. names representing invalid + Tcl lists); tests included; checked by valgrind [4b78042] - * shells.test: Adjust shell tests for latest changes to stacktrace - formatting. [56f9658] triggered by [2c896da] + - Fix typo [e33e0a2] + + + - Adjust shell tests for latest changes to stacktrace formatting + [56f9658] + + + - Adding yet another Rosetta example: Add object variable dynamically + [ed0f5cb] + 2016-09-28 Stefan Sobernig - * Documentation: - (rosetta-multiple-distinct.tcl, rosetta-tree.tcl): Improve output - spec in Rosetta example. [8648ec7] - (rosetta-multiple-distinct.tcl): Adding another Rosetta example: - Multiple distinct objects. [cc85907] + - Improve output spec in Rosetta example [8648ec7] + + + - Adding another Rosetta example: Multiple distinct objects [cc85907] + 2016-09-23 Gustaf Neumann - * nsf.c: Add thread IDs to debug lines (in threaded builds). [e20e1c1] + - + - add thread IDs to debug lines [e20e1c1] + 2016-09-21 Stefan Sobernig - * Testsuite: - (tcl86.test): Make cmd-literal tests conditional on a (future) Tcl release: 8.6.7 - [40ff115] - (destroy.test): Adding a second UnsetTracedVars test, this time - for the per-object namespace case. [2330f51] + - Make cmd-literal tests conditional on a (future) Tcl release: 8.6.7 + [40ff115] + + + - Adding a second UnsetTracedVars test, this time for the per-object + namespace case [2330f51] + 2016-09-20 Stefan Sobernig - * destroy.test: Add missing test on UnsetTracedVars. [c29e5d3] + - Add missing test on UnsetTracedVars() [c29e5d3] + + + - Update to-do [4421b3a] + + + - Add to-do [9b68b62] + 2016-09-19 Stefan Sobernig - * nsfCmdDefinitions.c (Nsf_CmdDefinitionRelease): Fix - documentation [23581e9] - * nx-shell.tcl (nx::shell2): Provide complete errorinfo, not just - top-level line [2c896da] + - Nsf_CmdDefinitionRelease(): Fix documentation [23581e9] + + - nx::shell2: Provide complete errorinfo, not just top-level line + [2c896da] + 2016-09-16 Gustaf Neumann - * nsf.c (NsfFinalizeCmd): Remove manually mixinRegObjs during - cleanup to silence sanity checking for object refcounts. [9395752] - * nsfObj.c (NsfMixinregGet): Fix typo in comment. [73a82fc] + - + - Remove manually mixinRegObjs during cleanup to silence sanity + checking for object refcounts. [9395752] + + - + - fix typo [73a82fc] + 2016-09-15 Gustaf Neumann - * nsf.c (NsfFinalizeCmd): Add pthread id to debug message [b36a57b] + - + - add pthread id to debug message [b36a57b] + 2016-09-13 Stefan Sobernig - * nsf.c (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. [d710110] + - 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 + http://core.tcl.tk/tcl/info/4dbdd9af144dbdd9af14). [d710110] + +2016-09-12 Stefan Sobernig + + + - Add a to-do on an assertion failure under 8.5 [839e421] + 2016-09-09 Stefan Sobernig - * nx.tcl (VariableSlot->value=get): Substitute set for get, which - is a tick faster. [bb688b8] - * Documentation (rosetta-tree.tcl): Rosetta example: Tree - traversal. [f769aa3] + - Substitute set for get, which is a tick faster [bb688b8] + + - Adding another Rosetta example: Tree traversal [f769aa3] + 2016-09-06 Stefan Sobernig - * nx-shell.tcl (::nx::shell2): Harden nx::shell against inlined - return statements. [da0791d] - * Documentation (rosetta-tokenizer.tcl): Added first additional - Rosetta example. [b689afd] + - Add to-do on variable slots [3941350] - * source-highlight-with-pp: Make src highlighter independent from - Tcl version. [8e929f8] + - Harden nx::shell against inlined return statements [da0791d] + + + - Added first additional Rosetta example [b689afd] + + + - Make src highlighter independent from Tcl version [8e929f8] + +2016-09-02 Stefan Sobernig + + + - Adding some minor todos [9422ecb] + 2016-09-01 Stefan Sobernig - * Makefile.in: Keep valgrind settings for the future. [0187626] - * nsf.c (ObjectCmdMethodDispatch): Get refcounting on method-path - lists right, fixing one actual (valgrind) and another potential - Tcl_Obj leak. [6cb02ec] + - Keep valgrind settings for the future [0187626] + + - ObjectCmdMethodDispatch(): Get refcounting on method-path lists + right, fixing one actual (valgrind) and another potential Tcl_Obj + leak [6cb02ec] + 2016-08-31 Stefan Sobernig - * nsf.c - (ParamDefsNames): Fix another Tcl_Obj leak and optimize - code slightly, Tcl_Obj is only allocated once the string-matching - operation suceeded. [253e9e6] - (NsfForwardPrintError): Fix another instance of the - NsfMethodNamePath leak. [0739b93] - (NsfMethodName): Avoid unnecessary append operation between lists, - previously leaking the source list Tcl_Obj. [8a650e1] - (ArgumentParse): Addressing a series of Tcl_Obj leaks (valgrind). [2dbfbf4] + - ParamDefsNames(): Fix another Tcl_Obj leak and optimize code slightly + (Tcl_Obj is only allocated once the string-matching operation + suceeded) [253e9e6] + + + - NsfForwardPrintError(): Fix another instance of the NsfMethodNamePath + leak [0739b93] + + + - NsfMethodName(): Avoid unnecessary append operation between lists, + previously leaking the source list Tcl_Obj [8a650e1] + + + - ArgumentParse(): Addressing a series of Tcl_Obj leaks (valgrind) + [2dbfbf4] + 2016-08-22 Gustaf Neumann - * nsf.c (AssertionAddProc): Removing dead assignment. [1e25f4b] + - + - removing dead assignment [1e25f4b] + 2016-08-14 Stefan Sobernig - * nsf.c: - (TopoSortSub): Make intended true/false comparisons based on int - explicit. [ce32c79] - (TopoSort): cleanup (pt. 3): re-factored TransitiveSubClasses() - and DependentSubClasses() into one caller function of - TopoSortSub(). [a9057d3] - (TopoSort): cleanup (pt. 2): renamed TopoSort() to TopoSortSub() to - match TopoSortSuper. [49bad0b] + - TopoSortSub(): Make intended true/false comparisons based on int + explicit [ce32c79] + + + - TopoSort(): cleanup (pt. 3): re-factored TransitiveSubClasses() and + DependentSubClasses() into one caller function of TopoSortSub() + [a9057d3] + + + - TopoSort(): cleanup (pt. 2): renamed TopoSort() TopoSortSub() (to + match TopoSortSuper) [49bad0b] + 2016-08-13 Stefan Sobernig - * nsf.c (TopoSort): cleanup (pt. 1). [2caa518] + - TopoSort(): cleanup (pt. 1) [2caa518] + 2016-08-10 Stefan Sobernig - * nsf.c - (GetNextArguments): Address CID 102646. [e982277] - (NsfObjInfoObjectparameterMethod, NsfParamDefsFilter): Removed two - unused functions: NsfObjInfoObjectparameterMethod() and - NsfParamDefsFilter(). Makes CID 88775 obsolete.[308a912] - (MakeProc): Address CID 88770. [566ca93] + - Add TODO [adb6c74] + + + - GetNextArguments(): Address CID 102646 [e982277] + + + - Removed two unused functions: NsfObjInfoObjectparameterMethod() and + NsfParamDefsFilter(). Makes CID 88775 obsolete [308a912] + + + - Address CID 88770 [566ca93] + 2016-08-09 Gustaf Neumann - * nsfError.c - (NsfObjWrongArgs, NsfObjErrType): Remove occurrences - of deprecated Tcl_AppendResult() in overall code. [299a221] - (NsfPrintError): Avoid computing string length twice. [b8fe2d4] - * nsfStubLib.c: Remove 2 occurrences of deprecated - Tcl_AppendResult. [8e079b5] + - + - Remove occurrences of deprecated Tcl Call Tcl_AppendResult() in + overall code [299a221] - * nsf.c, nsfInt.h (NsfLog, RUNTIME_STATE): Small logging reform, - renaming "debugLevel" to "logSeverity" and introduce logging - messages which have a severity larger or equal than a given log - severity; so; "nsf::configure debugLevel 0" will print everything, - and "nsf::configure debugLevel 3" will print just error messages - while omiting warnings etc. This is not a change in logging - semantics, but removes some confusion at the C level. Therefore, the - nsf::configure option "debugLevel" was not changed. + - + - improve variable for logging from "debugLevel" to + "logSeverity" (print logging messages which have a + severity larger equal the then given value; so; + "nsf::configure debugLevel 0" will print everything, and + "nsf::configure debugLevel 3" will print just error + messages and omit warnings etc.) + - this is not a change in sematics, but removes some + confusion in the code. therefore the configure name was + not changed + - Remove 2 occurrences of deprecated Tcl Call Tcl_AppendResult() in + nsfStubLib [8e079b5] + + + - + - don't compute string length twice [b8fe2d4] + 2016-08-07 Gustaf Neumann - * nsf.c (ExitHandler): Address potential double freeing problem of - runtime states. ExitHander should never be called twice on the - same interp. Therefore, provide for deleting ExitHandler in the - ExitProc, as well as for deleting ExitHandler and - ThreadExitHandler in the ThreadExitProc. [4ff9a50] + - Address potential double freeing problem of runtime + states: + - the ExitHander() should never be called twice on the same interp. + Therefore delete in the ExitProc the ExitHandler AND the + ThreadExitHandler and in the ThreadExitProc also both. [4ff9a50] + 2016-08-04 Gustaf Neumann - * gentclAPI.tcl, nsfAPI.decls: Code generator was changed to - create enum types instead of enum values for NSF API, use enum - types in code. [aa5b3f4] + - code generator changes: + - create enum types instead of enum values for nsf API + - use enum types in code [aa5b3f4] + 2016-08-04 Stefan Sobernig - * nsf.c, nsfCmdDefinitions.c, nsfEnumerationType.c - (ExitHandler, Nsf_CmdDefinitionRelease): Provide for - releasing/deleting the hash table for cmd definitions. [843e576] - (ExitHandler, Nsf_EnumerationTypeRelease): Provide for - releasing/deleting the hash table for enumeration-type converters - in ExitHandler. [843e576] - * nsfFunPtrHashTable.c (FreeFunPtrEntry): Remove deletion handler - for cmddef and enumeration-type hash entries, not needed - currently. + - Improve comment wording and cleanup [6a52879] + + - FreeFunPtrEntry is not needed actually [2cec82c] + + + - Fix refcounting [a2021fc] + + + - FreeFunPtrEntry(): Add deletion handler for cmddef and + enumeration-type hash entries [2124b26] + + + - nsfCmdDefinitions.c: Fix typos [b4d254a] + + + - Provide for releasing/deleting the hash tables for cmd definitions + and enumeration-type converters in ExitHandler [843e576] + 2016-08-02 Gustaf Neumann - * generic/**.c: Code cleanup (remove various code smells by - adding const declarations, preferring boolean tests, avoid "for" - loops without a block, don't pass non-initialized value in an - array on index [0], reducing variable scope, preferring single - returns statements in functions, dont't use CONST unless defined - by Tcl API. [8eecbe5] - * nsf.c: Limit effects of namespace-imported classes. [3b5f62d] + - remove various code smells: + - add const declarations + - prefer boolean tests + - don't write "for" loops without a block + - don't pass non-initialized value in an array on index [0] + - reduce variable scope + - prefer single returns statements in functions + - dont't use CONST unless defined by Tcl-API [8eecbe5] + + - + - make effects of namespace-imported classes more local [3b5f62d] + 2016-08-01 Stefan Sobernig - * nsf.c (FilterSearchAgain): Avoid running into an invalid pointer - access, when the physical deletion of "del" conflicts with - following the next link in the cmdList in the loop's increment - statement (only iff del == cmdList). Re-organized for into a while - loop, to avoid otherwise redundant code. [0311e86] + - FilterSearchAgain(): Avoid running into an invalid pointer access, + when the physical deletion of "del" conflicts with following the next + link in the cmdList in the loop's increment statement (only iff del == + cmdList). Re-organized for into a while loop, to avoid redundant code. + [0311e86] + 2016-07-28 Stefan Sobernig - * nsf.c (GetClassFromObj): Fix invalid memory access as indicated - by valgrind. [a9448f8] + - GetClassFromObj(): Fix invalid memory access (valgrind) [a9448f8] + 2016-07-27 Gustaf Neumann - * nsf.c - (InterpColonCmdResolver): Make intentions about clientData - clear to static checker. [1663346] - (NsfProcStubDeleteProc, NsfProcAdd): Use consistent comment - styles. [e13bc9e] - (NsfProcAdd, ListMethod, NsfParseArgsCmd): Move declarations to - the begin of a code block, remove debug code. [abc4952] - * nsfCmdDefinitions.c, nsfEnumerationType.c, nsfFunPtrHashTable.c: - Remove commented code from the previous implementation. [7243f88] + - + - make intentions about clientData clear to static checker [1663346] - * Makefile.in: Add pre-8.7 Makefile.in (missed in last commit). [ae36129] + - + - remove commented code from the previous implementation [7243f88] + + + - + - move declarations to the begin of a code block + - remove debug code [abc4952] + + + - + - add pre-8.7 Makefile.in (missed in last commit) [ae36129] + + + - + - use consistent comment styles [e13bc9e] + 2016-07-26 Stefan Sobernig - * nsf.c, nsfInt.h (NsfProcStubDeleteProc): Protect against - potentially dangling namespace references from within - ::nsf::procs::*. The wrapper cmd's namespace of an nsf::proc might - already have been deleted when ::nsf::procs::* shuts down - finally. This showed up during a Tcl_Exit (NSF's ExitHandler) as - an invalid memory access via (dangling) namespace pointers - as indicated by valgrind. [c39e939] + - + - NsfProcStubDeleteProc(): Protect against potentially dangling + namespace references from within ::nsf::procs::*. The wrapper cmd's + namespace of an nsf::proc might already have been deleted when + ::nsf::procs::* shuts down finally. This showed up during a Tcl_Exit + (NSF's ExitHandler) as an invalid memory access via (dangling) + namespace pointers (valgrind). [c39e939] + 2016-07-26 Gustaf Neumann - * generic/stubs8.7/: Let NSF compile against Tcl 8.7 (current - trunk version of Tcl). [56d1814] + - + - let nsf compile under tcl 8.7 (current trunk version of Tcl) [56d1814] + 2016-07-25 Gustaf Neumann - * nsf.c, tcl86.test: Continued work on cmd resolvers: Fix test, - when OS specific cmd resolver is used from a - NSF_CSC_CALL_IS_COMPILE frame; improved output from __db_show_obj: - put results into one line instead of multiple lines; new debug - function __db_get_obj: return into about a tcl_obj in form of a - dict (in general, one should not rely on Tcl_Obj internals, - especially when upgrading over major Tcl versions, but for - testing/understanding behavior etc., such a command is helpful; - extended regression test. [21686b8] + - cmd resolver work + - fix test, when OS specific cmd resolver is used from a + NSF_CSC_CALL_IS_COMPILE frame + - improved output from __db_show_obj: put results into one + line instead of multiple lines + - new debug function __db_get_obj: return into about a + tcl_obj in form of a dict (in general, one should not + rely on Tcl_Obj internals, especially when upgrading over + major Tcl versions, but for testing/understanding + behavior etc., such a command is helpful). + - extend regression test [21686b8] + 2016-07-21 Stefan Sobernig - * tcl86.test: Revive and include test case on Bug 3418547. [f5b034e] + - Shift some atomic tests into test case [7f8ee0b] + + + - Revive and include test case on Bug 3418547 [f5b034e] + 2016-07-21 Gustaf Neumann - * tcl86.test: Add test for the global cmd literal sharing. [3dbd5a1] - * nx.tcl: Adding "/obj/ info method disassemble" for disassembling - methods. [ 3dbd5a1] + - + - add test for the global cmd literal sharing + - keep experimental code for disassembling methods [3dbd5a1] 2016-07-17 Stefan Sobernig - * nsf.c (NsfParseArgsCmd): Fix memory leak. [ae50486] + - NsfParseArgsCmd: Fix memory leak [ae50486] + 2016-07-16 Stefan Sobernig - * nsf.c (SetInstVar): Correct book-keeping for NSF's memcount - feature. [6a3890e] + - memcount: correct book-keeping in SetInstVar [6a3890e] + 2016-07-15 Stefan Sobernig - * nsfCmdDefinitions.c (Register): Avoid inline comment style. - [34c49c5] - * nsf.c (NsfFinalizeCmd): Suppress cppcheck warning: adding - explicit int cast. [9fc2766] + - Avoid inline comment style [34c49c5] - * nsfError.c - (NsfDStringVPrintf): Promote log statement to Tcl panic. [c7b7511] - (NsfDStringVPrintf): Make log statement conditional on NDEBUG. [2a16d79] + - Suppress cppcheck warning: adding explicit int cast [9fc2766] + + + - Promote log statement to Tcl panic [c7b7511] + + + - NsfDStringVPrintf: Make log statement conditional on NDEBUG [2a16d79] + 2016-07-15 Gustaf Neumann - * nsf.c (DispatchDestroyMethod): Handle cases of objects becoming - deleted after the interp (which should not happen) more - gracefully. [800c3a0] + - + - handle case that showed up with Zoran during final shutdown: in case, + an object is deleted after the interp is deleted (which should not + happen), don't crash. [800c3a0] + 2016-07-15 Stefan Sobernig - * nsfError.c (NsfDStringVPrintf): Rephrase err message. [8d2096e] + - Rephrase err message [8d2096e] + 2016-07-14 Stefan Sobernig - * nsfError.c (NsfDStringVPrintf): Suppress cppcheck warning: - unused variable assignment. [34e5bc1] - * nsf.c (NsfParseArgsCmd): Suppress cppcheck warning: reduce - variable scope. [8fd1f04] + - Suppress cppcheck warning: unused variable assignment [34e5bc1] + + - Suppress cppcheck warning: reduce variable scope [8fd1f04] + 2016-05-21 Gustaf Neumann - * nsfmongo.c (NsfMongoRunCmd): return the result of - ::mongo::run. [4dccd3f] + - + - return the result of ::mongo::run [4dccd3f] + 2016-05-04 Stefan Sobernig - * Documentation: Link version numbering in man pages to autoconf - tooling, similar to the NaviServer setup, update copyright dates - in man pages where needed. [0228cdf] + - Docs: Link version numbering in man pages to autoconf tooling + (similar to the NaviServer setup), update copyright dates in man + pages where needed [0228cdf] + 2016-04-30 Stefan Sobernig - * Documentation (nxsh.man): Update man page for nxsh, adding - description of -c option. [30cf844] + - Deactivate one test for now [1b1bbfc] + + + - Update man page for nxsh [30cf844] + 2016-04-29 Stefan Sobernig - * Testsuite - (Makefile.in): Register shells.test. [be3c675] - (shells.test): Some cleanup and adding basic test cases. [3ee0ac9] + - Register shells.test [be3c675] + + + - Some cleanup and adding basic test cases [3ee0ac9] + 2016-04-21 Stefan Sobernig - * Shells (nxsh, xotclsh): Scripted shell reform which provides an - alternative nx::shell impl (nx::shell2), used by all four shell - scripts. nx::shell2 builds on Tcl's event loop, rather than while - + update. This avoids blocking the Tk main window (update). In - addition, nx::shell2 is closer to Tcl's native shells (e.g., no - extra lines on enter, catches EOF). [2a5945f] + - nx::shell reform: Provide an alternative nx::shell impl (nx::shell2), + used by all four shell scripts. nx::shell2 builds on Tcl's event + loop, rather than while + update. This avoids blocking the Tk main + window (update). In addition, nx::shell2 is closer to Tcl's native + shells (e.g., no extra lines on enter, catches EOF). [2a5945f] + 2016-04-19 Gustaf Neumann - * nsfmongo.c, mongoAPI.*: Improved mongodb interface for json/bson - parsing; rename function mongo::json to mongo::json::generate; - introduce mongo::json::parse. [e3e8f37] + - Improved mongodb interface for json/bson parsing: + - rename function mongo::json to mongo::json::generate + - introduce mongo::json::parse [e3e8f37] + 2016-04-08 Stefan Sobernig - * Object.man: Fix doc on introspection for configure options. [4276fbd] + - Fix doc on introspection for configure options [4276fbd] + 2016-04-04 Gustaf Neumann - * nsf.c (ComputeParameterDefinition, ProcessMethodArguments): - Cleanup up and improve debug statements. [96f4410] - * nsfAPI.decls (__profile_get): Remove redundant spec - line. [e365540] + - + - cleanup up and improve debug statements + - add generated code [96f4410] - * nsf.tcl (volatile): Improve indentation. [a41b0fa] + - + - remove redundant line [e365540] + + + - + - improve indentation [a41b0fa] + 2016-03-30 Gustaf Neumann - * xotcl2.tcl: Added "-returns" flag to XOTcl's instprocs/procs, - very similar to "-returns" in NX. Extended serializer to handle - "-returns" flag and extended regression test, - accordingly. [353fdf4] + - + - updated TODO [6d3a6ca] + + + - xotcl2: + - added "-returns" flag to XOTcl's instprocs/procs and + methods, very similar to "-returns" in nx + - extended serializer to handle "-returns" flag + - extended regression test [353fdf4] + 2016-03-26 Gustaf Neumann - * nx.tcl (setCheckedInstVar): Fix one case in interaction between - get-trace and default value. [f6ddb05] + - + - fix one case in interaction between get-trace and default value + [f6ddb05] + 2016-03-25 Stefan Sobernig - * Testsuite (library/pkgIndex.tcl): Make XOTcl tests runnable - again from plain tarball/git checkout. [20e59a8] + - Make XOTcl tests runnable again from plain tarball/git checkout + [20e59a8] + 2016-03-25 Gustaf Neumann - * nx.tcl (setCheckedInstVar): Allow combination of "-trace get" - with default value (was previously disallowed); extended - regression tests. [7e20ec3] - * nsfError.c (NsfDStringVPrintf): Minor cleanup. [4f44840] + - + - minor cleanup [4f44840] + + - + - Allow combination of "-trace get" with default value (was + previously disallowed) + - Extend regression test [7e20ec3] + 2016-03-23 Stefan Sobernig - * TEA - (makefile.vc): Custom shell target. [842266c, da35de9] - (makefile.vc): Add base-address support; see - http://core.tcl.tk/tcl/tktview?name=0ef5e653. [3a06b2c] - * nsfError.c - (NsfDStringVPrintf): Improve documentation. [b75b19b] - (NsfDStringVPrintf): Another attempt to sort out the vs*printf() - mess between runtimes. [626a121] + - Custom shell target for win makefile.vc [842266c] + + - Custom shell target for win makefile.vc [da35de9] + + + - Add base-address support (see + http://core.tcl.tk/tcl/tktview?name=0ef5e653) [3a06b2c] + + + - Improve documentation on NsfDStringVPrintf() [b75b19b] + + + - Another attempt to sort out the vs*printf() mess between runtimes + [626a121] + 2016-03-18 Stefan Sobernig - * TEA: - (makefile.vc): Update win compilation units. [a8c598f] - * nsf.c (Nsf_ConvertToBoolean, NsfConfigureCmd, ArgumentDefaults) - (NsfObjectSystemCreateCmd): Rename one more 'bool' identifier. In - MSVC 14 (Visual Studio 2015) and newer, 'bool' is a proper type, - not a typedef anymore. 'bool' cannot be used as identifier - anymore; see C2632. [90b08e1,40e347d] + - Update win compilation units [a8c598f] + + - Rename one more 'bool' identifier [90b08e1] + + + - In MSVC 14 (Visual Studio 2015) and newer, 'bool' is a proper type, + not a typedef anymore. 'bool' cannot be used as identifier anymore + (C2632) [40e347d] + 2016-03-18 Gustaf Neumann - * nsfAPI.*, nsf.c (NsfParseArgsCmd): Add new command - "nsf::parseargs" to parse an argument vector against a parameter - definition and to set the resulting variables in the current - scope; extended regression test. [546f8dd] - * nsf.c, nsfStack.c, nsfProfile.c: Substitute Tcl_Time for "struct - timeval" as well as Tcl_GetTime for gettimeofday in profiling code - to improve portability; esp. Windows. [dc4e227] + - + - add new command nsf::parseargs to parse an argument + vector against a parameter definition and to set the + resulting variables in the current scope + - extend regression test [546f8dd] + + - + - change "struct timeval" to "Tcl_Time" and gettimeofday() to + Tcl_GetTime() in profiling code to improve portability (esp windows) + [dc4e227] + 2016-03-16 Gustaf Neumann - * nsfInt.h: Newer versions of GCC 6 handle now as well nonnull - asserts gracefully, so we can turn off its deactivation for GCC - 6. [433266d] + - + - newer versions of gcc6 handle now as well nonnull asserts gracefully, + show we can turn off its deactivation for gcc6 [433266d] + 2016-03-07 Gustaf Neumann - * serializer.tcl: Fix serializing of info internals for XOTcl2. [f9f501f] + - + - fix serializing of info internals for XOTcl [f9f501f] + 2016-03-05 Gustaf Neumann - * nsfmongo.c: Reduce verbosity and apply white-space - changes. [4ca97ca ] + - + - nsf mongodb: reduce verbosity + - white-space changes [4ca97ca] + 2016-02-19 Stefan Sobernig - * nsf.c (NSGetFreshNamespace, NsfDebugShowObj): Address two more - GCC 6 pedantic warnings. [ab19daf] - * nsfFunPtrHashTable.c, nsfCmdDefinitions.c, nsfEnumerationType.c: - Re-factored new hashtable infrastructure (based on - function-pointer keys) to support method-definitions (and future - uses as well). [c01b411] + - Address two more gcc6 pedantic warnings [ab19daf] + + - update to-dos [37b3e36] + + + - Re-factored new hash-table infrastructure (based on function-pointer + keys) to support method-definitions (and future uses as well). + [c01b411] + 2016-02-15 Gustaf Neumann - * nsfCmdDefinitions.c: Added Tcl_HashKeyType cmdPtrHashKeyType for - command pointers. [760d5e6] + - + - added Tcl_HashKeyType cmdPtrHashKeyType for command pointers [760d5e6] + 2016-02-12 Gustaf Neumann - * nsf.c, nsfDebug.c: Move initializations after nonnull asserts. [67efaa6, acee8b7] + - + - move initializations after nonnull asserts [67efaa6] + + + - + - move initializations after nonnull asserts [acee8b7] + 2016-02-11 Gustaf Neumann - * nsf.c (NsfParamDefsVirtualFormat): Ease life of static - checkers. [f382a52] + - + - ease life of static checkers [f382a52] + 2016-02-10 Gustaf Neumann - * nsf.c (GetAllInstances): Removed one more possible NULL - comparison with a non-null value. [8e97011] + - + - removed one more possible NULL comparison with a non-null value + [8e97011] + 2016-02-03 Stefan Sobernig - * Documentation (alias.man.inc, forward.man.inc, method.man.inc): Updating - doc fragments on debug/deprecated methods. [f56a194] - * methods.test, object-system.test: Adding some missing test on - recently added introspection methods. [3c1482d] + - Updating doc fragments on debug/deprecated methods [f56a194] + + - Add a todo item [cd557a4] + + + - Adding some missing test on recently added introspection methods + [3c1482d] + 2016-02-03 Gustaf Neumann - * nsfProfile.c: (NsfProfileDeprecatedCall): Fix comment. [6d1f42a] + - + - fix comment [6d1f42a] + 2016-02-03 Stefan Sobernig - * Object.man, forward.man.inc, alias.man.inc, method.forward.inc, info.man.inc: Adding - doc fragments for new info submethods, as well as deprecated and - debug flags. [74410fa] + - Adding doc fragments for new info submethods, as well as deprecated + and debug flags [74410fa] + 2016-02-01 Gustaf Neumann - * serializer.tcl: Improve robustness of serializer, otherwise - "::nx::Object::slot::__info" triggers an exception. [494410d] + - + - improve robustness of serializer, otherwise + "::nx::Object::slot::__info" triggers an exception [494410d] + 2016-01-27 Gustaf Neumann - * nsf.c (GetClassFromObj): Provide for refcounting before and - after the call tp NsfCallObjectUnknownHandler. [e05bd93 ] + - + - adding refcount handling before+after the call of + NsfCallObjectUnknownHandler() [e05bd93] + 2016-01-26 Gustaf Neumann - * nsf.c (Nsf_ConvertToClass, NsfRuntimeState): Let NSF create - classes with ::nsf::object::unknown handler on the fly, when - C functions are called with objects of type class. This is - necessary for triggering creation attempts in trace via - ::nsf::object::alloc /cls/ /obj/. [6c041dc] + - + - Let nsf create classes with ::nsf::object::unknown handler in the + fly, when c-function are called with objects of type class. This is + necessary for triggering creation attempts in ttrace via + ::nsf::object::alloc SOMECLASS SOMEOBJ [6c041dc] + 2016-01-25 Gustaf Neumann - * xotcl2.tcl, pkgIndex.tcl, serializer.tcl: Bump version number of - XOTcl to 2.1. [52a6105] + - + - bump version number of XOTcl to 2.1 [52a6105] + 2016-01-22 Gustaf Neumann - * generic/*.c: Updated copyright notices, version - number. [4fa580a] - * accessor.tcl: Add editor hint. [5fe3bf0] + - + - turned all for-loops controlled over a nonnull value into + while loops + - updated TODO, copyright notices, version number [4fa580a] - * nsfUtil.c: Move assignment aster nonnull assertions. [a3fe572] - * nsf.c (MixinInvalidateObjOrders, MixinSearchMethodByName): Turned - all for-loops controlled over a nonnull value into while - loops. [e5a42b6] + - + - add editor hint [5fe3bf0] - * README: Update version numbers in README. [4468c69] - * README.release: Fix description. [1a70aea] + - + - move assignment aster nonnull assertions [a3fe572] -2016-01-19 Gustaf Neumann - * nsf.c, nsfAPI.*, nsfCmdPtr.c, nx.tcl, slottest.xotcl, - accessor.test, cget.test, parameters.test: Slot trace reform - incl. a redesign of slot interface of traces. Variables contain - cmds and variable references to slot-specific methods with the - same interface as slot-setters. When new flag -trace is set, a - trace will be registered calling either: + - + - turned all for-loops controlled over a nonnull value into while + loops. [e5a42b6] - value=get /obj/ /variableName/; or - value=set /obj/ /variableName/ /value/; or - value=default /obj/ /variable/; on the slot. - Updated regression test accordingly. [dadf28e] + - + - upadte version numbers in README [4468c69] + + - + - fix description [1a70aea] + +2016-01-19 Gustaf Neumann + + + - Slot trace reform: + - redesign of slot interface of traces from + * variables contains cmds and variable references to + * slot specific methods with the same interface as + slot-setters + - new: + * specify flag "-trace" with a list of values "get", "set", + "default" + * when flag is set, a trace will be registered calling + methods value=get obj variable value=set obj variable + value value=default obj variable on the slot (actually + the first two are identical with the methods used for + slot-defined accessors) + - updated regression test + * new flag "-notrace" for "nsf::var::set" and "nsf::var::get" [dadf28e] + 2016-01-12 Stefan Sobernig - * xotclsh.in, xowish.in: Make sure minor versions >2.1 are - accepted. [286f946] - * xotclsh.in, xowish.in: Use nx::shell. [4b92980] + - xotclsh, xowish: Make sure minor versions >2.1 are accepted [286f946] - * nxsh.in, nxwish.in: Use nx::shell. [4bf0e8a] - * nx-shell.tcl: - (nx::shell): Started refactoring scripted shell environment into a single, package + - nx::shell: Have xotclsh and xowish use nx::shell [4b92980] + + + - nx::shell: Have nxsh and nxwish use nx::shell [4bf0e8a] + + + - nx::shell: Avoid poluting global namespace [f1bfcbc] + + + - Started refactoring scripted shell environment into a single, package location (nx::shell) to ease sharing between nxsh & friends, as well as to facilitate implementingNX/XOTcl shells in wrapped applications - (tclkits). [6c6f313] - (nx::shell): Avoid poluting global namespace. [f1bfcbc] + (tclkits) [6c6f313] 2016-01-11 Gustaf Neumann - * README.release: Update release hints. [2c69f59] + - + - update release hints [2c69f59] + 2016-01-08 Gustaf Neumann - * nsf.c - (NsfDStringEval): Make sure to reset prevPreventRecursionFlags to - value before the call. [7ca41c6] - (NsfDStringEval): Changed interface of to control behavior via - bitflags (this is after all more readable than a argument list of - "0" and "1"s); added optional recursion prevention for functions - called via NsfDStringEval (handling NSF_EVAL_DEBUG, NSF_EVAL_LOG, - NSF_EVAL_DEPRECATED); added regression tests for potential - recursive calls. [e367957] - * xotcl2.tcl: Added flags "-debug" and "-deprecated" to XOTcl 2 - "instproc", "proc", "instforward" and "forward" methods. [ccca1a5] + - + - make sure to reset prevPreventRecursionFlags to value before the call + [7ca41c6] + + - + - added flags "-debug" and "-deprecated" to XOTcl 2 "instproc", "proc", + "instforward" and "forward" methods [ccca1a5] + + + - + - changed interface of NsfDStringEval to control behavior + via bitflags (this is after all more readable than a + argument list of "0" and "1"s) + - added optional recursion prevention for functions called + via NsfDStringEval (handling NSF_EVAL_DEBUG, + NSF_EVAL_LOG, NSF_EVAL_DEPRECATED) + - added regression tests for potential recursive calls [e367957] + 2016-01-07 Gustaf Neumann - * nsf-cmd.test: Add absolute path in returned proc defintion to - regression test. [a775d31] - * nsf.tcl: Add result in debug exit calls. [2771c4c] + - + - add absolute path in returned proc defintion to regression test + [a775d31] + + - + - add result in debug exit calls [2771c4c] + 2016-01-05 Gustaf Neumann - * nsf.c (ListMethod): Return fully qualified name for - "::nsf::cmd::info definition" when called on plain procs. [fd0f246] + - + - return fully qualified name for "::nsf::cmd::info definition" when + called on plain procs [fd0f246] + 2015-12-30 Gustaf Neumann - * nx.tcl, serializer.tcl: Generalize method serialization of - forwarders. [8cbd921] + - + - generalize method serialization of forwarders [8cbd921] + 2015-12-29 Gustaf Neumann - * nsf.h: Fix compilation when DTRACE but no PROFILE is - activated. [74b39c5] - * nsf.c, nsfProfile.c: Prefer boolean expressions in assert() - statements. Make sure, we do not pass null values to nonnull - arguments. [a529b8f, 22f4e55] + - + - fix compilation when DTRACE but no PROFILE is activated [74b39c5] - * Makefile.in: Add etags target. [bce3456] + - + - prefer boolean expressions in assert() statements [a529b8f] + + + - + - make sure, we do not pass null values to nonnull arguments [22f4e55] + + + - + - add etags target [bce3456] + 2015-12-25 Gustaf Neumann - * nsf.c, nsfInt.h, nsfProfile.c, configure.ac: Substitue all - remaning ObjectName and ClassName for variant with trailing "_", - where appropriate; allow nsf::procs with zero arguments or plain - arguments (when "-debug" is used); extended regression test; bump - version number to 2.1. [a0faba2] - * serializer.tcl: Provide for backward compatibility in - method serializer. [c04d6db] + - + - replace all remaning ObjectName and ClassName with + variant with trailing "_" when appropriate + - allow nsf::procs with zero arguments or plain arguments + (when "-debug" is used + - extended regression test + - bump version number to 2.1 [a0faba2] + + - + - provide backward compatibility in method-serializer [c04d6db] + 2015-12-22 Gustaf Neumann - * nsfError.c (NsfDStringVPrintf): Fix potential memory corruption - bug in NsfDStringVPrintf. [cf9bbe0] + - + - fix potential memory corruption bug in NsfDStringVPrintf() [cf9bbe0] + 2015-12-19 Gustaf Neumann - * serializer.tcl: Added handling of "-debug" and "-deprecated" in - serializer; allow export of nsfprocs via "exportMethods - declaration" in order to keep otherwise excluded cmds in the - result. Hardened serializer (use e.g. "::namespace" instead of - "namespace" when there is a potential conflict with a method named - "namespace", prefer nsf::directdispatch, etc.); extended - regression test. [6a55e4e] - * nx.tcl: Added flags "-debug" and "-deprecated" to further NX - method-defining methods. [183cd0a] + - serializer: + - added handling of "-debug" and "-deprecated" in serializer + - allow export of nsfprocs via "exportMethods declaration" + in order to keep otherwise excluded cmds in the result. + this allows us to keep nsf::debug::* or nsf::deprecated + definitions in the blueprint in OpenACS. + - hardened serializer (use e.g. "::namespace" instead of + "namespace" when there is a potential conflict with a + method named "namespace", prefer nsf::directdispatch, + etc.) + - extended regression test [6a55e4e] + + - + - nx: added flag "-debug" and "-deprecated" to methods "method" "object + method" "alias" "object alias" "forward" "object forward" such one + can use e.g. /cls/ public alias -deprecated|-debug /method/ ... /cls/ + public forward -deprecated|-debug /method/ ... /cls/ public method + -deprecated|-debug /method/ ... /obj/ public object alias + -deprecated|-debug /method/ ... /obj/ public object forward + -deprecated|-debug /method/ ... /obj/ public object method + -deprecated|-debug /method/ ... [183cd0a] + 2015-12-18 Gustaf Neumann - * nx.tcl - (nx::Class, nx::Object): Added flags "-debug" and "-deprecated" to "?object? - method"; extended regression test. [2d609d0] - (nx::Class, nx::Object): Added new introspection options; extended regression test: - /cls/ info method debug - /cls/ info method deprecated - /obj/ info object method debug - /obj/ info object method deprecated - [53113de] - * nsf.c, serializer.tcl, nsf-cmd.test: Handling "deprecated" and - "debug" properties for nsf::proc (in "nsf::cmd::info definition - /proc/" and serializer). [63fb7c1] + - + - nx: added options "-debug" and "-deprecated" to methods + "method" and "obejct method", such one can use e.g. C + public method -deprecated bar {} {return 1} + - extended regression test [2d609d0] + + - + - nx: added new introspection options /cls/ info method + debug /cls/ info method deprecated /obj/ info object + method debug /obj/ info object method deprecated + - extended regression test [53113de] + + + - + - update TODO [87fd900] + + + - + - describe next steps [b3c6192] + + + - + - handling "deprecated" and "debug" properties for nsf::proc (in + "nsf::cmd::info definition /proc/" and serializer) [63fb7c1] + + + - + - documented purpose of TODO-file + - fixed typos in TODO [e24d276] + 2015-12-17 Gustaf Neumann - * nsf.c, nsf.tcl, nsfAPI.*, nsfProfile.c, nsfStack.c: New method properties - nsf::method::property /obj/ /method/ debug ?0|1? - nsf::method::property /obj/ /method/ deprecated ?0|1? - [8854eef] + - + - added nsf::method::property /obj/ /method/ debug ?0|1? when debug is + activated, a debug line written to the log file when the function is + called and exited [8854eef] + + + - + - update file name [471b3b3] + 2015-12-13 Gustaf Neumann - * nsf.c, nsfAPI.*, nx.tcl - (nx::Object): New introspection method "/obj/ info - baseclass"; extended regression test. [5a162b0] - (nx::Object, nx::Class): new introspection methods "/obj/ info object method - callprotection /m/" and "/cls/ info method callprotection /m/"; - extended regression test. [07b40a4] + - + - new introspection method: "/obj/ info baseclass" + - extended regression test [5a162b0] + + + - + - new introspection methods: "/obj/ info object method + callprotection /m/" "/cls/ info method callprotection /m/" + - extended regression test [07b40a4] + 2015-12-12 Gustaf Neumann - * serializer.tcl: Fix ::Serializer->methodSerialize when called - for per-object methods. [2f76d3a] - * next-migration.txt: Fix editing bug in documentation. [c105770] + - + - fix ::Serializer->methodSerialize when called for per-object methods + [2f76d3a] + + - + - fix editing bug in documentation [c105770] + 2015-11-30 Gustaf Neumann - * generic/*, gentclAPI.tcl: New macros NSF_nonnull_assert() and - nonnull_assert(). Background: The unreleased gcc6 with "-pedantic" - complaints since recently about asserts, in which nonnull - conditions implied by nonnull declarations are explicitly tested, - and spits out warnings like "warning: nonnull argument - [...] compared to NULL". The new macros turns off asserts, when - gcc6 is used. [16a0288] - * nsf.c, nsfAPI.*, nsfInt.h, nsfProfile.c, nsfShadow.c: Profile - trace enhancements, add optional argument "-builtins" to - "nsf::__profile_trace" to trace a selected list of built-ins. Every - element of the list passed to "-builtins" might contain a cmd name - and optionally a maximum number of arguments to be shown - ,typically 0 or 1. Generalized NsfReplaceCommand* logic to become - more general usable (e.g. for the builtins mechanism of - nsf::__profile_trace). [19c8474] + - + - New macros NSF_nonnull_assert() and nonnull_assert() Background: The + unreleased gcc6 with "-pedantic" complaints since recently about + asserts, in which nonnull conditions implied by nonnull declarations + are explicitly tested, and spits out warnings like ... warning: nonnull + argument ... compared to NULL ... The new macros turns off asserts, + when gcc6 is used. [16a0288] + + - Profile trace enhancements: + - add optional argument "-builtins" to nsf::__profile_trace + to trace a selected list of builtins. Every element of + the list passed to "-builtins" might contain a cmd name + and optionally a maximum number of arguments to be shown + (typically 0 or 1) + - generalized NsfReplaceCommand* logic to become more general usable + (e.g. for the builtins mechanism of nsf::__profile_trace) [19c8474] + 2015-11-27 Gustaf Neumann - * nsfProfile.c: Remove redundant prototype. [f1ac62f] - * nsf.c, nsfInt.h, nsfProfile.c, nsfAPI.*: Use standard logging - for "nsf::__profile_trace -verbose true" by using the standard - logging mechanism, we can redefining "::nsf::log" to output e.g. - trace in a GUI. Add argument "-dontsave" to nsf::__profile_trace - to avoid saving trace in memory. Refactor trace and debug output - to deliver lists. This makes it easier to postprocess the results - from Tcl. [55c89d7] + - + - remove redundant prototype [f1ac62f] - * nsf.h: Place arguments of preprocessor macros into - parentheses. [6953255] + - + - update change history in todo [7da6935] + + + - + - Use standard logging for nsf::__profile_trace ... + -verbose true ... By using the standard logging + mechanism, we can redefining ::nsf::log to output e.g. + trace in a GUI. + - Add argument "-dontsave" to nsf::__profile_trace to avoid + saving trace in memory + - Refactor trace and debug output to deliver lists. This makes it + easier to postprocess the results from Tcl. [55c89d7] + + + - + - place arguments of preprocessor macros into parens [6953255] + 2015-11-23 Gustaf Neumann - * nsfInt.h (NsfObjectSystem): Silence cppcheck 1.71. [a792884] + - + - silence cppcheck 1.71 [a792884] + 2015-11-08 Gustaf Neumann - * nsf.c - (ParameterMethodDispatch, NsfNSCopyVarsCmd, NsfOConfigureMethod): Keep - Tcl error messages, when Tcl_ObjSetVar2 fails. [74d126b] - (AutonameIncr, NsfOConfigureMethod, ParameterMethodDispatch): - Handle result of Tcl_ObjSetVar2() in all cases. [2d42793] - (NsfOConfigureMethod, NsfOCgetMethod): Don't swallow errors - triggered from variable write traces in configure. [a709e3e] + - + - keep Tcl error messages, when Tcl_ObjSetVar2() fails. [74d126b] + + + - + - handle result of Tcl_ObjSetVar2() in all cases [2d42793] + + + - + - don't swallow errors triggered from variable write traces in + configure [a709e3e] + 2015-11-06 Gustaf Neumann - * nx.tcl, xotcl2.tcl: Fixed a bug that disallowed the combination - of valuecmd and valuechangedcmd for a single property (many thanks - to Zoran for pointing this out). [3946480] - * nsf.c (Nsf_ThreadExitProc, ArgumentDefaults): White-space - changes. [dbe0bb3] + - + - Fixed a bug that disallowed the combination of valuecmd and + valuechangedcmd for a single property (many thanks to Zoran for + pointing this out) [3946480] + + - + - white space change [dbe0bb3] + 2015-11-05 Gustaf Neumann - * parameters.test: Whitespace change. [aca62da] -2015-10-16 Stefan Sobernig + - + - whitespace change [aca62da] - * mkIndex.tcl: In certain build situations, we might still run - under Tcl 8.4 because it comes as a legacy OS battery. Tcl modules - are >= 8.5 only. [b137911] +2015-10-16 ssoberni + + - In certain build situations, we might still run under Tcl 8.4 + (because it comes as a legacy OS battery). Tcl modules are >= 8.5 + only. [b137911] + 2015-10-01 Gustaf Neumann - * nsf.c, nsfAPI.*, nx.tcl, serializer.tcl: New command - "nsf::method::forward::property" in analogy to - "nsf::method::property" for reading+writing introspection of - forwarders (important for serializer, when different target - objects are specified, to map the per-object forwarder); extended - regression test; bumped version number of serializer to 2.1. [f31c1a0] + - + - new command nsf::method::forward::property in analogy to + nsf::method::property for reading+writing introspection + of forwarders (important for serializer, when different + target objects are specified, to map the per-object + forwarder) + - extended regression test + - bumped version number of serializer to 2.1 [f31c1a0] + 2015-09-27 Gustaf Neumann - * nsf.c, nsfInt.h: Reduce implicit conversions, write body of - if-statements as blocks, whitespace changes, prefer boolean - expressions, add likely/unlikely hints. [afbb465] + - + - reduce implicit conversions + - wite body of if-statements as blocks + - whitespace changes + - prefer boolean expressions + - add likely/unlikely hints [afbb465] + 2015-09-26 Gustaf Neumann - * generic/*.c: Prefer boolean expressions, reduce implicit - conversions, write body of if-statements as blocks, whitespace - changes, update licenses. [2e1a88e] + - + - prefer boolean expressions + - reduce implicit conversions + - wite body of if-statements as blocks + - whitespace changes + - update licenses [2e1a88e] + 2015-09-21 Gustaf Neumann - * Makefile.in, autogen.sh, configure.ac: Support building NSF from - some other directory than the root directory; raise no error, - when NSF is built with mongo + profile enabled. [1c9684a] + - + - support building nsd from some other directory than the + root directory + - raise no error, when nsf is built with mongo + profile enabled + [1c9684a] + 2015-08-11 Gustaf Neumann - * nsf.c (NSDeleteChild, DispatchDestroyMethod): Improve robustness - of destroy: in case an error happened in a destroy method in - implicit delete operations, a crash was possible, since the state - of the object to be delete was somewhat unclear: it might or might - not have been deleted. Now, the object is explicitly kept longer - around to allow proper handling. [19058de] - * nx.tcl: Don't raise an error, but add warning in cases, slot - data is inconsistent. [71a3245] + - + - improve robustness of destroy: in case an error happened in a destroy + method in implicit delete operations, a crash was possible, since the + state of the object to be delete was somewhat unclear (it might or + might not have been deleted). Now, the object is explicitly kept longer + around to allow proper handling). [19058de] + + - + - don't raise an error, but add warning in cases, slot data is + inconsistent [71a3245] + 2015-07-29 Gustaf Neumann - * nsf.c - (ObjectSystemsCheckSystemMethod): Don't define variables - inside a block. [9e1cdbe] - (NextGetArguments): Address coverty CID 102646, second attempt. - [f3ca6a1] - (ObjectDispatch): Address covertiy CID 88773. [f90a7fa] - * gentclAPI.tcl, nsfAPI.h: Revert overeager part of the - change. Remove logically dead code as flagged by Coverity. Move - assignments after assertions in generated code. - [cad3e31,ec070e9,0e247f6] + - + - don't define variables inside a block [9e1cdbe] -2015-07-29 Stefan Sobernig - * README.release: Adding details how to upload Coverity builds. - [6d4bc2b] + - + - address coverty CID 102646, second attempt [f3ca6a1] + + - + - address coverty CID 102646 [f4c0008] + + + - + - address covertiy CID 88773 [f90a7fa] + + + - + - move assignmetns after assertions in generated code [cad3e31] + + + - + - revert overeager part of the change [ec070e9] + + + - + - remove logically dead code as flagged by coverity [0e247f6] + +2015-07-29 ssoberni + + + - Adding details how to upload Coverity builds [6d4bc2b] + 2015-07-29 Gustaf Neumann - * nsf.c - (FilterInvalidateObjOrders): Remove expressions which were - always true. [bd4d7d0] - (FilterInvalidateObjOrders): Turn for() loop into a repeat-until - loop, since in first iteration, the loop controlling expression - was always true. [33aa1b2] - (CleanupDestroyClass): Address coverty CID 88774. [6adb5d9] - (NsfOResidualargsMethod): Address CID 88776. [1a7f8ba] -2015-07-28 Stefan Sobernig + - + - remove expression which were always true [bd4d7d0] - * README.release: Adding Coverity instructions. [b43b9e2] + - + - turn for() loop into a repeat-until loop, since in first iteration, + the loop controlling expression was always true [33aa1b2] + + + - + - address coverty CID 88774 [6adb5d9] + + + - + - address coverty issue 88776 [1a7f8ba] + +2015-07-28 ssoberni + + + - Adding Coverity instructions [b43b9e2] + 2015-07-28 Gustaf Neumann - * nsf.c: Move dereferencing of members after assertions. [00186f9] - * nsf.c - (NsfRelationClassMixinsSet): Move assertion after - assignment. [9f90d6b] - (NSDeleteChild): Fix potential bug on Tcl-triggered - cmd-delete operations, where destroy returns non-TCL_OK and name - of the object could not be retrieved anymore in error - message. [92d76b8] - (ParameterMethodDispatch): Attempt to make Coverty happy (CID - 88769). [a4eaf4e] - (FreeAllNsfObjectsAndClasses): Remove test, since it is covered - already by assertions. [accdf4b] + - + - move assertion after assingment [9f90d6b] - * nsf.c, nsfInt.h - (NsfParamDefs): Removed NsfParamDefs.slotObj and - single occurance for memory-management since it is not used for - the time being [08dedac] - (NsfProcClientData, MethodDispatch, ObjectDispatch): Write - body-blocks of if on separate lines; change variable name - "validCscPtr" to "isValidCsc", since it is a boolean and not a ptr - Tcl coding guidelines; prefer explicit comparisons. [6c7bb9b] -2015-07-28 Stefan Sobernig + - + - move dereferencing of members after assertions [00186f9] - * nsf.c (MethodDispatch): Fix compiler warning on typecast - mismatch. [4e2b21c] - * nsfObj.c (MixinregSetFromAny): Re-arrange control flow as to match other - uses in the code base (CID 88777). [1527180] + - + - fix potential bug on tcl-triggered cmd-delete operations, where + destroy returns non-TCL_OK and name of the object could not be + retrieved anymore in error message. [92d76b8] -2015-07-27 Stefan Sobernig - * nsf.c - (ResolveMethodName): Guard against potential null pointer - dereference (CID 88771). [ca7f760] - (FreeAllNsfObjectsAndClasses): Remove unneeded NULL check as + - + - attempt to make Coverty happy (CID 88769) [a4eaf4e] + + + - + - removed NsfParamDefs.slotObj (and single occurance for + memory-management) since it is not used for the time being [08dedac] + + + - + - remove test, since it is covered already by assertions [accdf4b] + + + - + - write body-blocks of if on separate lines + - change variable name "validCscPtr" to "isValidCsc", since + it is a boolean and not a ptr (tcl coding guidelines) + - prefer explicit comparisons [6c7bb9b] + +2015-07-28 ssoberni + + + - MethodDispatch(): Fix compiler warning on typecast mismatch [4e2b21c] + + + - MixinregSetFromAny(): Re-arrange control flow as to match other uses + in the code base (CID 88777) [1527180] + +2015-07-27 ssoberni + + + - ResolveMethodName(): Guard against potential null pointer dereference + (CID 88771). [ca7f760] + + + - FreeAllNsfObjectsAndClasses(): Remove unneeded NULL check as dereferencing already occurred before; check for NULL earlier (CID - 88780). [2638eb9] + 88780) [2638eb9] -2015-07-23 Stefan Sobernig +2015-07-23 ssoberni - * nsfObj.c (MixinregSetFromAny): Fix crash through explicit null dereferencing + + - MixinregSetFromAny(): Fix crash through explicit null dereferencing when an invalid list string-rep is provided as mixinreg (CID 88777); added tests [207a8f5] - * nsf.c (MakeProc): Silence false-positive warning, due to missing - returns_nonnull annotation (CID 88770). [a757c1a] -2015-07-17 Stefan Sobernig + - MakeProc(): Silence false-positive warning, due to missing + returns_nonnull annotation (CID 88770). [a757c1a] - * nsf.c: - (ConvertViaCmd, ConvertToObjpattern, GetSlotObject): Check return - values of GetObjectFromObj explicitly (CID 88763, 88764, - 88765). [8357e61] - (ObjectSystemsCheckSystemMethod): Mark TCL_ERROR path as unlikely. - [c0e1053] - (ObjectSystemsCheckSystemMethod): Re-order control flow to remove - otherwise dead IF-branch (CID 88768). [1eaf0a3] - (NsfMethodPropertyCmd): Dropped option 'slotobj' as it is - obsolete. Also fixes CID 88767. [6c9eb2e] - (ListMethod): Make sure that 'info method exists' returns 0 for - (plain) NX objects; added some tests. [0b1ac7f] - (ListCmdParams): Removed logically dead code (CID - 88779). [c2e5725] +2015-07-17 ssoberni - * Documentation (info.man.inc): Make empty-string ambiguity - explicit for 'info method *'. [497451f] -2015-07-16 Stefan Sobernig + - nsf.c: Check return values of GetObjectFromObj explicitly (CID 88763, + 88764, 88765). [8357e61] - * nsfStack.c (NsfShowStack): Removed logically dead code. CID - 88766. [caee18f] + - ObjectSystemsCheckSystemMethod(): Mark TCL_ERROR path as unlikely + [c0e1053] + + + - ObjectSystemsCheckSystemMethod(): Re-order control flow to remove + otherwise dead IF-branch (CID 88768) [1eaf0a3] + + + - NsfMethodPropertyCmd(): Dropped option 'slotobj' as it is obsolete. + Also fixes CID 88767. See TODO for further cleanup steps. [6c9eb2e] + + + - info.man.inc: Make empty-string ambiguity explicit for 'info method + *' [497451f] + + + - ListMethod(): Make sure that 'info method exists' returns 0 for + (plain) NX objects; added some tests [0b1ac7f] + + + - ListCmdParams(): Removed logically dead code (CID 88779). [c2e5725] + +2015-07-16 ssoberni + + + - NsfShowStack(): Removed logically dead code. CID 88766. [caee18f] + 2015-04-07 Gustaf Neumann - * nsfInt.h: Fix compilation when compiled without --enable-profile. - [6c58e11] + - + - fix compilation when compiled without --enable-profile [6c58e11] + 2015-04-06 Gustaf Neumann - * gentclAPI.tcl, nsf.c, nsfProfile.c: Improve profiling support - and added profile support for undispatched methods (i.e. - implemented via CallDirectly). New function for controlling - profile trace "nsf:__profile_trace -enable /bool/ ?-verbose - /bool/?". [c5f2227] -2015-04-03 Stefan Sobernig + - Improve profiling support + - added profile support for undispatched methods (i.e. + implemented via CallDirectly) + - new function for controlling profile trace nsf:__profile_trace + -enable /bool/ ?-verbose /bool/? [c5f2227] - * nsfDebug.c, nsfInt.h, nsf-cmd.test: Silence varargs warning - -Wgnu-zero-variadic-macro-arguments under clang --std=c99 - -pedantic, tested under gcc, clang 3.6, and MSVC; added tests. - [714726d] +2015-04-03 ssoberni + + - Silence varargs warning (-Wgnu-zero-variadic-macro-arguments) under + clang --std=c99 -pedantic, tested under gcc, clang 3.6, and MSVC; + added tests [714726d] + 2015-04-01 Gustaf Neumann - * nsf.c, nsfError.c, nsfProfile.c: Changed trace facility to - append to a variable to minimize interactions for results and - return codes, which happen via nsf::log; added more convenient - function for adding to DStrings: Nsf_DStringPrintf; renamed - NsfDStringPrintf to NsfDStringVPrintf; replaced complex macros - for tracing by functions. [453ad27] + - + - changed trace facility to append to a variable to + minimize interactions for results and return codes, which + happen via nsf::log. + - added more convenient function for adding to DStrings: + Nsf_DStringPrintf + - renamed NsfDStringPrintf to NsfDStringVPrintf + - replaced complex macros for tracing by functions [453ad27] + 2015-03-31 Gustaf Neumann - * nsf.c, nsfAPI.*, nsfInt.h, nsfProfile.c: Added experimental - "nsf::configure trace" feature, which can be enabled when compiled - with profile support. trace turns on automatically profile. - [e1c25b4] + - + - added experimental "nsf::configure trace" feature, which can be + enabled when compiled with profile support. trace turns on + automatically profile [e1c25b4] + 2015-01-22 Gustaf Neumann - * nsf.c, nsfDebug.c, nsfStack.c: Improve cleanness of compilation - when "-pedantic" is used. [bf951b5] + - + - improve cleanness of compilation when "-pedantic" is used [bf951b5] + 2015-01-05 Gustaf Neumann - * nsf.c, nsfDebug.c, nsfObj.c: Assignments after assertions. - [658c5ca] - * Makefile.in: Add -DNDEBUG=1 to flags passed to cppcheck, since - cppcheck reports checked cases as warnings. [efb84f6] + - + - move assignments after assertions [658c5ca] + + - + - add -DNDEBUG=1 to flags passed to cppcheck, since cppcheck reports + checked cases as warnings [efb84f6] + 2015-01-02 Gustaf Neumann - * generic/*.c: Prefer const over CONST unless Tcl API. [dbd95b0] + - + - prefer const over CONST unless Tcl API [dbd95b0] + 2015-01-01 Gustaf Neumann - * Documentation: Strip old content from announce file. [5bdfdb7] + - + - strip old content from announce file [5bdfdb7] + 2014-12-13 Gustaf Neumann - * gentclAPI.tcl, nsfAPI.h, mongoAPI.h: Use same definition for - ObjCmds as in Tcl; prefer "const" over "CONST" unless in Tcl - interface. [62beaf1] - * Documentation (doc/example-scripts/*): Regenerate doc pages with - asciidoc 8.6.9, fix paths. [24cb8f4] + - + - use same definition for ObjCmds as in tcl + - prefer "const" over "CONST" unless in Tcl interface [62beaf1] - * nsf.c, nsf.h (NsfLog): Align log levels with - NaviServer/AOLserver. [6b00c4e] + - + - regenerate doc pages with asciidoc 8.6.9 + - fix paths [24cb8f4] + + + - + - align log levels with NaviServer/AOLserver [6b00c4e] + 2014-12-11 Gustaf Neumann - * nsf.c, nsfmongo.c: Fix all complaints from clang static analyzer - 3.6. [919f731] + - + - fix all complaints from clang static analyzer 3.6 [919f731] + 2014-12-06 Gustaf Neumann - * Documentation (next-migration.txt, next-tutorial.txt): Update - date in documentation. [d725e5e] - * Makefile.in: Make sure to rm .o files in stub directory. - [4f7f7c1] + - + - update date in documentation [d725e5e] - * mktar.sh: Make sure to omit Mac OS X hidden file from tarballs. - [9fe4a51] + - + - make sure to rm .o files in stub directory [4f7f7c1] + + + - + - make sure to omit Mac OS X hidden file from tar balls [9fe4a51] + 2014-12-04 Gustaf Neumann - * generic/*.c: Prefer boolean expression in tests over expressions of - other types. [24571ae] + - + - prefer boolean expression in tests over expressions of other types + [24571ae] + 2014-12-01 Gustaf Neumann - * aolstub.c, nsf.c, nsfEnumerationType.c, nsfInt.h: Add const - declarations, improve compilation with --std=c99 - -pedantic. [9e00fd1] - * nsfInt.h, nsfUtil.c, nsfmongo.c: Make compilation clean with - clang 3.6. [81a1f96] + - + - add const declarations + - improve compilation with --std=c99 -pedantic [9e00fd1] - * nsf.c, nsfStack.c: Make compilation clean under clang - 3.6. [1173a57] + - + - make compilation clean with clang 3.6 [81a1f96] + + + - + - make compilation clean under clang 3.6 [1173a57] + 2014-11-25 Gustaf Neumann - * nsf.decls: Add NsfArgumentError() to stub interface, since this - might be used by C packages using the interface generator. [9e8610b] - * nsfmongo.c: Add mong::json to the interface, bump version number - for mongo interface to 0.4. [9e8610b] -2014-10-29 Stefan Sobernig + - + - add NsfArgumentError() to stub interface, since this + might be used by c packages using the interface generator + - add mong::json to the interface + - bump version number for mongo interface to 0.4. [9e8610b] - * Documentation (doc/*.man, man-princexml.css): Fix PDF rendering - and man markup. [83b89fe] +2014-10-29 ssoberni + + + - Fix PDF rendering and man markup [83b89fe] + +2014-10-28 ssoberni + + + - Revise announcement text slightly, add entry about manpages [04d83e1] + +2014-10-28 Gustaf Neumann + + + - + - update changelog [f92aea6] + + + - + - Don't complain at final ObjectDeletion about object refcounts unless + we are in development mode [6af7268] + + + - + - adding .3 man pages to ease installation [216bad6] + + + - + - adding .1 man pages to ease installation [5ea59ff] + +2014-10-28 ssoberni + + + - Effectively remove getstubs from makefile.vc [c17a765] + + + - Apply stubs* resolution withouh getstubs to makefile.vc [f446b1c] + +2014-10-27 Gustaf Neumann + + + - + - update ChangeLog [db4cb3c] + + + - + - use newset versions, re-generated stub files [2ff112f] + + + - + - adjust genstubs target to subdir logic [e494dcc] + + + - + - handle nsfUtil.c from version-specific subdirectory [8d8e1ba] + + + - + - binor polishing [49cffe6] + +2014-10-27 ssoberni + + + - NsfDStringPrintf(): Fix vargs processing under VC 12 [ada0c34] + +2014-10-27 Gustaf Neumann + + + - + - get rid of getstubs [8c6ae48] + + + - + - provide actual pkgIndex files [96a1e6b] + + + - + - keep an internal list of Tcl_Objs of type mixinrefs for classes used + as mixins. This list is used for avoiding stale entries in cases the + mixin class is destroyed. [36b29a9] + + + - + - remove redundant and different prototype [15beef0] + +2014-10-27 ssoberni + + + - Left comment block unbalanced, fix [a553acc] + + + - Bump version numbers in nx.tcl and xotcl2.tcl; adjust license + statements [87e9176] + + + - Rearrange 'make getstubs' slightly, so that we do not require the + stub files present in generic/* for the build machinery to work + properly [4619c8c] + + + - Done revising license statements in generic/* [cbcfec7] + +2014-10-27 Gustaf Neumann + + + - + - fix a heisenbug probably showing sometimes up due to more aggressive + Tcl_Obj sharing in newer versions of tcl 8.6 [5163190] + +2014-10-27 ssoberni + + + - Correct and unify licensing statements in header files [481023b] + + + - Fix copyright statements in stubs* files [6d2855a] + + + - Fix copyright dates [f5cbe77] + +2014-10-26 ssoberni + + + - Silence instructions, do not install xowish.in/ xotclsh.in [2f8dfd2] + + + - Bump version number in win build files [d5e628d] + + + - Trigger generation of pgk index scripts [dbddf13] + + + - Trigger generation of pgk index scripts [bb58731] + + + - Trigger generation of pgk index scripts [4d489c5] + + + - Trigger generation of pgk index scripts [fa62f3a] + + + - Adding another missing obj target [0f10c4b] + + + - Irgh! Fix file extension [67ab2c4] + + + - Add EXTERN to calm VC12, add missing C files from makefile.vc + [0e9d5de] + +2014-10-25 ssoberni + + + - Use correct slashing [dcdddbf] + + + - Render file paths in a platform-independent manner [ce20199] + + + - Make sure genstub.tcl is called in makefile.vc [a166e33] + + + - Update nmakehlp (required for VC 12+) [4e113a8] Index: doc/Announce2.1.0 =================================================================== diff -u -rd25cbc8bfb736f46df4c03faf716640e29411364 -rc6c4a9ed2e8d3375bf80e670cd09e3640a9fbf0d --- doc/Announce2.1.0 (.../Announce2.1.0) (revision d25cbc8bfb736f46df4c03faf716640e29411364) +++ doc/Announce2.1.0 (.../Announce2.1.0) (revision c6c4a9ed2e8d3375bf80e670cd09e3640a9fbf0d) @@ -14,215 +14,61 @@ Major changes relative to 2.0.0 are: -o) Improved robustness: +a) - * Tcl command resolvers and command literals: +b) - Up to and including Tcl 8.6.6, there were subtle and unwanted - 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. +c) - 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. - - * Serializer: - - The combined NX and XOTcl2 serializer has been extended to cover - newly added features (esp., NSF procs, method flags) and has been - improved based on experiences from multi-threaded NSF/Tcl applications - (NaviServer). Improvements and fixes relate to "info" methods and - forwarders. - -o) Slot-traces reform: ... +d) -o) Improved scripted shells (e.g., nxsh, xotclsh): +e) Updated MongoDB interface: + + ... - * There is now an alternative implementation of nx::shell: - nx::shell2. It is used by all four shell scripts. nx::shell2 builds - on Tcl's event loop, rather than while + update. This avoids - blocking the Tk main window (update). In addition, nx::shell2's - behavior is more akin to Tcl's native shells (e.g., no extra lines - on enter, catches EOF). +f) API changes: - * The improved shells now accept stdin input (-c option). + Dropped methods: - * They are more robust: Don't quit due to inner [return] calls, - [exit] is handled gracefully. + Added methods: - * Shell tests were added (shells.test). -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 does not entail changed logging - semantics, but helped remove some confusion at the C level. + Added (sub-)commands: -o) Improved NSF/C code generator: Allows for specifying and generating - enum types. + ::nsf::current level -o) API changes: +g) Documentation (API and examples): - NX: - - Features added: - - /obj/ object property|variable ?-trace set|get|default? ... - /cls/ property|variable ?-trace set|get|default? ... - - /obj/ info baseclass - - /cls/ info method callprotection - /cls/ info method debug - /cls/ info method deprecated - /obj/ info baseclass - /obj/ info object method callprotection - /obj/ info object method debug - /obj/ info object method deprecated - /cls/ public alias -deprecated|-debug /method/ ... - /cls/ public forward -deprecated|-debug /method/ ... - /cls/ public method -deprecated|-debug /method/ ... - /obj/ public object alias -deprecated|-debug /method/ ... - /obj/ public object forward -deprecated|-debug /method/ ... - /obj/ public object method -deprecated|-debug /method/ ... - - Features removed: none - - Changes to existing features: none - - XOTcl2: - - Features added: - - * New -return flag: XOTcl2 methods can now specify a return-value - checker, similar to NX methods. - - /cls/ instproc -returns /method/ ... - /obj/ proc -returns /method/ ... - - (TODO: what about instforward/ forward?) - - * New -deprecated and -debug flags: - - /cls/ instforward -deprecated|-debug /method/ ... - /cls/ instproc -deprecated|-debug /method/ ... - - /obj/ forward -deprecated|-debug /method/ ... - /obj/ proc -deprecated|-debug /method/ ... - - - Features removed: none - - (TODO: what about old trace interface: valuechangedcmd & friends?) - - Changes to existing features: none - - NSF: - - Features added: - - * ::nsf::parseargs - * ::nsf::current level - * new flag "-notrace" for "nsf::var::set" and "nsf::var::get" - * new flags "-debug" and "-deprecated" for "nsf::proc" - * New option: nsf::method::property /obj/ /method/ deprecated ?0|1? - * New option: nsf::method::property /obj/ /method/ debug ?0|1? - * New proc: nsf::method::forward::property - * New proc: nsf:__profile_trace -enable /bool/ ?-verbose /bool/? - * New option: nsf::configure trace - - Features removed: none - - Changes to existing features: none - -o) Documentation (API and examples): - Added: - New Rosetta implementations: - Inheritance/single - Add object variable dynamically - Tree traversal - Tokenizer + Inheritance/Single + Updated: - - Object.man: - - * Added missing description on 'info lookup parameters' and + - Object.man: Added description on 'info lookup parameters' and 'info lookup syntax'. - * Correct description of Object->copy. - - * info baseclass (TODO: check) - - - alias/forward/method: added debug/ deprecated switches, - - current.man: Added description of 'level' option. - - Extended/ updated Rosetta implementations: +h) Code changes (C): - Inheritance/multiple - Polymorphic copy - Multiple distinct objects - -o) Code changes (C): - - * Refactoring: There is now a common infrastructure for hashtables - using function pointers as keys (as required for NSF/C command - definitions and enumerations). * 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 more than 18 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). -o) Packaging & distribution: +i) Packaging: Updated TEA to 3.10 - * Updated TEA to 3.10 - * Support for MSVC 14 (VS 2015; win/makefile.vc) - * Debian package: - * MacPorts port: - * Part of the KitCreator battery: https://kitcreator.rkeene.org/fossil/ - * Part of the kbskit battery: https://sourceforge.net/projects/kbskit/ +The Next Scripting Framework 2.1.0 (containing NX and XOTcl 2.1.0) can +be obtained from https://next-scripting.org/. -The Next Scripting Framework 2.1.0 (containing NX 2.1.0 and XOTcl -2.1.0) can be obtained from https://next-scripting.org/. +The detailed ChangeLog is available at +https://next-scripting.org/xowiki/download/file/ChangeLog-2.0.0-2.1.0 -The detailed changelog is available at -https://next-scripting.org/xowiki/download/file/ChangeLog-2.0.0-2.1.0.log - Best regards - Gustaf Neumann - Stefan Sobernig