summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.h
Commit message (Collapse)AuthorAgeFilesLines
* TEBC is almost gone, down to 44 insts mostly for math. No commands aremig2013-01-151-1528/+11
|\ | | | | | | compiled, all (including [set]) are dispatched via EvalObjv. This is just a removal, redesign and reconstruction still pending ...
| * remove tip348: errorstackmig2013-01-141-8/+0
| |\
| * \ merge trunkmig2013-01-081-1/+3
| |\ \
* | | | backout novem - merges are noisy enough as it ismig2013-01-141-2/+2
| |_|/ |/| |
* | | remove tip348: errorstackmig2013-01-141-8/+0
| | |
* | | merge novemmig2013-01-061-2/+2
|\ \ \
| * \ \ merge trunkjan.nijtmans2013-01-051-1/+3
| |\ \ \ | | | |/ | | |/|
| * | | remove unnecessary struct names, which only pollute the "struct" namespace ↵jan.nijtmans2012-12-211-4/+4
| |\ \ \ | | | | | | | | | | | | | | | for the compiler.
| | * | | remove unnecessary struct names, which only pollute the "struct" namespace ↵jan.nijtmans2012-08-201-4/+4
| | | | | | | | | | | | | | | | | | | | for te compiler.
* | | | | merge mig-alloc-reformmig2013-01-031-1/+3
|\ \ \ \ \ | | |_|/ / | |/| | / | |_|_|/ |/| | |
| * | | Working towards more efficient treatment of non-bytecoded ensemble subcommands.dkf2012-12-311-1/+3
| |/ /
* | | merge trunkmig2013-01-011-3/+49
|\ \ \ | |/ /
| * | Added compilation of [array exists], [array set] and [array unset]. Fixed a ↵merge_to_trunkdkf2012-11-051-1/+7
| | | | | | | | | | | | 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-13/+15
| | | | | | | | | | | | range]. This in turn enables compilation of [namespace qualifiers] and [namespace tail] (also done).
| * | Added compilation of [info object isa object] (i.e., object verification).dkf2012-11-031-1/+2
| | |
| * | Added more TclOO introspection bytecodes ([info object class], [info object ↵dkf2012-11-021-1/+3
| | | | | | | | | | | | namespace]). Also moved TclOO-in-8.6 to using the main Tcl internal ensemble builder.
| * | Added compilation of [tailcall]. Not a particularly efficient compilation ↵dkf2012-11-011-7/+8
| | | | | | | | | | | | though; it does not detect tailcall-of-self as a special case.
| * | Added compilation of [dict create] and [dict merge].dkf2012-11-011-12/+13
| | |
| * | Added [dict exists] compilation; implementation is 95% shared with [dict get].dkf2012-10-301-12/+13
| | |
| * | Compilation of [string first] and [string range] (with constant indices).dkf2012-10-301-8/+10
| | |
| * | Added compilation of simplest practical case of [string map].dkf2012-10-291-8/+11
| | |
| * | Working towards a BCCed [yield]; this doesn't work right now.dkf2012-10-261-7/+10
| | |
| * | Compile [namespace which -command]; big performance saving in some contexts.dkf2012-10-261-2/+3
| | |
| * | yet another small introspector: [self]dkf2012-10-191-1/+2
| | |
| * | merge trunkdkf2012-08-041-2/+11
| |\ \ | | |/
| | * Factor out a number of common patterns of use of Tcl_DStringAppend.dkf2012-07-031-0/+10
| | |
| | * NRInterpCoroutine -> TclNRInterpCoroutinejan.nijtmans2012-07-021-2/+1
| | | | | | | | | | | | make NRCommand static make TalInstructionTable static const
| * | Compilation of misc info sometimes used in high-performance code.dkf2012-03-041-1/+7
| |/
| * Commit of patch relating to interp resolversdkf2011-10-151-0/+2
| |
| * * generic/tclCompCmds.c (TclCompileDictWithCmd): Corrected handling ofdkf2011-10-091-0/+1
| | | | | | | | qualified names, and added spacial cases for empty bodies (used when [dict with] is just used for extracting variables).
| * Added support for having the dict var itself referenced by LVT index.dkf2011-10-031-2/+3
| |
| * Experimental compilation of the [dict with] subcommand. No tests yet, and notdkf2011-10-021-1/+4
| | | | | | | | yet certain that the added bytecode opcodes are correct; evaluation is still needed (but the test suite does pass...)
* | branch with tip #280 removed, for perf impact measurementsmig2011-03-241-56/+2
|/
* 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).
| * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-021-2/+0
| |\ | | | | | | more harm than good. Purged them.
| | * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-011-2/+0
| | | | | | | | | more harm than good. Purged them.
| | * * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, TclEvalObjEx): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, ListLines): * generic/tclCompCmds.c (*): * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv, TclFreeCompileEnv, TclCompileScript): * generic/tclCompile.h (CompileEnv): * generic/tclInt.h (ContLineLoc, Interp): * generic/tclObj.c (ThreadSpecificData, ContLineLocFree, TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter, TclContinuationsEnterDerived, TclContinuationsCopy, TclContinuationsGet, TclFreeObj): * generic/tclProc.c (TclCreateProc): * generic/tclVar.c (TclPtrSetVar): * tests/info.test (info-30.0-22): Extended parser, compiler, and execution with code and attendant data structures tracking the positions of continuation lines which are not visible in script's, to properly account for them while counting lines for #280, during direct and compiled execution.
| | * * generic/tclBasic.c (DeleteInterpProc,TclArgumentBCEnter,andreas_kupries2009-07-141-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TclArgumentBCRelease, TclArgumentGet): * generic/tclCompile.c (EnterCmdWordIndex, TclCleanupByteCode, TclInitCompileEnv, TclCompileScript): * generic/tclCompile.h (ExtCmdLoc): * generic/tclExecute.c (TclExecuteByteCode): * generic/tclInt.h (ExtIndex, CFWordBC): * tests/info.test (info-39.0): Backport of some changes made to the Tcl head, to handle literal sharing better. The code here is much simpler (trimmed down) compared to the head as the 8.4 branch is not bytecode compiling whole files, and doesn't compile eval'd code either. Reworked the handling of literal command arguments in bytecode to be saved (compiler) and used (execution) per command (See the TCL_INVOKE_STK* instructions), and not per the whole bytecode. This removes the problems with location data caused by literal sharing in proc bodies. Simplified the associated datastructures (ExtIndex is gone, as is the function EnterCmdWordIndex).
| | * * generic/tclCompile.h: add support for debug logging of DTracedas2008-08-141-2/+111
| | | | | | | | | | | | | | | * generic/tclBasic.c: 'proc', 'cmd' and 'inst' probes (does _not_ require a platform with DTrace).
| | * * generic/tclCompile.c: Made the new TclEnterCmdWordIndexandreas_kupries2008-07-221-4/+1
| | | | | | | | | | | | * generic/tclCompile.h: static.
| | * * generic/tclBasic.c: Reworked the handling of bytecode literalsandreas_kupries2008-07-221-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCompile.c: for #280 to fix the abysmal performance * generic/tclCompile.h: for deep recursion, replaced the linear * generic/tclExecute.c: search through the whole stack with * generic/tclInt.h: another hashtable and simplified the data structure used by the compiler (array instead of hashtable). Incidentially this also fixes the memory leak reported via [Bug 2024937].
| | * * generic/tclBasic.c: Extended the existing TIP #280 system (infoandreas_kupries2008-07-211-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdAH.c: frame), added the ability to track the * generic/tclCompCmds.c: absolute location of literal procedure * generic/tclCompile.c: arguments, and making this information * generic/tclCompile.h: available to uplevel, eval, and * generic/tclInterp.c: siblings. This allows proper tracking of * generic/tclInt.h: absolute location through custom (Tcl-coded) * generic/tclNamesp.c: control structures based on uplevel, etc. * generic/tclProc.c:
| | * * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allowsdas2007-09-131-1/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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/Makefile: enable DTrace support. * unix/configure: autoconf-2.13
| | * * generic/tclBasic.c: TIP #280 implementation, conditional on the define ↵andreas_kupries2006-11-281-6/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TCL_TIP280. * 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:
| * | * generic/tclCompile.c: [Bug 2933089]: A literal sharing problem withandreas_kupries2010-02-021-1/+5
| | | | | | | | | | | | | | | | | | * generic/tclCompile.h: 'info frame' affects not only 8.6 but 8.5 as * generic/tclExecute.h: well. Backported the fix done in 8.6, without * tests/info.test: changes. New testcase info-39.1.
| * | * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, TclEvalObjEx): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines): * generic/tclCompCmds.c (*): * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv, TclFreeCompileEnv, TclCompileScript): * generic/tclCompile.h (CompileEnv): * generic/tclInt.h (ContLineLoc, Interp): * generic/tclObj.c (ThreadSpecificData, ContLineLocFree, TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter, TclContinuationsEnterDerived, TclContinuationsCopy, TclContinuationsGet, TclFreeObj): * generic/tclParse.c (TclSubstTokens, Tcl_SubstObj): * generic/tclProc.c (TclCreateProc): * generic/tclVar.c (TclPtrSetVar): * tests/info.test (info-30.0-24): Extended parser, compiler, and execution with code and attendant data structures tracking the positions of continuation lines which are not visible in script Tcl_Obj*'s, to properly account for them while counting lines for #280.
| * | * generic/tclBasic.c (DeleteInterpProc,TclArgumentBCEnter,andreas_kupries2009-07-141-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TclArgumentBCRelease, TclArgumentGet): * generic/tclCompile.c (EnterCmdWordIndex, TclCleanupByteCode, TclInitCompileEnv, TclCompileScript): * generic/tclCompile.h (ExtCmdLoc): * generic/tclExecute.c (TclExecuteByteCode): * generic/tclInt.h (ExtIndex, CFWordBC): * tests/info.test (info-39.0): Backport of some changes made to the Tcl head, to handle literal sharing better. The code here is much simpler (trimmed down) compared to the head as the 8.5 branch is not bytecode compiling whole files, and doesn't compile eval'd code either. Reworked the handling of literal command arguments in bytecode to be saved (compiler) and used (execution) per command (See the TCL_INVOKE_STK* instructions), and not per the whole bytecode. This removes the problems with location data caused by literal sharing in proc bodies. Simplified the associated datastructures (ExtIndex is gone, as is the function EnterCmdWordIndex).
| * | typodas2008-08-141-4/+1
| | |
| * | * generic/tclCompile.h: add support for debug logging of DTracedas2008-08-141-2/+122
| | | | | | | | | | | | | | | * generic/tclBasic.c: 'proc', 'cmd' and 'inst' probes (does _not_ require a platform with DTrace).
| * | * generic/tclCompile.c: Made the new TclEnterCmdWordIndexandreas_kupries2008-07-221-4/+1
| | | | | | | | | | | | * generic/tclCompile.h: static, and ansified.