summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmdsSZ.c
Commit message (Collapse)AuthorAgeFilesLines
* Select improvements in stack depth estimates brought over from mig-review.dgp2013-06-111-28/+6
| | | | | Mostly these are just simplifications, removing code that wasn't needed. Some changes make the stack depth estimate more accurate instruction by instruction.
* Stack housekeeping repair for last checkin.dgp2013-06-111-0/+2
|
* [33b7abb8a2] [7174354ecb] Rewrite TclCompileThrowCmd().dgp2013-06-111-59/+46
|
* Fix the problems with code generation; behavior now appears correct.dkf_better_try_compilationdkf2013-06-091-129/+204
|
* Improving tests, fixed one case.dkf2013-06-091-27/+44
|
* Working on a better compiler for [try]; found some bugs in previous compilationdkf2013-06-081-23/+123
| | | code which aren't resolved yet.
* Factor out stereotypical ways of getting variable indices.dkf2013-06-081-11/+9
|
* Fix a stack depth calculation.dkf2013-06-021-1/+1
|
* Many improvements to code generation of efficient break and continue.dkf2013-06-021-5/+6
|
* Working towards the next batch of optimizations.dkf2013-05-301-0/+4
|
* Corrected code generation when doing the second run with an 'infinite' loop.dkf2013-05-301-1/+1
|
* Stop emitting the instructions INST_*_SCALAR_STK*. They are identical todgp2013-05-291-13/+6
| | | | | | | 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.
* Repair some stack depth housekeeping.dgp2013-05-251-1/+1
|
* Spare developers the burden and error risk of counting bytes in stringdgp2013-05-231-15/+19
| | | literals, or having to type them twice.
* Eliminate code duplication.dgp2013-05-231-292/+0
|
* More extensive use of the techniques to improve other edge cases in ensemble ↵dkf2013-01-281-5/+5
| | | | compilation.
* tailcall now running in a simpler model, with no eval-flags and no nre-stack ↵mig2013-01-101-1/+3
| | | | rewriting; yieldto also requires one fewer bounce. Mostly from mig-nre-mods
* Fix bad memory access problems found by Miguel Sofer when valgrinding.dkf2013-01-041-1/+1
|
* Better version that can handle simple composite array keys as well. As long asdkf2012-12-181-10/+23
| | | | they are free of command substitutions, we can still safely omit the exception processor code.
* Generate better code for the common case of subst-ed variables where thedkf2012-12-181-0/+15
| | | variable is a simple scalar or an array with a simple literal element name.
* silence compiler warningdgp2012-11-291-7/+7
|
* Added compilation of [array exists], [array set] and [array unset]. Fixed a ↵merge_to_trunkdkf2012-11-051-1/+18
| | | | 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-176/+76
| | | | range]. This in turn enables compilation of [namespace qualifiers] and [namespace tail] (also done).
* Added compilation of [tailcall]. Not a particularly efficient compilation ↵dkf2012-11-011-0/+44
| | | | though; it does not detect tailcall-of-self as a special case.
* Compilation of [string first] and [string range] (with constant indices).dkf2012-10-301-70/+209
|
* Added compilation of simplest practical case of [string map].dkf2012-10-291-0/+82
|
* Working towards a BCCed [yield]; this doesn't work right now.dkf2012-10-261-0/+43
|
* Factor out a number of common patterns of use of Tcl_DStringAppend.dkf2012-07-031-2/+1
|
* Rewrite of parts of the switch compiler to better use the powers ofdgp2011-05-021-104/+45
| | | TclFindElement() and do less parsing on its own.
* Adjust ckalloc/ckfree macros to greatly reduce number of explicit casts indkf2011-03-121-18/+17
| | | rest of Tcl source code. No ABI change. API change *should* be harmless.
* * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() callsdgp2011-03-061-1/+2
| | | | | | * generic/tclCompile.c: with TclParseBackslash() where possible. * generic/tclCompCmdsSZ.c: * generic/tclParse.c: * generic/tclUtil.c:
* Now that we're no longer using SCM based on RCS, the RCS Keyword linesdgp2011-03-021-2/+0
| | | cause more harm than good. Purged them (except in zlib files).
* fix leaks in throw and unset compilersmig2011-03-011-0/+2
|
* Various mismatches between Tcl_Panic format string and its arguments,nijtmans2011-01-181-8/+8
| | | | discovered thanks to [Bug 3159920]
* * generic/tclCompCmdsSZ.c (IssueTryFinallyInstructions): [3007374]:dkf2010-05-281-45/+57
| | | | | Corrected error in handling of catch contexts to prevent crash with chained handlers.
* * generic/tclCompCmdsSZ.c (TclSubstCompile): If the first token doesdkf2010-04-081-3/+22
| | | | | | | | not result in a *guaranteed* push of a Tcl_Obj on the stack, we must push an empty object. Otherwise it is possible to get to a 'concat1' or 'done' without enough values on the stack, resulting in a crash. Thanks to Joe Mistachkin for identifying a script that could trigger this case.
* [Freq 2974744] share exception codes (ObjType?)nijtmans2010-03-271-7/+2
|
* Make error message in "try" implementationnijtmans2010-03-231-3/+3
| | | | exactly the same as the one in "return"
* Compile the [throw] command.dkf2010-03-191-1/+111
|
* Fix silly error in bytecode generation for [try].dkf2010-03-181-1/+3
|
* [Bug 2971921]: Corrected jump so that it doesn't skip into the middledkf2010-03-181-33/+40
| | | | | of an instruction! Tightened the instruction issuing. Moved endCatch calls closer to their point that they guard.
* Code Audit results:dkf2010-03-051-4/+4
| | | | | | | | * use do { ... } while (0) in macros * avoid shadowing one local variable with another * use clearer 'foo.bar++;' instead of '++foo.bar;' where result not required (i.e., semantically equivalent) * follow Engineering Manual rules on spacing and declarations
* Split tclCompCmds.c into two pieces to improve developer sanity.dkf2010-02-261-0/+3499