nsf

Clone Tools
  • last updated 10 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- Removed currentFramePtr (the pointer from the xotcl stack to the tcl stack) from the call stack content. Now, all access to the call stack content happens via the tcl85stack.

- For the time being, the xotcl stack is purely an allocation stack

(we still have to evaluate, where we should store the call stack content efficiently:

some options: via alloca, on the c-stack, on the tcl stack, on an allocation stack)

- new method CallStackPopAll() for making ExitHandler() independent from call stack structures

- implemented doCleanup() independent from stack structures - some variable renaming

- renamed UndestroyObj() to CallStackMarkUndestroyed() and implemented it for tcl85stack

- get rid of CallStackIsDestroyed()

- move tcl85showStack(), nonXotclObjectProcFrame() and nextFrameOfType() to xotclStack*.c

- get rid of GetSelfProc() - implemented XOTclNextMethod() for tcl85stack

- implemented XOTclForwardMethod () for tcl85stack

- return Tcl frame pointer as last arguments in CallStackGetFrame() and CallStackGetTopFrame() - pass call stack content to GetSelfProc() - some simplifications to avoid multipe stack searches - implemented XOTclSelfSubCommand () for tcl85stack

- implemented FilterActiveOnObj() for tcl85stack

- pass conditionally XOTclCallStackContent to GuardCall() due to different stack lifetime - CallStackPush() returns now callstack content - implemented CallStackFindActiveFilter() for tcl85stack

- implemented computeLevelObj() for tcl85stack

- implemented CallStackUseActiveFrames() for tcl85stack - nonXotclObjectProcFrame returns now only active frames

- implemented XOTclCallStackFindActiveFrame() for tcl85stack

- defined new (3rd) frame type FRAME_IS_XOTCL_CMETHOD for calling c-implemented methods (the same as FRAME_IS_XOTCL_OBJECT, except that it uses csc as clientData instead of only the xotcl object - implemented XOTclCallStackFindLastInvocation() for tcl85stack

- pass call stack content explicitly to canonicalNonpositionalArgs to obtain active class or object - fix two more regression test entries with canonical args (info body, order in info locals) - canonical args passes now regression test (also in connection with tcl85stack)

- pass call stack content explicityl to XOTclNextMethod, which is used on one occurance outside the tcl callstack scope, such that CallStackGetTopFrame() gets the previous stack entry - implemented CallStackGetTopFrame() for tcl85stack - implemented CallStackGetObjectFrame() for tcl85stack

- new function CallStackDestroyObject() to factor out xotcl stack access Since tcl-stack-entries have a lightly different life-time (pop is managed by tcl), we have as well slightly different life-times of objects. One test in the test suite is deactivated for now, we will see, if this turs out to become a problem as we proceed.

- new function CallStackClearCmdReferences() to factor out xotcl stack access

- moved stack procs into new files xotclStack.c and xotclStack85.c - based CallStackGetFrame() in addition to GetSelfObj() to new stack structure, when TCL86STACK is defined - fixed error and warning message for failed assertions to avoid access to the xotcl stack

    • -0
    • +33
    /generic/xotclStack.c
    • -0
    • +55
    /generic/xotclStack85.c
- follow naming conventions for defines TCL85STACK_TRACE - deactivate CANONICAL_ARGS for the time being

- Stefan implementation for args with canonical args - canonicalNonpositionalArgs() receives explicit current xotcl object

- remove debug output

- rename variable "ns" (namespace pointer) to "nsPtr" for tcl naming compliance

- simplified callingNameSpace() significantly (works with and without TCL85STACK the same way) - simplified GuardCall (removed argument push) - removed unneeded functions, reduced tracing

- snapshot 3 - first version passing regression test again

more trace

- snapshot #2

- starting to use tcl85 stack (when complied with TCL85STACK). Goal is to remove the own stack handling, when compiled with Tcl 8.5+ Introduced two frame types, FRAME_IS_XOTCL_METHOD and FRAME_IS_XOTCL_OBJECt - Currently, only self is resolved this way from the Tcl stack. - Currentlsy, just parts (e.g. testo.tcl) of the regression test work

- updating changelog - cleanup and documentation in xotcl.c