nsf

Clone Tools
  • last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
* nsf.c, nsfStack.c: Bump copyright years.

* 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.

* 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.

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

Add Valgrind/callgrind support

Improve performance of ObjectSystemsCheckSystemMethod() by over 20%

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

Avoid call of strncmp() in common cases

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

Minor cleanup

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

* 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

White space changes

Reduce number of returns before end of function

Whitespace changes, typos

more macro definition after GNU definitions

Remove redundant definition

Remove dead assignment

Add more tidy and checking compiler flags

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

* nsf.c (NsfCurrentCmd), nsfStack.c (CallStackNextFrameOfType): Render [current isnextcall] aware of ensembles. Extended submethods.test to cover [current isnextcall] within ensembles.

nsf.c (FindSelfNext): Render [current nextmethod] aware of ensembles. Added basic tests.

White-space changes

submethods.test: Clean up ensembles on top-level objects.

nx-test.tcl (nx::test case): As (ensemble) methods are currently not covered by the auto-cleanup feature of "nx::test case", I took care of not cleaning up the per-class ensemble slots while the alias is still available. This led to dangling aliases in cases such as:

package req nx::test

nx::Class create ::A

nx::test case tmp {

::A public method "oo ps" {} {;}; # creates ::A::slot::__oo plus alias pointing to it.

}

A create a

a oo ps; # "target "::A::slot::__oo" of alias oo apparently disappeared"

Along the way, modernized nx::test case a little (apply).