nsf.c

Clone Tools
  • last updated 22 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Don't allow bytearrays as name of non-pos args

We try to address the problem, that the argument parser might add string reps to Tcl_Objs

without string reps. This is in particular nasty for pure byte arrays in Tcl 8.6, which

are defined as having no string. We do not want to change purtiy just by passing

such values in arguments,

  1. … 1 more file in changeset.
Adjust print format to recent changes

nsf.c, nsfInt.h, nsfObj.c: Make epoch counters unsigned ints, so doubling the number of possible epochs.

  1. … 2 more files in changeset.
* nsf.c: Unify cmd flags cast (unsigned long -> unsigned int)

* nsf.c (ObjectCmdMethodDispatch): Simplify and cleanup condition expressions.

nsf.c (ObjectCmdMethodDispatch), submethods.test: Enable private checking on ensembles, added test cases to capture the intented behaviour behind -local and/or private for ensemble methods.

  1. … 1 more file in changeset.
move GetObj() after tests of non-null asserts

Cleanup: Don't shadow variable names.

Merge branch 'master' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/nsf

* nsf.c (NsfMethodForwardCmd): Provide correct scoping condition when requesting a method handle for a submethod forwarder. Added basic tests.

  1. … 1 more file in changeset.
Merge branch 'master' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/nsf

* nsf.c, nsfStack.c: Bump copyright years.

  1. … 1 more file in changeset.
* nsf.c (ObjectCmdMethodDispatch), protected.test: For ensemble (submethod) dispatches, since ever, call protection had not been enforced at all. This commit enables call protection (protected) for ensembles and adds basic tests. * nsfStack.c (GetSelfObj): To allow one to resolve the self reference at arbitrary callstack levels, separate GetSelfObj into GetSelfObj (macro) for the topmost self and GetSelfObj2.

  1. … 2 more files in changeset.
Merge branch 'master' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/nsf

fix typo

* nsf.c (NsfCCreateMethod): During a shutdown, in a filter setting, objv is not necessarily populated. Prior to this fix, the following crashes on exit for "ObjStr(objv[1])":

nx::Class create Klass

Klass public object method expand args {

return [[self] new {*}$args]

}

Klass object filters add expand

Along the way, rendered the print-out more informative.

Add likely/unlikely for NSF_DURING_DELETE checks

Code cleanup

- remove calls to deprecated function Tcl_DStringTrunc

- prefer boolean expressions to avoid signed conversions

- add default statement to switch to ease life of static checkers

  1. … 2 more files in changeset.
Add Valgrind/callgrind support

  1. … 4 more files in changeset.
Improve performance of ObjectSystemsCheckSystemMethod() by over 20%

  1. … 1 more file in changeset.
Optimization for aliases

Optimized AliasAdd() and AliasGet() by avoiding the usage of

Tcl_SetVar2Ex() and Tcl_GetVar2Ex(). This change improves the

performance of AliasAdd() by ~20% and AliasGet() by 10%.

Strangely, Tcl does not provide an interface to the

Tcl_Obj-based TclObjUnsetVar2(), which is used internally

by Tcl_UnsetVar2()), such we could also avoid the latter.

minor cleanup and optimizations

  1. … 1 more file in changeset.
Various Performance Improvements: - Add cache for compiled locals starting with a colon to avoid repeated linear searches - Reduce number of string comparisons in ParamOptionParse() - Factor out ProcContextRequire() - Extend regression test

  1. … 1 more file in changeset.
Minor cleanup

  1. … 1 more file in changeset.
Remove first argument of MethodDispatch, which is apparently not needed

Avoid mixed declarations and code

Merge branch 'master' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/nsf

Added experimental definition of NSF_CONSTANT_COMPILED_LOCAL_LOOKUP

  1. … 1 more file in changeset.
* nsf.c (FindNextMethod): Provide revised, streamlined implementation of FindSelfNext as FindNextMethod. FindSelfNext is maintained, but unused for the time being.

Cleanup and Optimization

- align code with documentation

- remove dead code

- minor optimization

  1. … 1 more file in changeset.