summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
Commit message (Collapse)AuthorAgeFilesLines
* * tests/info.test: Tests 38.* added, exactly testing the trackingandreas_kupries2008-07-251-63/+68
| | | | | | | | | | | | | | of location for uplevel scripts. * 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): Moved the pure-list optimization out of the eval-direct code path to be done always, i.e. even when a compile is requested. This way we do not loose the association between #280 location information and the list elements, if any.
* * generic/tclBasic.c: Modified TclArgumentGet to reject pure listsandreas_kupries2008-07-231-19/+27
| | | | | | | | | | * 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-1/+41
|
* * generic/tclBasic.c: Reworked the handling of bytecode literalsandreas_kupries2008-07-221-35/+101
| | | | | | | | | | * 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-43/+255
| | | | | | | | | | | * 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:
* * generic/tclBasic.c (OldMathFuncProc): Same workaround protectiondgp2008-03-141-7/+6
| | | | from bad TclStackAlloc() alignment. Thanks George Peter Staplin.
* * generic/tclBasic.c (ExprAbsFunc): Revised so that the abs()dgp2008-03-101-3/+3
| | | | | | * tests/expr.test: function and the [::tcl::mathfunc::abs] command do not return the value of -0, or equivalent values with more alarming string reps like -1e-350. [Bug 1893815].
* * generic/tclBasic.c (Tcl_AppendObjToErrorInfo): Revised thedgp2008-02-291-1/+2
| | | | | | | | | | refcount management of Tcl_AppendObjToErrorInfo to become that of a conventional Consumer routine. This preserves the ease of use for the overwhelming common callers who pass in a 0-count value, but makes the proper call with a non-0-count value less surprising. * generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd): Revised the one caller within Tcl itself which passes a non-0-count value to Tcl_AppendObjToErrorInfo().
* * generic/tclBasic.c (TclEvalObjvInternal): Plug memory leak whendgp2008-02-281-1/+4
| | | | | | an enter trace deletes or changes the command, prompting a reparsing. Don't let the second pass lose commandPtr value allocated during the first pass.
* Reconcile coding style issues between branchesdgp2008-01-231-5/+4
|
* * generic/tclBasic.c: Replacing 'operator' by 'op' in the defMiguel Sofer2008-01-151-2/+2
| | | | | * generic/tclCompExpr.c: of struct TclOpCmdClientData to * generic/tclCompile.h: accomodate C++ compilers [Bug 1855644]
* merge stable branch onto HEADdgp2007-12-131-1/+1
|
* Match docs and reality. [Bug 1662436]dkf2007-12-081-2/+2
|
* Simplify code for setting up the [chan] ensemble now that we can leveragedkf2007-12-061-333/+313
| | | | TclMakeEnsemble to do most of the work.
* * generic/tclBasic.c: remove unneeded call in Tcl_CreateInterp,Miguel Sofer2007-11-281-8/+6
| | | | add comments
* * generic/tclBasic.c:Miguel Sofer2007-11-261-1/+8
| | | | | | | | | * generic/tclInt.h: * unix/tclUnixInit.c: * unix/tclUnixThrd.c: Fix stack checking via workaround for bug in glibc's pthread_attr_get_np, patch from [Bug 1815573]. Many thanks to Sergei Golovan (aka Teo) for detecting the bug and helping diagnose and develop the fix.
* Remove #ifdef out accidentally left indkf2007-11-231-4/+1
|
* Turn the [string] command into a real compiled ensemble.dkf2007-11-231-5/+12
|
* Rebuild [dict] as a full compiled ensemble.dkf2007-11-221-2/+2
|
* RE: [Patch 1830184] TclResetResultMiguel Sofer2007-11-121-3/+2
| | | | | | THIS PATCH WAS REVERTED: initial (mis)measurements overstated the perfomance wins, which turn out to be tiny. Not worth the complication.
* * generic/tclBasic.c: New macro TclResetResult, new iPtr flagMiguel Sofer2007-11-121-2/+3
| | | | | | | | | * generic/tclExecute.c: bit INTERP_RESULT_UNCLEAN: shortcut for * generic/tclInt.h: Tcl_ResetResult for the "normal" case: * generic/tclProc.c: TCL_OK, no return options, no errorCode * generic/tclResult.c: nor errorInfo, return at normal level. * generic/tclStubLib.c: [Patch 1830184] * generic/tclUtil.c:
* [Patch 1830038]: Increased usage of macros to detect and take advantage of ↵Miguel Sofer2007-11-111-12/+12
| | | | objTypes.
* * generic/tclBasic.c: fix stack check failure case if stack grows up.das2007-11-111-2/+2
|
* * generic/tclBasic.c: fix stack check failure case if stack grows up.das2007-11-111-2/+2
|
* * generic/tclBasic.c:Miguel Sofer2007-11-101-8/+19
| | | | | | * unix/configure.in: * unix/tclUnixInit.c: detect stack grwoth direction at compile time, only fall to runtime detection when crosscompiling.
* Improved failure comments for stack checks (mistachkin).Miguel Sofer2007-11-101-10/+15
|
* * generic/tclBasic.c:Miguel Sofer2007-11-101-18/+9
| | | | | | | | | * generic/tclInt.h: * unix/tclUnixInit.c: * win/tclWin32Dll.c: restore simpler behaviour for stack checking, not adaptive to stack size changes after a thread is launched. Consensus is that "nobody does that", and so it is not worth the cost.
* * generic/tclBasic.c:Miguel Sofer2007-11-101-24/+20
| | | | | | | | | | | * generic/tclInt.h: * unix/tclUnixInit.c: * unix/tclUnixPort.h: * win/tclWin32Dll.c: modify the stack checking algorithm to recheck in case of failure. The working assumptions are now that (a) a thread's stack is never moved, and (b) a thread's stack can grow but not shrink. Port to windows - could be more efficient, but is already cheaper than it was.
* fix typos, formatting and non-unix breakage (due to undefined stackGrowsDown)das2007-11-101-6/+7
|
* * generic/tclAsync.c:Miguel Sofer2007-11-091-4/+49
| | | | | | | | | | | * generic/tclBasic.c: * generic/tclExecute.c: * generic/tclInt.h: * generic/tclUnixInit.c: * generic/tclUnixPort.h: new fields in interp (ekeko!) to cache TSD data that is accessed at each command invocation, access macros to replace Tcl_AsyncReady and TclpCheckStackSpace by much faster variants [Patch 1829248]
* Add a new command, ::tcl::unsupported::disassembledkf2007-09-251-5/+12
|
* Only invalidate the namespace path once on command creation. [1519940]dkf2007-09-141-2/+1
|
* * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allowsdas2007-09-131-1/+141
| | | | | | | | | | | | | | | | | | * 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/GNUmakefile: enable DTrace support. * macosx/Tcl-Common.xcconfig: * macosx/Tcl.xcodeproj/project.pbxproj: * unix/configure: autoconf-2.59 * unix/tclConfig.h.in: autoheader-2.59
* * generic/tclBasic.c: Removed support for the unmaintaineddgp2007-09-051-8/+1
| | | | | * generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug 1264623] * unix/Makefile.in:
* * generic/tclBasic.c: Used unions to better clarify overloading ofdgp2007-08-281-27/+54
| | | | | * generic/tclCompExpr.c: the fields of the OpCmdInfo and * generic/tclCompile.h: TclOpCmdClientData structs.
* * generic/tclBasic.c: Use fully qualified variable names fordgp2007-08-141-3/+3
| | | | | | * tests/thread.test: ::errorInfo and ::errorCode so that string * tests/trace.test: reported to variable traces are fully qualified in agreement with Tcl 8.4 operations.
* VarReform [Patch 1750051]Miguel Sofer2007-07-311-1/+14
| | | | *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h)
* * generic/tclBasic.c (TEOvI, GetCommandSource):Miguel Sofer2007-07-241-3/+52
| | | | | | | | | | * generic/tclExecute.c (TEBC, TclGetSrcInfoForCmd): * generic/tclInt.h: * generic/tclTrace.c (TclCheck(Interp|Execution)Traces): Removed the need for TEBC to inspect the command before calling TEOvI, leveraging the TIP 282 infrastructure. Moved the generation of a correct nul-terminated command string away from the trace code, back into TEOvI/GetCommandSource.
* * generic/tclBasic.c (TclEvalEx): fix warnings.das2007-06-291-6/+5
|
* unsigned int type matchingdgp2007-06-281-4/+4
|
* * generic/tclBasic.c: Removed dead code, including thedgp2007-06-281-167/+9
| | | | | | | | | | | | | * generic/tclExecute.c: entire file tclMathOp.c. * generic/tclInt.h: * generic/tclMathOp.c (removed): * generic/tclTestObj.c: * win/tclWinFile.c: * unix/Makefile.in: Updated to reflect deletion of tclMathOp.c. * win/Makefile.in: * win/makefile.bc: * win/makefile.vc:
* Silence constness warnings for TclStackFree when building with msvc.patthoyts2007-06-281-4/+4
|
* * generic/tclBasic.c (TclEvalEx): Moved some arrays from thedgp2007-06-261-24/+35
| | | | C stack to the Tcl stack.
* fix warningsdas2007-06-231-3/+4
|
* * generic/tclBasic.c: Move most instances of the Tcl_Parse structdgp2007-06-211-28/+27
| | | | | | * generic/tclCompExpr.c: off the C stack and onto the Tcl stack. * generic/tclCompile.c: This is a rather large struct (> 3kB). * generic/tclParse.c:
* * generic/tclBasic.c (TEOvI): Made sure that leaveMiguel Sofer2007-06-211-93/+101
| | | | | | | * generic/tclExecute.c (INST_INVOKE): traces that were created * tests/trace.test (trace-36.2): during execution of an originally untraced command do not fire [Bug 1740962], partial fix.
* * generic/tclInt.decls: Revised the interfaces of the routinesdgp2007-06-201-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclExecute.c: TclStackAlloc and TclStackFree to make them easier for callers to use (or more precisely, harder to misuse). TclStackFree now takes a (void *) argument which is the pointer intended to be freed. TclStackFree will panic if that's not actually the memory the call will free. TSA/TSF also now tolerate receiving (interp == NULL), in which case they simply fall back to be calls to Tcl_Alloc/Tcl_Free. * generic/tclIntDecls.h: make genstubs * generic/tclBasic.c: Updated callers * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCompCmds.c: * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclFCmd.c: * generic/tclFileName.c: * generic/tclIOCmd.c: * generic/tclIndexObj.c: * generic/tclInterp.c: * generic/tclNamesp.c: * generic/tclProc.c: * generic/tclTrace.c: * unix/tclUnixPipe.c:
* * generic/tclBasic.c (TclEvalEx,TclEvalObjEx): Moved the CmdFrame offdgp2007-06-181-29/+34
| | | | the C stack and onto the Tcl stack.
* * generic/tclBasic.c (TclEvalEx): Moved the CmdFrame off the C ↵dgp2007-06-181-32/+33
| | | | | | stack and onto the Tcl stack.
* * generic/tclCompile.c: reverted TclEvalObjvInternal andMiguel Sofer2007-06-151-231/+53
| | | | | | | | | | | | * generic/tclExecute.c: INST_INVOKE to essentially what they were * generic/tclBasic.c: previous to the commit of 2007-04-03 [Patch 1693802] and the subsequent optimisations, as they break the new trace tests described below. * generic/trace.test: added tests 36 to 38 for dynamic trace creation and addition. These tests expose a change in dynamics due to a recent round of optimisations. The "correct" behaviour is not described in docs nor TIP 62.