| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
of the fact that INST_DICT_FIRST and INST_DICT_NEXT always have a
conditional jump afterwards.
|
|
|
|
|
|
|
|
|
|
|
| |
Move <limits.h> include from
tclInt.h to tclWinPort.h, and
eliminate unneeded <stdlib.h>, <stdio.h> and
<string.h>, which are already in tclInt.h
Move "tclInt.h" from regcustom.h
up to regex.h.
tclAlloc.c: Unneeded <stdio.h> include
tclExecute.c: Fix gcc warning: comparison between signed and unsigned
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deletion of traces is not optimized out...
* generic/tclExecute.c (ExecuteExtendedBinaryMathOp)
(TclCompareTwoNumbers,ExecuteExtendedUnaryMathOp,TclExecuteByteCode):
[Patch 2981677]: Move the less common arithmetic operations (i.e.,
exponentiation and operations on non-longs) out of TEBC for a big drop
in the overall size of the stack frame for most code. Net effect on
speed is minimal (slightly faster overall in tclbench). Also extended
the number of places where TRESULT handling is replaced with a jump to
dedicated code.
|
| |
|
|
|
|
|
|
|
| |
included, don't include <limits.h>
again. Follow-up to [Bug 2991415]:
tclport.h #included before limits.h
See comments in [Bug 2991415]
|
|
|
|
|
|
| |
* generic/tclExecute.c: to fix yieldTo, which had not survived
* generic/tclInt.h: the latest mods to tailcall. Thanks kbk
for detecting the problem.
|
|
|
|
| |
reduce indentation for the Invocation Block.
|
| |
|
|
|
|
| |
instructions than before.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* generic/tclExecute.c: [Bug 2910748]
* tests/nre.test:
|
|
|
|
|
| |
* generic/tclExecute.c: tailcall-management duties
* generic/tclNamesp.c:
|
|
|
|
|
| |
* generic/tclExecute.c: from TclNRTailcallObjCmd to TEBC, so that
the pairing of the Enter and Release calls is clearer.
|
| |
|
| |
|
| |
|
|
|
|
| |
know about bottomPtr, tebc does not need to behave differently on exit for coros
|
|
|
|
| |
* generic/tclExecute.c: [Bug 2806407]
|
|
|
|
| |
earlier commits in coroutine management.
|
|
|
|
|
| |
* generic/tclExecute.c: coroutines by delegating more to tebc;
eliminate the special coroutine CallFrame.
|
|
|
|
| |
* generic/tclExecute.c: coroutines
|
|
|
|
|
|
| |
(objc,objv)for coroutines.
* generic/tclExecute.c: Code regrouping
|
| |
|
| |
|
|
|
|
|
|
| |
* generic/tclExecute.c: The initial call still requires its
* generic/tclInt.h: own instance of tebc, but on resume coros
can execute in the caller's tebc.
|
| |
|
| |
|
|
|
|
|
| |
structs, to reduce register pressure and help the compiler with
variable allocation.
|
|
|
|
| |
* generic/tclInt.h:
|
| |
|
|
|
|
| |
* generic/tclExecute.c: and coroutine code.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c: that they set the typePtr field to
* generic/tclIO.c: NULL so that the Tcl_Obj is not left
* generic/tclIndexObj.c: in an inconsistent state.
* generic/tclInt.h: [Bug 2857044]
* generic/tclListObj.c:
* generic/tclNamesp.c:
* generic/tclOOCall.c:
* generic/tclObj.c:
* generic/tclPathObj.c:
* generic/tclProc.c:
* generic/tclRegexp.c:
* generic/tclStringObj.c:
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclFCmd.c: null dereference flagged by clang static
* generic/tclProc.c: analyzer.
* generic/tclTimer.c:
* generic/tclUtf.c:
* generic/tclExecute.c: silence false positives from clang static
* generic/tclIO.c: analyzer about potential null dereference.
* generic/tclScan.c:
* generic/tclCompExpr.c:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclBasic.c: compiler routine for the [subst] command.
* generic/tclCmdMZ.c: This is a partial solution to the need to
* generic/tclCompile.c: NR-enable [subst] since bytecode execution is
* generic/tclCompile.h: already NR-enabled. [Bug 2314561] Two new
* generic/tclExecute.c: bytecode instructions, INST_NOP and
* generic/tclInt.h: INST_RETURN_CODE_BRANCH were added to support
* generic/tclParse.c: the new routine. INST_RETURN_CODE_BRANCH is
* tests/basic.test: likely to be useful in any future effort to
* tests/info.test: add a bytecode compiler routine for [try].
* tests/parse.test:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/NRE.3: New public routine Tcl_NRExprObj() permits
* generic/tcl.decls: extension commands to evaluate Tcl expressions
* generic/tclBasic.c: in NR-enabled command procedures.
* generic/tclCmdAH.c:
* generic/tclExecute.c:
* generic/tclInt.h:
* generic/tclObj.c:
* tests/expr.test:
* generic/tclDecls.h: make genstubs
* generic/tclStubInit.c:
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdIL.c:
* generic/tclCompile.c:
* generic/tclExecute.c:
* generic/tclHash.c:
* generic/tclIOUtil.c:
* generic/tclVar.c:
* generic/tclBasic.c: Silence compiler warnings about ClientData.
* generic/tclProc.c:
* generic/tclScan.c: Typo in ACCEPT_NAN configuration.
* generic/tclStrToD.c: Set floating point control register on
MIPS systems so that the gradual underflow expected by Tcl is
in effect. [Bug 2819200]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TclCleanupByteCode, TclCompileScript):
* generic/tclExecute.c (TclCompileObj, TclExecuteByteCode):
* tclCompile.h (ExtCmdLoc):
* tclInt.h (ExtIndex, CFWordBC, CmdFrame):
* tclBasic.c (DeleteInterpProc, TclArgumentBCEnter,
TclArgumentBCRelease, TclArgumentGet, SAVE_CONTEXT,
RESTORE_CONTEXT, NRCoroutineExitCallback, TclNRCoroutineObjCmd):
* generic/tclCmdAH.c (TclNRForObjCmd, TclNRForIterCallback,
ForNextCallback):
* generic/tclCmdMZ.c (TclNRWhileObjCmd):
Extended the bytecode compiler initialization to recognize the
compilation of whole files (NRE enabled 'source' command) and
switch to the counting of absolute lines in that case.
Further extended the bytecode compiler to track the start line in
the generated information, and modified the bytecode execution to
recompile an object if the location as per the calling context
doesn't match the location saved in the bytecode. This part could
be optimized more by using more memory to keep all possibilities
which occur around, or by just adjusting the location information
instead of a total recompile.
Reworked the handling of literal command arguments in bytecode to
be saved (compiler) and used (execution) per command (See the
TCL_INVOKE_STK* instructions), and not per the whole bytecode.
This, and the previous change remove the problems with location
data caused by literal sharing (across whole files, but also proc
bodies). Simplified the associated datastructures (ExtIndex is
gone, as is the function EnterCmdWordIndex).
The last change causes the hashtable 'lineLABCPtr' to be state
which has to be kept per coroutine, like the CmdFrame stack.
Reworked the coroutine support code to create, delete and switch
the information as needed. Further reworked the tailcall command
as well, it has to pop its own arguments when run in a bytecode
context to keep a proper stack in 'lineLABCPtr'.
Fixed the mishandling of line information in the NRE-enabled 'for'
and 'while' commands introduced when both were made to share their
iteration callbacks without taking into account that the loop body
is found in different words of the command. Introduced a separate
data structure to hold all the callback information, as we went
over the limit of 4 direct client-data values for NRE callbacks.
The above fixes [Bug 1605269].
|
| |
|
| |
|
|
|
|
|
| |
a table of static constants in the lookup table for exponent operator
computations that fit in a 64 bit integer result.
|
|
|
|
| |
logic of the INST_EXPON instruction to fix [Bug 2798543].
|
| |
|
|
|
|
|
| |
* generic/tclCompile.h: stack: 200 words (previously was 2000,
* generic/tclExecute.c: the same as interps)
|
|
|
|
| |
[string repeat]. [Bug 2582327]
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c: Tailcalls now perform properly even from
* generic/tclExecute.c: within [eval]ed scripts.
* generic/tclInt.h: More tests missing, as well as proper
exploration and testing of the interaction with "redirectors" like
interp-alias (suspect that it does not happen in constant space)
and pure-eval commands.
|