| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c: entire file tclMathOp.c.
* generic/tclInt.h:
* generic/tclMathOp.c (removed):
* generic/tclTestObj.c:
* win/tclWinFile.c:
* unix/Makefile.in: Updated to reflect deletion of tclMathOp.c.
* win/Makefile.in:
* win/makefile.bc:
* win/makefile.vc:
|
|
|
|
|
| |
TclStack* routines when called with an incompletely initialized
interp. [Bug 1743302]
|
|
|
|
|
|
|
| |
* generic/tclInt.h: parallel (and fall back on) Tcl_Realloc.
* generic/tclNamesp.c (TclResetShadowesCmdRefs): Replaced
ckrealloc based allocations with TclStackRealloc allocations.
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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:
|
| |
|
| |
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* 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].
|
|
|
|
| |
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]
|
|
|
|
| |
small block where they are actually used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
processor for non-TCL_OK returns. Also spli TEOvI in a full
version that handles non-existing and traced commands, and a
separate shorter version for the regular case.
* generic/tclBasic.c: Moved the generation of command strings for
* generic/tclTrace.c: traces: previously in Tcl_EvalObjv(), now
in TclCheck[Interp|Execution]Traces(). Also insured that the
strings are properly nul terminated at the correct length
[Bug 1693986]
* generic/tclBasic.c: Extend usage of TclLimitReady() and
* generic/tclExecute.c: (new) TclLimitExceeded() macros.
* generic/tclInt.h:
* generic/tclInterp.c:
* generic/tclInt.h: New TclCleanupCommandMacro for core usage.
* generic/tclBasic.c:
* generic/tclExecute.c:
* generic/tclObj.c:
|
|
|
|
| |
* generic/tclExecute.c: Tcl-stack reform, [Patch 1701202]
|
| |
|
| |
|
| |
|
|
|
|
| |
leaks in bignum arithmetic.
|
|
|
|
|
| |
* generic/tclCompile.c: --enable-64bit --enable-symbols=all.
* generic/tclExecute.c:
|
|
|
|
|
|
|
| |
in version 1.266 ('=' became '=='), which effectively turned the
block that handles native shifts into dead code. This explains why
the testsuite did not pick this mistake. Rewrote to make the
intention clear.
|
| |
|
| |
|
| |
|
|
|
|
| |
duplicates functionality already present at checkForCatch.
|
| |
|
|
|
|
|
|
| |
OBJ_AT_DEPTH(n) and CURR_DEPTH that remove all direct references
to tosPtr from TEBC (after initialisation and the code at the
label cleanupV_pushObjResultPtr).
|
| |
|
|
|
|
| |
efficient). After [Patch 1529526] (afredd)
|
| |
|
|
|
|
|
|
|
|
| |
* generic/tclNamespace.c (NsEnsembleImplementationCmd):
* generic/tclProc.c (InitCompiledLocals, ObjInterpProcEx,
TclObjInterpProcCore, ProcCompileProc): code reordering to reduce
branching and improve branch prediction (assume that forward
branches are typically not taken).
|
| |
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c: variable linking commands: 'global',
* generic/tclCompile.h: 'variable', 'upvar', 'namespace upvar'
* generic/tclExecute.c: [Patch 1688593]
* generic/tclInt.h:
* generic/tclVar.c:
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c: calls with TclStackAlloc calls to use memory
* generic/tclFCmd.c: on Tcl's evaluation stack.
* generic/tclFileName.c:
* generic/tclIOCmd.c:
* generic/tclIndexObj.c:
* generic/tclInterp.c:
* generic/tclNamesp.c:
* generic/tclTrace.c:
* unix/tclUnixPipe.c:
|
|
|
|
|
|
| |
even though INST_START_CMD is now issued more efficiently. Changes definition
of I_S_C, but that's an 8.5 opcode so that shouldn't matter; tbcload doesn't work
with 8.5 at the moment anyway.
|
|
|
|
| |
arrays.
|
|
|
|
|
|
| |
argument specifying the growth required by the caller, so that
a single reallocation / copy is the most that will ever be needed
even when required growth is large.
|
|
|
|
| |
* generic/tclLiteral.c:
|
| |
|
|
|
|
|
|
| |
* tests/foreach.test (foreach-10.1): of value list to be assigned
to variables so that shimmering of that list doesn't lead to invalid
pointers. [Bug 1671087]
|
|
|
|
|
|
| |
to work, immediate operands referring to aux-data must be identified as such in the instruction descriptor table using OPERAND_AUX4 (all are always 4 bytes).
Rewrote the compiled [dict update] so that it stores critical non-varying data in an aux-data value instead of a (shimmerable) literal. [Bug 1671001]
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclMathOp.c: to perform a bytecode compile / execute
sequence. This demonstrates a path toward avoiding mountains of
code duplication in tclMathOp.c and tclExecute.c.
* generic/tclCompile.h: Change TclExecuteByteCode() from static to
* generic/tclExecute.c: MODULE_SCOPE so all files including
tclCompile.h may call it.
|
|
|
|
|
| |
* generic/tclExecute.c: failing tests illustrating bugs uncovered
* generic/tclMathOp.c: in [Path 1578137].
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.decls: Tcl_GetBignumAndClearObj -> Tcl_TakeBignumFromObj.
* generic/tclObj.c:
* generic/tclDecls.h: make genstubs
* generic/tclStubInit.c:
* generic/tclExecute.c: Update callers.
* generic/tclMathOp.c:
|