nsf.c

Clone Tools
  • last updated 9 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- Used "gcc -ansi" to test ANSI compatibility (with MSVC in mind) - generic/nsf.c, generic/nsfShadow.c: Fixed some non-ANSI comments - generic/nsfError.c: Relocated a declaration to the beginning of the scope block (MSVC shouted here) - generic/nsfInt.h: Made sure that NSF_INLINE is only set in non-ANSI gcc builds, added a tiny portability wrapper for va_copy (to support MSVC and the gcc/clang ANSI mode)

  1. … 3 more files in changeset.
- nsf.c: start all error messages with a lower case word for consistency and to follow closer to Tcl's conventions

  1. … 14 more files in changeset.
- use alias-stubs for aliases pointing to objects. This allows us to distinguish between cases, where an object is dispatchable due to the alias or due to allowmethoddispatch (when the object happens to be a subobject and has therefore its cmd in the same namespace). The semantics are now: - aliases to objects are always dispatchable, no matter, how allowmethoddispatch is set. - direct subobjects of objects are currently on dispatchable when allowmethoddispatch is set.

  1. … 4 more files in changeset.
- alias reform: instead of calling first an alias with a stack frame followed by the dispatched of the aliased cmd, resolve aliases internally in dispatch. This has the advantage that we do not have to ignore the "transparent" stack frame in some sitations, and we have much less problems with the names of the aliased cmds (e.g. objects) in the introspection methods. Additionally, several problem cases disappeared from the regression test cases. In addition, the new approach is faster. - eliminating obsolete flag NSF_CSC_CALL_IS_TRANSPARENT

  1. … 9 more files in changeset.
- improve handling of multiple error messages in a single command

  1. … 2 more files in changeset.
Extend handling of dashses in XOTcl's configure method to perform a more eager search for command begins (same change as in XOTcl 1)

  1. … 1 more file in changeset.
- Added exerpimental object property "allowmethoddispatch" for child-objects to be called from parent objects via method interface. Background: both, per-object methods and childobjects are implemented via cmds in the same tcl namespace. Without special care, both are callable via the standard dispatch. Apparently, this is not always wanted. - handled allowmethoddispatch and keepcallerself in copy/move - set allowmethoddispatch per-default in XOTcl - removed visablilty of objects with "allowmethoddispatch" false in "info methods" and "info search methods" - extended regression test

  1. … 10 more files in changeset.
- simplified usage of ObjectName() and ClassName() macros (no caller parenthesis needed) - added exerpimental object property keepcaller self (currently only evaluated by aliased objects)

  1. … 8 more files in changeset.
- generic/nsf.c: Have NsfNSCopyCmdsCmd() handle "returns" method properties for scripted methods. Note that aliases and forwards are not yet covered by the copying procedure as implemented by NsfNSCopyCmdsCmd(). - tests/info-method.test: Added tests for "info method returns" and "info method defintion" covering "returns" method properties.

  1. … 1 more file in changeset.
- Make sure "info method definition" includes the "-returns" clause. - generic/nsf.c: Added a helper function AppendReturnsClause()

- Adding support for "cls|obj info method returns" - generic/nsf.c: ListMethod() now handles a InfomethodsubcmdReturnsIdx subcmd. - generic/nsfAPI.decls|nsfAPI.h|nsfDecls.h: Registerung a new "info method" subcmd: "returns"

  1. … 3 more files in changeset.
- remove leftover from merge

Merge branch 'assemble'

Conflicts:

generic/nsf.c

- restructured directories, added configure options, some more cleanup

  1. … 16 more files in changeset.
- nx based c code generator for experimenting with different code engines

  1. … 7 more files in changeset.
- initial checkin of experimental assemble support

  1. … 4 more files in changeset.
- improve branch prediction

  1. … 5 more files in changeset.
nsf.c: - change argument of IsMetaClass() to type *NsfObject - provide basic pretection against most likely unintended deletion/overwriting of base classes. - extend regression test

  1. … 2 more files in changeset.
- minor cleanup, added regression test

  1. … 2 more files in changeset.
- fixed potential crash when generating error message about argument usage when called without a callstack

  1. … 1 more file in changeset.
nsf.c, nsf.h, nsfStack.c, nx.tcl, tcl-cool.tcl, xotcl2.tcl - fix spelling in comments - strip unneeded space

  1. … 6 more files in changeset.
nsf.c: - Reform of subclass/superclass handling. * unifying transitive subclass handling * localizing and documenting caching of subclass/superclass lists * eliminating repetitious computation of subclass lists * refactored code, renamed some functions to better refelect their purpose * improved documentation - fixed a potential crash for class deletion triggering implicit deletions further deletions referencing the parent class - extended regression test

  1. … 3 more files in changeset.
- fix spelling

  1. … 1 more file in changeset.
all artifacts saved

  1. … 4 more files in changeset.
- improve wording of comment

- Avoid duplicate entries in instance lists for diamond inheritance by maintaining the set of already processed entries in NsfClassInfoInstancesMethod1() and GetAllInstances(). - extended regression test - removed "namespace import" in objectsystem test

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

- handle duplicates in the cmd-list during cleanup

  1. … 1 more file in changeset.
- generic/nsf.c: DispatchUnknownMethod() In the re-entrant case, the unknown dispatcher was too greedy by skipping the first element in the objv at basically all times. For CallConfigureMethod() case in XOTcl2, the actual method name was so skipped. Generally speaking, the "skipping rules" in DispatchUnknownMethod() feel a touch too particular to me: For instance, the dispatch flag "-local", "-system" etc. must be handled. Also, unknowns in method ensembles have the unknown method listed first in objv. Alternatively, we might review how objc/objv make it into DispatchUnknownMethod() (there are just two call sites). But this would merely shift/spread the skipping. Changing the arg vectors, to begin with, (e.g. removing "-local", "-system", etc. from the objv) would requiring rebuilding the arg vector. - tests/parameters.test: Added a simplistic test case to catch the error reporting for XOTcl 2's residualargs handling.

  1. … 1 more file in changeset.
- nsf.c: fix call of DispatchDefaultMethod() in cases it triggers an error for 8.6b - nx.tcl: give a slightly better error message in case the root-object of an ensemble is called directly

  1. … 2 more files in changeset.