summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmds.c
Commit message (Collapse)AuthorAgeFilesLines
* * 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:
* * generic/tclCompCmds.c: New convenience macro CompileTokens().Miguel Sofer2005-10-101-16/+20
|
* TIP#237 IMPLEMENTATIONdgp2005-10-081-4/+12
| | | | | | [kennykb-numerics-branch] Resynchronized with the HEAD; at this checkpoint [-rkennykb-numerics-branch-20051008], the HEAD and kennykb-numerics-branch contain identical code.
* Compiler for [dict] and related changes.dkf2005-07-211-54/+588
|
* copy/paste/fail-to-modify error in comment.dgp2005-07-131-2/+2
|
* typosdkf2005-06-201-2/+2
|
* Add compilation for TIP#90-style [catch] requiring a new opcode [Bug1219112]dkf2005-06-201-27/+71
|
* Update error case handling following Mo's updates (which are a good thing)dkf2005-06-201-17/+22
|
* D'oh!dkf2005-06-121-2/+2
|
* Simplify command compilation by moving numerous common stanzas into macros ↵dkf2005-06-121-863/+887
| | | | | | so that things say what they do instead of relying on the code-writer knowing all the basic ropes. Also cleaned up the whitespace/style of the code
* Implementation of TIP#241 from Joe Mistachkindkf2005-06-011-31/+45
| | | | Also compilation of [switch -glob -nocase] from Donal Fellows