| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.h: tracing of proc and command entry &
* generic/tclBasic.c: return, bytecode execution, object
* generic/tclExecute.c: allocation and more; with essentially
* generic/tclInt.h: zero cost when tracing is inactive;
* generic/tclObj.c: enable with --enable-dtrace configure
* generic/tclProc.c: arg (disabled by default, will only
* unix/Makefile.in: enable if DTrace is present).
* unix/configure.in: [Patch 1793984]
* macosx/GNUmakefile: enable DTrace support.
* macosx/Tcl-Common.xcconfig:
* macosx/Tcl.xcodeproj/project.pbxproj:
* unix/configure: autoconf-2.59
* unix/tclConfig.h.in: autoheader-2.59
|
|
|
|
|
|
| |
* generic/tclCompile.c (tclInstructionTable):
* generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack
management in [dict update] [Bug 1786481].
|
|
|
|
|
| |
setting of MaxBaseWide for certain powers. [Bug 1767293 -
problem reported in comments when bug was reopened].
|
|
|
|
|
|
|
| |
dictUpdateEnd
* generic/tclExecute.c: remove unneeded setting of 'cleanup'
variable before jumping to checkForCatch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclNamesp.c: registered set. Revised the management of
* generic/tclObj.c: the intrep of that Tcl_ObjType. Revised the
* tests/obj.test: TclGetNamespaceFromObj() routine to return
TCL_ERROR and write a consistent error message when a namespace is
not found. [Bug 1588842. Patch 1686862]
***POTENTIAL INCOMPATIBILITY***
For callers of Tcl_GetObjType() on the name "nsName".
* generic/tclExecute.c: Update TclGetNamespaceFromObj() callers.
* generic/tclProc.c:
* tests/apply.test: Updated tests to expect new consistent
* tests/namespace-old.test: error message when a namespace is not
* tests/namespace.test: found.
* tests/upvar.test:
|
|
|
|
|
|
|
|
|
| |
* tests/mathop.test: to correct the compiled versions of math
operator commands. [Bug 1724437].
* generic/tclCompile.c: New bytecode instruction INST_REVERSE to
* generic/tclCompile.h: reverse the order of N items at the top of
* generic/tclExecute.c: stack.
|
| |
|
|
|
|
|
| |
* generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug 1264623]
* unix/Makefile.in:
|
| |
|
|
|
|
|
|
| |
* generic/tclExecute.c: TclPrintByteCodeObj() so that tcl_traceCompile
output is less likely to get mangled when writes to stdout interleave
with other code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expression syntax errors are found when compiling expressions. With
this in place, convert TclCompileExpr to return void, since there's no
longer any need to report TCL_ERROR.
* generic/tclCompile.c: Update callers.
* generic/tclExecute.c:
* generic/tclCompCmds.c: New routine TclCompileSyntaxError()
* generic/tclCompile.h: to directly compile bytecodes that report a
* generic/tclCompile.c: syntax error, rather than (ab)use a call to
TclCompileReturnCmd. Also, undo the most recent commit that papered
over some issues with that (ab)use. New routine produces a new
opcode INST_SYNTAX, which is a minor variation of INST_RETURN_IMM.
Also a bit of constification.
|
|
|
|
|
| |
* generic/tclCompExpr.c: entries into TclFreeCompileEnv().
* generic/tclExecute.c: Update callers.
|
|
|
|
| |
i.e. unsigned!)
|
|
|
|
|
|
|
| |
* tests/expr.test (expr-23.48-53) integer exponentiation
that results in 32- and 64-bit integer results, avoiding calls to
wide integer exponentiation routines in this common case.
[Bug 1767293]
|
|
|
|
| |
INSTs for debug builds. REVERTED (collision with alternative fix)
|
|
|
|
| |
Label needs debug build exposure in TEBC.
|
|
|
|
| |
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:
|