summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmds.c
Commit message (Collapse)AuthorAgeFilesLines
* Improve code generation for [array set] in a common case.dkf2013-04-291-23/+59
|
* New internal routine TclFetchLiteral() for better CompileEnv encapsulation.dgp2013-03-051-2/+1
|
* [3603163]: Prevent odd crashes in 'eval {array set ...}'dkf2013-02-041-18/+23
|
* More extensive use of the techniques to improve other edge cases in ensemble ↵dkf2013-01-281-41/+37
| | | | compilation.
* Slightly better compilation of some [array] cases.dkf2013-01-281-5/+25
|
* First attempt at fixing problems caused by [array set] inside [namespace eval],dkf2013-01-111-6/+15
| | | | | which caused partial bytecode generation followed by a reject which triggered the issuing of generic ensemble code with an extra push of the variable name at the start (which got the stack depth wrong).
* Fix memory leak in [format] compiler.dkf2013-01-041-1/+1
|
* All tests pass except one; not sure what's wrong there.dkf2013-01-021-4/+4
|
* Added compilation of [array exists], [array set] and [array unset]. Fixed a ↵merge_to_trunkdkf2012-11-051-22/+257
| | | | whole bunch of issues with opcode issuing that were causing problems with stack depth calculations.
* Added compilation of [string last] and improved the compilation of [string ↵dkf2012-11-031-0/+73
| | | | range]. This in turn enables compilation of [namespace qualifiers] and [namespace tail] (also done).
* Added compilation of [info object isa object] (i.e., object verification).dkf2012-11-031-0/+36
|
* Added more TclOO introspection bytecodes ([info object class], [info object ↵dkf2012-11-021-0/+40
| | | | namespace]). Also moved TclOO-in-8.6 to using the main Tcl internal ensemble builder.
* Added compilation of [dict create] and [dict merge].dkf2012-11-011-2/+205
|
* Added [dict exists] compilation; implementation is 95% shared with [dict get].dkf2012-10-301-0/+36
|
* Added compilation of [regsub] (in the simplest, most restricted case).dkf2012-10-301-0/+174
|
* Minor: correct a commentdkf2012-10-291-2/+3
|
* Compiler for some of the simpler cases of [format].dkf2012-10-291-0/+219
|
* Compilation of [info commands] in the case of a fully-qualified literal name.dkf2012-10-291-0/+58
|
* Added [self namespace] to bytecoded command set.dkf2012-10-281-5/+34
|
* Compile [namespace which -command]; big performance saving in some contexts.dkf2012-10-261-0/+46
|
* Added compilation of [namespace code] (except for gnarly edge cases).dkf2012-10-251-0/+50
|
* merge trunkdkf2012-10-241-0/+61
|\
| * Added compilation of [dict unset]; the bytecode needed already existed anyway.dkf2012-10-241-0/+61
| |
* | yet another small introspector: [self]dkf2012-10-191-0/+34
| |
* | merge trunkdkf2012-10-171-8/+183
|\ \ | |/
| * ...and all the compilation and tests now work/passtip_votedkf2012-10-051-23/+32
| |
| * compilation code adjusteddkf2012-10-051-69/+73
| |
| * Rename 'mapeach' to 'lmap' per preferred alternative in TIP #405.twylite2012-08-081-5/+5
| |
| * Back-out 'foreacha' implementation but leave code cleanup of 'mapeach' and ↵twylite2012-08-081-21/+2
| | | | | | | | 'dict map'.
| * [Patch-3163961] Implementation of TIP #405 merged from private branch. ↵twylite2012-08-031-8/+189
| | | | | | | | Includes 'mapeach', 'dict map' and 'foreacha' commands, test suite (partial for 'foreacha') and man pages (except for 'foreacha').
* | merge trunkdkf2012-08-041-2/+2
|\ \ | |/
| * Factor out a number of common patterns of use of Tcl_DStringAppend.dkf2012-07-031-2/+2
| |
* | Compilation of misc info sometimes used in high-performance code.dkf2012-03-041-8/+94
|/
* * generic/tclCompCmds.c (TclCompileLreplaceCmd): Added a compilationdkf2012-02-151-0/+124
| | | | strategy for [lreplace] that tackles the cases which are equivalent to a static [lrange].
* * generic/tclCompCmds.c (TclCompileLrangeCmd): Add compiler fordkf2012-02-151-3/+110
| | | | | | [lrange] with constant indices so we can take advantage of existing TCL_LIST_RANGE_IMM opcode. (TclCompileLindexCmd): Improve coverage of constant-index-style compliation using technique developed for [lrange] above.
* * 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.
| * * 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.
* | | Minor: make comments accurate in [catch] compiler.dkf2012-01-301-22/+22
| | |
* | | * generic/tclCompCmds.c (TclCompileCatchCmd): Added a more efficientdkf2012-01-301-1/+29
| | | | | | | | | | | | bytecode generator for the case where 'catch' is used without any variable arguments; don't capture the result just to discard it.
* | | * generic/tclCompCmds.c (TclCompileDictWithCmd): Corrected handling ofdkf2011-10-091-303/+312
| | | | | | | | | | | | qualified names, and added spacial cases for empty bodies (used when [dict with] is just used for extracting variables).
* | | Added support for having the dict var itself referenced by LVT index.dkf2011-10-031-14/+55
| | |
* | | Experimental compilation of the [dict with] subcommand. No tests yet, and notdkf2011-10-021-0/+179
| | | | | | | | | | | | yet certain that the added bytecode opcodes are correct; evaluation is still needed (but the test suite does pass...)
* | | [Bug 3386417] avoid a reference loop between the bytecode and its companion ↵ferrieux2011-08-091-1/+1
| | | | | | | | | | | | errostack when compiling a syntax error.