summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmds.c
Commit message (Collapse)AuthorAgeFilesLines
* Many improvements to code generation of efficient break and continue.dkf2013-06-021-57/+36
|
* Getting better at doing more efficient break/continue instruction handling.dkf2013-06-011-50/+63
|
* Working towards the next batch of optimizations.dkf2013-05-301-0/+81
|
* Simplifications and tidying up of stack management issues. Work in progress.dgp2013-05-291-14/+13
|
* Stop emitting the instructions INST_*_SCALAR_STK*. They are identical todgp2013-05-291-21/+24
| | | | | | | their INST_*_STK* counterparts. Having done that, it is clear the "simpleVarName" return from TclPushVarName provides nothing of use to any of its callers. Eliminate that. Also make TPVN return void, instead of int. Bring the TPVN header comments up to date; they were quite rotten.
* Use the routines that provide "basic compile" instead of reinventing them.dgp2013-05-281-34/+16
|
* Plug the memory leak. Greater ambitions to improve this routine are provingdgp2013-05-281-0/+1
| | | more difficult than expected.
* Repair some stack depth housekeeping.dgp2013-05-251-0/+1
|
* 3613854 - Fixup stack maintenance /code generation for [array set x $oddList]. dgp2013-05-241-20/+17
| | | | Postscript - I see that this commit created a memory leak. Will commit a fix within a few days.
* Spare developers the burden and error risk of counting bytes in stringdgp2013-05-231-38/+34
| | | literals, or having to type them twice.
* Eliminate code duplication.dgp2013-05-231-69/+3
|
* Split tclCompCmds.c into two roughly-equal-sized pieces.dkf2013-05-181-2931/+32
|
* A better technique for [list {*}blah]. Remove the INST_LIST_EXPANDED opcode ↵dkf2013-05-151-2/+37
| | | | (and the complex machinery associated with it) as as it is no longer needed.
* Partial fix: still ongoingdkf2013-05-111-0/+3
|
* Optimizations and general bytecode generation improvements.dkf2013-05-101-29/+170
|
* 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.