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

Reduce variable scope

* nsf.c (NsfMethodPropertyCmd,NsfForwardPropertyCmd): Remove extra whitespace from error message.

* methods.test: Add basic tests on composite names under the default unknown handler.

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

* nsf.c (DispatchUnknownMethod): Sanitize messages emitted by default unknown handler. Unless in the context of an ensemble object (NSF_KEEP_CALLER_SELF, NSF_PER_OBJECT_DISPATCH), make sure that the entire method name, incl. multi-word names, are fully reported.

Simplify code

- Don't assume that CallStackGetTopFrame0() reurns != NULL - reduce variable scopes - reduce number of returns before function end

Make sure, paramPtr is always initialized