generic

Clone Tools
  • last updated 23 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- deacitivate for the time being allowmethoddispatch (make it behave always like true) - added instead new flag "perobjectdispatch" to make behavior of ensembleobjects configurable. - The behavior for keepcallerself is currently only activated for the method-interface for object dispatch, since otherwise the following would be dangerous, since "o2 foo" would destroy o2 nx::Object create o1 nsf::object::property o1 keepcallerself true nx::Object create o2 { ::public method foo {} {o1 destroy} } o2 foo

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

- nsf.c: start all error messages with a lower case word for consistency and to follow closer to Tcl's conventions

  1. … 13 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. … 7 more files in changeset.
- improve handling of multiple error messages in a single command

  1. … 1 more file 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.
Fix typo in nsf::predefined

Fix typo in ::nsf::deprecated

Extend backport of handling of dashses in XOTcl's configure method to perform a more eager search for command begins. Extended regression test.

  1. … 2 more files 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. … 7 more files in changeset.
Don't overwrite error messages from __unknown handler in several situations (superclass, parameter class, mixin class)

  1. … 1 more file 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. … 5 more files in changeset.
Version generated for Tcl 8.5 - maybe we keep this out from the repo in the future

Allow to pass casts to macros ClassName and ObjectName

Backport from nsf: when processing arguments with leading dashes in "configure", accept only method names without spaces. This solves a problem with Tcl8.4 + ns_eval where the output of the serializer could not be processed by eval (a [list ..] was lost).

- 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"

- remove leftover from merge

- remove file which was placed into generic/asm

- added two files to the asm directory (one needed for compilation, one for documentary purpose)

    • -0
    • +487
    ./asm/nsfAssemble.c
Merge branch 'assemble'

Conflicts:

generic/nsf.c

- initialize result properly

    • -1
    • +1
    ./asm/asmExecuteTemplateLabelThreading.c
- added README file

- restructured directories, added configure options, some more cleanup

    • -0
    • +274
    ./asm/asmAssembleTemplate.c
    • -0
    • +70
    ./asm/asmExecuteTemplate.c
    • -0
    • +62
    ./asm/asmExecuteTemplateCallThreading.c
    • -0
    • +68
    ./asm/asmExecuteTemplateLabelThreading.c
    • -0
    • +682
    ./asm/genAssemble.tcl
    • -0
    • +580
    ./asm/nsfAsmAssemble.c
    • -0
    • +313
    ./asm/nsfAsmExecuteCallThreading.c
    • -0
    • +362
    ./asm/nsfAsmExecuteLabelThreading.c
    • -344
    • +0
    ./asmExecuteTemplateLabelThreading.c
  1. … 5 more files in changeset.
- generate AsmAssemble() from definition file as well (currently included in LabelThreading template)

    • -7
    • +266
    ./asmExecuteTemplateLabelThreading.c
  1. … 1 more file in changeset.
- nx based c code generator for experimenting with different code engines

    • -0
    • +85
    ./asmExecuteTemplateLabelThreading.c
    • -0
    • +406
    ./genAssemble.tcl
  1. … 2 more files in changeset.
- initial checkin of experimental assemble support

    • -0
    • +1075
    ./nsfAssemble.c
- generic/nsfStack.c, CscFinish(): Without further restricting object deletion based on activation counts, very-late method dispatches during the "physical" clean-up stage (e.g., a dispatch issued by an unset variable trace script) lead to premature object and class deletions, violating the total deletion order used in ObjectSystemsCleanup().