summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
Commit message (Collapse)AuthorAgeFilesLines
* This is [Patch 3168398], Joe Mistachkin's optimisation of Tip #285mig2011-03-011-9/+12
|
* * generic/tclExecute.c (ExprObjCallback): fix object leakmig2011-03-011-1/+0
|
* * generic/tclExecute.c (TEBCresume): store local var array and constants in ↵mig2011-03-011-2/+6
| | | | automatic vars to reduce indirection, slight perf increase
* * generic/tclExecute.c (GrowEvaluationStack): off-by-one error inMiguel Sofer2010-12-301-4/+4
| | | | | | sizing the new allocation - was ok in comment but wrong in the code. Triggered by [Bug 3142026] which happened to require exactly one more than what was in existence.
* * doc/interp.n: [3081184] TIP #378.andreas_kupries2010-11-151-4/+8
| | | | | | | | | | * doc/tclvars.n: Performance fix for TIP #280. * generic/tclBasic.c: * generic/tclExecute.c: * generic/tclInt.h: * generic/tclInterp.c: * tests/info.test: * tests/interp.test:
* [Patch 2995655] Report inner contexts in [info errorstack]ferrieux2010-10-201-11/+35
|
* * generic/tclCompCmds.c (TclCompileDictForCmd): Update the compilationdkf2010-10-201-19/+24
| | | | | | | | * generic/tclCompile.c (tclInstructionTable): of [dict for] so that * generic/tclExecute.c (TEBCresume): it no longer makes any use of INST_DICT_DONE now that's not needed, and make it clearer in the implementation of the instruction that it's just a deprecated form of unset operation. Followup to my commit of 2010-10-16.
* * generic/tclExecute.c (ReleaseDictIterator): Factored out the releasedkf2010-10-161-27/+53
| | | | | of the bytecode-level dictionary iterator information so that the side-conditions on instruction issuing are simpler.
* * generic/tclCompile.c: Alternative fix for [Bugs 467523,983660] wheredgp2010-10-131-3/+3
| | | | * generic/tclExecute.c: sharing of empty scripts is allowed again.
* * generic/tclExecute.c: fix overallocation of exec stack in TEBCMiguel Sofer2010-10-091-4/+6
| | | | (mixing numwords and numbytes)
* * generic/tclExecute.c (TEBCresume): [Bug 3079830]: Added invalidationdkf2010-10-021-1/+24
| | | | of string representations of dictionaries in some cases.
* * generic/tclExecute.c (EvalStatsCmd): change 'evalstats' tohobbs2010-10-021-86/+107
| | | | | | | | | return data to interp by default, or if given an arg, use that as filename to output to (accepts 'stdout' and 'stderr'). Fix output to print used inst count data. * generic/tclCkalloc.c: change TclDumpMemoryInfo sig to allow * generic/tclInt.decls: objPtr as well as FILE* as output. * generic/tclIntDecls.h:
* reverting faulty commitMiguel Sofer2010-09-281-12/+31
|
* * generic/tclExecute.c: remove TEBCreturn() callback, the job canMiguel Sofer2010-09-281-31/+12
| | | | be accomplished by TEBCresume()
* fix error with --enable-symbols=compileMiguel Sofer2010-09-271-9/+9
|
* * generic/tclBasic.c: [Patch 3072080] (minus the itclMiguel Sofer2010-09-271-541/+308
| | | | | | | | | | | | | | * generic/tclCmdIL.c: update): a saner NRE. * generic/tclCompExpr.c: * generic/tclCompile.c: This makes TclNRExecuteByteCode * generic/tclCompile.h: (ex TEBC) to be a normal NRE * generic/tclExecute.c: citizen: it loses its special status. * generic/tclInt.decls: The logic flow within the BC engine is * generic/tclInt.h: simplified considerably. * generic/tclIntDecls.h: * generic/tclObj.c: * generic/tclProc.c: * generic/tclTest.c:
* * tests/stringComp.test: improved string test coveragehobbs2010-09-251-97/+71
| | | | | | | * generic/tclExecute.c (TclExecuteByteCode): merge INST_STR_CMP and INST_STR_EQ/INST_STR_NEQ paths. Speeds up eq/ne/[string eq] with obj-aware comparisons and eq/==/ne/!= with length equality check.
* * generic/tclExecute: one more DECACHE_STACK_INFO() missing; thisMiguel Sofer2010-09-221-2/+2
| | | | fixes [Bug 3072640]
* * generic/tclExecute: protect all possible writes to ::errorInfoMiguel Sofer2010-09-221-2/+44
| | | | | | | or ::errorCode with DECACHE_STACK_INFO(), as they could run traces. The new calls to be protected are Tcl_ResetResult(), Tcl_SetErrorCode(), IllegalExprOperandType(), TclExprFloatError(). The error was triggered by [Patch 3072080].
* * generic/tclOOMethod.c (ProcedureMethodCompiledVarConnect):hobbs2010-09-221-5/+4
| | | | | | | | | * generic/tclVar.c (TclLookupSimpleVar, CompareVarKeys): * generic/tclPathObj.c (Tcl_FSGetNormalizedPath, Tcl_FSEqualPaths): * generic/tclExecute.c (TclExecuteByteCode): * generic/tclIOUtil.c (TclFSCwdPointerEquals): peephole opt * generic/tclResult.c (TclMergeReturnOptions): use memcmp where applicable as possible speedup on some libc variants.
* * generic/tclExecute.c: [Bug 3057639]. Applied patch by Jeff toandreas_kupries2010-09-011-7/+7
| | | | | | | * generic/tclVar.c: make the behaviour of lappend in bytecompiled * tests/append.test: mode consistent with direct-eval and 'append' * tests/appendComp.test: generally. Added tests (append*-9.*) showing the difference.
* * generic/tclBasic.c: New implementation for [tailcall]:Miguel Sofer2010-08-301-20/+1
| | | | | | | | | * generic/tclCmdAH.c: it now schedules the command and returns * generic/tclCmdMZ.c: TCL_RETURN. This fixes all issues with * generic/tclExecute.c: [catch] and [try] - [Bug 3046594], * generic/tclInt.h: [Bug 3047235] and [Bug 3048771]. Thanks * generic/tclNamesp.c: dgp for exploring the dark corners. * tests/tailcall.test: More thorough testing is required.
* Remove many type casts which are no longernecessary as a result of [Patch ↵nijtmans2010-08-221-5/+5
| | | | 3009403]: Signature of Tcl_GetHashKey, Tcl_(Create|Find)HashEntry
* * generic/tclBasic.c: New redesign of [tailcall]: findMiguel Sofer2010-08-181-4/+4
| | | | | | * generic/tclExecute.c: errors early on, so that errorInfo * generic/tclInt.h: contains the proper info [Bug 3047235] * generic/tclNamesp.c:
* * generic/tclBasic.c: Redesign of [tailcall] toMiguel Sofer2010-08-181-38/+1
| | | | | | | | | * generic/tclCmdAH.c: (a) fix #3047235 * generic/tclCompile.h: (b) enable fix for #3046594 * generic/tclExecute.c: (c) enable recursive tailcalls * generic/tclInt.h: * generic/tclNamesp.c: * tests/tailcall.test:
* silence compiler warningsdgp2010-07-191-2/+5
|
* * generic/tclExecute.c (TclExecuteByteCode): Ensure that [dict get]dkf2010-07-151-1/+3
| | | | | * generic/tclDictObj.c (DictGetCmd): always generates an errorCode on a failure to look up an entry.
* * generic/tclExecute.c (IllegalExprOperandType): [Bug 3024379]: Madedkf2010-07-021-1/+2
| | | | | | sure that errors caused by an argument to an operator being outside the domain of the operator all result in ::errorCode being ARITH DOMAIN and not NONE.
* Ensure proper reset of [info errorstack] even when compiling constant expr's ↵ferrieux2010-06-071-6/+4
| | | | with errors.
* * generic/tclBasic.c: Fix for #3008307: make callerPtr chainsMiguel Sofer2010-06-051-3/+1
| | | | | | | | | * generic/tclExecute.c: be traversable accross coro boundaries. Add the special coroutine CallFrame (partially reverting commit of 2009-12-10), as it is needed for coroutines that do not push a CF - eg, those with [eval] as command. Thanks to Colin McCormack (coldstore) and Alexandre Ferrieux for the hard work on this.
* Eliminate some casts to (Tcl_HashTable *)nijtmans2010-05-311-2/+2
|
* * generic/tclExecute.c (TclExecuteByteCode): Restore correct operationdkf2010-05-281-15/+21
| | | | of instruction-level execution tracing (had been broken by NRE).
* * generic/tclExecute.c (TclExecuteByteCode): Add peephole optimizationdkf2010-04-301-1/+26
| | | | | of the fact that INST_DICT_FIRST and INST_DICT_NEXT always have a conditional jump afterwards.
* Remove unused @MAN2TCLFLAGS@nijtmans2010-04-281-2/+2
| | | | | | | | | | | Move <limits.h> include from tclInt.h to tclWinPort.h, and eliminate unneeded <stdlib.h>, <stdio.h> and <string.h>, which are already in tclInt.h Move "tclInt.h" from regcustom.h up to regex.h. tclAlloc.c: Unneeded <stdio.h> include tclExecute.c: Fix gcc warning: comparison between signed and unsigned
* * generic/tclInt.h (TclIsVarDirectUnsettable): Corrected flags so thatdkf2010-04-281-1908/+1929
| | | | | | | | | | | | | deletion of traces is not optimized out... * generic/tclExecute.c (ExecuteExtendedBinaryMathOp) (TclCompareTwoNumbers,ExecuteExtendedUnaryMathOp,TclExecuteByteCode): [Patch 2981677]: Move the less common arithmetic operations (i.e., exponentiation and operations on non-longs) out of TEBC for a big drop in the overall size of the stack frame for most code. Net effect on speed is minimal (slightly faster overall in tclbench). Also extended the number of places where TRESULT handling is replaced with a jump to dedicated code.
* Code reordering to slightly shorten generated object code.dkf2010-04-271-330/+239
|
* If tclInt.h or tclPort.h is alreadynijtmans2010-04-271-3/+1
| | | | | | | included, don't include <limits.h> again. Follow-up to [Bug 2991415]: tclport.h #included before limits.h See comments in [Bug 2991415]
* * generic/tclBasic.test: modify api of TclSpliceTailcall()Miguel Sofer2010-04-241-2/+2
| | | | | | * generic/tclExecute.c: to fix yieldTo, which had not survived * generic/tclInt.h: the latest mods to tailcall. Thanks kbk for detecting the problem.
* * generic/tclExecute.c (TclExecuteByteCode): Improve commenting anddkf2010-04-191-170/+180
| | | | reduce indentation for the Invocation Block.
* [Bug 2976508] tcl HEAD fails on HP-UXnijtmans2010-03-261-2/+3
|
* Reduce ifdef-fery and size of activation record. More variables shared acrossdkf2010-02-241-603/+449
| | | | instructions than before.
* Convert literal tabs in strings into \t sequences.dkf2010-02-221-59/+59
|
* Unbreak the builddkf2010-01-311-31/+35
|
* Make the [unset] command be bytecode compiled.dkf2010-01-301-340/+480
|
* Improve error code generation from some of the tailcall-related bits of TEBC.dkf2010-01-221-29/+32
|
* * generic/tclCompile.h: NRE-enable direct eval on BC spoilageMiguel Sofer2010-01-211-24/+22
| | | | | * generic/tclExecute.c: [Bug 2910748] * tests/nre.test:
* * generic/tclBasic.c: Release TclPopCallFrame() from itsMiguel Sofer2009-12-131-5/+4
| | | | | * generic/tclExecute.c: tailcall-management duties * generic/tclNamesp.c:
* * generic/tclBasic.c: Moving TclBCArgumentRelease callMiguel Sofer2009-12-131-1/+4
| | | | | * generic/tclExecute.c: from TclNRTailcallObjCmd to TEBC, so that the pairing of the Enter and Release calls is clearer.
* code commentsMiguel Sofer2009-12-111-20/+14
|
* code commentsMiguel Sofer2009-12-111-12/+13
|