summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
Commit message (Collapse)AuthorAgeFilesLines
* * 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
|
* * generic/tclBasic.c: NRE: enabled calling NR commandsMiguel Sofer2008-07-211-99/+220
| | | | | | | | * generic/tclExecute.c: from the callbacks. Completely * generic/tclInt.h: redone tailcall implementation * generic/tclNRE.h: using the new feature. * generic/tclProc.c: * tests/NRE.test:
* new TclNRAddCallback macro for internal use instead of the publicMiguel Sofer2008-07-181-23/+9
| | | | Tcl_NRAddCallback
* * generic/tcl.decls: Change the public api prefix fromMiguel Sofer2008-07-181-26/+26
| | | | | | | | | | | | | | | | | * generic/tcl.h: TclNR_foo to Tcl_NRfoo * generic/tclBasic.c: * generic/tclDecls.h: * generic/tclDictObj.c: * generic/tclExecute.c: * generic/tclInterp.c: * generic/tclNRE.h: * generic/tclNamesp.c: * generic/tclOO.c: * generic/tclOOBasic.c: * generic/tclOOCall.c: * generic/tclOOMethod.c: * generic/tclProc.c: * generic/tclStubInit.c:
* Minor fixes (clearer panic messages, formatting of comments)dkf2008-07-181-55/+50
|
* * generic/tclDictObj.c (DictWithCmd, DictUpdateCmd): fixMiguel Sofer2008-07-181-16/+15
| | | | | | | refcounting bugs that caused crashes [Bug 2017857]. * generic/tclBasic.c (TclNREvalObjEx): streamline the management of the command frame (opt).
* Fix [Bug 2018603]dkf2008-07-151-33/+24
|
* Tidy up code for clarity.dkf2008-07-141-388/+382
|
* Store ClientDatas in NRE callback storage as an array; that's how they aredkf2008-07-141-7/+7
| | | | referred to in callback implementations anyway.
* * generic/tclBasic.c.: Embedded Tcl_Canceled() calls intoMiguel Sofer2008-07-141-9/+5
| | | | | * generic/tclExecute.c: TclInterpReady(). * generic/tclParse.c:
* * generic/tclBasic.c.: NRE left too many calls toMiguel Sofer2008-07-141-4/+1
| | | | | | * generic/tclExecute.c: TclResetCancellation lying around: it * generic/tclProc.c: only needs to be called prior to any iPtr->numLevels++. Thanks mistachkin.
* * generic/tclBasic.c: TclResetCancellation() calls were misplacedMiguel Sofer2008-07-131-6/+3
| | | | (merge mishap); stray //. Thanks patthoyts.
* whitespacedas2008-07-131-174/+174
|