summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
Commit message (Collapse)AuthorAgeFilesLines
* Implement TIP #440: Add engine to tcl_platform Arrayjan.nijtmans2016-01-291-0/+7
|
* [a4494e28ed] Use flag bit instead of NULL pointer to suppress teardown list ofdgp2014-02-061-10/+29
| | | | | imported commands when the original command gets re-created. This prevents the panic otherwise possible when the invalid state represented by the NULL pointer is encountered during a command delete trace.
* Partial revert of [a16752c252] bug fix to stop crashes in buggy tclcompiler.unbreak_tclcompilerdgp2013-09-051-2/+22
|
* Make sure the errors raised by execution traces become errors raised bydgp2013-08-151-1/+1
| | | | the traced command, as documented. Deletion of the traced command was supressing that.
* [a16752c252] Correct failure to call cmd deletion callbacks.dgp2013-08-141-23/+5
|
* Improve compatibility detection for <time.h> and <sys/stat.h>: jan.nijtmans2013-06-111-3/+4
| | | | - Move <time.h> before other includes on Windows, so we are sure the time_t definition being checked doesn't come from <sys/types.h>. - Padding at the end of Tcl_StatBuf doesn't influcence binary compatibility, so relax panic check accordingly.
* _USE_32BIT_TIME_T is already defined in tclWinPort.hjan.nijtmans2013-05-161-4/+0
|
* Add support for the latest mingw-4.0-rc1. See: ↵jan.nijtmans2013-05-161-0/+15
|\ | | | | | | [http://sourceforge.net/p/mingw/mingw-org-wsl/ci/4.0-rc1/tree/NEWS]
| * Add support for the latest mingw-4.0-rc1. See: ↵jan.nijtmans2013-05-161-0/+15
| | | | | | | | [http://sourceforge.net/p/mingw/mingw-org-wsl/ci/4.0-rc1/tree/NEWS]
| * Make (deprecated) Tcl_EvalObj/Tcl_GlobalEvalObj macro's always, not only ↵jan.nijtmans2013-04-091-0/+2
| | | | | | | | when using stubs.
* | 3610404 When we let go of commandPtr in TclEvalObjvInternal, NULL out thedgp2013-04-161-0/+1
| | | | | | variable so we don't mistakenly try to use the value later after we freed it.
* | Make Tcl_EvalObj/Tcl_GlobalEvalObj a macro always, not only when using stubs.jan.nijtmans2013-04-041-0/+2
| |
* | Allow win32 build with -DTCL_NO_DEPRECATED, just as the UNIX build, off by ↵jan.nijtmans2013-01-161-2/+0
|\ \ | |/ | | | | | | default. Define Tcl_EvalObj and Tcl_GlobalEvalObj as macros, even when TCL_NO_DEPRECATED is defined, so Tk can benefit from it too (this is not what TCL_NO_DEPRECATED is supposed to do).
| * Allow win32 build with -DTCL_NO_DEPRECATED, just as the UNIX build, off by ↵jan.nijtmans2013-01-161-2/+0
| | | | | | | | | | default. Define Tcl_EvalObj and Tcl_GlobalEvalObj as macros, even when TCL_NO_DEPRECATED is defined, so Tk can benefit from it too (this is not what TCL_NO_DEPRECATED is supposed to do).
| * 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
* | 3587651 Fix Tcl_ListMathFuncs() by turning it into a call to [info functions]dgp2012-11-161-31/+18
| |
* | 3532959 Arrange for every lambda to place an entry in the linePBodyPtr hash ↵dgp2012-06-101-4/+6
| | | | | | | | | | | | | | table. Then the two teardowns of data in that table synchronize so that the first to run signals the other not to operate. Test proc-7.4 in a mem debug build of Tcl will detect Bug 3532959 by crashing.
* | Work in progress fixing 3532959dgp2012-06-081-1/+2
| |
* | [Bug 3388350] mingw64 compiler warningsjan.nijtmans2011-08-161-1/+1
|\ \ | |/
| * 3390272 Leak of [info script] value.dgp2011-08-151-0/+4
| |
* | 3390272 Leak of [info script] value.dgp2011-08-151-0/+4
| |
* | Remove TclCleanupLiteralTable (see 994838).dgp2011-06-021-1/+0
| |
* | * generic/tclCompile.c (TclFixupForwardJump): Tracked down and fixedandreask2011-05-171-0/+4
| | | | | | | | | | | | | | | | | | * generic/tclBasic.c (TclArgumentBCEnter): the cause of a violation of my assertion that 'ePtr->nline == objc' in TclArgumentBCEnter. When a bytecode was grown during jump fixup the pc -> command line mapping was not updated. When things aligned just wrong the mapping would direct command A to the data for command B, with a different number of arguments.
* | Define and use macros that test whether a Tcl list value is canonical.dgp2011-04-181-49/+36
| |
* | Rewrites to eliminate isspace() calls.dgp2011-03-161-9/+9
| |
* | Fix gcc warnings: variable set but not usedjan.nijtmans2011-03-081-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-2/+2
|\ \ | |/ | | | | | | * generic/tclCompile.c: with TclParseBackslash() where possible. * generic/tclParse.c: * generic/tclUtil.c:
| * * 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-021-2/+0
|\ \ | |/ | | more harm than good. Purged them.
| * 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: