summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
Commit message (Collapse)AuthorAgeFilesLines
...
* | | * generic/tclBinary.c: Removed unused variables.dgp2009-07-161-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdIL.c: * generic/tclCompile.c: * generic/tclExecute.c: * generic/tclHash.c: * generic/tclIOUtil.c: * generic/tclVar.c: * generic/tclBasic.c: Silence compiler warnings about ClientData. * generic/tclProc.c: * generic/tclScan.c: Typo in ACCEPT_NAN configuration. * generic/tclStrToD.c: Set floating point control register on MIPS systems so that the gradual underflow expected by Tcl is in effect. [Bug 2819200]
* | | * generic/tclCompile.c (TclInitCompileEnv, EnterCmdWordIndex,andreas_kupries2009-07-141-6/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TclCleanupByteCode, TclCompileScript): * generic/tclExecute.c (TclCompileObj, TclExecuteByteCode): * tclCompile.h (ExtCmdLoc): * tclInt.h (ExtIndex, CFWordBC, CmdFrame): * tclBasic.c (DeleteInterpProc, TclArgumentBCEnter, TclArgumentBCRelease, TclArgumentGet, SAVE_CONTEXT, RESTORE_CONTEXT, NRCoroutineExitCallback, TclNRCoroutineObjCmd): * generic/tclCmdAH.c (TclNRForObjCmd, TclNRForIterCallback, ForNextCallback): * generic/tclCmdMZ.c (TclNRWhileObjCmd): Extended the bytecode compiler initialization to recognize the compilation of whole files (NRE enabled 'source' command) and switch to the counting of absolute lines in that case. Further extended the bytecode compiler to track the start line in the generated information, and modified the bytecode execution to recompile an object if the location as per the calling context doesn't match the location saved in the bytecode. This part could be optimized more by using more memory to keep all possibilities which occur around, or by just adjusting the location information instead of a total recompile. 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, and the previous change remove the problems with location data caused by literal sharing (across whole files, but also proc bodies). Simplified the associated datastructures (ExtIndex is gone, as is the function EnterCmdWordIndex). The last change causes the hashtable 'lineLABCPtr' to be state which has to be kept per coroutine, like the CmdFrame stack. Reworked the coroutine support code to create, delete and switch the information as needed. Further reworked the tailcall command as well, it has to pop its own arguments when run in a bytecode context to keep a proper stack in 'lineLABCPtr'. Fixed the mishandling of line information in the NRE-enabled 'for' and 'while' commands introduced when both were made to share their iteration callbacks without taking into account that the loop body is found in different words of the command. Introduced a separate data structure to hold all the callback information, as we went over the limit of 4 direct client-data values for NRE callbacks. The above fixes [Bug 1605269].
* | | Fix [Bug 2637173] by consolidating bytearray purity check.dkf2009-07-121-5/+5
| | |
* | | fix signed vs unsigned comparison warningsdas2009-06-031-12/+12
| | |
* | | * 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/+63
| | | | | | | | | | | | logic of the INST_EXPON instruction to fix [Bug 2798543].
* | | fix TCL_COMPILE_DEBUG 64bit warningsdas2009-05-161-5/+5
| | |
* | | * generic/tclBasic.c: Let coroutines start with a much smallerMiguel Sofer2009-05-081-7/+6
| | | | | | | | | | | | | | | * generic/tclCompile.h: stack: 200 words (previously was 2000, * generic/tclExecute.c: the same as interps)
* | | * generic/tclCmdMZ.c: Improve overflow error message fromdgp2009-05-061-1/+4
| | | | | | | | | | | | [string repeat]. [Bug 2582327]
* | | * generic/tclBasic.c: Fix for (among others) [Bug 2699087]Miguel Sofer2009-03-211-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdAH.c: Tailcalls now perform properly even from * generic/tclExecute.c: within [eval]ed scripts. * generic/tclInt.h: More tests missing, as well as proper exploration and testing of the interaction with "redirectors" like interp-alias (suspect that it does not happen in constant space) and pure-eval commands.
* | | * generic/tclExecute.c: proper fix for [Bug 2415422]. ReenabledMiguel Sofer2009-03-211-8/+11
| | | | | | | | | | | | | | | | | | * tests/nre.test: the failing assertion that was disabled on 2008-12-18: the assertion is correct, the fault was in the management of expansions.
* | | * generic/tclExecute.c: fix both test and code for tailcallMiguel Sofer2009-03-211-1/+9
| | | | | | | | | | | | * tests/tailcall.test: from within a compiled [eval] body.
* | | * generic/tclExecute.c (INST_CONCAT1): Panic when appends overflowdgp2009-03-201-5/+17
| | | | | | | | | | | | the max length of a Tcl value. [Bug 2669109]
* | | * generic/tcl.h:Miguel Sofer2009-03-191-132/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclInt.h: * generic/tclBasic.c: * generic/tclExecute.c: * generic/tclNamesp.c (Tcl_PopCallFrame): Rewritten tailcall implementation, ::unsupported::atProcExit is (temporarily?) gone. The new approach is much simpler, and also closer to being correct. This commit fixes [Bug 2649975] and [Bug 2695587]. * tests/coroutine.test: Moved the tests to their own files, * tests/tailcall.test: removed the unsupported.test. Added * tests/unsupported.test: tests for the fixed bugs.
* | | * generic/tclCmdMZ.c: Since Tcl_GetCharLength() has its owndgp2009-02-251-22/+6
| | | | | | | | | | | | | | | * generic/tclExecute.c: optimizations for the tclByteArrayType, stop having the callers do them.
* | | Const correctness fixes in the debug build.dgp2009-02-141-5/+5
| | |
* | | - eliminate some unnessary type castsnijtmans2009-02-101-12/+12
| | | | | | | | | | | | | | | - some internal const decorations - spacing
* | | Fix [Bug 2568434]dkf2009-02-051-2/+6
| | |
* | | Style fixes (unfouling whitespace, sorting comments, removing useless casts, ↵dkf2009-01-091-56/+62
| | | | | | | | | | | | etc.)
* | | * generic/tclExecute.c: Disabled apparently faulty assertion.dgp2008-12-181-2/+4
| | | | | | | | | | | | [Bug 2415422].
* | | eliminate -Wwrite-strings warnings in enable-threads build.nijtmans2008-12-161-3/+3
| | | | | | | | | | | | use TclNewLiteralStringObj()
* | | Re-fix [2431847]ferrieux2008-12-161-5/+2
| | |
* | | Fi [Bug 2431847]dkf2008-12-151-2/+5
| | |
* | | Style improvements - invoking callbacks without visual junk.dkf2008-10-261-7/+8
| | |
* | | * generic/tclCompile.h: Declare the internal tclInstructionTabledgp2008-10-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | * generic/tclExecute.c: to simply be "const", not CONST86. * generic/tclCmdAH.c: whitespace. * generic/tclCmdIL.c: Uninitialized variable warning. * generic/tclTest.c: const correctness warning.
* | | Add "const" to many internalnijtmans2008-10-161-27/+27
| | | | | | | | | | | | | | | const tables. No functional or API change.
* | | * generic/tclExecute.c: Fix compile warnings when --enable-symbols=all.dgp2008-10-141-3/+3
| | | | | | | | | | | | | | | * generic/tclCmdIL.c: Fix write to unallocated memory whenever [lrepeat] returns an empty list.
* | | undo "fix warnings from 2008-10-05 constification" (tclExecute.c 1.414), butnijtmans2008-10-071-5/+5
| | | | | | | | | | | | | | | in stead modify two macro's in tclCompile.h with the same affect, but now without polluting C-code with type casts.
* | | fix warnings from 2008-10-05 constificationdas2008-10-071-6/+8
| | |
* | | * generic/tclInt.decls: CONSTified the AuxDataType argumentnijtmans2008-10-051-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCompCmds.c: of TclCreateAuxData and * generic/tclCompile.c TclRegisterAuxDataType and the return * generic/tclCompile.h values of TclGetAuxDataType and * generic/tclExecute.c TclGetInstructionTable * ChangeLog * generic/tclIntDecls.h: regenerated This change complies with TIP #27 (even though it only involves internal function, so this is not even necessary).
* | | * generic/tclExecute.c (NEXT_INST_F):Miguel Sofer2008-09-181-22/+24
| | | | | | | | | | | | | | | * generic/tclInt.h (TCL_CT_ASSERT): new compile-time assertions, adapted from www.pixelbeat.org/programming/gcc/static_assert.html
* | | * tests/nre.test: add missing constraints; enable test of foreachMiguel Sofer2008-09-101-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | recursion. * generic/tclBasic.c: * generic/tclCompile.h: * generic/tclExecute.c (INST_EVAL_STK): fix for [Bug 2102930], wrong numLevels when evaling a canonical list.
* | | * generic/tclCompile.c (TclCompileTokens):Miguel Sofer2008-09-081-7/+7
| | | | | | | | | | | | | | | | | | | | | * generic/tclExecute.c (CompileExprObj): fix a perf bug (found by Alex Ferrieux) where some variables in the LVT where not being accessed by index. Fix missing localCache management in compiled expressions found while analyzing the bug.
* | | * generic/tclExecute.c (CACHE_STACK_INFO):Miguel Sofer2008-09-041-2/+3
| | | | | | | | | | | | | | | * tests/unsupported.test: restore the execEnv's bottomPtr, fix for [Bug 2093188].
* | | * generic/tclBasic.c: Set special errocodes: COROUTINE_BUSY,Miguel Sofer2008-08-231-1/+3
| | | | | | | | | | | | COROUTINE_CANT_YIELD, COROUTINE_ILLEGAL_YIELD.
* | | Squelch warningdkf2008-08-201-2/+2
| | |
* | | * generic/tclBasic.c: Implementation of [coroutine] and [yield]Miguel Sofer2008-08-171-10/+89
| | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdAH.c: commands (in tcl::unsupported). * generic/tclCompile.h: * generic/tclExecute.c: * generic/tclInt.h: * tests/unsupported.test:
* | | fix last commitMiguel Sofer2008-08-161-1/+4
| | |
* | | * generic/tclExecute.c: better cmdFrame managementMiguel Sofer2008-08-161-7/+5
| | |
* | | * generic/tclBasic.c: slight cleanupMiguel Sofer2008-08-091-44/+55
| | | | | | | | | | | | | | | * generic/tclCompile.h: * generic/tclExecute.c:
* | | fix warningsdas2008-08-091-17/+18
| | |
* | | generic/tclExecute.c formatting only: remove spaces at the end of a every ↵nijtmans2008-08-071-53/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | line generic/tclConfig.c make the internal cfg variable const. generic/tclTrace.c add a "const" keyword, allowing the "traceSubCmds[]" array to be placed by the C- compiler in a code segment in stead of a data segment Those harmless changes are as a preparation for a future change proposal. Unfortunately, my (Eclipse) editor automatically removes spaces at the end of every line. Creating a patch for this proposal should not contain unrelated harmless changes, so therefore this separate check-in. No change in functionality. No risk.
* | | small modif of last commitMiguel Sofer2008-08-071-10/+7
| | |
* | | * generic/tclBasic.c: Fix tailcalls falling out of tebc intoMiguel Sofer2008-08-071-9/+7
| | | | | | | | | | | | | | | * generic/tclExecute.c: Tcl_EvalEx [Bug 2017946] * generic/tclInt.h:
* | | * generic/tclExecute.c: Fix for [Bug 2038069] by dgp.Miguel Sofer2008-08-051-2/+3
| | | | | | | | | | | | * tests/execute.test:
* | | fix "bad stack top" bug in last commitMiguel Sofer2008-08-041-1/+5
| | |
* | | duh ... committed only the ChangeLog entry, not the restMiguel Sofer2008-08-041-21/+39
| | |
* | | * 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/tclBasic.c: new unsupported command atProcExitMiguel Sofer2008-08-031-46/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCompile.h: that shares the implementation with * generic/tclExecute.c: tailcall. Fixed a segfault in * generic/tclInt.h: tailcalls. Tests added. * generic/tclInterp.c: * generic/tclNamesp.c: * tests/unsupported.test:
* | | Dumped tclNRE.h's contents into tclInt.h. The file is now empty andMiguel Sofer2008-07-311-5/+9
| | | | | | | | | | | | | | | | | | unrefernced everywhere but in macosx/Tcl.xcodeproj/project.pbxproj: some knowledgeable maintainer please remove tclNRE.h after making sure it doesn't break the build on macosx