summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmds.c
Commit message (Collapse)AuthorAgeFilesLines
* Line numbers wrong in compiled [global] and [variable].dgp2013-09-191-6/+12
|
* Line numbers wrong in compiled [namespace upvar].dgp2013-09-191-4/+4
|
* Line numbers wrong in compiled [upvar].dgp2013-09-191-8/+8
|
* Line numbers wrong in compiled [dict update].dgp2013-09-191-1/+1
|
* Line numbers wrong in compiled [dict for].dgp2013-09-191-1/+1
|
* Line numbers wrong in compiled [dict get].dgp2013-09-191-4/+3
|
* Stop segfault due to OBOE in CompileWord() calls in [dict incr] compiler.dgp2013-09-191-1/+1
|
* Line numbers wrong in compiled [dict set].dgp2013-09-191-5/+3
|
* Line numbers wrong in compiled foreach body.dgp2013-09-191-4/+2
|
* Stop segfault due to OBOE in CompileWord() calls in [dict lappend] compiler.dgp2013-09-191-2/+2
|
* [3487626] Backport fix for knownBug test dict-23.2.dgp2013-09-191-0/+7
|
* Silence come compiler warnings.dgp2013-01-241-7/+7
|\
* | * generic/tclCompCmds.c (TclCompileDictForCmd): [Bug 3487626]: Fixdkf2012-02-151-1/+2
| | | | | | | | crash in compilation of [dict for] when its implementation command is used directly rather than through the ensemble.
* | 3485022 Disable ensemble subcommand compile inside a Tcl_Create*Trace().dgp2012-02-061-1/+2
| |
* | 3485022 TclCompileEnsemble() avoid compile when exec traces set.dgp2012-02-061-1/+2
|\ \ | |/
* | Drop old code.dgp_switch_compiledgp2011-05-021-155/+2
| |
* | Revised TclFindElement() interface.dgp2011-05-021-14/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The final argument had been bracePtr, the address of a boolean var, where the caller can be told whether or not the parsed list element was enclosed in braces. In practice, no callers really care about that. What the callers really want to know is whether the list element value exists as a literal substring of the string being parsed, or whether a call to TclCopyAndCollpase() is needed to produce the list element value. Now the final argument is changed to do what callers actually need. This is a better fit for the calls in tclParse.c, where now a good deal of post-processing checking for "naked backslashes" is no longer necessary. ***POTENTIAL INCOMPATIBILITY*** For any callers calling in via the internal stubs table who really do use the final argument explicitly to check for the enclosing brace scenario. Simply looking for the braces where they must be is the revision available to those callers, and it will backport cleanly. New TclFindElement() is also a better fit for the [switch] compiler.
* \ \ Replace TclCountSpaceRuns() with TclMaxListLength() which is the function wedgp2011-05-021-13/+2
|\ \ \ | |/ / | | | actually want.
* | | Tighten up the patch.dgp2011-05-021-13/+16
| | |
* | | Rewrite of parts of the [switch] compiler to better use the powers ofdgp2011-04-281-3/+104
|/ / | | | | TclFindElement() and do less parsing on its own. Needs review and testing.
* | Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-021-2/+0
|\ \ | |/ | | more harm than good. Purged them.
| * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-011-2/+0
| | | | | | more harm than good. Purged them.
| * * generic/tclCompCmds.c: [Bug 2881263] (TclCompileForeachCmd,andreas_kupries2009-10-231-3/+4
| | | | | | | | | | | | TclCompileLindexCmd): Fixed. Moved the use of DefineLineInformation after all regular variable declarations, so that an empty statement (-UTIP_280) doesn't confuse c89 compilers.
| * * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-265/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, TclEvalObjEx): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, ListLines): * 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/tclProc.c (TclCreateProc): * generic/tclVar.c (TclPtrSetVar): * tests/info.test (info-30.0-22): Extended parser, compiler, and execution with code and attendant data structures tracking the positions of continuation lines which are not visible in script's, to properly account for them while counting lines for #280, during direct and compiled execution.
| * * generic/tclBasic.c: Extended the existing TIP #280 system (infoandreas_kupries2008-07-211-5/+5
| | | | | | | | | | | | | | | | | | | | | | * 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:
| * D'oh! Used an 8.5-ism...dkf2007-03-011-2/+2
| |
| * Fix [Bug 1671138]dkf2007-03-011-1/+13
| |
| * * generic/tclBasic.c: TIP #280 implementation, conditional on the define ↵andreas_kupries2006-11-281-3/+302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TCL_TIP280. * 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/tclCompCmds.c (TclCompileIncrCmd): Corrected checksdgp2005-03-181-15/+11
| | | | | | | | | | for immediate operand usage to permit leading space and sign characters. [Bug 1165671]
| * * generic/tclCompCmds.c (TclCompileIfCmd): Prior fix of Bug 711371dgp2003-07-151-3/+6
| | | | | | | | on 2003-04-07 introduced a buffer overflow. Corrected. [Bug 771613]
| * * generic/tclCompCmds.c (TclCompileIfCmd): Corrected string limits ofdgp2003-04-071-4/+4
| | | | | | | | arguments interpolated in error messages. [Bug 711371]
* | Various mismatches between Tcl_Panic format string and its arguments,nijtmans2011-01-181-7/+7
| | | | | | | | discovered thanks to [Bug 3159920]
* | Backport dgp's fixes to comments and ChangeLog entryKevin B Kenny2010-11-051-2/+2
| |
* | * generic/tclCompCmds.c (TclCompileCatchCmd):Kevin B Kenny2010-11-031-70/+113
| | | | | | | | | | | | | | | | | | | | * tests/compile.test (compile-3,6): Reworked the compilation of the [catch] command so as to avoid placing any code that might throw an exception (specifically, any initial substitutions or any stores to result or options variables) between the BEGIN_CATCH and END_CATCH but outside the exception range. Added a test case that panics on a stack smash if the change is not made. [Bug #3098302]
* | * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-46/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Fix off-by-one error that caused crashes. Backport from HEAD.dkf2008-05-071-2/+2
| |
* | Correct the handling of stack space calculation (the jump pattern used wasdkf2008-03-161-4/+5
| | | | | | | | confusing the simple-minded code doing the calculations). [Bug 1903325]
* | * generic/tclCompCmds.c (TclCompileReturnCmd): The 2007-10-18 commitdgp2008-02-281-1/+2
| | | | | | | | | | to optimize compiled [return -level 0 $x] [RFE 1794073] introduced a memory leak of the return options dictionary. Fixing that.
* | Fix [Bug 1891827]dkf2008-02-121-5/+9
| |
* | * generic/tclInt.h: New macro TclGrowParseTokenArray() todgp2008-01-231-19/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | * generic/tclCompCmds.c (TclCompileRegexpCmd): TCL_REG_NOSUB cannothobbs2007-12-231-6/+5
| | | | | | | | | | * tests/regexp.test (regexp-22.2): be used because it * tests/regexpComp.test: [Bug 1857126] disallows backrefs.
* | * generic/tclCompCmds.c (TclCompileSwitchCmd): update switch -regexphobbs2007-12-191-2/+14
| | | | | | | | | | | | * 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]
* | merge stable branch onto HEADdgp2007-12-131-1/+1
| |
* | * generic/tclExecute.c (TclExecuteByteCode INST_REGEXP):hobbs2007-12-071-2/+9
| | | | | | | | | | * generic/tclCompCmds.c (TclCompileRegexpCmd): Pass correct RE compile flags at compile time, and use TCL_REG_NOSUB.
* | Oops!dkf2007-12-061-2/+2
| |
* | Fix [Bug 1845320] and [Bug 1845397]dkf2007-12-061-8/+11
| |
* | Make two-arg switch work reliably (and actually as documented!) [Bug 1836519]dkf2007-12-031-14/+29
| |
* | Fix stack corruption in [dict append] compilerdkf2007-11-241-26/+31
| |
* | Turn the [string] command into a real compiled ensemble.dkf2007-11-231-152/+237
| |
* | Rebuild [dict] as a full compiled ensemble.dkf2007-11-221-410/+566
| |