| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| | |
* tests/parse.test: simplify TclEvalObjvInternal and to correct
the auto-loading of alias targets (parse-8.12). [Bug 1444291].
|
| |
| |
| |
| |
| |
| | |
* tests/parse.test: evaluations act the same as [uplevel #0]
* tests/trace.test: evaluations, even when execution traces or
invocations of [::unknown] are present. [Bug 1439836].
|
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclCmdMZ.c (TraceCommandProc):
* generic/tclInt.h (NS_KILLED):
* generic/tclNamesp.c (Tcl_DeleteNamespace
* tests/namespace.test (namespace-7.3-6):
* tests/trace.test (trace-20.13-16): fix [Bugs 1355942/1355342].
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclBinary.c:
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclExecute.c:
* generic/tclLink.c:
* generic/tclMain.c:
* generic/tclProc.c:
* generic/tclScan.c:
* generic/tclTest.c:
* generic/tclVar.c:
* mac/tclMacInit.c:
* unix/tclUnixInit.c:
* win/tclWinInit.c: Insure that the core never calls TclPtrSetVar,
Tcl_SetVar2Ex, Tcl_ObjSetVar2 or Tcl_SetObjErrorCode with a 0-ref
new value. It is not possible to handle error returns correctly in
that case [Bug 1334947], one has the choice of leaking the object
in some cases, or else risk crashing in some others.
|
| |
| |
| |
| |
| | |
per-thread counter, rather than a process global one that required
mutex protection. [RFE 1077194]
|
| |
| |
| |
| |
| |
| | |
* generic/tclCmdMZ.c: of the direction of trace scanning, so the
* generic/tclInt.h: proper correction can be made. [Bug 1224585]
* tests/trace.test (trace-34.2,3):
|
| |
| |
| |
| |
| | |
* tests/trace.test (trace-34.1): list of active traces to
cleanup references to traces being deleted. [Bug 1201035]
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclCmdMZ.c (Tcl_SubstObj):
* tests/basic.test (basic-46.4): Restored recursion limit
* tests/parse.test (parse-19.*): testing in nested command
substitutions within direct script evaluation (Tcl_EvalEx)
that got lost in the parser reforms of Tcl 8.1. Added tests for
correct behavior. [Bug 1115904]
|
| | |
|
| |
| |
| |
| |
| |
| | |
* tests/basic.test (basic-26.2): preserve the arguments passed to
TEOV in the pure-list branch, in case the list shimmers away. Fix
for [Bug 1119369], reported by Peter MacDonald.
|
| |
| |
| |
| | |
(Tcl_ExprLong): Fix to recognize Tcl_WideInt type. [Bug 1109484]
|
| | |
|
| |
| |
| |
| |
| |
| | |
* tests/basic.test (basic-46.1): to incomplete scripts
as part of multi-line script construction. Do not add an extra
trailing newline to the complete script. [Bug 833150]
|
| |
| |
| |
| |
| |
| |
| | |
control the state of errorCode and errorInfo management when calling
"leave" execution traces, so that all error information of the traced
command is still available whether traced or not. [Bug 760947]
Thanks to Yahalom Emet.
|
| |
| |
| |
| |
| | |
* generic/tclCmdMZ.c: and execution traces that caused access to
freed memory in trace-32.1. [Bug 811483].
|
| |
| |
| |
| |
| |
| |
| |
| | |
* tests/trace.test: masking to prevent any of the bit values
TCL_TRACE_*_EXEC from leaking into the flags field of any
Command struct. This does not fix [Bug 811483] but helps to
contain some of its worst symptoms. Also backported the corrections
to test trace-28.4 from Vince Darley.
|
| |
| |
| |
| |
| |
| |
| | |
* generic/tclCompile.c: truncation of UTF-8 strings that might
* generic/tclProc.c: break apart a multi-byte character.
* library/init.tcl: [Bug 760872]
* tests/init.test:
|
| |
| |
| |
| |
| |
| |
| | |
* generic/tclExecute.c: let TclExecuteObjvInternal call
TclInterpReady instead of relying on its callers to do so; fix for
the part of [Bug 495830] that is new in 8.4.
* tests/interp.test: Added tests 18.9 (knownbug) and 18.10
|
| |
| |
| |
| |
| | |
longer set to NULL (Tcl_CreateObjCommand docs already say that it
should not be accessed).
|
| | |
|
| |
| |
| |
| |
| |
| | |
TCL_EVAL_GLOBAL flag when resolving command names. Tcl_EvalEx
passed a string rep including leading whitespace and comments
to TclEvalObjvInternal().
|
| |
| |
| |
| | |
discovered thanks to [Bug 3159920]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* doc/tclvars.n: Performance fix for TIP #280.
* generic/tclBasic.c:
* generic/tclExecute.c:
* generic/tclInt.h:
* generic/tclInterp.c:
* tests/info.test:
* tests/interp.test:
|
| |
| |
| |
| | |
revert tclInt.h to what it was before, and relax the relation between Tcl_CallFrame and CallFrame.
|
| |
| |
| |
| | |
and added test cases for it.
|
| |
| |
| |
| | |
evaluation.
|
| |
| |
| |
| |
| |
| | |
TCL_EVAL_DIRECT evaluation.
* tests/info.test: Resolve ambiguous resolution of variable "res".
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations,
TclEvalObjEx):
* generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines):
* 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/tclParse.c (TclSubstTokens, Tcl_SubstObj):
* generic/tclProc.c (TclCreateProc):
* generic/tclVar.c (TclPtrSetVar):
* tests/info.test (info-30.0-24):
Extended parser, compiler, and execution with code and attendant
data structures tracking the positions of continuation lines which
are not visible in script Tcl_Obj*'s, to properly account for them
while counting lines for #280.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.5 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).
|
| |
| |
| |
| | |
TCL_ALLOW_EXCEPTIONS is tested.
|
| |
| |
| |
| |
| |
| |
| | |
empty string as path (TclEvalEx). In 8.4 the missing code caused
panics in the testsuite. It doesn't in 8.5. I am guessing that the
code path with the missing the incr-refcount is not invoked any
longer. Because the bug in itself is certainly the same.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
of location for uplevel scripts.
* generic/tclCompile.c (TclInitCompileEnv): Reorganized the
initialization of the #280 location information to match the flow
in TclEvalObjEx to get more absolute contexts.
* generic/tclBasic.c (TclEvalObjEx): Moved the pure-list
optimization out of the eval-direct code path to be done always,
i.e. even when a compile is requested. This way we do not loose
the association between #280 location information and the list
elements, if any.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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].
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclCmdAH.c: frame), added the ability to track the
* generic/tclCompCmds.c: absolute location of literal procedure
* generic/tclCompile.c: arguments, and making this information
* generic/tclCompile.h: available to uplevel, eval, and
* generic/tclInterp.c: siblings. This allows proper tracking of
* generic/tclInt.h: absolute location through custom (Tcl-coded)
* generic/tclNamesp.c: control structures based on uplevel, etc.
* generic/tclProc.c:
|
| |
| |
| |
| | |
from bad TclStackAlloc() alignment. Thanks George Peter Staplin.
|
| |
| |
| |
| |
| |
| | |
* tests/expr.test: function and the [::tcl::mathfunc::abs]
command do not return the value of -0, or equivalent values with
more alarming string reps like -1e-350. [Bug 1893815].
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
refcount management of Tcl_AppendObjToErrorInfo to become that of
a conventional Consumer routine. This preserves the ease of use
for the overwhelming common callers who pass in a 0-count value,
but makes the proper call with a non-0-count value less surprising.
* generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd): Revised the
one caller within Tcl itself which passes a non-0-count value to
Tcl_AppendObjToErrorInfo().
|
| |
| |
| |
| |
| |
| | |
an enter trace deletes or changes the command, prompting a reparsing.
Don't let the second pass lose commandPtr value allocated during the
first pass.
|
| | |
|
| |
| |
| |
| |
| | |
* generic/tclCompExpr.c: of struct TclOpCmdClientData to
* generic/tclCompile.h: accomodate C++ compilers [Bug 1855644]
|
| | |
|
| | |
|
| |
| |
| |
| | |
TclMakeEnsemble to do most of the work.
|