| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
protect all calls that may cause traces on ::errorInfo or
::errorCode to corrupt the stack [Bug 804681]
|
|
|
|
|
|
|
|
| |
added a Tcl_ResetResult(interp) at each point where the interp's
result is pushed onto the stack, to avoid keeping an extra
reference that may cause costly Tcl_Obj duplication [Bug 781585]
Detected by Franco Violi, analyzed by Peter Spjuth and Donal
Fellows.
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
extraneous cast from Tcl_WideAsDouble.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c is defined on all platforms, even those where
* generic/tclPort.h TCL_WIDE_INT_IS_LONG is defined. Also made
the Tcl_Value struct have a wideValue field on all platforms. This is
a ***POTENTIAL INCOMPATIBILITY*** for TCL_WIDE_INT_IS_LONG platforms
because that struct changes size. This is the same TIP 72
incompatibility that was seen on other platforms at the 8.4.0 release,
when this change should have happened as well. [Bug 713562]
* generic/tclInt.h: New internal macros TclGetWide() and
TclGetLongFromWide() to deal with both forms of the "wideInt"
Tcl_ObjType, so that conditional TCL_WIDE_INT_IS_LONG code
is confined to the header file.
* generic/tclCmdAH.c: Replaced most coding that was conditional
* generic/tclCmdIL.c: on TCL_WIDE_INT_IS_LONG with code that
* generic/tclExecute.c: works across platforms, sometimes using
* generic/tclTest.c: the new macros above to do it.
* generic/tclUtil.c:
* generic/tclVar.c:
|
|
|
|
|
|
|
|
|
| |
variable "range" [Bug 664743]
* generic/tclExecute.c (ExprSrandFunc): remove unused
variable "result" [Bug 664743]
* generic/tclStringObj.c (UpdateStringOfString): remove unused
variable "length" [Bug 664751]
* tests/execute.test (execute-7.30): fix for [Bug 664775]
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdMZ.c (Tcl_StringObjCmd STR_MATCH):
* generic/tclUtf.c (TclUniCharMatch):
* generic/tclInt.decls: add private TclUniCharMatch function that
* generic/tclIntDecls.h: does string match on counted unicode
* generic/tclStubInit.c: strings. Tcl_UniCharCaseMatch has the
* tests/string.test: failing that it can't handle strings or
* tests/stringComp.test: patterns with embedded NULLs. Added
tests that actually try strings/pats with NULLs. TclUniCharMatch
should be TIPed and made public in the next minor version rev.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
error is encountered reading the increment value during
a compiled call to incr, add a "(reading increment)"
error string to the errorInfo variable. This makes
the errorInfo variable set by the compiled incr command
match the value set by the non-compiled version.
* tests/incr-old.test: Change errorInfo result for
the compiled incr command case to match the modified
implementation.
* tests/incr.test: Add tests to make sure the compiled
and non-compiled errorInfo messages are the same.
|
|
|
|
| |
for greater clarity of code.
|
|
|
|
|
| |
to use memcmp in the one-byte/char case, also use direct index for
INST_STR_INDEX in that case.
|
| |
|
|
|
|
| |
passed on linux/i386, compile-13.1 hung on linux/alpha.
|
| |
|
| |
|
|
|
|
| |
to the macro NEXT_INST_V(x, 0, 1) [Bug 587495].
|
|
|
|
|
| |
* tests/expr-old.test: fix for erroneous error messages in [expr],
[Bug 587140] reported by Martin Lemburg.
|
|
|
|
| |
functionality.
|
|
|
|
|
|
| |
while I repair tcl_traceExec. The core now compiles and runs
also under TCL_COMPILE_DEBUG, but execution in the bytecode
engine can still not be traced.
|
|
|
|
| |
Also produce better error messages when this happens.
|
|
|
|
| |
have file-scope.
|
| |
|
| |
|
|
|
|
| |
results in (Tcl_AddObjErrorInfo) and (TclUpdateReturnInfo)
|
| |
|
|
|
|
| |
logic for compilation/recompilation.
|
| |
|
|
|
|
| |
comments; re-indentation.
|
|
|
|
|
|
| |
non-immediate INST_INCR instructions; elimination of 103 (!)
TclDecrRefCount macros. The different instructions now jump back to a
common "DecrRefCount zone" at the topof the loop.
|
|
|
|
| |
for tcl-stack corruption.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/trace.n: execution tracing [FR #462580] (lavana).
* generic/tcl.h: This includes enter/leave tracing as well
* generic/tclBasic.c: as inter-procedure stepping.
* generic/tclCmdMZ.c:
* generic/tclCompile.c:
* generic/tclExecute.c:
* generic/tclInt.decls:
* generic/tclInt.h:
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
* generic/tclVar.c:
* tests/trace.test:
|
| |
|
|
|
|
| |
and commands (INST_INVOKE); faster check for the existence of a catch.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
INST_EVAL, INST_BREAK and INST_CONTINUE.
|
|
|
|
|
| |
code. Added the new (but pre-existent in tcl.h) possible flag bit
TCL_TRACE_READS to Tcl_(Obj)?SetVar.*
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
TclMathInProgress and Unix implementation of matherr(). These
are now obsolete, dealing with very old versions of the C math
library. Windows version is retained in case Borland compilers
require it, but it is inactive. Thanks to Joe English.
[Bug 474335, Patch 555635].
|
|
|
|
|
|
|
| |
* generic/tclCmdMZ.c (Tcl_StringObjCmd): changed the case for
choosing the Tcl_UniCharNcmp compare to when both objs are of
StringType, as benchmarks show that is the optimal check (both
bigendian and littleendian systems).
|
|
|
|
|
| |
probably optimized far in excess of anything we could do! Little-endian
just use the old code...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
* generic/tclUtf.c: added TclpUtfNcmp2 private command that
mirrors Tcl_UtfNcmp, but takes n in bytes, not utf-8 chars. This
provides a faster alternative for comparing utf strings internally.
(Tcl_UniCharNcmp, Tcl_UniCharNcasecmp): removed the explicit end
of string check as it wasn't correct for the function (by doc and
logic).
* generic/tclCmdMZ.c (Tcl_StringObjCmd): reworked the string equal
comparison code to use TclpUtfNcmp2 as well as short-circuit for
equal objects or unequal length strings in the equal case.
Removed the use of goto and streamlined the other parts.
* generic/tclExecute.c (TclExecuteByteCode): added check for
object equality in the comparison instructions. Added
short-circuit for != length strings in INST_EQ, INST_NEQ and
INST_STR_CMP. Reworked INST_STR_CMP to use TclpUtfNcmp2 where
appropriate, and only use Tcl_UniCharNcmp when at least one of the
objects is a Unicode obj with no utf bytes.
|
|
|
|
| |
"floating-point value" in [expr] error messages.
|
|
|
|
| |
otherwise non-catchable. [Bug 542588]
|
|
|
|
|
| |
having influence over the wrong scope of Tcl_*Eval* calls. Patch
from Miguel Sofer. Report from Jean-Claude Wippler. [Bug 219181]
|
|
|
|
|
| |
runLevel 0 [Bug 533758]. Removed the static RecordTracebackInfo(), as
its functionality is easily replicated by Tcl_LogCommandInfo.
|