summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclBasic.c: move TclResetCancellation to be called onMiguel Sofer2008-09-171-2/+16
| | | | | | returning to level 0, as opposed to it being called on starting a command at level 0. Add a call on returning via Tcl_EvalObjEx to fix [Bug 2114165].
* * tests/nre.test: add missing constraints; enable test of foreachMiguel Sofer2008-09-101-3/+2
| | | | | | | | | 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/tclBasic.c (InfoCoroutine):Miguel Sofer2008-08-261-1/+32
| | | | | | * tests/unsupported.test: new command that returns the FQN of the currently executing coroutine. Lives as infoCoroutine under unsupported, but is designed to become a subcommand of [info]
* * generic/tclBasic.c (NRInterpCoroutine): store the caller'sMiguel Sofer2008-08-251-2/+2
| | | | | eePtr, stop assuming the coroutine is invoked from the same execEnv where it was created.
* NRE-enable non-compiled [foreach]. [Bug 2017632]dkf2008-08-241-2/+2
|
* * generic/tclBasic.c: Removed unused var; fixed functionMiguel Sofer2008-08-231-3/+1
| | | | | | * generic/tclOOInt.h: pointer declarations (why did gcc start * generic/tclOOMethod.c: complaining all of a sudden?) * generic/tclProc.c:
* * generic/tclBasic.c: Set special errocodes: COROUTINE_BUSY,Miguel Sofer2008-08-231-1/+3
| | | | COROUTINE_CANT_YIELD, COROUTINE_ILLEGAL_YIELD.
* * generic/tclBasic.c: Set a special COROUTINE_BUSY errorcodeMiguel Sofer2008-08-231-1/+2
|
* * generic/tclBasic.c: Previous fix, now done right.Miguel Sofer2008-08-211-10/+1
| | | | | | * generic/tclCmdIL.c: * generic/tclInt.h: * tests/unsupported.test:
* * generic/tclBasic.c: Fix the cmdFrame level count inMiguel Sofer2008-08-211-7/+21
| | | | | * generic/tclCmdIL.c: coroutines. Fix small bug on coroutine * generic/tclInt.h: rewind.
* Added casts to make MSVC happy and re-enable the debug build.patthoyts2008-08-201-2/+2
|
* General whitespace/style policingdkf2008-08-201-281/+271
|
* * generic/tclBasic.c: Implementation of [coroutine] and [yield]Miguel Sofer2008-08-171-3/+443
| | | | | | | | * generic/tclCmdAH.c: commands (in tcl::unsupported). * generic/tclCompile.h: * generic/tclExecute.c: * generic/tclInt.h: * tests/unsupported.test:
* #define DTraceCmdReturn when USE_DTRACE is not defineddas2008-08-141-1/+3
|
* * generic/tclBasic.c (TclNREvalObjv, Tcl_NRCallObjProc): DTrace probesdas2008-08-141-14/+92
| | | | | | | | | | | | | * generic/tclProc.c (TclNRInterpProcCore, InterpProcNR2): for NRE. [Bug 2017160] * generic/tclBasic.c (TclDTraceInfo): add two extra arguments to * generic/tclCompile.h: DTrace 'info' probes for tclOO * generic/tclDTrace.d: method & class/object info. * generic/tclCompile.h: add support for debug logging of DTrace * generic/tclBasic.c: 'proc', 'cmd' and 'inst' probes (does _not_ require a platform with DTrace).
* * generic/tclBasic.c: slight cleanupMiguel Sofer2008-08-091-6/+7
| | | | | * generic/tclCompile.h: * generic/tclExecute.c:
* * generic/tclBasic.c: Fix tailcalls falling out of tebc intoMiguel Sofer2008-08-071-2/+14
| | | | | * generic/tclExecute.c: Tcl_EvalEx [Bug 2017946] * generic/tclInt.h:
* duh ... committed only the ChangeLog entry, not the restMiguel Sofer2008-08-041-41/+30
|
* made function staticMiguel Sofer2008-08-031-1/+2
|
* * generic/tclBasic.c: new unsupported command atProcExitMiguel Sofer2008-08-031-48/+21
| | | | | | | | | * 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:
* * generic/tclBasic.c: Revised timing of the CmdFrame stack managementdgp2008-08-011-12/+17
| | | | | | | | * tests/info.test: in TclEvalEx so that the CmdFrame will still be on the stack at the time Tcl_LogCommandInfo is called to append another level of -errorinfo information. Sets the stage to add file and line data to the stack trace. Added test to check that [info frame] functioning remains unchanged by the revision.
* nr-enabling [for]; [while] made to reuse [for]'s infrastructure.Miguel Sofer2008-07-311-2/+2
|
* nr-enabling [while]Miguel Sofer2008-07-311-2/+2
|
* nr-enabling [if]Miguel Sofer2008-07-311-2/+2
|
* * generic/tclBasic.c: NR-enabling [catch]Miguel Sofer2008-07-311-2/+2
| | | | | | * generic/tclCmdAH.c: * generic/tclInt.h: * tests/NRE.test:
* Dumped tclNRE.h's contents into tclInt.h. The file is now empty andMiguel Sofer2008-07-311-3/+5
| | | | | | 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
* restricting usage and avoiding panics in [tailcall]Miguel Sofer2008-07-311-50/+32
|
* fix macro that gcc swallows but msvc doesn'tMiguel Sofer2008-07-311-7/+9
|
* * generic/tclBasic.c: Improved tailcalls and tests.Miguel Sofer2008-07-311-29/+40
| | | | | | | * generic/tclCompile.h: * generic/tclExecute.c: * generic/tclTest.c: * tests/NRE.test:
* * generic/tclBasic.c (TclNREvalObjEx): new comments and code reorgMiguel Sofer2008-07-301-77/+89
| | | | to clarify what is happening.
* fixing last commitMiguel Sofer2008-07-301-2/+2
|
* * generic/tclBasic.c: guard against the value of iPtr->evalFlagsMiguel Sofer2008-07-301-3/+4
| | | | | changing between the times where TEOV and TEOV_exception run. Thanks dgp for catching this.
* a timid start at cleaning upMiguel Sofer2008-07-291-60/+59
|
* * generic/tclBasic.c: Made use of the thread's alloc cacheMiguel Sofer2008-07-291-2/+3
| | | | | | | | | * generic/tclInt.h: stored in the ekeko at interp creation * generic/tclNRE.h: to avoid hitting the TSD each time an * generic/tclThreadAlloc.c: NRE callback is pushed or pulled; the approach is suitably general to extend to evry other obj allocation where an interp is know; this is left for some other time, requires a lot of grunt work.
* Completely revamped NRE implementation, with (almost) unchanged API.Miguel Sofer2008-07-291-492/+278
|
* * generic/tclBasic.c: Added missing ref count when creating anandreas_kupries2008-07-281-2/+2
| | | | | | | empty string as path (TclEvalEx). In 8.4 the missing code caused panics in the testsuite. It doesn't in 8.5. I am guessing that the code path with the missing the incr-refcount is not invoked any longer. Because the bug in itself is certainly the same.
* * tests/info.test: Tests 38.* added, exactly testing the trackingandreas_kupries2008-07-251-1/+8
| | | | | | | | | | | | | | | | | of location for uplevel scripts. Resolved merge conflict on info-37.0, switched !singleTestInterp constraint to glob matching instead. Ditto info-22.8, removed constraint, more glob matching, and reduced the depth of the stack we check. More is coming, right now I want to commit the bug fixes. * tests/oo.test: Updated oo-22.1 for expanded location tracking. * generic/tclCompile.c (TclInitCompileEnv): Reorganized the initialization of the #280 location information to match the flow in TclEvalObjEx to get more absolute contexts. * generic/tclBasic.c (TclEvalObjEx): Added missing cleanup of extended location information.
* * generic/tclBasic.c: Modified TclArgumentGet to reject pure listsandreas_kupries2008-07-231-23/+24
| | | | | | | | | | * generic/tclCmdIL.c: immediately, without search. Reworked setup * generic/tclCompile.c: of eoFramePtr, doesn't need the line * tests/info.test: information, more sensible to have everything on line 1 when eval'ing a pure list. Updated the users of the line information to special case this based on the frame type (i.e. TCL_LOCATION_EVAL_LIST). Added a testcase demonstrating the new behaviour.
* * generic/tclBasic.c (GetCommandSource): added comment withMiguel Sofer2008-07-231-1/+9
| | | | explanation and warning for waintainers.
* Added missing function comments.andreas_kupries2008-07-221-1/+41
|
* fix warning; formattingdas2008-07-221-46/+52
|
* * generic/tclBasic.c: Ansified the new functions.andreas_kupries2008-07-221-9/+11
|
* * generic/tclBasic.c: Reworked the handling of bytecode literalsandreas_kupries2008-07-221-38/+102
| | | | | | | | | | * 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].
* * generic/tclBasic.c: Added numLevels field to CommandFrame,Miguel Sofer2008-07-221-2/+4
| | | | | * generic/tclExecute.c: let GetCommandSource use it. This solves * generic/tclInt.h: [Bug 2017146]. Thx dgp for the analysis.
* fix warning, formatting, whitespacedas2008-07-211-68/+80
|
* * generic/tclBasic.c: Extended the existing TIP #280 system (infoandreas_kupries2008-07-211-44/+256
| | | | | | | | | | | | * generic/tclCmdAH.c: frame), added the ability to track the * generic/tclCompCmds.c: absolute location of literal procedure * generic/tclCompile.c: arguments, and making this information * generic/tclCompile.h: available to uplevel, eval, and * generic/tclInterp.c: siblings. This allows proper tracking of * generic/tclInt.h: absolute location through custom (Tcl-coded) * generic/tclNamesp.c: control structures based on uplevel, etc. * generic/tclProc.c: * tests/info.test:
* whitespacedas2008-07-211-22/+22
|
* use TclEvalObjv instead of Tcl_EvalObjv at selected spotsMiguel Sofer2008-07-211-3/+3
|
* * generic/tcl.decls: Changed the implementation ofMiguel Sofer2008-07-211-37/+61
| | | | | | | | | | * generic/tclBasic.c: [namespace import]; removed * generic/tclDecls.h: Tcl_NRObjProc, replaced with * generic/tclExecute.c: Tcl_NRCmdSwap (proposed public * generic/tclInt.h: NRE API). This should fix * generic/tclNRE.h: [Bug 582506]. * generic/tclNamesp.c: * generic/tclStubInit.c:
* fix uninited and unused var warningsMiguel Sofer2008-07-211-3/+2
|