summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
Commit message (Collapse)AuthorAgeFilesLines
* More complete purge of things only present for supporting long-dead Mac 9 ↵dgp2012-11-151-14/+0
| | | | systems.
* make some more internal tables CONSTjan.nijtmans2012-04-181-4/+4
| | | fix compilation with -DNO_CONST
* 3390272 Leak of [info script] value.dgp2011-08-151-0/+4
|
* Fix gcc warnings: variable set but not usedjan.nijtmans2011-03-081-0/+4
|
* * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() callsdgp2011-03-061-3/+3
| | | | | | * generic/tclCmdMZ.c: with TclParseBackslash() where possible. * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclUtil.c:
* Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-011-2/+0
| | | more harm than good. Purged them.
* [Bug 3030870] make itcl 3.x built with pre-8.6 work in 8.6:nijtmans2010-07-251-3/+3
| | | | revert tclInt.h to what it was before, and relax the relation between Tcl_CallFrame and CallFrame.
* * generic/tclBasic.c (TclEvalObjEx): Moved the #280 decrement ofandreas_kupries2009-11-091-6/+5
| | | | | | | 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. Backport from valgrinding the Tcl 8.5 branch.
* silence compiler warningsdgp2009-08-261-2/+2
|
* * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-22/+278
| | | | | | | | | | | | | | | | | | | | | | | EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, TclEvalObjEx): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, ListLines): * generic/tclCompCmds.c (*): * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv, TclFreeCompileEnv, TclCompileScript): * generic/tclCompile.h (CompileEnv): * generic/tclInt.h (ContLineLoc, Interp): * generic/tclObj.c (ThreadSpecificData, ContLineLocFree, TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter, TclContinuationsEnterDerived, TclContinuationsCopy, TclContinuationsGet, TclFreeObj): * generic/tclProc.c (TclCreateProc): * generic/tclVar.c (TclPtrSetVar): * tests/info.test (info-30.0-22): Extended parser, compiler, and execution with code and attendant data structures tracking the positions of continuation lines which are not visible in script's, to properly account for them while counting lines for #280, during direct and compiled execution.
* fix SunCC warningdas2009-07-231-2/+2
|
* * generic/tclBasic.c (DeleteInterpProc,TclArgumentBCEnter,andreas_kupries2009-07-141-53/+87
| | | | | | | | | | | | | | | | | | | | | | TclArgumentBCRelease, TclArgumentGet): * generic/tclCompile.c (EnterCmdWordIndex, TclCleanupByteCode, TclInitCompileEnv, TclCompileScript): * generic/tclCompile.h (ExtCmdLoc): * generic/tclExecute.c (TclExecuteByteCode): * generic/tclInt.h (ExtIndex, CFWordBC): * tests/info.test (info-39.0): Backport of some changes made to the Tcl head, to handle literal sharing better. The code here is much simpler (trimmed down) compared to the head as the 8.4 branch is not bytecode compiling whole files, and doesn't compile eval'd code either. 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 removes the problems with location data caused by literal sharing in proc bodies. Simplified the associated datastructures (ExtIndex is gone, as is the function EnterCmdWordIndex).
* * generic/tclCompile.h: add support for debug logging of DTracedas2008-08-141-1/+4
| | | | | * generic/tclBasic.c: 'proc', 'cmd' and 'inst' probes (does _not_ require a platform with DTrace).
* * generic/tclBasic.c: Added missing release of extended commandandreas_kupries2008-07-281-2/+6
| | | | | | | | | | | | | | | word index when deleting an interpreter (DeleteInterpProc). Added missing ref count when creating an empty string as path (EvalEx). * generic/tclCompile.c (TclInitCompileEnv): Made same change to control flow as in TclEvalObjEx. Not needed while uplevel and siblings go through the eval-direct code path, however if that changes (like it did in 8.5+) better to have this in place instead of re-searching why certain places are without absolute locations. * tests/info.test: Added tests 38.*, exactly testing the tracking of location for uplevel scripts, and made the testsuite fully usable with and without -singleproc 1.
* * generic/tclBasic.c: Modified TclArgumentGet to reject pure listsandreas_kupries2008-07-231-16/+21
| | | | | | | | | | * 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: Added missing function comments.andreas_kupries2008-07-221-3/+42
|
* * generic/tclBasic.c: Reworked the handling of bytecode literalsandreas_kupries2008-07-221-35/+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: Extended the existing TIP #280 system (infoandreas_kupries2008-07-211-33/+249
| | | | | | | | | | | * 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:
* whitespacedas2007-09-131-2/+2
|
* * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allowsdas2007-09-131-1/+78
| | | | | | | | | | | | | | | * generic/tclCompile.h: tracing of proc and command entry & * generic/tclBasic.c: return, bytecode execution, object * generic/tclExecute.c: allocation and more; with essentially * generic/tclInt.h: zero cost when tracing is inactive; * generic/tclObj.c: enable with --enable-dtrace configure * generic/tclProc.c: arg (disabled by default, will only * unix/Makefile.in: enable if DTrace is present). * unix/configure.in: [Patch 1793984] * macosx/Makefile: enable DTrace support. * unix/configure: autoconf-2.13
* * generic/tclBasic.c: TIP #280 implementation, conditional on the define ↵andreas_kupries2006-11-281-14/+534
| | | | | | | | | | | | | | | | | | | | | | | TCL_TIP280. * 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:
* * generic/tclBasic.c (TEOVI): fix por possible leak of a CommandMiguel Sofer2006-11-041-12/+17
| | | | | | | | | in the presence of execution traces that delete it. * generic/tclBasic.c (TEOVI): * tests/trace.test (trace-21.11): fix for [Bug 1590232], execution traces may cause a second command resolution in the wrong namespace.
* * generic/tclBasic.c: Reverted exposure of patchlevel inandreas_kupries2006-09-251-6/+6
| | | | | | registered core version when TIP#268 features are activated. Better compatibility with existing packages. Like Tk.
* * generic/tcl.decls: Implemented TIP #268, conditionally.andreas_kupries2006-09-221-2/+15
| | | | | | | | | | | | | | | * generic/tclBasic.c: Define TCL_TIP268 to activate the new * generic/tclDecls.h: features. * generic/tclInt.h: * generic/tclPkg.c: * generic/tclStubInit.c: * generic/tclTest.c: * library/init.tcl * library/package.tcl: * tests/pkg.test: * tests/platform.test: * tests/safe.test: * doc/PkgRequire.3:
* * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadIdhobbs2006-08-301-1/+2
|
* * generic/tclBasic.c: Revised handling of TCL_EVAL_* flags todgp2006-03-061-28/+19
| | | | | * tests/parse.test: simplify TclEvalObjvInternal and to correct the auto-loading of alias targets (parse-8.12). [Bug 1444291].
* * generic/tclBasic.c: Corrections to be sure that TCL_EVAL_GLOBALdgp2006-02-281-2/+13
| | | | | | * tests/parse.test: evaluations act the same as [uplevel #0] * tests/trace.test: evaluations, even when execution traces or invocations of [::unknown] are present. [Bug 1439836].
* * generic/tclBasic.c (Tcl_DeleteCommandFromToken):Miguel Sofer2005-11-181-8/+8
| | | | | | | | * generic/tclCmdMZ.c (TraceCommandProc): * generic/tclInt.h (NS_KILLED): * generic/tclNamesp.c (Tcl_DeleteNamespace * tests/namespace.test (namespace-7.3-6): * tests/trace.test (trace-20.13-16): fix [Bugs 1355942/1355342].
* * generic/tclBasic.c:Miguel Sofer2005-10-231-8/+14
| | | | | | | | | | | | | | | | | | | | | * generic/tclBinary.c: * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCmdMZ.c: * generic/tclExecute.c: * generic/tclLink.c: * generic/tclMain.c: * generic/tclProc.c: * generic/tclScan.c: * generic/tclTest.c: * generic/tclVar.c: * mac/tclMacInit.c: * unix/tclUnixInit.c: * win/tclWinInit.c: Insure that the core never calls TclPtrSetVar, Tcl_SetVar2Ex, Tcl_ObjSetVar2 or Tcl_SetObjErrorCode with a 0-ref new value. It is not possible to handle error returns correctly in that case [Bug 1334947], one has the choice of leaking the object in some cases, or else risk crashing in some others.
* * generic/tclBasic.c (Tcl_CallWhenDeleted): Converted to usedgp2005-07-261-9/+6
| | | | | per-thread counter, rather than a process global one that required mutex protection. [RFE 1077194]
* * generic/tclBasic.c: Made the walk of the active trace list awaredgp2005-06-211-3/+10
| | | | | | * generic/tclCmdMZ.c: of the direction of trace scanning, so the * generic/tclInt.h: proper correction can be made. [Bug 1224585] * tests/trace.test (trace-34.2,3):
* * generic/tclBasic.c (Tcl_DeleteTrace): Added missing walk of thedgp2005-06-211-1/+15
| | | | | * tests/trace.test (trace-34.1): list of active traces to cleanup references to traces being deleted. [Bug 1201035]
* * generic/tclBasic.c (Tcl_EvalEx,TclEvalTokensStandard):dgp2005-03-181-14/+21
| | | | | | | | | * generic/tclCmdMZ.c (Tcl_SubstObj): * tests/basic.test (basic-46.4): Restored recursion limit * tests/parse.test (parse-19.*): testing in nested command substitutions within direct script evaluation (Tcl_EvalEx) that got lost in the parser reforms of Tcl 8.1. Added tests for correct behavior. [Bug 1115904]
* added commentsMiguel Sofer2005-02-101-1/+6
|
* * generic/tclBasic.c (Tcl_EvalObjEx):Miguel Sofer2005-02-101-3/+20
| | | | | | * tests/basic.test (basic-26.2): preserve the arguments passed to TEOV in the pure-list branch, in case the list shimmers away. Fix for [Bug 1119369], reported by Peter MacDonald.
* * generic/tclBasic.c (Tcl_ExprBoolean, Tcl_ExprDouble)hobbs2005-01-281-4/+46
| | | | (Tcl_ExprLong): Fix to recognize Tcl_WideInt type. [Bug 1109484]
* fix for buffer overflow in [subst], [Bug 1036649]Miguel Sofer2004-09-291-1/+11
|
* * generic/tclMain.c (Tcl_Main, StdinProc): Append newline onlydgp2004-07-281-3/+5
| | | | | | * tests/basic.test (basic-46.1): to incomplete scripts as part of multi-line script construction. Do not add an extra trailing newline to the complete script. [Bug 833150]
* * generic/tclBasic.c: Save and restore the iPtr->flag bits thatdgp2003-10-081-1/+6
| | | | | | | control the state of errorCode and errorInfo management when calling "leave" execution traces, so that all error information of the traced command is still available whether traced or not. [Bug 760947] Thanks to Yahalom Emet.
* * generic/tclBasic.c: Fixed error in ref count management of commanddgp2003-10-031-6/+4
| | | | | * generic/tclCmdMZ.c: and execution traces that caused access to freed memory in trace-32.1. [Bug 811483].
* * generic/tclBasic.c (CallCommandTraces): Added safety bitdgp2003-09-291-4/+9
| | | | | | | | * tests/trace.test: masking to prevent any of the bit values TCL_TRACE_*_EXEC from leaking into the flags field of any Command struct. This does not fix [Bug 811483] but helps to contain some of its worst symptoms. Also backported the corrections to test trace-28.4 from Vince Darley.
* * generic/tclBasic.c: Corrected several instances of unsafedgp2003-07-181-20/+39
| | | | | | | * generic/tclCompile.c: truncation of UTF-8 strings that might * generic/tclProc.c: break apart a multi-byte character. * library/init.tcl: [Bug 760872] * tests/init.test:
* * generic/tclBasic.c:Miguel Sofer2003-06-101-22/+14
| | | | | | | * generic/tclExecute.c: let TclExecuteObjvInternal call TclInterpReady instead of relying on its callers to do so; fix for the part of [Bug 495830] that is new in 8.4. * tests/interp.test: Added tests 18.9 (knownbug) and 18.10
* * generic/tclBasic.c (TclInvokeObjectCommand): objv[argc] is nodgp2003-05-121-4/+3
| | | | | longer set to NULL (Tcl_CreateObjCommand docs already say that it should not be accessed).
* Corrected error message for grammar and spelling.dkf2003-05-051-3/+3
|
* * generic/tclBasic.c: Tcl_EvalObjv() failed to honor thedgp2003-04-251-4/+8
| | | | | | TCL_EVAL_GLOBAL flag when resolving command names. Tcl_EvalEx passed a string rep including leading whitespace and comments to TclEvalObjvInternal().
* * generic/tclBasic.c (TclRenameCommand): fixing error in previousMiguel Sofer2003-02-181-2/+1
| | | | commit.
* * generic/tclBasic.c (TclRenameCommand): 'oldFullName' object wasMiguel Sofer2003-02-181-7/+13
| | | | | not being freed on all function exits, causing a memory leak [Bug 684756]
* Don Porter's fix for bad parsing of nested scripts [Bug 681841].Miguel Sofer2003-02-161-68/+92
|
* * generic/tclBasic.c: Changed [trace add command] so that 'rename' Kevin B Kenny2003-02-031-4/+25
| | | | | | | | | | callbacks get fully qualified names of the command. [Bug 651271]. ***POTENTIAL INCOMPATIBILITY*** * tests/trace.test: Modified the test cases for [trace add command] to expect fully qualified names on the 'rename' callbacks. Added a case for renaming a proc within a namespace. * doc/trace.n: Added language about use of fully qualified names in trace callbacks.