| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
INSTs for debug builds.
|
|
|
|
|
| |
overflow detection in sums, adapt to subtraction. Lenghty comment
added.
|
|
|
|
| |
Donal): check first the condition most likely to fail in its usage by [incr].
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
reducing objsize, number of branches and cache misses (according
to cachegrind). Non-overflow for s=a+b:
previous
((a >= 0 || b >= 0 || s < 0) && (s >= 0 || b < 0 || a < 0))
now
(((a^s) >= 0) || ((a^b) < 0))
This expresses: "a and s have the same sign or else a and b have
different sign".
|
|
|
|
| |
before the switch. Reduces both runtime and obj size a tiny bit.
|
|
|
|
| |
the interp's result if it will be pushed/popped.
|
|
|
|
| |
* tests/trace.test: Tcl_LogCommandInfo() call. [Bug 1773040]
|
|
|
|
|
| |
* tests/trace.test (trace-2.6): whole array write traces on
compiled local variables were not firing [Bug 1770591]
|
|
|
|
| |
in the -DNO_WIDE_TYPE configuration.
|
|
|
|
| |
* tests/expr.test: to *SHIFT operations. [Bug 1770224].
|
| |
|
|
|
|
| |
compilation with MSVC6 and anything else that may not define this macro.
|
|
|
|
| |
*** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h)
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c (TEBC, TclGetSrcInfoForCmd):
* generic/tclInt.h:
* generic/tclTrace.c (TclCheck(Interp|Execution)Traces):
Removed the need for TEBC to inspect the command before calling
TEOvI, leveraging the TIP 282 infrastructure. Moved the generation
of a correct nul-terminated command string away from the trace
code, back into TEOvI/GetCommandSource.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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)
|
| |
|