| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
*** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h)
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c (TclCompileWhileCmd):
* generic/tclCompile.c (TclCompileScript):
Corrected faulty avoidance of INST_START_CMD when the first opcode
in a script is within a loop (as produced by 'while 1'), so that
the corresponding command is properly counted [Bug 1752146].
|
|
|
|
|
|
| |
* generic/tclCompExpr.c: off the C stack and onto the Tcl stack.
* generic/tclCompile.c: This is a rather large struct (> 3kB).
* generic/tclParse.c:
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* generic/tclExecute.c: any code other than TCL_OK, so remove code
* generic/tclProc.c: that formerly handled exceptional codes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing
* generic/tclCompile.h: expanded literal words. These sections were
mostly in place to enable [info frame] to discover line information
in expanded literals. Since the parser now generates a token for
each post-expansion word referring to the right location in the
original script string, [info frame] gets all the data it needs.
* generic/tclInt.h: Revised the parser so that it never produces
* generic/tclParse.c: TCL_TOKEN_EXPAND_WORD tokens when parsing an
* tests/parse.test: expanded literal word; that is, something like
{*}{x y z}. Instead, generate the series of TCL_TOKEN_SIMPLE_WORD
tokens to represent the words that expansion of the literal string
produces. [RFE 1725186]
|
|
|
|
|
| |
* generic/tclCompile.c: --enable-64bit --enable-symbols=all.
* generic/tclExecute.c:
|
|
|
|
| |
extCmdMapPtr was not being freed [Bug 1705778, leak #1].
|
|
|
|
| |
efficient). After [Patch 1529526] (afredd)
|
|
|
|
| |
description of dict instructions
|
|
|
|
| |
description of INST_START_COMMAND.
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c: variable linking commands: 'global',
* generic/tclCompile.h: 'variable', 'upvar', 'namespace upvar'
* generic/tclExecute.c: [Patch 1688593]
* generic/tclInt.h:
* generic/tclVar.c:
|
|
|
|
|
|
| |
even though INST_START_CMD is now issued more efficiently. Changes definition
of I_S_C, but that's an 8.5 opcode so that shouldn't matter; tbcload doesn't work
with 8.5 at the moment anyway.
|
|
|
|
|
|
|
| |
* generic/tclCompExpr.c:
* generic/tclCompCmds.c: Replace arrays on the C stack and
ckalloc calls with TclStackAlloc calls to use memory on Tcl's
evaluation stack
|
|
|
|
| |
CompileEnv fields to use ckrealloc() where appropriate.
|
|
|
|
|
|
| |
to work, immediate operands referring to aux-data must be identified as such in the instruction descriptor table using OPERAND_AUX4 (all are always 4 bytes).
Rewrote the compiled [dict update] so that it stores critical non-varying data in an aux-data value instead of a (shimmerable) literal. [Bug 1671001]
|
| |
|
|
|
|
| |
discussion
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclCompCmds.c:
* generic/tclCompExpr.c:
* generic/tclCompile.c:
* generic/tclCompile.h:
* generic/tclExecute.c:
* generic/tclIOUtil.c:
* generic/tclInt.h:
* generic/tclInterp.c:
* generic/tclNamesp.c:
* generic/tclObj.c:
* generic/tclProc.c:
* tests/compile.test:
* tests/info.test:
* tests/platform.test:
* tests/safe.test:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.decls: New public routines Tcl_ObjPrintf,
* generic/tclStringObj.c: Tcl_AppendObjToErrorInfo, Tcl_Format,
* generic/tclInt.h: Tcl_AppendLimitedToObj,
Tcl_AppendFormatToObj and Tcl_AppendPrintfToObj. Former internal
versions removed.
* generic/tclDecls.h: make genstubs
* generic/tclStubInit.c:
* generic/tclBasic.c: Updated callers.
* generic/tclCkalloc.c:
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclCompExpr.c:
* generic/tclCompile.c:
* generic/tclDictObj.c:
* generic/tclExecute.c:
* generic/tclIORChan.c:
* generic/tclIOUtil.c:
* generic/tclMain.c:
* generic/tclNamesp.c:
* generic/tclObj.c:
* generic/tclPkg.c:
* generic/tclProc.c:
* generic/tclStrToD.c:
* generic/tclTimer.c:
* generic/tclUtil.c:
* unix/tclUnixFCmd.c:
|
| |
|
|
|
|
|
|
|
|
|
| |
* generic/tclHistory.c:
* generic/tclInt.h:
* generic/tclProc.c: made Tcl_RecordAndEvalObj not call "history"
if it has been redefined to an empty proc, in order to reduce the
noise when debugging [FR 1190441]. Moved TclCompileNoOp from
tclProc.c to tclCompile.c
|
| |
|
| |
|
|
|
|
| |
* generic/tclParseExpr.c: parse error messages.
|
| |
|
|
|
|
|
| |
[switch] into a jump-table. Much faster for long switches.
Also compiler support for generating the new instruction where appropriate.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.c: TCL_OUT_LINE_COMPILE with TCL_ERROR.
* generic/tclInt.h: Now that we've eradicated the mistaken
* tests/appendComp.test: notion of a "compile-time error", we
can use the TCL_ERROR return code to signal any failure to produce
bytecode.
|
|
|
|
|
| |
TclPrintInstruction(), TclPrintObject() and TclPrintSource() when
not debugging the compiler, as they are never called in that case.
|
|
|
|
| |
tclInstructionTable (-1 instead of -2)
|
|
|
|
| |
the TclRegisterNewLiteral macro [Patch 1090905]
|
|
|
|
|
|
|
|
| |
* generic/tclProc.c: new static InitCompiledLocals to allow for a
single pass over the proc's arguments at proc load time (instead of
two as previously). TclObjInterpProc() now allocates the
compiledLocals on the tcl execution stack, using the new
TclStackAlloc/Free functions.
|
|
|
|
| |
variables, removing tests from inner loops.
|
| |
|
| |
|
| |
|