summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclBasic.c: Fix lerak of coroutines on namespaceMiguel Sofer2010-01-031-3/+2
| | | | | | | * generic/tclCompile.h: deletion, [Bug 2724403]. Added a test * generic/tclNamesp.c: for this leak, and also a test for * tests/coroutine.test: leaks on namespace deletion. * tests/namespace.test:
* Move declarations to the top of the file, add boilerplate comments to somedkf2009-12-241-190/+203
| | | | functions
* * generic/tclBasic.c: Fix for bad cmd resolution by coroutinesMiguel Sofer2009-12-191-1/+2
| | | | | * tests/coroutine.test: [Bug #2917627]. Thanks to schelte for finding it.
* fix commentMiguel Sofer2009-12-131-7/+5
|
* remove accidentally committed c++ style temp commentsMiguel Sofer2009-12-131-3/+1
|
* * generic/tclBasic.c: Release TclPopCallFrame() from itsMiguel Sofer2009-12-131-7/+13
| | | | | * generic/tclExecute.c: tailcall-management duties * generic/tclNamesp.c:
* * generic/tclBasic.c: Moving TclBCArgumentRelease callMiguel Sofer2009-12-131-11/+1
| | | | | * generic/tclExecute.c: from TclNRTailcallObjCmd to TEBC, so that the pairing of the Enter and Release calls is clearer.
* fix commentMiguel Sofer2009-12-111-4/+3
|
* simplify the coroutine BP-chain monkey-patching; tclBasic does not need toMiguel Sofer2009-12-111-3/+1
| | | | know about bottomPtr, tebc does not need to behave differently on exit for coros
* * generic/tclBasic.c: Full nre-enabling of coroutinesMiguel Sofer2009-12-101-11/+2
| | | | * generic/tclExecute.c: [Bug 2806407]
* * generic/tclBasic.c: small cleanupMiguel Sofer2009-12-101-24/+23
|
* reorganization and better comments in TclNRCoroutineObjCmd()Miguel Sofer2009-12-101-49/+46
|
* * generic/tclBasic.c: Reducing the # of moving parts forMiguel Sofer2009-12-101-24/+3
| | | | | * generic/tclExecute.c: coroutines by delegating more to tebc; eliminate the special coroutine CallFrame.
* * generic/tclBasic.c: Reducing the # of moving parts forMiguel Sofer2009-12-101-23/+1
| | | | * generic/tclExecute.c: coroutines
* remove accidentally committed C++ style commentsMiguel Sofer2009-12-091-3/+1
|
* * generic/tclBasic.c: Insure correct lifetime of varFrame'sMiguel Sofer2009-12-091-7/+15
| | | | | | (objc,objv)for coroutines. * generic/tclExecute.c: Code regrouping
* Add missing Tcl_SetErrorCode calls.dkf2009-12-091-24/+35
|
* added comment confessing my puzzlementMiguel Sofer2009-12-081-1/+8
|
* minor cleanupMiguel Sofer2009-12-081-10/+7
|
* baby steps towards nre-enabling coroutine first runMiguel Sofer2009-12-081-28/+8
|
* * generic/tclBasic.c: Partial nre-enabling of coroutines.Miguel Sofer2009-12-081-38/+49
| | | | | | * generic/tclExecute.c: The initial call still requires its * generic/tclInt.h: own instance of tebc, but on resume coros can execute in the caller's tebc.
* Small corrections (enforcing ANSI style declarations, etc.)dkf2009-12-081-133/+145
|
* * generic/tclBasic.c: arrange for [tailcall] to be created withMiguel Sofer2009-12-071-8/+2
| | | | | the other builtins: was being created in a separate call, leftover from pre-tip days.
* * generic/tclBasic.c: add ::tcl::unsupported::yieldToMiguel Sofer2009-12-071-5/+66
| | | | * generic/tclInt.h: [Patch 2910056]
* missing declarationMiguel Sofer2009-12-071-1/+2
|
* factoring TclSpliceTailcall out of TclPopStackFrameMiguel Sofer2009-12-061-1/+52
|
* * generic/tclBasic.c: Small changes for clarity in tailcallMiguel Sofer2009-12-061-10/+32
| | | | * generic/tclExecute.c: and coroutine code.
* * generic/tclBasic.c: Fixed things so that you can tailcallMiguel Sofer2009-12-051-1/+2
| | | | | | | | * generic/tclNamesp.c: properly out of a coroutine. * tests/tailcall.test: * generic/tclInterp.c: Fixed tailcalls for same-interp aliases (no test)
* Eliminate various gcc warnings (in -Wextra mode)nijtmans2009-11-181-12/+12
|
* Revert mistaken commitdgp2009-11-161-7/+1
|
* (forward port) Fix [Bug 2891556] and improve test to detect similar ↵ferrieux2009-11-161-1/+7
| | | | manifestations in the future. Add tcltest support for finalization.
* * generic/tclBasic.c: Plug another leak in TCL_EVAL_DIRECTandreas_kupries2009-11-101-9/+9
| | | | | evaluation. Forward port from Tcl 8.5 branch, change by Don Porter.
* * generic/tclBasic.c (TclEvalObjEx): Moved the #280 decrement ofandreas_kupries2009-11-091-8/+7
| | | | | | | refCount for the file path out of the branch after the whole conditional, closing a memory leak. Added clause on structure type to prevent seg.faulting. Forward port from valgrinding the Tcl 8.5 branch.
* [Bug 2889593]: Make [expr round()] give the right error.dkf2009-10-311-2/+2
|
* * generic/tclBasic.c: Completed the NR-enabling of [subst].dgp2009-09-111-2/+2
| | | | | | | | | * generic/tclCmdMZ.c: [Bug 2314561]. * generic/tclCompCmds.c: * generic/tclCompile.c: * generic/tclInt.h: * tests/coroutine.test: * tests/parse.test:
* * generic/tclCompCmds.c (TclCompileSubstCmd): Added a bytecodedgp2009-09-041-2/+2
| | | | | | | | | | | | | * generic/tclBasic.c: compiler routine for the [subst] command. * generic/tclCmdMZ.c: This is a partial solution to the need to * generic/tclCompile.c: NR-enable [subst] since bytecode execution is * generic/tclCompile.h: already NR-enabled. [Bug 2314561] Two new * generic/tclExecute.c: bytecode instructions, INST_NOP and * generic/tclInt.h: INST_RETURN_CODE_BRANCH were added to support * generic/tclParse.c: the new routine. INST_RETURN_CODE_BRANCH is * tests/basic.test: likely to be useful in any future effort to * tests/info.test: add a bytecode compiler routine for [try]. * tests/parse.test:
* * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-14/+148
| | | | | | | | | | | | | | | | | | | | | | | Tcl_EvalEx, TclEvalEx, TclAdvanceContinuations, TclNREvalObjEx): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines): * generic/tclCompCmds.c (*): * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv, TclFreeCompileEnv, TclCompileScript, TclCompileTokens): * generic/tclCompile.h (CompileEnv): * generic/tclInt.h (ContLineLoc, Interp): * generic/tclObj.c (ThreadSpecificData, ContLineLocFree, TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter, TclContinuationsEnterDerived, TclContinuationsCopy, TclContinuationsGet, TclFreeObj): * generic/tclParse.c (TclSubstTokens, Tcl_SubstObj): * generic/tclProc.c (TclCreateProc): * generic/tclVar.c (TclPtrSetVar): * tests/info.test (info-30.0-24): Extended the parser, compiler, and execution engine with code and attendant data structures tracking the position of continuation lines which are not visible in the resulting script Tcl_Obj*'s, to properly account for them while counting lines for #280.
* TIP #353 IMPLEMENTATIONdgp2009-08-121-2/+2
| | | | | | | | | | | | | | * doc/NRE.3: New public routine Tcl_NRExprObj() permits * generic/tcl.decls: extension commands to evaluate Tcl expressions * generic/tclBasic.c: in NR-enabled command procedures. * generic/tclCmdAH.c: * generic/tclExecute.c: * generic/tclInt.h: * generic/tclObj.c: * tests/expr.test: * generic/tclDecls.h: make genstubs * generic/tclStubInit.c:
* Added *unsupported* command to report an object's representation.dkf2009-08-021-2/+4
|
* fix SunCC warningdas2009-07-231-2/+2
|
* * generic/tclBinary.c: Removed unused variables.dgp2009-07-161-2/+2
| | | | | | | | | | | | | | | | | | * 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]
* fix 64bit int <-> ptr cast warningsdas2009-07-141-3/+3
|
* * generic/tclInt.h (TclNRSwitchObjCmd):Kevin B Kenny2009-07-141-2/+2
| | | | | | | * generic/tclBasic.c (builtInCmds): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): * tests/switch.test (switch-15.1): Make non-bytecoded [switch] command aware of NRE. [Bug 2821401]
* * generic/tclCompile.c (TclInitCompileEnv, EnterCmdWordIndex,andreas_kupries2009-07-141-70/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 2414858].dkf2009-05-081-1/+9
|
* * generic/tclBasic.c: Let coroutines start with a much smallerMiguel Sofer2009-05-081-3/+8
| | | | | * generic/tclCompile.h: stack: 200 words (previously was 2000, * generic/tclExecute.c: the same as interps)
* * generic/tclBasic.c (TclObjInvoke): Make sure that a null objProcMiguel Sofer2009-04-301-2/+7
| | | | is not used, use Tcl_NRCallObjProc instead [Bug 2486550].
* * generic/tclBasic.c: NR-enable the handling of unknown commandsMiguel Sofer2009-03-221-19/+44
| | | | [Bug 2502037].
* * generic/tclBasic.c: fixed "leaks" in aliases, imports andMiguel Sofer2009-03-211-2/+7
| | | | | | | * generic/tclInt.h: ensembles. Only remaining known leak * generic/tclInterp.c: is in ensemble unknown dispatch (as it * generic/tclNamesp.c: not NR-enabled) * tests/tailcall.test:
* * generic/tclBasic.c: Fix for (among others) [Bug 2699087]Miguel Sofer2009-03-211-23/+33
| | | | | | | | | * 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.