nsf

Clone Tools
  • last updated 7 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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).

* nsf.c (GetNextArguments): Ensemble method names via the colon resolver were not cleansed for the colon, leading to a broken method lookup chain. Fix for SF Ticket #1. Added basic tests.

fix: remove failing assertion, Tcl handles leading colons in proc names

* nsf.c, forward.test (ForwardArg): Extend to recognize alternative element separators in list string reps (NsfHasTclSpace).

* nsf.c, nsf-cmd.test (ObjectFindMethod): Extend to recognize all element separator chars (NsfHasTclSpace).

* nsf.c, parameters.test (NsfMethodSetterCmd): Make list detection aware of all list separator chars (NsfHasTclSpace).

* nsf.c, parameters.test (NsfOResidualargsMethod): Extend XOTcl's list-notation support to recognize all Tcl list separators (NsfHasTclSpace).

* nsf.c, nsfInt.h: Start housekeeping work on Tcl command/proc names vs. NSF method names to avoid conflicts between ensemle methods and e.g. whitespace-containing command names. Added helper macro NsfHasTclSpace and some first tests. To be continued.