| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
TclStack* routines when called with an incompletely initialized
interp. [Bug 1743302]
|
|
|
|
| |
more streamlining.
|
| |
|
|
|
|
|
|
| |
that ended up not really optimising (limited benchmarks). Now
calling UnsetVarStruct (streamlined old code is #ifdef'ed out, in
case better benchmarks do show a difference).
|
|
|
|
| |
last commit.
|
| |
|
|
|
|
|
|
|
|
|
| |
slightly clearer, eliminated some duplicated code.
*** POTENTIAL INCOMPATIBILITY *** (tclInt.h and Var struct users)
The core never builds VAR_LINK variable to have traces. Such a
"monster", should one exist, will now have its unset traces called
*before* it is unlinked.
|
|
|
|
| |
APIs after fork() on systems where that would lead to an abort().
|
|
|
|
| |
* generic/tclScan.c:
|
|
|
|
|
|
|
| |
* generic/tclInt.h: parallel (and fall back on) Tcl_Realloc.
* generic/tclNamesp.c (TclResetShadowesCmdRefs): Replaced
ckrealloc based allocations with TclStackRealloc allocations.
|
|
|
|
|
|
| |
* generic/tclCompExpr.c: off the C stack and onto the Tcl stack.
* generic/tclCompile.c: This is a rather large struct (> 3kB).
* generic/tclParse.c:
|
|
|
|
|
|
|
| |
* generic/tclExecute.c (INST_INVOKE): traces that were created
* tests/trace.test (trace-36.2): during execution of an
originally untraced command do not fire [Bug 1740962], partial
fix.
|
| |
|
|
|
|
| |
compute the variable's full name if the variable is traced.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c: TclStackAlloc and TclStackFree to make them
easier for callers to use (or more precisely, harder to misuse).
TclStackFree now takes a (void *) argument which is the pointer
intended to be freed. TclStackFree will panic if that's not actually
the memory the call will free. TSA/TSF also now tolerate receiving
(interp == NULL), in which case they simply fall back to be calls to
Tcl_Alloc/Tcl_Free.
* generic/tclIntDecls.h: make genstubs
* generic/tclBasic.c: Updated callers
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCompCmds.c:
* generic/tclCompExpr.c:
* generic/tclCompile.c:
* generic/tclFCmd.c:
* generic/tclFileName.c:
* generic/tclIOCmd.c:
* generic/tclIndexObj.c:
* generic/tclInterp.c:
* generic/tclNamesp.c:
* generic/tclProc.c:
* generic/tclTrace.c:
* unix/tclUnixPipe.c:
|
|
|
|
| |
standardized headers, subheaders, dictionary sorting of names.
|
| |
|
| |
|
|
|
|
| |
clean up coding constructs.
|
|
|
|
|
|
|
| |
* generic/tclCmdMZ.c (Tcl_SwitchObjCmd):
* generic/tclCompile.c (TclInitCompileEnv):
* generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Moved the
CmdFrame off the C stack and onto the Tcl stack.
|
|
|
|
| |
and onto the Tcl stack, between the catch and the execution stacks
|
|
|
|
| |
the C stack and onto the Tcl stack.
|
|
|
|
|
|
| |
stack
and onto the Tcl stack.
|
| |
|
|
|
|
| |
chain of if's for a modest performance gain and a little more clarity.
|
|
|
|
|
| |
* generic/tclExecute.c: executor. Missed updates to "there is
always a valid frame".
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c: INST_INVOKE to essentially what they were
* generic/tclBasic.c: previous to the commit of 2007-04-03
[Patch 1693802] and the subsequent optimisations, as they break
the new trace tests described below.
* generic/trace.test: added tests 36 to 38 for dynamic trace
creation and addition. These tests expose a change in dynamics due
to a recent round of optimisations. The "correct" behaviour is not
described in docs nor TIP 62.
|
|
|
|
|
|
|
| |
and addition. These tests expose a change in dynamics due to a
recent round of optimisations. The "correct" behaviour is not
described in docs nor TIP 62. Currently test 36.2 fails, the opts
will be rolled back.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* generic/tclInt.h: TclObjInterpProc to reduce stack
* generic/tclIntDecls.h: consumption and improve task
* generic/tclProc.c: separation. Changes the interface of
TclObjInterpProcCore (patching TclOO simultaneously).
|
|
|
|
| |
management in wrongNumArgs calls.
|
| |
|
|
|
|
|
| |
* generic/tclExecute.c: any code other than TCL_OK, so remove code
* generic/tclProc.c: that formerly handled exceptional codes.
|
|
|
|
|
|
|
|
|
| |
is always a valid frame".
* generic/tclProc.c (TclObjInterpProcCore): call TEBC directly
instead of going through TclCompEvalObj - no need to check the
compilation's freshness, this has already been done. This improves
speed and should also provide some relief to [Bug 1066755].
|
|
|
|
|
|
|
|
| |
***POTENTIAL INCOMPAT*** There is a subtle issue with the timing
of execution traces that is changed here - first change appeared
in my commit of 2007-04-03 [Patch 1693802], which caused some
divergence between compiled and non-compiled code.
***THIS CHANGE IS UNDER REVIEW***
|
| |
|
| |
|
|
|
|
| |
ensemble and interp-alias rewrites.
|
|
|
|
|
|
| |
* generic/tclObj.c: TclGetNamespaceFromObj; modified the
usage of structs ResolvedCmdName and ResolvedNsname so that the
field refNsPtr is NULL for fully qualified names.
|
|
|
|
| |
* generic/tclObj.c: TclGetNamespaceFromObj
|
|
|
|
| |
management.
|
|
|
|
|
|
|
| |
* generic/tclCompile.h: TclEvalObjvKnownCommand() function to
* generic/tclExecute.c: handle commands that are already known
and are not traced. INST_INVOKE now calls into this function
instead of inlining parts of TEOvI. Same perf, better isolation.
|
| |
|
| |
|
|
|
|
|
| |
INST_CALL_BUILTIN_FUNC1 and INST_CALL_FUNC1 bytecodes to support
8.4- precompiled sources (math functions). [Bug 1720895]
|
|
|
|
|
|
|
|
|
| |
* generic/tclNamesp.c:
* generic/tclObj.c:
* generic/tclvar.c: new macros TclGetCurrentNamespace() and
TclGetGlobalNamespace(); Tcl_GetCommandFromObj and
TclGetNamespaceFromObj rewritten to make the logic clearer;
slightly faster too.
|
| |
|