summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
Commit message (Collapse)AuthorAgeFilesLines
...
* | * generic/tclBasic.c (DeleteInterpProc,TclArgumentBCEnter,andreas_kupries2009-07-141-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | Cast wide integer to int conversion and some signed/unsigned conversions. ↵patthoyts2009-07-011-11/+11
| | | | | | | | (silence msvc6 warnings)
* | * generic/tclExecute.c: Replace dynamically-initialized table withdgp2009-06-021-44/+10
| | | | | | | | | | a table of static constants in the lookup table for exponent operator computations that fit in a 64 bit integer result.
* | * generic/tclExecute.c: Corrected implementations and selectiondgp2009-06-021-41/+64
| | | | | | | | logic of the INST_EXPON instruction to fix [Bug 2798543].
* | * generic/tclCmdMZ.c: Improve overflow error message fromdgp2009-05-061-1/+3
| | | | | | | | [string repeat]. [Bug 2582327]
* | * generic/tclExecute.c (INST_CONCAT1): Panic when appends overflowdgp2009-03-201-2/+10
| | | | | | | | the max length of a Tcl value. [Bug 2669109]
* | Backport re-fix of [2431847]ferrieux2008-12-161-5/+2
| |
* | Fix [Bug 2431847]dkf2008-12-151-2/+5
| |
* | * generic/tclExecute.c: Stopped faulty double-logging of errors todgp2008-08-041-1/+11
| | | | | | | | | | | | * tests/execute.test: stack trace when a compile epoch bump triggers fallback to direct evaluation of commands in a compiled script. [Bug 2037338]
* | * generic/tclExecute.c: fix [Bug 2030670] that causeMiguel Sofer2008-07-291-5/+6
| | | | | | | | | | TclStackRealloc to panic on rare corner cases. Thx ajpasadyn for diagnose and patch.
* | * generic/tclBasic.c: Reworked the handling of bytecode literalsandreas_kupries2008-07-221-1/+5
| | | | | | | | | | | | | | | | | | | | * 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].
* | backport enhanced commentsdgp2008-04-081-5/+18
| |
* | fix and simplify the OFFSET computation for TclStackAllocMiguel Sofer2008-03-181-5/+4
| |
* | * generic/tclExecute.c: Patch from Miguel Sofer to correct thedgp2008-03-181-11/+4
| | | | | | | | alignment of memory allocated by GrowEvaluationStack(). [Bug 1914503]
* | typodgp2008-03-101-2/+2
| |
* | commentary cleanupdgp2008-03-071-3/+3
| |
* | * generic/tclExecute.c (Tcl_ExprObj): Revised expression bytecodedgp2008-03-071-41/+107
| | | | | | | | | | | | compiling so that bytecodes invalid due to changing context or due to the difference between expressions and scripts are not reused. [Bug 1899164].
* | * generic/tclResult.c (Tcl_SetReturnOptions): Revised the refcountdgp2008-02-291-1/+2
| | | | | | | | | | | | | | | | | | | | management of Tcl_SetReturnOptions to become that of a conventional Consumer routine. Thanks to Peter Spjuth for pointing out the difficulties calling Tcl_SetReturnOptions with non-0-count value for options. * generic/tclExecute.c (INST_RETURN_STK): Revised the one caller within Tcl itself which passes a non-0-count value to Tcl_SetReturnOptions().
* | fix comments in INST_CONCATMiguel Sofer2008-02-041-5/+4
| |
* | * generic/tclExecute.c (INST_CONCAT1): fix optimisation forMiguel Sofer2008-02-041-3/+6
| | | | | | | | in-place concatenation (was going over String type)
* | Reconcile coding style issues between branchesdgp2008-01-231-6/+9
| |
* | * generic/tclCompExpr.c: add an 'optimize' argument toMiguel Sofer2008-01-161-9/+2
| | | | | | | | | | | | * generic/tclCompile.c: TclCompileExpr() to profit from better * generic/tclCompile.h: literal management according to usage. * generic/tclExecute.c:
* | * generic/tclCompExpr.c: Fix literal leak in exprs [Bug 1869989]Miguel Sofer2008-01-161-1/+8
| | | | | | | | * generic/tclExecute.c: (dgp)
* | * generic/tclAlloc.c:Miguel Sofer2007-12-171-21/+61
| | | | | | | | | | | | | | | | * generic/tclExecute.c: * generic/tclInt.h: * generic/tclThreadAlloc.c: Fix alignment for memory returned by TclStackAlloc; insure that all memory allocators align to 16-byte boundaries on 64 bit platforms [Bug 1851832, 1851524]
* | merge stable branch onto HEADdgp2007-12-131-1/+1
| |
* | * generic/tclInt.decls: move TclByteArrayMatch and TclReToGlobhobbs2007-12-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclIntDecls.h: to tclInt.h from stubs. * generic/tclStubInit.c: Add flags var to TclByteArrayMatch for * generic/tclInt.h: future extensibility * generic/tcl.h: define TCL_MATCH_EXACT doc for Tcl_StringCaseMatch. * doc/StrMatch.3: It is compatible with existing usage. * generic/tclExecute.c (INST_STR_MATCH): flag for TclByteArrayMatch * generic/tclUtil.c (TclByteArrayMatch, TclStringMatchObj): * generic/tclRegexp.c (Tcl_RegExpExecObj): * generic/tclCmdMZ.c (StringMatchCmd): Use TclStringMatchObj * tests/string.test (11.9.* 11.10.*): more tests
* | * generic/tclExecute.c (TclExecuteByteCode INST_REGEXP):hobbs2007-12-071-8/+4
| | | | | | | | | | * generic/tclCompCmds.c (TclCompileRegexpCmd): Pass correct RE compile flags at compile time, and use TCL_REG_NOSUB.
* | * generic/tclExecute.c (TclExecuteByteCode INST_REGEXP): Usehobbs2007-12-071-2/+5
| | | | | | | | TCL_REG_NOSUB as we come here without capture vars.
* | INST_EXIST_*: simplify result settingdas2007-11-191-26/+9
| |
* | Minor fixes (e.g. comment readability)dkf2007-11-181-251/+296
| |
* | * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): Fix readdas2007-11-171-20/+30
| | | | | | | | traces not firing on non-existent array elements. [Bug 1833522]
* | move TCL_DTRACE_INST_NEXT after async handlers checkdas2007-11-161-3/+3
| |
* | Compile [info exists] into bytecode. Includes new instructions to support it.dkf2007-11-141-1/+116
| |
* | RE: [Patch 1830184] TclResetResultMiguel Sofer2007-11-121-3/+3
| | | | | | | | | | | | THIS PATCH WAS REVERTED: initial (mis)measurements overstated the perfomance wins, which turn out to be tiny. Not worth the complication.
* | * generic/tclBasic.c: New macro TclResetResult, new iPtr flagMiguel Sofer2007-11-121-3/+3
| | | | | | | | | | | | | | | | | | * generic/tclExecute.c: bit INTERP_RESULT_UNCLEAN: shortcut for * generic/tclInt.h: Tcl_ResetResult for the "normal" case: * generic/tclProc.c: TCL_OK, no return options, no errorCode * generic/tclResult.c: nor errorInfo, return at normal level. * generic/tclStubLib.c: [Patch 1830184] * generic/tclUtil.c:
* | * generic/tclCompCmds.c, generic/tclCompile.c, generic/tclCompile.h:hobbs2007-11-121-1/+34
| | | | | | | | | | | | | | | | | | * 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-30/+29
| | | | | | | | objTypes.
* | * generic/tclExecute.c: fast path for INST_LIST_INDEX when theMiguel Sofer2007-11-101-7/+20
| | | | | | | | index is not a list.
* | * generic/tclAsync.c:Miguel Sofer2007-11-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | * generic/tclBasic.c: * generic/tclExecute.c: * generic/tclInt.h: * generic/tclUnixInit.c: * generic/tclUnixPort.h: new fields in interp (ekeko!) to cache TSD data that is accessed at each command invocation, access macros to replace Tcl_AsyncReady and TclpCheckStackSpace by much faster variants [Patch 1829248]
* | * generic/tclInt.decls, generic/tclIntDecls.h: Use unsigned char forhobbs2007-11-091-5/+3
| | | | | | | | | | | | * generic/tclExecute.c, generic/tclUtil.c: TclByteArrayMatch and don't allow a nocase option. [Bug 1828296] For INST_STR_MATCH, ignore pattern type for TclByteArrayMatch case.
* | fix (unsigned char*) vs. (char*) warningsdas2007-11-081-3/+3
| |
* | * generic/tclStubInit.c:hobbs2007-11-081-1/+10
| | | | | | | | | | | | | | * generic/tclInt.decls, generic/tclIntDecls.h: added TclByteArrayMatch * generic/tclUtil.c (TclByteArrayMatch): for efficient glob * generic/tclExecute.c (TclExecuteByteCode): matching of ByteArray Tcl_Objs, used in INST_STR_MATCH. [Bug 1827996]
* | * generic/tclCompile.c: Fix comments.Miguel Sofer2007-10-201-2/+2
| | | | | | | | * generic/tclExecute.c:
* | * generic/tclCompExpr.c: Moved a misplaced declaration that blockedKevin B Kenny2007-10-171-5/+9
| | | | | | | | | | | | compilation on VC++. * generic/tclExecute.c: Silenced several VC++ compiler warnings about converting 'long' to 'unsigned short'.
* | Minor cleanup of NULL usagedkf2007-09-171-13/+16
| |
* | * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allowsdas2007-09-131-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 (TclCompileDictCmd-update):Miguel Sofer2007-09-111-2/+2
| | | | | | | | | | | | * generic/tclCompile.c (tclInstructionTable): * generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack management in [dict update] [Bug 1786481].
* | * generic/tclExecute.c: Corrected an off-by-one error in theKevin B Kenny2007-09-111-3/+25
| | | | | | | | | | setting of MaxBaseWide for certain powers. [Bug 1767293 - problem reported in comments when bug was reopened].
* | * generic/tclCompile.c: fix tclInstructionTable entry forMiguel Sofer2007-09-101-8/+1
| | | | | | | | | | | | | | dictUpdateEnd * generic/tclExecute.c: remove unneeded setting of 'cleanup' variable before jumping to checkForCatch.
* | * generic/tclInt.h: Removed the "nsName" Tcl_ObjType from thedgp2007-09-091-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclNamesp.c: registered set. Revised the management of * generic/tclObj.c: the intrep of that Tcl_ObjType. Revised the * tests/obj.test: TclGetNamespaceFromObj() routine to return TCL_ERROR and write a consistent error message when a namespace is not found. [Bug 1588842. Patch 1686862] ***POTENTIAL INCOMPATIBILITY*** For callers of Tcl_GetObjType() on the name "nsName". * generic/tclExecute.c: Update TclGetNamespaceFromObj() callers. * generic/tclProc.c: * tests/apply.test: Updated tests to expect new consistent * tests/namespace-old.test: error message when a namespace is not * tests/namespace.test: found. * tests/upvar.test: