nsf.c

Clone Tools
  • last updated 15 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.
Whitespace changes, typos

  1. … 2 more files in changeset.
Remove dead assignment

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.

  1. … 2 more files in changeset.
nsf.c (FindSelfNext): Render [current nextmethod] aware of ensembles. Added basic tests.

  1. … 1 more file in changeset.
White-space changes

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

  1. … 1 more file in changeset.
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).

  1. … 1 more file in changeset.
* nsf.c, nsf-cmd.test (ObjectFindMethod): Extend to recognize all element separator chars (NsfHasTclSpace).

  1. … 1 more file in changeset.
* nsf.c, parameters.test (NsfMethodSetterCmd): Make list detection aware of all list separator chars (NsfHasTclSpace).

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

  1. … 1 more file in changeset.
* 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.

  1. … 2 more files in changeset.
Reduce variable scope

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

  1. … 1 more file in changeset.
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.