summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.h
Commit message (Collapse)AuthorAgeFilesLines
...
| * Added prototypes for TclpFreeAllocCache() and TclFreeAllocCache().vasiljevic2005-04-071-1/+3
| | | | | | | | Part of fixing the Tcl Bug #1178445.
| * TIP#218 IMPLEMENTATIONandreas_kupries2005-01-271-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclDecls.h: Regenerated from tcl.decls. * generic/tclStubInit.c: * doc/CrtChannel.3: Documentation of extended API, * generic/tcl.decls: extended testsuite, and * generic/tcl.h: implementation. Removal of old * generic/tclIO.c: driver-specific TclpCut/Splice * generic/tclInt.h: functions. Replaced with generic * tests/io.test: thread-action calls through the * unix/tclUnixChan.c: new hooks. Update of all builtin * unix/tclUnixPipe.c: channel drivers to version 4. * unix/tclUnixSock.c: Windows drivers extended to * win/tclWinChan.c: manage thread state in a thread * win/tclWinConsole.c: action handler. * win/tclWinPipe.c: * win/tclWinSerial.c: * win/tclWinSock.c: * mac/tclMacChan.c:
| * * generic/tclEvent.c: Correct threaded obj allocator tohobbs2004-07-211-1/+4
| | | | | | | | | | | | | | * generic/tclInt.h: fully cleanup on exit and allow for * generic/tclThreadAlloc.c: reinitialization. [Bug #736426] * unix/tclUnixThrd.c: (mistachkin, kenny) * win/tclWinThrd.c:
| * Corrected Tcl Bug #770053vasiljevic2004-06-221-1/+6
| |
| * * generic/tclInt.h:davygrvy2004-05-061-1/+2
| | | | | | | | | | | | | | | | | | * generic/tclThread.c: * generic/tclEvent.c: * unix/tclUnixThrd.c: * win/tclWinThrd.c: Provisions made so masterLock, initLock, allocLock and joinLock mutexes can be recovered during Tcl_Finalize.
| * * generic/tclInt.h:hobbs2004-03-291-3/+2
| | | | | | | | | | | | | | | | | | * generic/tclEncoding.c (TclFindEncodings, Tcl_FindExecutable): * mac/tclMacInit.c (TclpInitLibraryPath): Correct handling of UTF * unix/tclUnixInit.c (TclpInitLibraryPath): data that is actually * win/tclWinFile.c (TclpFindExecutable): "clean", allowing the * win/tclWinInit.c (TclpInitLibraryPath): loading of Tcl from paths that contain multi-byte chars on Windows [Bug 920667]
| * * generic/tcl.h Made changes so that the "wideInt" Tcl_ObjTypedgp2003-04-161-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclObj.c is defined on all platforms, even those where * generic/tclPort.h TCL_WIDE_INT_IS_LONG is defined. Also made the Tcl_Value struct have a wideValue field on all platforms. This is a ***POTENTIAL INCOMPATIBILITY*** for TCL_WIDE_INT_IS_LONG platforms because that struct changes size. This is the same TIP 72 incompatibility that was seen on other platforms at the 8.4.0 release, when this change should have happened as well. [Bug 713562] * generic/tclInt.h: New internal macros TclGetWide() and TclGetLongFromWide() to deal with both forms of the "wideInt" Tcl_ObjType, so that conditional TCL_WIDE_INT_IS_LONG code is confined to the header file. * generic/tclCmdAH.c: Replaced most coding that was conditional * generic/tclCmdIL.c: on TCL_WIDE_INT_IS_LONG with code that * generic/tclExecute.c: works across platforms, sometimes using * generic/tclTest.c: the new macros above to do it. * generic/tclUtil.c: * generic/tclVar.c:
| * * generic/tclInt.h (tclOriginalNotifier):dgp2003-03-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclStubInit.c (tclOriginalNotifier): * mac/tclMacNotify.c (Tcl_SetTimer,Tcl_WaitForEvent): * unix/tclUnixNotfy.c (Tcl_SetTimer,Tcl_WaitForEvent, Tcl_CreateFileHandler,Tcl_DeleteFileHandler): * win/tclWinNotify.c (Tcl_SetTimer,Tcl_WaitForEvent): Some linkers apparently use a different representation for a pointer to a function within the same compilation unit and a pointer to a function in a different compilation unit. This causes checks like those in the original notifier procedures to fall into infinite loops. The fix is to store pointers to the original notifier procedures in a struct defined in the same compilation unit as the stubs tables, and compare against those values. [Bug 707174]
| * * generic/tclInt.h: Removed definition of ParseValue struct thatdgp2003-03-201-32/+1
| | | | | | | | is no longer used.
* | * generic/tclInt.decls: Backport of Kevin B. Kenny's work onandreas_kupries2010-11-301-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclInt.h: the Tcl Head, with help from Jeff Hobbs. * generic/tclStrToD.c: * generic/tclTest.c: * generic/tclTomMath.decls: * generic/tclUtil.c: * tests/util.test: * unix/Makefile.in: * win/Makefile.in: * win/makefile.vc: Rewrite of Tcl_PrintDouble and TclDoubleDigits that (a) fixes a severe performance problem with floating point shimmering reported by Karl Lehenbauer, (b) allows TclDoubleDigits to generate the digit strings for 'e' and 'f' format, so that it can be used for tcl_precision != 0 (and possibly later for [format]), (c) fixes [Bug 3120139] by making TclPrintDouble inherently locale-independent, (d) adds test cases to util.test for correct rounding in difficult cases of TclDoubleDigits where fixed- precision results are requested. (e) adds test cases to util.test for the controversial aspects of [Bug 3105247]. As a side effect, two more modules from libtommath (bn_mp_set_int.c and bn_mp_init_set_int.c) are brought into the build, since the new code uses them. * generic/tclIntDecls.h: * generic/tclStubInit.c: * generic/tclTomMathDecls.h: Regenerated.
* | * generic/tclInt.decls, generic/tclInt.h, generic/tclIntDecls.h:hobbs2010-11-301-12/+1
| | | | | | | | | | | | | | * generic/tclStubInit.c: TclFormatInt restored at slot 24 * generic/tclUtil.c (TclFormatInt): restore TclFormatInt func from 2005-07-05 macro-ization. Benchmarks indicate it is faster, as a key int->string routine (e.g. int-indexed arrays).
* | * doc/interp.n: [3081184] TIP #378.andreas_kupries2010-11-151-1/+7
| | | | | | | | | | | | | | | | | | | | * doc/tclvars.n: Performance fix for TIP #280. * generic/tclBasic.c: * generic/tclExecute.c: * generic/tclInt.h: * generic/tclInterp.c: * tests/info.test: * tests/interp.test:
* | [Bug 3030870] make itcl 3.x built with pre-8.6 work in 8.6:nijtmans2010-07-251-2/+1
| | | | | | | | revert tclInt.h to what it was before, and relax the relation between Tcl_CallFrame and CallFrame.
* | [Bug 3030870] make itcl 3.x built with pre-8.6 work in 8.6nijtmans2010-07-171-1/+2
| |
* | [Bug 2991415]: tclport.h #included before limits.hnijtmans2010-05-251-7/+2
| |
* | Various CYGWIN-related fixesnijtmans2010-01-311-220/+227
| | | | | | | | | | | | | | | | | | backported from HEAD. Still configure script not modified, so CYGWIN build is still disabled. Reason: although the build succeeds with those changes, many tests still fail.
* | Fix for [Bug 988703, 1565466]Joe Mistachkin2009-10-181-3/+5
| |
* | * generic/tclAlloc.c: Cleaned up various routines in thedgp2009-09-291-1/+12
| | | | | | | | | | | | | | * generic/tclCkalloc.c: call stacks for memory allocation to * generic/tclInt.h: guarantee that any size values computed * generic/tclThreadAlloc.c: are within the domains of the routines they get passed to. [Bugs 2557696 and 2557796].
* | * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, TclEvalObjEx): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines): * 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/tclParse.c (TclSubstTokens, Tcl_SubstObj): * generic/tclProc.c (TclCreateProc): * generic/tclVar.c (TclPtrSetVar): * tests/info.test (info-30.0-24): Extended parser, compiler, and execution with code and attendant data structures tracking the positions of continuation lines which are not visible in script Tcl_Obj*'s, to properly account for them while counting lines for #280.
* | * generic/tclBasic.c (DeleteInterpProc,TclArgumentBCEnter,andreas_kupries2009-07-141-12/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.5 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).
* | Backport fix for [Bug 1028264]: WSACleanup() too early. The fix introduces ↵ferrieux2009-04-271-1/+5
| | | | | | | | "late exit handlers" for similar late process-wide cleanups.
* | Fixed [Bug 2269431]: load of shared objectsnijtmans2008-11-141-2/+3
| | | | | | | | leaves emporary files on windows
* | * generic/tclInt.h: Correct the TclGetLongFromObj,dgp2008-09-171-4/+4
| | | | | | | | | | | | TclGetIntFromObj, and TclGetIntForIndexM macros so that they retrieve the internalRep.longValue field instead of casting the internalRep.otherValuePtr field to type long.
* | * generic/tclBasic.c: Reworked the handling of bytecode literalsandreas_kupries2008-07-221-1/+19
| | | | | | | | | | | | | | | | | | | | * 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-3/+30
| | | | | | | | | | | | | | | | | | | | | | * 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:
* | merge updates from HEAD dgp2008-03-311-5/+9
| |
* | Reconcile coding style issues between branchesdgp2008-01-231-4/+4
| |
* | Reconcile coding style issues between branchesdgp2008-01-231-36/+36
| |
* | * generic/tclInt.h: New macro TclGrowParseTokenArray() todgp2008-01-231-2/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCompCmds.c: simplify code that might need to grow * generic/tclCompExpr.c: an array of Tcl_Tokens in the parsePtr * generic/tclParse.c: field of a Tcl_Parse. Replaces the TclExpandTokenArray() routine via replacing: int needed = parsePtr->numTokens + growth; while (needed > parsePtr->tokensAvailable) { TclExpandTokenArray(parsePtr); } with: TclGrowParseTokenArray(parsePtr, growth); This revision merged over from dgp-refactor branch.
* | * generic/tclAlloc.c:Miguel Sofer2007-12-171-1/+12
| | | | | | | | | | | | | | | | * generic/tclExecute.c: * generic/tclInt.h: * generic/tclThreadAlloc.c: Fix alignment for memory returned by TclStackAlloc; insure that all memory allocators align to 16-byte boundaries on 64 bit platforms [Bug 1851832, 1851524]
* | merge stable branch onto HEADdgp2007-12-131-1/+1
| |
* | * generic/tclInt.decls: move TclByteArrayMatch and TclReToGlobhobbs2007-12-111-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclIntDecls.h: to tclInt.h from stubs. * generic/tclStubInit.c: Add flags var to TclByteArrayMatch for * generic/tclInt.h: future extensibility * generic/tcl.h: define TCL_MATCH_EXACT doc for Tcl_StringCaseMatch. * doc/StrMatch.3: It is compatible with existing usage. * generic/tclExecute.c (INST_STR_MATCH): flag for TclByteArrayMatch * generic/tclUtil.c (TclByteArrayMatch, TclStringMatchObj): * generic/tclRegexp.c (Tcl_RegExpExecObj): * generic/tclCmdMZ.c (StringMatchCmd): Use TclStringMatchObj * tests/string.test (11.9.* 11.10.*): more tests
* | (TclMatchIsTrivial): simplify TclMatchIsTrivial to remove ] checkhobbs2007-12-061-2/+2
| |
* | add TclGetChannelFromObj declhobbs2007-12-061-1/+4
| |
* | Simplify code for setting up the [chan] ensemble now that we can leveragedkf2007-12-061-11/+8
| | | | | | | | TclMakeEnsemble to do most of the work.
* | * generic/tclBasic.c:Miguel Sofer2007-11-261-2/+2
| | | | | | | | | | | | | | | | | | * 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.
* | Turn the [string] command into a real compiled ensemble.dkf2007-11-231-5/+15
| |
* | Rebuild [dict] as a full compiled ensemble.dkf2007-11-221-6/+22
| |
* | Factor out the core compiled-ensemble builder for simplicity.dkf2007-11-211-3/+15
| |
* | * generic/tclDictObj.c: Changed the underlying implementation of thedkf2007-11-201-1/+9
| | | | | | | | | | | | | | | | | | hash table used in dictionaries to additionally keep all entries in the hash table in a linked list, which is only ever added to at the end. This makes iteration over all entries in the dictionary in key insertion order a trivial operation, and so cleans up a great deal of complexity relating to dictionary representation and stability of iteration order.
* | More minor cleanupdkf2007-11-181-253/+253
| |
* | Greatly improved ensemble compiler. This one now can handle any ensemble.dkf2007-11-161-54/+114
| | | | | | | | | | It is usually not enabled though; only worth it when a subcommand is actually expected to undergo bytecode compilation.
* | Compile [info exists] into bytecode. Includes new instructions to support it.dkf2007-11-141-1/+5
| |
* | Strip an _ANSI_ARGS_ usage.dkf2007-11-141-2/+2
| |
* | RE: [Patch 1830184] TclResetResultMiguel Sofer2007-11-121-35/+1
| | | | | | | | | | | | 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-1/+35
| | | | | | | | | | | | | | | | | | * 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-10/+55
| | | | | | | | objTypes.
* | * unix/tclUnixTime.c (TclpWideClicksToNanoseconds): fix issues withdas2007-11-101-2/+2
| | | | | | | | * generic/tclInt.h: int64_t overflow.
* | * generic/tclBasic.c:Miguel Sofer2007-11-101-3/+3
| | | | | | | | | | | | | | | | | | * 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-3/+5
| | | | | | | | | | | | | | | | | | | | | | * 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.