| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
strategy for [lreplace] that tackles the cases which are equivalent to
a static [lrange].
|
|
|
|
|
|
| |
[lrange] with constant indices so we can take advantage of existing
TCL_LIST_RANGE_IMM opcode.
(TclCompileLindexCmd): Improve coverage of constant-index-style
compliation using technique developed for [lrange] above.
|
| |
|
| |
|
|
|
|
| |
Thanks to Joe Mistachkin for detection and analysis.
|
|\ |
|
| | |
|
| |
| |
| |
| | |
streamlining of [exit], by conditionally forcing a full Finalize: use -DPURIFY or ::env(TCL_FINALIZE_ON_EXIT)
|
| | |
|
| | |
|
|\ \
| |/ |
|
| | |
|
| | |
|
| |
| |
| | |
NRCommand to store objc and objv - useful for debugging.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclBasic.c (TclArgumentBCEnter): the cause of a violation
of my assertion that 'ePtr->nline == objc' in TclArgumentBCEnter.
When a bytecode was grown during jump fixup the pc -> command line
mapping was not updated. When things aligned just wrong the mapping
would direct command A to the data for command B, with a different
number of arguments.
|
|\ \
| |/ |
|
| | |
|
| | |
|
| |
| |
| |
| | |
[Bug 3282869]
|
| | |
|
| |
| |
| |
| | |
apparent in tclbench's 'LIST lset foreach'. Many thanks to twylite for patiently researching the issue and explaining it to me: a missing Tcl_ResetObjResult that causes unwanted sharing of the current result Tcl_Obj.
|
|\ \
| |/ |
|
| | |
|
| |\ |
|
| | |
| | |
| | | |
rest of Tcl source code. No ABI change. API change *should* be harmless.
|
| | |
| | |
| | |
| | | |
failures that need resolving...
|
|\ \ \ |
|
| |\ \ \
|/ / / /
| | | _ |
|
| | | |
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | | |
* generic/tclCompile.c: with TclParseBackslash() where possible.
* generic/tclCompCmdsSZ.c:
* generic/tclParse.c:
* generic/tclUtil.c:
|
| |\ \
| | |/
| | |
| | |
| | | |
* generic/tclCompile.c: with TclParseBackslash() where possible.
* generic/tclParse.c:
* generic/tclUtil.c:
|
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdMZ.c: with TclParseBackslash() where possible.
* generic/tclCompExpr.c:
* generic/tclCompile.c:
* generic/tclUtil.c:
|
|\ \ \ |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
commented out non-optimised code, left for ref in checkin [b97b771b6d]
|
| |\ \ \
| | |/ /
| | | | |
cause more harm than good. Purged them (except in zlib files).
|
| | |\ \
| | | |/
| | | | |
more harm than good. Purged them.
|
| | | |
| | | |
| | | | |
more harm than good. Purged them.
|
| | | |
| | | |
| | | |
| | | | |
revert tclInt.h to what it was before, and relax the relation between Tcl_CallFrame and CallFrame.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
refCount for the file path out of the branch after the whole
conditional, closing a memory leak. Added clause on structure type
to prevent seg.faulting. Backport from valgrinding the Tcl 8.5
branch.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations,
TclEvalObjEx):
* generic/tclCmdMZ.c (Tcl_SwitchObjCmd, ListLines):
* generic/tclCompCmds.c (*):
* generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv,
TclFreeCompileEnv, TclCompileScript):
* generic/tclCompile.h (CompileEnv):
* generic/tclInt.h (ContLineLoc, Interp):
* generic/tclObj.c (ThreadSpecificData, ContLineLocFree,
TclThreadFinalizeObjects, TclInitObjSubsystem,
TclContinuationsEnter, TclContinuationsEnterDerived,
TclContinuationsCopy, TclContinuationsGet, TclFreeObj):
* generic/tclProc.c (TclCreateProc):
* generic/tclVar.c (TclPtrSetVar):
* tests/info.test (info-30.0-22):
Extended parser, compiler, and execution with code and attendant
data structures tracking the positions of continuation lines which
are not visible in script's, to properly account for them while
counting lines for #280, during direct and compiled execution.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
TclArgumentBCRelease, TclArgumentGet):
* generic/tclCompile.c (EnterCmdWordIndex, TclCleanupByteCode,
TclInitCompileEnv, TclCompileScript):
* generic/tclCompile.h (ExtCmdLoc):
* generic/tclExecute.c (TclExecuteByteCode):
* generic/tclInt.h (ExtIndex, CFWordBC):
* tests/info.test (info-39.0):
Backport of some changes made to the Tcl head, to handle literal
sharing better. The code here is much simpler (trimmed down)
compared to the head as the 8.4 branch is not bytecode compiling
whole files, and doesn't compile eval'd code either.
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 removes the problems with location data caused by literal
sharing in proc bodies. Simplified the associated datastructures
(ExtIndex is gone, as is the function EnterCmdWordIndex).
|
| | | |
| | | |
| | | |
| | | |
| | | | |
* generic/tclBasic.c: 'proc', 'cmd' and 'inst' probes (does
_not_ require a platform with DTrace).
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
word index when deleting an interpreter (DeleteInterpProc). Added
missing ref count when creating an empty string as path (EvalEx).
* generic/tclCompile.c (TclInitCompileEnv): Made same change to
control flow as in TclEvalObjEx. Not needed while uplevel and
siblings go through the eval-direct code path, however if that
changes (like it did in 8.5+) better to have this in place instead
of re-searching why certain places are without absolute locations.
* tests/info.test: Added tests 38.*, exactly testing the tracking
of location for uplevel scripts, and made the testsuite fully
usable with and without -singleproc 1.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* generic/tclCmdIL.c: immediately, without search. Reworked setup
* generic/tclCompile.c: of eoFramePtr, doesn't need the line
* tests/info.test: information, more sensible to have everything
on line 1 when eval'ing a pure list. Updated the users of the line
information to special case this based on the frame type (i.e.
TCL_LOCATION_EVAL_LIST). Added a testcase demonstrating the new
behaviour.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* generic/tclCompile.c: for #280 to fix the abysmal performance
* generic/tclCompile.h: for deep recursion, replaced the linear
* generic/tclExecute.c: search through the whole stack with
* generic/tclInt.h: another hashtable and simplified the data
structure used by the compiler (array instead of hashtable).
Incidentially this also fixes the memory leak reported via [Bug
2024937].
|