nsf.c

Clone Tools
  • last updated 13 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- remove unneeded code in cases, when compiled with NDEBUG

- address cmdflags conversion

* nsf.c (ProcDispatchFinalize): Silence compiler warning on ckfree.

- fix debug output wen compiled without --enable-profile

* nsf.c (InvokeShadowedProc): Fix debug output when compiled without --enable-profile. Was originally added on 2-1-0-rc.

merging changes from master brach - move result reporting of nsf::procs into ProcDispatchFinalize() this fixes the result value reporting and timings for nsf::procs

  1. … 1 more file in changeset.
- move result reporting of nsf::procs into ProcDispatchFinalize() this fixes the result value reporting and timings for nsf::procs

merged

  1. … 3 more files in changeset.
- reduce implicit conversions

- define stubproc always, when "-deprecated" was used - use "Debug" severity for debug messages

  1. … 2 more files in changeset.
- white space change (avoid tabs)

Merge branch 'master' into 2-1-0-rc

  1. … 1 more file in changeset.
* nsf.c (GetObjectFromObj, TclDeletesObject): Remove two earlier fixes to deal with ::nsf::object::alloc failing under cmd deletion/recreation. The issue has been tackled more generally by a Tcl-side fix. Background: Since 2005 (commit fcb9ab1df3a9b2d1), in Tcl the cmdEpoch state in delete traces and delete callbacks (deleteProcs, destructors) has been compromised. Bumping the epoch of the cmd under deletion before executing the traces and callbacks had the potential of caching the cmd under in Tcl_Objs beyond its deletion (at least in our code path). In July 2017 (8.7a, commit 54fac92610d3bdd9), this potential realised by removing a guard expression (CMD_IS_DELETED) in the Tcl_Obj cache invalidation logic, which had protected from such invalid caches (as a side effect). As of today (8.7a, commit 71fa1f9c91), the underlying timing problem of epoch bumping has been resolved.

* nsf.c (TclDeletesObject): Provide an alternative fix to reflect the changed cache invalidation policy for Tcl_Obj cmd intrep in 8.7.

Save code instrumentation to demonstrate the problem

  1. … 1 more file in changeset.
move the logic if Tcl_GetCommandFromObj() is returning an epoched obj to a more central place (GetObjectFromObj()) such it might kick in on other potential occasions as well.

- use TclFreeIntRep() instead of direct function calls - perform TclFreeIntRep() for Class and Object creation under Tcl 8.7

fix for Tcl 8.7: - when recreating an nsf object in in tcl 8.7, we seem to have to invalidate the intrep, otherwise the new command is not picked up by a later Tcl_GetCommandFromObj()

* nsf.c (NsfMethodAliasCmd): Tcl 8.7 is more picky about typePtr and intrep being in line. We need to NULL the typePtr explicitly. TclFreeIntRep does so for us as good Tcl citizens, rather than setting bodyObj->typePtr == NULL directly.

* Updated copyright dates and copyright notices

  1. … 17 more files in changeset.
* Updated copyright dates and copyright notices

  1. … 17 more files in changeset.
- address potential crash when a filter calls a filter which calls unknown

ObjectDispatchFinalize: First attempt to tackle filtered-unknowns issue

ExitHandler(): Re-locate clearing history from finalize to ExitHandler

NsfFinalizeCmd(): Clear Tcl's history list explicitly before finalizing NSF (see als ticket 1ae12987cb).

- fix typos in comments - align commenting style

ObjectSystemsCleanup(): Remove interp resolvers explicitly before the physical cleanup round

DeleteProcsAndVars(): Silence compiler warning and reduce variable scope (spotted with memtracking on)

- 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 nxhs

  1. … 2 more files in changeset.
- improve sanity test in ISOBJ(): obj->bytes might only be NULL when type is given.

  1. … 2 more files in changeset.