summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.h
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclCompile.h: Demote TclCompEvalObj() from internal stubs todgp2008-01-231-6/+3
| | | | | | | * generic/tclInt.decls: a MODULE_SCOPE routine declared in tclCompile.h. * generic/tclIntDecls.h: make genstubs * generic/tclStubInit.c:
* * generic/tclCompExpr.c: add an 'optimize' argument toMiguel Sofer2008-01-161-2/+2
| | | | | | * generic/tclCompile.c: TclCompileExpr() to profit from better * generic/tclCompile.h: literal management according to usage. * generic/tclExecute.c:
* * generic/tclBasic.c: Replacing 'operator' by 'op' in the defMiguel Sofer2008-01-151-2/+2
| | | | | * generic/tclCompExpr.c: of struct TclOpCmdClientData to * generic/tclCompile.h: accomodate C++ compilers [Bug 1855644]
* merge stable branch onto HEADdgp2007-12-131-1/+1
|
* typodkf2007-11-141-2/+2
|
* Compile [info exists] into bytecode. Includes new instructions to support it.dkf2007-11-141-2/+8
|
* * generic/tclCompCmds.c, generic/tclCompile.c, generic/tclCompile.h:hobbs2007-11-121-2/+6
| | | | | | | | | * 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.
* * generic/tclCompile.h:Miguel Sofer2007-10-271-3/+1
| | | | | | * generic/tclInt.h: moved declaration of TclSetCmdNameObj from tclCompile.h to tclInt.h, reverting linker [Bug 1821159] caused by commit of 2007-10-11 (both I and gcc missed one dep).
* whitespacedas2007-10-251-4/+4
|
* Add a new command, ::tcl::unsupported::disassembledkf2007-09-251-10/+11
|
* * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allowsdas2007-09-131-1/+90
| | | | | | | | | | | | | | | | | | * generic/tclCompile.h: tracing of proc and command entry & * generic/tclBasic.c: return, bytecode execution, object * generic/tclExecute.c: allocation and more; with essentially * generic/tclInt.h: zero cost when tracing is inactive; * generic/tclObj.c: enable with --enable-dtrace configure * generic/tclProc.c: arg (disabled by default, will only * unix/Makefile.in: enable if DTrace is present). * unix/configure.in: [Patch 1793984] * macosx/GNUmakefile: enable DTrace support. * macosx/Tcl-Common.xcconfig: * macosx/Tcl.xcodeproj/project.pbxproj: * unix/configure: autoconf-2.59 * unix/tclConfig.h.in: autoheader-2.59
* * generic/tclCompCmds.c: Use the new INST_REVERSE instructiondgp2007-09-091-2/+6
| | | | | | | | | * 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/tclBasic.c: Used unions to better clarify overloading ofdgp2007-08-281-2/+5
| | | | | * generic/tclCompExpr.c: the fields of the OpCmdInfo and * generic/tclCompile.h: TclOpCmdClientData structs.
* * generic/tclCompExpr.c: Call TclCompileSyntaxError() whendgp2007-08-271-7/+13
| | | | | | | | | | | | | | | | 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.
* VarReform [Patch 1750051]Miguel Sofer2007-07-311-2/+9
| | | | *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h)
* Fix comments referring to {expand}. [Bug 1600859]dkf2007-06-211-2/+2
|
* * generic/tclCompile.c: reverted TclEvalObjvInternal andMiguel Sofer2007-06-151-4/+1
| | | | | | | | | | | | * generic/tclExecute.c: INST_INVOKE to essentially what they were * generic/tclBasic.c: previous to the commit of 2007-04-03 [Patch 1693802] and the subsequent optimisations, as they break the new trace tests described below. * generic/trace.test: added tests 36 to 38 for dynamic trace creation and addition. These tests expose a change in dynamics due to a recent round of optimisations. The "correct" behaviour is not described in docs nor TIP 62.
* * generic/tclBasic.c: Further TEOvI split, creating a newMiguel Sofer2007-06-101-3/+5
| | | | | | | * generic/tclCompile.h: TclEvalObjvKnownCommand() function to * generic/tclExecute.c: handle commands that are already known and are not traced. INST_INVOKE now calls into this function instead of inlining parts of TEOvI. Same perf, better isolation.
* * generic/tclBasic.c: Removed code that dealt withdgp2007-05-301-2/+1
| | | | | | | | | | | | | | | | * generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing * generic/tclCompile.h: expanded literal words. These sections were mostly in place to enable [info frame] to discover line information in expanded literals. Since the parser now generates a token for each post-expansion word referring to the right location in the original script string, [info frame] gets all the data it needs. * generic/tclInt.h: Revised the parser so that it never produces * generic/tclParse.c: TCL_TOKEN_EXPAND_WORD tokens when parsing an * tests/parse.test: expanded literal word; that is, something like {*}{x y z}. Instead, generate the series of TCL_TOKEN_SIMPLE_WORD tokens to represent the words that expansion of the literal string produces. [RFE 1725186]
* * generic/tclBasic.c: Added bytecode compilers for theMiguel Sofer2007-04-031-4/+11
| | | | | | | | * 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:
* Added a scheme to allow aux-data to be printed out for debugging. For this ↵dkf2007-03-021-4/+31
| | | | | | 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]
* More efficient issuing of INST_START_CMD instructions. See ChangeLog for ↵dkf2007-01-191-5/+14
| | | | discussion
* Cleanup to follow engineering manual guidelinesdkf2006-12-131-27/+29
|
* * generic/tclBasic.c: Final step routing all direct evaluation formsdgp2006-12-121-1/+7
| | | | | | * generic/tclCompExpr.c: of the operator commands through TEBC, * generic/tclCompile.h: dropping all the routines in tclMathOp.c. * generic/tclMathOp.c: Still needs Engineering Manual attention.
* * generic/tclBasic.c: Another step with all sorting operator commandsdgp2006-12-111-1/+4
| | | | | * generic/tclCompExpr.c: now routing through TEBC via * generic/tclCompile.h: TclSortingOpCmd().
* * generic/tclBasic.c: Another step down the path of re-usingdgp2006-12-081-1/+14
| | | | | | | | * generic/tclCompExpr.c: TclExecuteByteCode to implement the TIP 174 * generic/tclCompile.h: commands instead of using a mass of code * generic/tclMathOp.c: duplication. Now all operator commands that * tests/mathop.test: demand exactly one operation are implemented via TclSingleOpCmd and a call to TEBC.
* * generic/tclCompExpr.c: Revised implementation of TclInvertOpCmddgp2006-12-081-1/+3
| | | | | | | | | | * generic/tclMathOp.c: to perform a bytecode compile / execute sequence. This demonstrates a path toward avoiding mountains of code duplication in tclMathOp.c and tclExecute.c. * generic/tclCompile.h: Change TclExecuteByteCode() from static to * generic/tclExecute.c: MODULE_SCOPE so all files including tclCompile.h may call it.
* * generic/tclBasic.c: TIP #280 implementation.andreas_kupries2006-11-281-2/+35
| | | | | | | | | | | | | | | | | | | | | * 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:
* New TEBC opcode, INST_JUMP_TABLE, for compiling the simple (and common) case ofdkf2005-11-301-3/+23
| | | | | [switch] into a jump-table. Much faster for long switches. Also compiler support for generating the new instruction where appropriate.
* Scrap _ANSI_ARGS_ macro use, yay!dkf2005-10-121-97/+92
|
* Compiler for [dict] and related changes.dkf2005-07-211-3/+20
|
* Oopsdkf2005-07-141-2/+2
|
* Style improvements to tclCompile.c, plus bytecode printing enhancements.dkf2005-07-141-1/+6
|
* Add compilation for TIP#90-style [catch] requiring a new opcode [Bug1219112]dkf2005-06-201-294/+285
|
* Merged kennykb-numerics-branch back to the head; TIPs 132 and 232Kevin B Kenny2005-05-101-59/+1
|
* * generic/tclCompile.h: Move the TclInterpReady() declaration fromdgp2005-03-251-3/+1
| | | | | | | | | | * generic/tclInt.h: tclCompile.h to tclInt.h. Should have been done as part of the 1115904 bug fix on 2005-03-18. * generic/tclThreadTest.c: Stop providing the phony package "Thread 1.0" when the [::testthread] command is defined. It's never used by anything, and conflicts with loading the real "Thread" package.
* Avoid sharing cmdName literals accross namespaces, and generalise usage ofMiguel Sofer2004-12-241-5/+19
| | | | the TclRegisterNewLiteral macro [Patch 1090905]
* optimised loops that initialise a proc's arguments and compiled localMiguel Sofer2004-12-101-1/+9
| | | | variables, removing tests from inner loops.
* * generic/tclCompile.h: Removed extrainious reset ofdavygrvy2004-11-031-4/+1
| | | | TCL_STORAGE_CLASS missed in last edit.
* * generic/tclCompile.h: Exchanged use of the EXTERN macro to the new ↵davygrvy2004-11-031-71/+66
| | | | | | MODULE_SCOPE macro. Lowered exported internals count by 35.
* Core of implementation of TIP#201 ('in' and 'ni' operators)dkf2004-10-081-2/+5
|
* Report compilation errors at runtime, [Patch 103368] by dgp.Miguel Sofer2004-09-261-5/+5
|
* Moved declaration of TclCompEvalObj() from tclCompile.h to the internalMiguel Sofer2004-07-031-1/+5
| | | | stubs table, for compiler experimentation.
* * generic/tclCompile.h:Miguel Sofer2004-05-161-36/+27
| | | | | | | | | | | * generic/tclCompile.c: * generic/tclExecute.c: changed implementation of {expand}, last chance while in alpha as ... ***POTENTIAL INCOMPATIBILITY*** Scripts precompiled with ProComp under previous tcl8.5a versions may malfunction due to changed instruction numbers for INST_LIST_INDEX_IMM, INST_LIST_RANGE_IMM and INST_START_CMD.
* * generic/tclExecute.h:Miguel Sofer2004-05-141-2/+2
| | | | | | | * generic/tclCompile.h: the math functions receive a pointer to top of the stack (tosPtr) instead of the execution environment (eePtr). First step towards a change in the execution stack management - it is now only used within TEBC.
* * generic/tclCompile.h: removed redundant #ifdef _TCLINTMiguel Sofer2004-04-021-3/+1
| | | | [Bug 928415], reported by tauvan.
* * generic/tclCompile.c: New instruction code INST_START_CMDMiguel Sofer2004-03-301-2/+4
| | | | | | | | | * generic/tclCompile.h: that allows checking the bytecode's * generic/tclExecute.c: validity [Bug 729692] and the interp's * tests/interp.test (18.9): readyness [Bug 495830] before running * tests/proc.test (7.1): the command. It also changes the * tests/rename.test (6.1): mechanics of the async tests in TEBC, doing it now at command start instead of every 16 instructions.
* Whitespace minimisationdkf2004-01-201-76/+77
|
* Full bytecode compilation for [lassign]dkf2004-01-181-4/+20
|
* Patch 876451: restores performance of [return]. Also allows formsdgp2004-01-131-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | such as [return -code error $msg] to be bytecompiled. * generic/tclInt.h: Factored Tcl_ReturnObjCmd() into two pieces: * generic/tclCmdMZ.c: TclMergeReturnOptions(), which can parse the options to [return], check their validity, and create the corresponding return options dictionary, and TclProcessReturn(), which takes that return options dictionary and performs the [return] operation. * generic/tclCompCmds.c: Rewrote TclCompileReturnCmd() to call TclMergeReturnOptions() at compile time so the return options dictionary is computed at compile time (when it is fully known). The dictionary is pushed on the stack along with the result, and the code and level values are included in the bytecode as operands. Also supports optimized compilation of un-[catch]ed [return]s from procs with default options into the INST_DONE instruction. * generic/tclExecute.c: Rewrote INST_RETURN instruction to retrieve the code and level operands, pop the return options from the stack, and call TclProcessReturn() to perform the [return] operation. * generic/tclCompile.h: New utilities include TclEmitInt4 macro * generic/tclCompile.c: and TclWordKnownAtCompileTime().