summaryrefslogtreecommitdiffstats
path: root/generic/tclProc.c
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclBasic.c: TIP #280 implementation.andreas_kupries2006-11-281-3/+195
| | | | | | | | | | | | | | | | | | | | | * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCmdMZ.c: * generic/tclCompCmds.c: * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclCompile.h: * generic/tclExecute.c: * generic/tclIOUtil.c: * generic/tclInt.h: * generic/tclInterp.c: * generic/tclNamesp.c: * generic/tclObj.c: * generic/tclProc.c: * tests/compile.test: * tests/info.test: * tests/platform.test: * tests/safe.test:
* TIP#270 IMPLEMENTATIONdgp2006-11-151-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tcl.decls: New public routines Tcl_ObjPrintf, * generic/tclStringObj.c: Tcl_AppendObjToErrorInfo, Tcl_Format, * generic/tclInt.h: Tcl_AppendLimitedToObj, Tcl_AppendFormatToObj and Tcl_AppendPrintfToObj. Former internal versions removed. * generic/tclDecls.h: make genstubs * generic/tclStubInit.c: * generic/tclBasic.c: Updated callers. * generic/tclCkalloc.c: * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCmdMZ.c: * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclDictObj.c: * generic/tclExecute.c: * generic/tclIORChan.c: * generic/tclIOUtil.c: * generic/tclMain.c: * generic/tclNamesp.c: * generic/tclObj.c: * generic/tclPkg.c: * generic/tclProc.c: * generic/tclStrToD.c: * generic/tclTimer.c: * generic/tclUtil.c: * unix/tclUnixFCmd.c:
* * generic/tclCompExpr.c: fix gcc warnings about 'cast to/fromdas2006-11-131-6/+6
| | | | | | | | | | | | | | | | | | | | | | | * generic/tclEncoding.c: pointer from/to integer of different * generic/tclEvent.c: size' on 64-bit platforms by casting to * generic/tclExecute.c: intermediate types intptr_t/uintptr_t * generic/tclHash.c: via new PTR2INT(), INT2PTR(), * generic/tclIO.c: PTR2UINT() and UINT2PTR() macros. * generic/tclInt.h: [Patch 1592791] * generic/tclProc.c: * generic/tclTest.c: * generic/tclThreadStorage.c: * generic/tclTimer.c: * generic/tclUtil.c: * unix/configure.in: * unix/tclUnixChan.c: * unix/tclUnixPipe.c: * unix/tclUnixPort.h: * unix/tclUnixTest.c: * unix/tclUnixThrd.c: * unix/configure: autoconf-2.59 * unix/tclConfig.h.in: autoheader-2.59
* Silence compiler grumbles.dkf2006-11-021-2/+2
|
* * generic/tclBasic.c: Further revised TclAppendPrintToObj() anddgp2006-11-021-9/+9
| | | | | | | | | | | | | | | | | | | | | * generic/tclCkalloc.c: TclObjPrintf() routines to panic when unable * generic/tclCmdAH.c: to complete their formatting operations, rather * generic/tclCmdIL.c: than report an error message. This means an * generic/tclCmdMZ.c: interp argument for error message recording is * generic/tclDictObj.c: no longer needed, further simplifying the * generic/tclExecute.c: interface for callers. * generic/tclIORChan.c: * generic/tclIOUtil.c: * generic/tclInt.h: * generic/tclMain.c: * generic/tclNamesp.c: * generic/tclParseExpr.c: * generic/tclPkg.c: * generic/tclProc.c: * generic/tclStringObj.c: * generic/tclTimer.c: * generic/tclUtil.c: * unix/tclUnixFCmd.c:
* * generic/tclBasic.c: Refactored and renamed the routinesdgp2006-10-311-24/+19
| | | | | | | | | | | | | | | | | | | | | * generic/tclCkalloc.c: TclObjPrintf, TclFormatObj, and * generic/tclCmdAH.c: TclFormatToErrorInfo to a new set of * generic/tclCmdIL.c: routines TclAppendPrintfToObj, * generic/tclCmdMZ.c: TclAppendFormatToObj, TclObjPrintf, and * generic/tclDictObj.c: TclObjFormat, with the intent of making * generic/tclExecute.c: the latter list, plus TclAppendLimitedToObj * generic/tclIORChan.c: and TclAppendObjToErrorInfo, public via * generic/tclIOUtil.c: a revised TIP 270. * generic/tclInt.h: * generic/tclMain.c: * generic/tclNamesp.c: * generic/tclParseExpr.c: * generic/tclPkg.c: * generic/tclProc.c: * generic/tclStringObj.c: * generic/tclTimer.c: * generic/tclUtil.c: * unix/tclUnixFCmd.c:
* Fix [Bug 1587618], eliminating the callObjc and callObjv fields from the Interpdkf2006-10-311-33/+32
| | | | structure.
* Insert of calling point in middle of procedure code. Also cleaned up howdkf2006-10-281-119/+230
| | | | [apply] terms generate stack trace info.
* * generic/tclProc.c (SetLambdaFromAny): minor change, eliminateMiguel Sofer2006-10-271-2/+2
| | | | redundant call to Tcl_GetString (thanks aku).
* * generic/tclProc.c (ObjInterpProcEx): disable itcl hacks forMiguel Sofer2006-10-241-8/+8
| | | | | calls from ApplyObjCmd (islambda==1), as they mess apply's error messages [Bug 1583266]
* * generic/tclProc.c (ApplyObjCmd): fix wrong#args for apply byMiguel Sofer2006-10-241-13/+34
| | | | | | using the ensemble rewrite engine, [Bug 1574835]. * generic/tclInterp.c (AliasObjCmd): previous commit missed usage of TCL_EVAL_NOREWRITE for aliases.
* * library/clock.tcl (format, scan): corrected wrong # argsMiguel Sofer2006-10-231-4/+1
| | | | | | | | | | | | | | | | | * tests/clock.test (3.1, 34.1): messages to make use of the new rewrite capabilities of [info level] * generic/tcl.h: Lets TEOV update the iPtr->objc/objv * generic/tclBasic.c: fields, except when the (new) flag bit * generic/tclInt.h: TCL_EVAL_NOREWRITE is present. This * generic/tclNamesp.c: causes [info level] to know and use * generic/tclProc.c: ensemble rewrites [Bug 1577492] * tests/namespace.test: ***POTENTIAL INCOMPATIBILITY*** The return value from [info level 0] on interp alias calls is changed: previously returned the target command (including curried values), now returns the source - what was actually called.
* * generic/tcl.h: Modified the Tcl call stack soMiguel Sofer2006-10-231-25/+18
| | | | | | | | | | | | | * generic/tclBasic.c: there is always a valid CallFrame, even * generic/tclCmdIL.c: at level 0 [Patch 1577278]. Most of the * generic/tclInt.h: changes involve removing tests for * generic/tclNamesp.c: iPtr->(var)framePtr==NULL. There is now a * generic/tclObj.c: CallFrame pushed at interp creation * generic/tclProc.c: with a pointer to it stored in * generic/tclTrace.c: iPtr->rootFramePtr. A second unused * generic/tclVar.c: field in Interp is hijacked to enable further functionality, currently unused (but with several FRQs depending on it).
* Undo mistaken commit to wrong branch caused by CVS fumble... :-}dkf2006-10-201-211/+64
|
* Consolidated TIP#257 patch applied to HEAD to allow for experimentation bydkf2006-10-201-64/+211
| | | | other developers
* * tclProc.c (SetLambdaFromAny):Miguel Sofer2006-10-161-2/+6
| | | | | * tests/apply.test (9.1-9.2): plugged intrep leak [Bug 1578454], found by mjanssen.
* * generic/tclCompile.c:Miguel Sofer2006-09-301-46/+1
| | | | | | | | | * generic/tclHistory.c: * generic/tclInt.h: * generic/tclProc.c: made Tcl_RecordAndEvalObj not call "history" if it has been redefined to an empty proc, in order to reduce the noise when debugging [FR 1190441]. Moved TclCompileNoOp from tclProc.c to tclCompile.c
* Silence compiler warning.dgp2006-05-151-2/+3
|
* * generic/tclProc.c (ProcCompileProc): When a bump of the compiledgp2006-05-131-5/+83
| | | | | | | | epoch forces the re-compile of a proc body, take care not to overwrite any Proc struct that may be referred to on the active call stack. This fixes [Bug 148218]. Note that the fix will not be effective for code that calls the private routine TclProcCompileProc() directly.
* missing statics revealed by 'make checkexports'das2006-03-161-2/+2
|
* * generic/tclProc.c (ObjInterpProcEx):Miguel Sofer2006-03-101-2/+17
| | | | | * tests/apply.test (apply-5.1): fix [apply] error messages so that they quote the lambda expression [Bug 1447355].
* Style/comment fixesdkf2006-02-021-83/+81
|
* * generic/tclProc.c: minor improvements to [apply]Miguel Sofer2006-02-011-27/+27
| | | | | * tests/apply.test: new tests; apply-5.1 currently fails to indicate missing work in error reporting
* TIP#194 IMPLEMENTATIONdgp2006-02-011-16/+257
| | | | | | | | | | | * doc/apply.n: (New file) New command [apply]. [Patch 944803]. * doc/uplevel.n: * generic/tclBasic.c: * generic/tclInt.h: * generic/tclProc.c: * tests/apply.test: (New file) * tests/proc-old.test: * tests/proc.test:
* * generic/tclProc.c: fixed args handling for precompiled bodiesMiguel Sofer2006-01-231-7/+7
| | | | [Bug 1412695]; thanks to Uwe Traum.
* Export stubs for libtommath; fix mingw compiler warningsKevin B Kenny2005-12-131-2/+2
|
* ANSIfydkf2005-11-021-128/+125
|
* TIP#237 IMPLEMENTATIONdgp2005-10-081-3/+11
| | | | | | [kennykb-numerics-branch] Resynchronized with the HEAD; at this checkpoint [-rkennykb-numerics-branch-20051008], the HEAD and kennykb-numerics-branch contain identical code.
* * generic/tclBasic.c: More callers of TclObjPrintf anddgp2005-09-151-18/+21
| | | | | | | | | | | | | | * generic/tclCkalloc.c: TclFormatToErrorInfo. * generic/tclCmdMZ.c: * generic/tclExecute.c: * generic/tclIORChan.c: * generic/tclMain.c: * generic/tclProc.c: * generic/tclTimer.c: * generic/tclUtil.c: * unix/tclUnixFCmd.c * unix/configure: autoconf-2.59
* * generic/tclBasic.c: Updated several callers to usedgp2005-09-141-25/+14
| | | | | | | * generic/tclCmdMZ.c: TclFormatToErrorInfo(). * generic/tclIOUtil.c: * generic/tclNamesp.c: * generic/tclProc.c:
* Systematizing the formattingdkf2005-07-211-269/+298
|
* * generic/tclInt.h: Reduced the Tcl_ObjTypes "index",dgp2005-06-071-5/+5
| | | | | | | * generic/tclIndexObj.c: "enembleCmd", "localVarName", and * generic/tclNamesp.c: "levelReference" to file static scope. * generic/tclProc.c: * generic/tclVar.c:
* This close to a release, simple is better.dgp2005-06-021-3/+1
|
* * generic/tclProc.c: Revised fix for [Bug 1209759] is more complex,dgp2005-06-011-2/+4
| | | | * generic/tclResult.c: but should have less performance impact.
* Merged kennykb-numerics-branch back to the head; TIPs 132 and 232Kevin B Kenny2005-05-101-1/+1
|
* * generic/tclProc.c (TclInitCompiledLocals):mdejong2005-02-021-3/+9
| | | | | | | | | | Add check for type of the framePtr->procPtr->bodyPtr passed to TclInitCompiledLocals and panic if it is not the correct type. If the body of the proc is not of the compiled byte code type then the code will crash. This was discovered while tracking down a crash in Itcl, that crash is fixed by Itcl patch 1115085.
* Avoid sharing cmdName literals accross namespaces, and generalise usage ofMiguel Sofer2004-12-241-2/+2
| | | | the TclRegisterNewLiteral macro [Patch 1090905]
* fix for last commit; thanks dgp and tclguy for catch/classify/throwMiguel Sofer2004-12-201-3/+3
|
* * generic/tclCompile.c: moved TclInitCompiledLocals to tclProc.cMiguel Sofer2004-12-201-31/+234
| | | | | | | | * generic/tclProc.c: new static InitCompiledLocals to allow for a single pass over the proc's arguments at proc load time (instead of two as previously). TclObjInterpProc() now allocates the compiledLocals on the tcl execution stack, using the new TclStackAlloc/Free functions.
* * generic/tclTest.c: Added two new functions to allocate memoryMiguel Sofer2004-12-151-8/+8
| | | | | | | | | | from the execution stack (TclStackAlloc, TclStackFree). Added functions TclPushStackFrame and TclPopStackFrame that do the work of Tcl_PushCallFrame and Tcl_PopCallFrame, but using frames allocated in the execution stack - i.e., heap instead of C-stack. The core uses these two new functions exclusively; the old ones remain for backwards compat, as at least two popular extensions (itcl, xotcl) are known to use them.
* changing the isProcCallFrame field of the CallFrame struct from a 0/1 fieldMiguel Sofer2004-12-141-2/+2
| | | | to flags. Should be perfectly backwards compatible.
* optimised loops that initialise a proc's arguments and compiled localMiguel Sofer2004-12-101-53/+63
| | | | variables, removing tests from inner loops.
* Fix [Bug 1066837] without reopening other bugs... What a horrid hack! :^/dkf2004-11-251-1/+11
|
* Cleaning up; mostly whitespace and comment fixes.dkf2004-11-011-242/+236
|
* Allow ensembles to rewrite their subcommands' error messages to be moredkf2004-10-291-30/+22
| | | | | | relevant to users. [Patch 1056864] Also patches to core to take advantage of this Also other general cleaning up of Tcl_WrongNumArgs usage
* Standardize way of calling object freeIntRepProcs...dkf2004-10-221-15/+15
|
* * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp):dgp2004-10-181-23/+10
| | | | | | | | | | | | * generic/tclCmdAH.c (Tcl_CatchObjCmd): * generic/tclCmdMZ.c (TclMergeReturnOptions,TclProcessReturn): * generic/tclCompCmds.c (TclCompileReturnCmd): * generic/tclExecute.c (TclCompEvalObj): * generic/tclInt.h (Interp): * generic/tclProc.c (TclUpdateReturnInfo): Place primary storage of the -level and -code information in private fields of the Interp struct, rather than in a DictObj. This should significantly improve performance of TclUpdateReturnInfo.
* * generic/tclCmdMZ.c (TclProcessReturn): Now that primarydgp2004-10-151-15/+1
| | | | | | | * generic/tclProc.c (TclUpdateReturnInfo): storage for the errorInfo and errorCode values are internal fields, we can set them at the time of the [return] command, and not have to wait until the specified number of "-level"s have popped.
* * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp,dgp2004-10-151-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TclEvalObjvInternal,Tcl_LogCommandInfo,TclAddObjErrorInfo): * generic/tclCmdAH.c (Tcl_CatchObjCmd): * generic/tclEvent.c (BgError,ErrAssocData,Tcl_BackgroundError, HandleBgErrors,BgErrorDeleteProc): * generic/tclExecute.c (TclCreateExecEnv,TclDeleteExecEnv): * generic/tclIOUtil.c (comments only): * generic/tclInt.h (ExecEnv,Interp, ERR_IN_PROGRESS): * generic/tclInterp.c ([tclInit]): * generic/tclMain.c (comments only): * generic/tclNamesp.c (Tcl_CreateNamespace,Tcl_DeleteNamespace,TclTeardownNamespace): * generic/tclProc.c (TclUpdateReturnInfo): * generic/tclResult.c (Tcl_ResetResult,TclTransferResult): * generic/tclTrace.c (CallVarTraces): Reworked management of the "errorInfo" data of an interp. That information is now primarily stored in a new private (Tcl_Obj *) field of the Interp struct, rather than using a global variable ::errorInfo as the primary storage. The ERR_IN_PROGRESS flag bit value is no longer required to manage the value in its new location, and is removed. Variable traces are established to support compatibility for any code expecting the ::errorInfo variable to hold the information. ***POTENTIAL INCOMPATIBILITY*** Code that sets traces on the ::errorInfo variable may notice a difference in timing of the firing of those traces. Code that uses the value ERR_IN_PROGRESS.
* Remove useless panic-ing implementations of methods in tclProcBodyTypedkf2004-10-061-97/+30
| | | | | (NULL implies that and produces a better error message). Also converted to using Tcl_AppendResult()