summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.h
Commit message (Collapse)AuthorAgeFilesLines
* Backing out commit [cddbfc3081], fix for bug [82521bfb6734f891dd]Miguel Sofer2014-09-271-12/+0
| | | | | The "optimisation" in that commit assumes that the last byte in the generated bytecodes is an INST_TRY_CONVERT if it equals 64. This is an invalid assumption, it could be 64 and not be an instruction.
* merge trunkKevin B Kenny2014-08-021-1/+6
|\
| * [b43f2b49f7] New compilation strategy for lappend that allows multi-valuedkf2014-07-181-1/+6
| | | | | | lappend to not have quadratic performance (through better reference management).
* | merge trunkdkf2014-02-031-2/+44
|\ \ | |/
| * improve the disassemblydkf_bytecode_8_6_string_isdkf2014-02-021-1/+2
| |
| * Compile [string is] with character classes in a non-awful way. Needs more ↵dkf2014-01-291-1/+36
| | | | | | | | work to make resulting bytecode disassemble nicely.
| * merge principal development branchdkf2014-01-251-3/+6
| |\
| | * implementation of [yieldto] in bytecodedkf2014-01-211-1/+3
| | |
| | * added compilation for [nextto]dkf2014-01-191-1/+2
| | |
| * | extend [string is] to booleansdkf2014-01-131-1/+2
| | |
| * | a different approachdkf2014-01-101-1/+3
| |/
* | merge trunkdkf2014-01-091-7/+58
|\ \ | |/
| * merge main working branchdkf2013-12-301-38/+260
| |\
| | * implement [namespace origin] in bytecodedkf2013-12-301-1/+3
| | |
| | * completed instruction implementationdkf2013-12-281-1/+2
| | |
| | * merge trunkdkf2013-12-231-3/+28
| | |\
| | | * Added new tools for managing and verifying the stack depth during ↵mig2013-12-231-0/+15
| | | | | | | | | | | | | | | | compilation. Used it in some spots in the compiler and in TclCompileCatchCommand.
| | | * remove INST_TRY_CVT_TO_NUMERIC when it is known not be necessary (cherrypick ↵mig2013-12-201-0/+12
| | | | | | | | | | | | | | | | from mig-optimize)
| | | * Add TclRegisterLiteral() to internal stub table (from "mig-optimize" branch, ↵jan.nijtmans2013-12-191-2/+0
| | | | | | | | | | | | | | | | looks like a good idea anyway)
| | | * Making the optimizer pluggable by extensions; please review for committing ↵mig_tmp_optimizemig2013-12-181-1/+1
| | | | | | | | | | | | | | | | to trunk
| | * | merge trunkdkf2013-12-121-8/+9
| | |\ \ | | | |/
| | | * new INST_LMAP_COLLECT, speeds up lmap and eliminates the need for a temp varmig2013-12-101-1/+2
| | | |
| | * | merge trunkdkf2013-12-061-10/+16
| | |\ \ | | | |/
| | | * Stop printing undefined values in disassembled code.dkf2013-12-061-0/+1
| | | |
| | | * New compiler and bytecodes for foreach and lmap: 70% faster mig2013-12-051-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * speed as measured by http://wiki.tcl.tk/39021: runs in <1/3 the time * still need to adapt array-set to use this * assemble.test-16.5 or 16.6 bombs in a purify/symbols build (?) * removing the old opcodes would force recompilation of old .tbc files or adaptation of tbcload
| | * | Now do [string toupper], [string tolower] and [string totitle]. Only handles ↵dkf2013-10-291-4/+8
| | | | | | | | | | | | | | | | the no-indices case; that's the only case anyone actually commonly uses.
| | * | General [concat] compilation.dkf2013-10-261-1/+3
| | | |
| | * | Change name of instruction to make way for future changes.dkf2013-10-261-1/+1
| | | |
| | * | merge trunkdkf2013-10-201-0/+1
| | |\ \ | | | |/
| | | * Working towards better handling of stack balance with break and continue ↵dkf2013-10-081-0/+1
| | | | | | | | | | | | | | | | exceptions.
| | * | cleaner and faster 'string trim'dkf2013-10-031-3/+4
| | | |
| | * | First attempt at [string trim] compilation.dkf2013-09-301-1/+5
| | |/
| * | merge main dev branchdkf2013-01-031-0/+2
| |\ \
| * \ \ merge main dev branchdkf2012-11-051-13/+22
| |\ \ \
| * | | | reorder to preserve main BC development branch sequence betterdkf2012-11-021-3/+3
| | | | |
| * | | | merge dkf-compile-misc-infodkf2012-11-021-1/+3
| |\ \ \ \
| * | | | | Working towards a BCCed [next].dkf2012-11-011-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | This version <i>almost</i> works, except for a problem with restoring the context namespace upon return (which produces very strange results!)
* | | | | | merge trunkdkf2013-08-221-28/+28
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | |
| * | | | | Remove Tcl_Preserve support for ContLineLoc values. It's not needed.dgp2013-08-071-4/+0
| | | | | | | | | | | | | | | | | | This allows the clLoc field of CompileEnv struct to go away too.
| * | | | | Simplify AuxData access with a macro.dgp2013-07-271-0/+9
| | | | | |
| * | | | | Factor out the call to a compileProc into one place used by both ensembledgp2013-07-171-0/+3
| | | | | | | | | | | | | | | | | | subcommand compiles and toplevel command compiles in TclCompileScript.
| * | | | | Eliminate the litInfo table and all the code tending to its care and feeding.dgp2013-07-161-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | The pc -> command index mapping function it provided can be achieved using other data already in the ByteCode struct.
| * | | | | Build CompileBasicNArgCommand on top of TclCompileInvocation.dgp2013-07-151-0/+3
| | | | | |
| * | | | | merge trunkdgp2013-07-151-17/+13
| |\ \ \ \ \
| | * | | | | Global replace: CompileBody() -> BODY().dgp2013-07-121-7/+7
| | | | | | |
| | * | | | | Revise the CompileWord() and PushVarNameWord() macros to make explicit thedgp2013-07-111-10/+6
| | | | | | | | | | | | | | | | | | | | | SetLineInformation() that's in each of them.
| * | | | | | Revise the litInfo table so that it gets built later (in TclInitByteCodeObj)dgp2013-07-101-0/+1
| |/ / / / / | | | | | | | | | | | | from a simpler store of data that can unwind.
* | | | | | Properly encode more operand types to reduce the number of special cases in ↵dkf2013-06-201-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | the disassembler.
* | | | | | Improved rendering of some opcode arguments and auxdata.dkf2013-06-131-0/+10
| | | | | |
* | | | | | Move the disassembler to its own file.dkf2013-06-111-4/+14
|/ / / / /