xotcl.c

Clone Tools
  • last updated 11 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)

  1. … 2 more files in changeset.
- new method CallStackPopAll() for making ExitHandler() independent from call stack structures

  1. … 2 more files in changeset.
- implemented doCleanup() independent from stack structures - some variable renaming

  1. … 1 more file in changeset.
- renamed UndestroyObj() to CallStackMarkUndestroyed() and implemented it for tcl85stack

  1. … 3 more files in changeset.
- get rid of CallStackIsDestroyed()

  1. … 1 more file in changeset.
- move tcl85showStack(), nonXotclObjectProcFrame() and nextFrameOfType() to xotclStack*.c

  1. … 2 more files in changeset.
- get rid of GetSelfProc() - implemented XOTclNextMethod() for tcl85stack

- implemented XOTclForwardMethod () for tcl85stack

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

  1. … 3 more files in changeset.
- implemented FilterActiveOnObj() for tcl85stack

  1. … 2 more files in changeset.
- pass conditionally XOTclCallStackContent to GuardCall() due to different stack lifetime - CallStackPush() returns now callstack content - implemented CallStackFindActiveFilter() for tcl85stack

  1. … 3 more files in changeset.
- implemented computeLevelObj() for tcl85stack

  1. … 2 more files in changeset.
- implemented CallStackUseActiveFrames() for tcl85stack - nonXotclObjectProcFrame returns now only active frames

  1. … 3 more files in changeset.
- implemented XOTclCallStackFindActiveFrame() for tcl85stack

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

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

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

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

  1. … 3 more files in changeset.
- new function CallStackClearCmdReferences() to factor out xotcl stack access

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

  1. … 4 more files in changeset.
- follow naming conventions for defines TCL85STACK_TRACE - deactivate CANONICAL_ARGS for the time being

  1. … 1 more file in changeset.
- Stefan implementation for args with canonical args - canonicalNonpositionalArgs() receives explicit current xotcl object

  1. … 2 more files in changeset.
- rename variable "ns" (namespace pointer) to "nsPtr" for tcl naming compliance

  1. … 1 more file in changeset.
- simplified callingNameSpace() significantly (works with and without TCL85STACK the same way) - simplified GuardCall (removed argument push) - removed unneeded functions, reduced tracing

  1. … 1 more file in changeset.
- snapshot 3 - first version passing regression test again

  1. … 3 more files in changeset.
more trace

- snapshot #2

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

  1. … 3 more files in changeset.
- updating changelog - cleanup and documentation in xotcl.c

  1. … 2 more files in changeset.
- cleanup of arguments in makeproc (Stefan Sobernig)