summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.c
Commit message (Collapse)AuthorAgeFilesLines
* Added compilation of [array exists], [array set] and [array unset]. Fixed a ↵merge_to_trunkdkf2012-11-051-3/+45
| | | | 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-0/+7
| | | | 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-2/+8
|
* Added more TclOO introspection bytecodes ([info object class], [info object ↵dkf2012-11-021-0/+8
| | | | 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-0/+4
| | | | though; it does not detect tailcall-of-self as a special case.
* Added compilation of [dict create] and [dict merge].dkf2012-11-011-0/+4
|
* Added [dict exists] compilation; implementation is 95% shared with [dict get].dkf2012-10-301-0/+6
|
* Compilation of [string first] and [string range] (with constant indices).dkf2012-10-301-1/+7
|
* Added compilation of simplest practical case of [string map].dkf2012-10-291-0/+5
|
* Working towards a BCCed [yield]; this doesn't work right now.dkf2012-10-261-3/+9
|
* Compile [namespace which -command]; big performance saving in some contexts.dkf2012-10-261-0/+5
|
* yet another small introspector: [self]dkf2012-10-191-0/+3
|
* merge trunkdkf2012-08-041-13/+6
|\
| * Factor out a number of common patterns of use of Tcl_DStringAppend.dkf2012-07-031-13/+6
| |
* | Compilation of misc info sometimes used in high-performance code.dkf2012-03-041-4/+17
|/
* Merged core-8-5-branch segfault fix (commits [39f6ebe301] and [a6aa5be5b7]).andreask2012-02-171-1/+2
|\
| * Fix: Removed C99ism (in-block variable declaration) from commit [39f6ebe301] ↵andreask2012-02-171-1/+3
| | | | | | | | which prevents building with non-gcc compilers, notably AIX, HPUX, Solaris, MSVC6, possibly others.
| * bug fix: avoid segfaulting by deleted interp in RecordByteCodeStatssebres2012-02-171-2/+1
| |
* | (TclInitAuxDataTypeTable): Extended to register the DictUpdateInfo structure ↵andreask2011-12-131-0/+1
| | | | | | | | as an AuxData type. For use by tbcload, tclcompiler.
* | Added support for having the dict var itself referenced by LVT index.dkf2011-10-031-1/+5
| |
* | Experimental compilation of the [dict with] subcommand. No tests yet, and notdkf2011-10-021-0/+10
| | | | | | | | yet certain that the added bytecode opcodes are correct; evaluation is still needed (but the test suite does pass...)
* | 3392070 More complete prevention of Tcl_Obj reference cycles bug_3392070dgp2011-08-161-1/+9
| | | | | | when producing an intrep of ByteCode.
* | Avoid segfaults when RecordByteCodeStats() is called in a deleted interp.dgp2011-07-151-0/+5
|\ \ | |/
| * Avoid segfaults when RecordByteCodeStats() is called in a deleted interp.dgp2011-07-151-0/+5
| |\
| | * Avoid segfaults when RecordByteCodeStats() is called in a deleted interp.dgp2011-07-151-0/+5
| | |
| | * wipdgp2011-07-121-6/+6
| | |
| | * Type mismatches in *printf calls.dgp2011-07-111-2/+2
| | |
| * | silence compiler warningdgp2011-05-251-1/+1
| | |
* | | 3357771 Prevent circular references in values with ByteCode intreps.dgp2011-07-151-1/+13
| | |
* | | platform portable type matching in debug printsdgp2011-07-121-1/+1
| | |
* | | Merged core-8-5-branch, fixup of TIP 280 location mapping.andreask2011-05-171-0/+64
|\ \ \ | |/ /
| * | * generic/tclCompile.c (TclFixupForwardJump): Tracked down and fixedandreask2011-05-171-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclBasic.c (TclArgumentBCEnter): the cause of a violation of my assertion that 'ePtr->nline == objc' in TclArgumentBCEnter. When a bytecode was grown during jump fixup the pc -> command line mapping was not updated. When things aligned just wrong the mapping would direct command A to the data for command B, with a different number of arguments.
* | | Make sure SetFooFromAny routines react reasonably when passed a NULL interp.dgp2011-04-211-2/+6
|\ \ \ | |/ /
| * | Make sure SetFooFromAny routines react reasonably when passed a NULL interp.dgp2011-04-211-2/+6
| |\ \ | | |/
| | * Make sure SetFooFromAny routines react reasonably when passed a NULL interp.dgp2011-04-211-2/+5
| | |
* | | Don't use MODULE_SCOPE in module implementation, only in declaration.jan.nijtmans2011-04-061-1/+1
| | |
* | | Reduce the number of casts used to manage Tcl_Obj internal representations.dkf2011-03-261-1/+1
| | |
* | | Adjust ckalloc/ckfree macros to greatly reduce number of explicit casts indkf2011-03-121-73/+74
| | | | | | | | | rest of Tcl source code. No ABI change. API change *should* be harmless.
* | | MINOR: Formatting fixes, mainly to comments, so code better fits the style indkf2011-03-101-3/+3
| | | | | | | | | the Engineering Manual.
* | | * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() callsdgp2011-03-061-2/+4
|\ \ \ | |/ / | | | | | | | | | | | | * generic/tclCompile.c: with TclParseBackslash() where possible. * generic/tclCompCmdsSZ.c: * generic/tclParse.c: * generic/tclUtil.c:
| * | * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() callsdgp2011-03-061-3/+5
| |\ \ | | |/ | | | | | | | | | * generic/tclCompile.c: with TclParseBackslash() where possible. * generic/tclParse.c: * generic/tclUtil.c:
| | * * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() callsdgp2011-03-061-2/+2
| | | | | | | | | | | | | | | | | | * generic/tclCmdMZ.c: with TclParseBackslash() where possible. * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclUtil.c:
* | | Renamed struct TEOV_callback to the more descriptive NRE_callback.Miguel Sofer2011-03-051-1/+1
| | |
* | | 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/tclCompile.c: [Bug 2949302]: Fixed leak of supportandreas_kupries2010-02-111-18/+47
| | | | | | | | | | | | | | | structures for [info frame] which occured when bytecode compilation fails.
| | * silence compiler warningsdgp2009-08-261-2/+2
| | |
| | * * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-13/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-55/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).