| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
* generic/tclCmdMZ.c: [Bug 2314561].
* generic/tclCompCmds.c:
* generic/tclCompile.c:
* generic/tclInt.h:
* tests/coroutine.test:
* tests/parse.test:
|
|
|
|
| |
panic during execution of [subst] bytecode.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclBasic.c: compiler routine for the [subst] command.
* generic/tclCmdMZ.c: This is a partial solution to the need to
* generic/tclCompile.c: NR-enable [subst] since bytecode execution is
* generic/tclCompile.h: already NR-enabled. [Bug 2314561] Two new
* generic/tclExecute.c: bytecode instructions, INST_NOP and
* generic/tclInt.h: INST_RETURN_CODE_BRANCH were added to support
* generic/tclParse.c: the new routine. INST_RETURN_CODE_BRANCH is
* tests/basic.test: likely to be useful in any future effort to
* tests/info.test: add a bytecode compiler routine for [try].
* tests/parse.test:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tcl_EvalEx, TclEvalEx, TclAdvanceContinuations, TclNREvalObjEx):
* generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines):
* generic/tclCompCmds.c (*):
* generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv,
TclFreeCompileEnv, TclCompileScript, TclCompileTokens):
* 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 the parser, compiler, and execution engine with code and
attendant data structures tracking the position of continuation
lines which are not visible in the resulting script Tcl_Obj*'s, to
properly account for them while counting lines for #280.
|
|
|
|
|
| |
- some internal const decorations
- spacing
|
|
|
|
| |
etc.)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c: of TclCreateAuxData and
* generic/tclCompile.c TclRegisterAuxDataType and the return
* generic/tclCompile.h values of TclGetAuxDataType and
* generic/tclExecute.c TclGetInstructionTable
* ChangeLog
* generic/tclIntDecls.h: regenerated
This change complies with TIP #27 (even though it only
involves internal function, so this is not even necessary).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/ObjectType.3 Tcl_ObjType which all are supposed
* generic/tcl.decls to be a constant, but this was not
* generic/tcl.h reflected in the API:
* generic/tclDecls.h Tcl_ConvertToType
* generic/tclObj.c Tcl_GetObjType
* generic/tclCompCmds.c Tcl_RegisterObjType
* generic/tclOOMethod.c Introduced a CONST86_RETURN, so extensions which
* generic/tclTestobj.c use Tcl_ObjType directly can be modified to compile
against both Tcl 8.5 and Tcl 8.6
tclDecls.h is re-generated with "make genstubs"
This change complies with TIP #24
***POTENTIAL INCOMPATIBILITY***
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c: non-body compiled scripts to access the
* generic/tclCompile.c: LVT (but not to extend it) and enable the
* generic/tclCompile.h: canonical list opt to sidestep the
* generic/tclExecute.c: compiler. This is [Patch 1973096]
* generic/tclProc.c:
* tests/uplevel.test:
|
| |
|
|
|
|
| |
confusing the simple-minded code doing the calculations). [Bug 1903325]
|
|
|
|
|
| |
to optimize compiled [return -level 0 $x] [RFE 1794073] introduced
a memory leak of the return options dictionary. Fixing that.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c: simplify code that might need to grow
* generic/tclCompExpr.c: an array of Tcl_Tokens in the parsePtr
* generic/tclParse.c: field of a Tcl_Parse. Replaces the
TclExpandTokenArray() routine via replacing:
int needed = parsePtr->numTokens + growth;
while (needed > parsePtr->tokensAvailable) {
TclExpandTokenArray(parsePtr);
}
with:
TclGrowParseTokenArray(parsePtr, growth);
This revision merged over from dgp-refactor branch.
|
|
|
|
|
| |
* tests/regexp.test (regexp-22.2): be used because it
* tests/regexpComp.test: [Bug 1857126] disallows backrefs.
|
|
|
|
|
|
| |
* tests/switch.test-14.*: compilation to pass
the cflags to INST_REGEXP (changed on 12-07). Added tests for
switch -regexp compilation (need more). [Bug 1854399]
|
| |
|
|
|
|
|
| |
* generic/tclCompCmds.c (TclCompileRegexpCmd): Pass correct RE
compile flags at compile time, and use TCL_REG_NOSUB.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
but now
handles many other things making the compiler at least useful.
|
|
|
|
|
| |
It is usually not enabled though; only worth it when a subcommand is actually
expected to undergo bytecode compilation.
|
| |
|
| |
|
|
|
|
| |
only free dstring on OK from TclReToGlob.
|
|
|
|
|
| |
too complex. Fix [regexp] compiler so that non-trivial literal regexps get fed to
INST_REGEXP.
|
|
|
|
|
|
|
|
|
| |
* generic/tclExecute.c, generic/tclInt.decls, generic/tclIntDecls.h:
* generic/tclRegexp.c, generic/tclRegexp.h: Add INST_REGEXP and fully
* generic/tclStubInit.c, generic/tclUtil.c: compiled [regexp] for the
* tests/regexpComp.test: [Bug 1830166] simple cases. Also
added TclReToGlob function to convert RE to glob patterns and use
these in the possible cases.
|
|
|
|
| |
objTypes.
|
|
|
|
|
|
|
|
| |
values get pulled out of the dictionary, even if they are integer
valued.
* generic/tclCompCmds.c (TclCompileReturnCmd): Added code to
more optimally compile [return -level 0 $x] to "push $x". [RFE 1794073]
|
| |
|
|
|
|
|
|
| |
* generic/tclCompile.c (tclInstructionTable):
* generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack
management in [dict update] [Bug 1786481].
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
routine to compile ** to account for its different associativity.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
to handle callers other than TclCompileScript() failing to meet the
initialization assumptions of the TIP 280 code in CompileWord().
|
|
|
|
| |
*** 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/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/tclExecute.c: executor. Missed updates to "there is
always a valid frame".
|
|
|
|
|
|
|
|
| |
leak in 'upvar' when compiling (a) upvar outside a proc, (b)
upvar with a syntax error, or (c) upvar where the frame index
is not known at compile time.
* generic/tclParseExpr.c (ParseExpr): Plugged a memory leak
when parsing expressions that contain syntax errors.
|
|
|
|
|
|
|
|
| |
error on VC2005.
* library/clock.tcl: Restored unique-prefix matching of keywords
on the [clock] command. [Bug 1690041]
* tests/clock.test: Added rudimentary test cases for unique-prefix
matching of keywords.
|