summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | New compiler and bytecodes for foreach and lmap: 70% faster mig2013-12-051-2/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * speed as measured by http://wiki.tcl.tk/39021: runs in <1/3 the time * still need to adapt array-set to use this * assemble.test-16.5 or 16.6 bombs in a purify/symbols build (?) * removing the old opcodes would force recompilation of old .tbc files or adaptation of tbcload
| * | | Now do [string toupper], [string tolower] and [string totitle]. Only handles ↵dkf2013-10-291-3/+52
| | | | | | | | | | | | | | | | the no-indices case; that's the only case anyone actually commonly uses.
| * | | General [concat] compilation.dkf2013-10-261-0/+11
| | | |
| * | | Change name of instruction to make way for future changes.dkf2013-10-261-1/+1
| | | |
| * | | corrected trace printingdkf2013-10-221-8/+12
| | | |
| * | | cleaner and faster 'string trim'dkf2013-10-031-6/+28
| | | |
| * | | merge trunkdkf2013-10-031-8/+12
| |\ \ \ | | |/ /
| | * | minor: whitespace correction (my bad!)dkf2013-10-021-2/+2
| | | |
| | * | silence warnings with clangdkf2013-10-021-8/+12
| | | |
| * | | First attempt at [string trim] compilation.dkf2013-09-301-0/+33
| |/ /
| * | [31661d2135] Plug memory leak.dgp2013-09-191-1/+1
| |\ \
| | * | [31661d2135] Plug memory leak.bug_31661d2135dgp2013-09-191-1/+1
| | | |
| * | | Remove assertion that is not true in some circumstances (--enable-dtrace).dgp2013-08-221-2/+1
| | | |
| * | | Consolidate some helper routines.dgp_bye_ctx_eval_flagdgp2013-08-141-8/+19
| | | |
| * | | Use a new flag value TCL_EVAL_SOURCE_IN_FRAME passed in by callers todgp2013-08-121-11/+2
| | | | | | | | | | | | | | | | | | | | determine whether the pre-subst source information in a CmdFrame is to be used. This takes the place of numLevels cross checking, so that field is removed. Routines are consolidated as well.
| * | | Arrange for both execution traces and [info frame] to get their pre-substdgp2013-08-101-2/+17
| | | | | | | | | | | | | | | | source strings from a common routine, with care taken to reduce copying by that routine.
| * | | Add assertions that will guide and protect more discovery of dead code for ↵dgp2013-08-061-3/+5
| | | | | | | | | | | | | | | | elimination.
| * | | Eliminate the union that is no longer needed.dgp2013-08-061-7/+7
| | | |
| * | | Eliminate the litInfo table and all the code tending to its care and feeding.dgp2013-07-161-13/+31
| | | | | | | | | | | | | | | | The pc -> command index mapping function it provided can be achieved using other data already in the ByteCode struct.
| * | | More elimination of error message litter to fix [Bug 20a81392ec].dgp2013-06-281-11/+7
| | | |
| * | | Correct typo detected by valgrind.dgp2013-06-261-1/+1
| | | |
| * | | Revise INST_EXPAND_STKTOP so that it no longer makes use of its operand.dgp2013-06-111-14/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All the information required to do a proper expansion of the exec stack to support expanded command invocation is already present. The operand doesn't provide any essential information. By ignoring it, we eliminate the risk that the compiler might fill in the operand with a bad stack depth estimate value. INST_EXPAND_STKTOP doesn't need an operand, but in order to support loading of existing bytecodes we cannot change it now. There's also no need to change what the compiler tries to place in the operand, though changing it to always be zeros would be acceptable now.
| * | | Repairs to compile/exec debugging output.dgp2013-06-111-7/+10
| | | |
| * | | Repair TCL_COMPILE_DEBUG guardsbug_3614342dgp2013-06-051-5/+7
| | | |
| * | | Stack Depth fixups.dgp2013-06-051-0/+2
| | | |
| * | | merge trunkdkf_compile_improvementsdkf2013-06-051-7/+7
| |\ \ \
| | * \ \ fix for perf bug detected by Kieran ↵mig2013-06-031-7/+7
| | |\ \ \ | | | | |/ | | | |/| | | | | | (https://groups.google.com/forum/?fromgroups#!topic/comp.lang.tcl/vfpI3bc-DkQ)
| | | * | fix for perf bug detected by Kieran ↵mig2013-06-031-5/+6
| | | | | | | | | | | | | | | | | | | | (https://groups.google.com/forum/?fromgroups#!topic/comp.lang.tcl/vfpI3bc-DkQ)
| * | | | Stack cleanup works now even in the most evil expansion cases.dkf2013-06-051-5/+6
| | | | |
| * | | | Next stage of fixing the break/continue generation.dkf2013-06-031-0/+11
| |/ / /
| * | | Don't #define VOID on VxWorks, as it is already typdef'd to void. Eliminate ↵jan.nijtmans2013-05-191-5/+5
| |\ \ \ | | |/ / | | | | | | | | possibly conflicting LOCAL/OFFSET
| | * | Don't #define VOID on VxWorks, as it is already typdef'd to void. Eliminate ↵jan.nijtmans2013-05-191-4/+4
| | |\ \ | | | | | | | | | | | | | | | possibly conflicting LOCAL/OFFSET
| | | * | Protect against multiple uses of a CompileEnv with only one initialization.dgp2013-02-211-18/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Make TclFreeCompileEnv smarter about cleanup so all callers do not have to be. Revise TclSetByteCodeFromAny() so that when hookProc raises an error, bytecode is not generated. This was rumored to cause crashes.
| | | * | Silence some compiler warnings.dgp2013-01-241-0/+3
| | | | |
| | | * | More complete purge of things only present for supporting long-dead Mac 9 ↵dgp2012-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | systems.
| * | | | merge trunkdkf_bcc_optimizedkf2013-05-151-2/+3
| |\ \ \ \
| | * \ \ \ Merged fix to bytecode engine problem. Details in merged revision.andreask2013-05-131-2/+3
| | |\ \ \ \
| | | * | | | Fixed bug in parent revision [832a1994c7] unpredictably breaking thebugfix_832a1994c7_for_precompiled_bcandreask2013-05-131-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | execution of precompiled bytecode (i.e. tbcload'ed bytecode). The semi-inversion of a guard condition dropped the part about TCL_BYTECODE_PRECOMPILED of the original condition, allowing the core to attempt to recompile code for which there are no script sources (anymore), which then fails.
| * | | | | | A better technique for [list {*}blah]. Remove the INST_LIST_EXPANDED opcode ↵dkf2013-05-151-12/+0
| |/ / / / / | | | | | | | | | | | | | | | | | | (and the complex machinery associated with it) as as it is no longer needed.
| * | | | | Fix implementation of INST_LIST_EXPANDED.dkf2013-05-121-1/+5
| | | | | |
| * | | | | Optimizations and general bytecode generation improvements.dkf2013-05-101-6/+56
| | | | | |
| * | | | | Implement Tcl_NewBooleanObj, Tcl_DbNewBooleanObj and Tcl_SetBooleanObj as ↵jan.nijtmans2013-04-231-29/+29
| |\ \ \ \ \ | | | |/ / / | | |/| | | | | | | | | | | | | | | | | | | | | macros using Tcl_NewIntObj, Tcl_DbNewLongObj and Tcl_SetIntObj. Starting with Tcl 8.5, this is exactly the same, it only eliminates code duplication. Eliminate use of NO_WIDE_TYPE everywhere: It's exactly the same as TCL_WIDE_INT_IS_LONG
| | * | | | Tcl_InvalidateStringRep -> TclInvalidateStringRepjan.nijtmans2013-02-071-1/+1
| | | | | |
| * | | | | merge core-8-5-branchjan.nijtmans2013-01-311-6/+5
| |\ \ \ \ \ | | |/ / / /
| | * | | | Use twoPtrValue.ptr1 in stead of otherValuePtr everywhere. This is exactly ↵jan.nijtmans2013-01-311-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | the same field, but it allows twoPtrValue.ptr2 to be used for other purposes.
| * | | | | Eliminate some unneeded usages of Tcl_SetResult, Tcl_AddObjErrorInfojan.nijtmans2013-01-251-2/+2
| | | | | | | | | | | | | | | | | | Fix "make test-packages" on cygwin
| * | | | | Silence some compiler warnings.dgp2013-01-241-1/+0
| |\ \ \ \ \ | | |/ / / /
| | * | | | remove stray calls to Tcl_Alloc and friends: the core should only use ↵mig2013-01-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | ckalloc to allow MEM_DEBUG to work properly
| | * | | | make some more internal tables constjan.nijtmans2012-04-231-2/+2
| | |\ \ \ \ | | | | |/ / | | | |/| |
| | | * | | make some more internal tables constjan.nijtmans2012-04-231-1/+1
| | | | | | | | | | | | | | | | | | On cygwin, install dll's in /usr/bin, not in /usr/lib