summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmds.c
Commit message (Collapse)AuthorAgeFilesLines
...
* | Generalize the ensemble compiler further. Still doesn't precopile rewrites, ↵dkf2007-11-211-50/+138
| | | | | | | | | | | | but now handles many other things making the compiler at least useful.
* | Greatly improved ensemble compiler. This one now can handle any ensemble.dkf2007-11-161-68/+287
| | | | | | | | | | It is usually not enabled though; only worth it when a subcommand is actually expected to undergo bytecode compilation.
* | Compile [info exists] into bytecode. Includes new instructions to support it.dkf2007-11-141-1/+147
| |
* | (TclCompileSwitchCmd): simplify TclReToGlob usage.hobbs2007-11-141-9/+6
| |
* | * generic/tclCompCmds.c (TclCompileRegexpCmd): clean up comments,hobbs2007-11-141-9/+12
| | | | | | | | only free dstring on OK from TclReToGlob.
* | Extend [switch] compiler to handle regular expressions as long as things are notdkf2007-11-131-71/+115
| | | | | | | | | | too complex. Fix [regexp] compiler so that non-trivial literal regexps get fed to INST_REGEXP.
* | * generic/tclCompCmds.c, generic/tclCompile.c, generic/tclCompile.h:hobbs2007-11-121-91/+37
| | | | | | | | | | | | | | | | | | * generic/tclExecute.c, generic/tclInt.decls, generic/tclIntDecls.h: * generic/tclRegexp.c, generic/tclRegexp.h: Add INST_REGEXP and fully * generic/tclStubInit.c, generic/tclUtil.c: compiled [regexp] for the * tests/regexpComp.test: [Bug 1830166] simple cases. Also added TclReToGlob function to convert RE to glob patterns and use these in the possible cases.
* | [Patch 1830038]: Increased usage of macros to detect and take advantage of ↵Miguel Sofer2007-11-111-7/+7
| | | | | | | | objTypes.
* | * generic/tclResult.c (TclMergeReturnOptions): Make sure any -codedgp2007-10-181-2/+8
| | | | | | | | | | | | | | | | values get pulled out of the dictionary, even if they are integer valued. * generic/tclCompCmds.c (TclCompileReturnCmd): Added code to more optimally compile [return -level 0 $x] to "push $x". [RFE 1794073]
* | Add a new command, ::tcl::unsupported::disassembledkf2007-09-251-18/+28
| |
* | * generic/tclCompCmds.c (TclCompileDictCmd-update):Miguel Sofer2007-09-111-17/+33
| | | | | | | | | | | | * generic/tclCompile.c (tclInstructionTable): * generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack management in [dict update] [Bug 1786481].
* | * generic/tclCompCmds.c: Use the new INST_REVERSE instructiondgp2007-09-091-59/+48
| | | | | | | | | | | | | | | | | | * tests/mathop.test: to correct the compiled versions of math operator commands. [Bug 1724437]. * generic/tclCompile.c: New bytecode instruction INST_REVERSE to * generic/tclCompile.h: reverse the order of N items at the top of * generic/tclExecute.c: stack.
* | * generic/tclCompCmds.c (TclCompilePowOpCmd): Make a separatedgp2007-09-091-7/+16
| | | | | | | | routine to compile ** to account for its different associativity.
* | * generic/tclCompExpr.c: Call TclCompileSyntaxError() whendgp2007-08-271-31/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | expression syntax errors are found when compiling expressions. With this in place, convert TclCompileExpr to return void, since there's no longer any need to report TCL_ERROR. * generic/tclCompile.c: Update callers. * generic/tclExecute.c: * generic/tclCompCmds.c: New routine TclCompileSyntaxError() * generic/tclCompile.h: to directly compile bytecodes that report a * generic/tclCompile.c: syntax error, rather than (ab)use a call to TclCompileReturnCmd. Also, undo the most recent commit that papered over some issues with that (ab)use. New routine produces a new opcode INST_SYNTAX, which is a minor variation of INST_RETURN_IMM. Also a bit of constification.
* | * generic/tclCompCmds.c (TclCompileReturnCmd): Added crash protectiondgp2007-08-231-2/+29
| | | | | | | | | | to handle callers other than TclCompileScript() failing to meet the initialization assumptions of the TIP 280 code in CompileWord().
* | VarReform [Patch 1750051]Miguel Sofer2007-07-311-30/+18
| | | | | | | | *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h)
* | 2007-07-11 Miguel Sofer <msofer@users.sf.net>Miguel Sofer2007-07-111-1/+7
| | | | | | | | | | | | | | | | * generic/tclCompCmds.c (TclCompileWhileCmd): * generic/tclCompile.c (TclCompileScript): Corrected faulty avoidance of INST_START_CMD when the first opcode in a script is within a loop (as produced by 'while 1'), so that the corresponding command is properly counted [Bug 1752146].
* | Silence constness warnings for TclStackFree when building with msvc.patthoyts2007-06-281-2/+2
| |
* | * generic/tclInt.decls: Revised the interfaces of the routinesdgp2007-06-201-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclExecute.c: TclStackAlloc and TclStackFree to make them easier for callers to use (or more precisely, harder to misuse). TclStackFree now takes a (void *) argument which is the pointer intended to be freed. TclStackFree will panic if that's not actually the memory the call will free. TSA/TSF also now tolerate receiving (interp == NULL), in which case they simply fall back to be calls to Tcl_Alloc/Tcl_Free. * generic/tclIntDecls.h: make genstubs * generic/tclBasic.c: Updated callers * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCompCmds.c: * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclFCmd.c: * generic/tclFileName.c: * generic/tclIOCmd.c: * generic/tclIndexObj.c: * generic/tclInterp.c: * generic/tclNamesp.c: * generic/tclProc.c: * generic/tclTrace.c: * unix/tclUnixPipe.c:
* | * generic/tclCompCmds.c: Simplified [variable] compiler andMiguel Sofer2007-06-151-11/+2
| | | | | | | | | | * generic/tclExecute.c: executor. Missed updates to "there is always a valid frame".
* | * generic/tclCompCmds.c (TclCompileUpvarCmd): Plugged a memoryKevin B Kenny2007-04-231-1/+4
| | | | | | | | | | | | | | | | leak in 'upvar' when compiling (a) upvar outside a proc, (b) upvar with a syntax error, or (c) upvar where the frame index is not known at compile time. * generic/tclParseExpr.c (ParseExpr): Plugged a memory leak when parsing expressions that contain syntax errors.
* | * generic/tclCompCmds.c: added a cast to silence a compilerKevin B Kenny2007-04-151-2/+2
| | | | | | | | | | | | | | | | error on VC2005. * library/clock.tcl: Restored unique-prefix matching of keywords on the [clock] command. [Bug 1690041] * tests/clock.test: Added rudimentary test cases for unique-prefix matching of keywords.
* | fixing commentsMiguel Sofer2007-04-111-4/+1
| |
* | * generic/tclCompCmds.c: moved all exceptDepth management to theMiguel Sofer2007-04-111-11/+15
| | | | | | | | macros - the decreasing half was managed by hand.
* | * generic/tclBasic.c: Added bytecode compilers for theMiguel Sofer2007-04-031-69/+464
| | | | | | | | | | | | | | | | * generic/tclCompCmds.c: variable linking commands: 'global', * generic/tclCompile.h: 'variable', 'upvar', 'namespace upvar' * generic/tclExecute.c: [Patch 1688593] * generic/tclInt.h: * generic/tclVar.c:
* | * generic/tclCompCmds.c: Replace arrays on the C stack anddgp2007-03-301-43/+31
| | | | | | | | | | ckalloc calls with TclStackAlloc calls to use memory on Tcl's evaluation stack
* | fix warningsdas2007-03-161-2/+2
| |
* | Added a scheme to allow aux-data to be printed out for debugging. For this ↵dkf2007-03-021-25/+189
| | | | | | | | | | | | to work, immediate operands referring to aux-data must be identified as such in the instruction descriptor table using OPERAND_AUX4 (all are always 4 bytes). Rewrote the compiled [dict update] so that it stores critical non-varying data in an aux-data value instead of a (shimmerable) literal. [Bug 1671001]
* | Fix [Bug 1671138]dkf2007-03-011-1/+14
| |
* | A few more very minor changesdkf2007-02-271-20/+11
| |
* | Assorted cleanup, mostly of comments.dkf2007-02-271-195/+227
| |
* | Fix [lindex] argument ordering. [bug 1631364]dkf2007-01-091-9/+13
| |
* | * generic/tclCompCmds.c: Additional commits correct mostdgp2006-12-071-1/+14
| | | | | | | | | | * generic/tclExecute.c: failing tests illustrating bugs uncovered * generic/tclMathOp.c: in [Path 1578137].
* | More #174 bits and piecesdkf2006-12-071-410/+257
| |
* | More TIP 174 compilation bug fixes, consolidations, and improvements.dgp2006-12-061-93/+77
| |
* | * generic/tclCompCmds.c: Revised and consolidated into utilitydgp2006-12-061-113/+105
| | | | | | | | | | * tests/mathop.c: routines some of routines that compile the new TIP 174 commands. This corrects some known bugs. More to come.
* | * generic/tclBasic.c: TIP #280 implementation.andreas_kupries2006-11-281-102/+260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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:
* | Finished coding part of TIP#174. Still have tests and docs to do.dkf2006-11-251-1392/+24
| |
* | Added some more implementationsdkf2006-11-241-3/+274
| |
* | Supply missing #ifdefdgp2006-11-241-1/+3
| |
* | Added Mod implementationdkf2006-11-231-2/+209
| |
* | Added implementations of the interpreted comparison operatorsdkf2006-11-231-15/+561
| |
* | Added some interpreted operator implementationsdkf2006-11-231-7/+61
| |
* | *Partial* implementation of TIP#174. Still needs non-compiled versions of mostdkf2006-11-231-1/+962
| | | | | | | | operators, plus docs and tests.
* | Minor simplification of memcpy usagedkf2006-11-081-51/+91
| |
* | Various minor object file size efficiency fixes. [Bug 1530474]dkf2006-08-101-2/+2
| |
* | Fix [Bug 1382528]; thanks to Anton Kovalenko for finding this.dkf2005-12-181-13/+16
| |
* | New TEBC opcode, INST_JUMP_TABLE, for compiling the simple (and common) case ofdkf2005-11-301-1/+237
| | | | | | | | | | [switch] into a jump-table. Much faster for long switches. Also compiler support for generating the new instruction where appropriate.
* | ANSIfy; generic/*.c now all done except for test codedkf2005-11-021-168/+178
| |
* | * generic/tclClock.c: Removed some dead code.dgp2005-10-191-42/+9
| | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdIL.c: * generic/tclCompCmds.c: * generic/tclDictObj.c: * generic/tclExecute.c: * generic/tclLiteral.c: * generic/tclParseExpr.c: * generic/tclScan.c: * generic/tclUtil.c: * generic/tclVar.c: