summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.h
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclBasic.c: Fix tailcalls falling out of tebc intoMiguel Sofer2008-08-071-1/+6
| | | | | * generic/tclExecute.c: Tcl_EvalEx [Bug 2017946] * generic/tclInt.h:
* remove unneeded declarationMiguel Sofer2008-08-031-2/+1
|
* * generic/tclBasic.c: new unsupported command atProcExitMiguel Sofer2008-08-031-5/+4
| | | | | | | | | * generic/tclCompile.h: that shares the implementation with * generic/tclExecute.c: tailcall. Fixed a segfault in * generic/tclInt.h: tailcalls. Tests added. * generic/tclInterp.c: * generic/tclNamesp.c: * tests/unsupported.test:
* nr-enabling [for]; [while] made to reuse [for]'s infrastructure.Miguel Sofer2008-07-311-1/+3
|
* nr-enabling [while]Miguel Sofer2008-07-311-1/+3
|
* nr-enabling [if]Miguel Sofer2008-07-311-1/+2
|
* * generic/tclBasic.c: NR-enabling [catch]Miguel Sofer2008-07-311-1/+2
| | | | | | * generic/tclCmdAH.c: * generic/tclInt.h: * tests/NRE.test:
* Dumped tclNRE.h's contents into tclInt.h. The file is now empty andMiguel Sofer2008-07-311-1/+66
| | | | | | unrefernced everywhere but in macosx/Tcl.xcodeproj/project.pbxproj: some knowledgeable maintainer please remove tclNRE.h after making sure it doesn't break the build on macosx
* * generic/tclBasic.c: Made use of the thread's alloc cacheMiguel Sofer2008-07-291-23/+80
| | | | | | | | | * generic/tclInt.h: stored in the ekeko at interp creation * generic/tclNRE.h: to avoid hitting the TSD each time an * generic/tclThreadAlloc.c: NRE callback is pushed or pulled; the approach is suitably general to extend to evry other obj allocation where an interp is know; this is left for some other time, requires a lot of grunt work.
* Completely revamped NRE implementation, with (almost) unchanged API.Miguel Sofer2008-07-291-13/+11
|
* just a few const -> CONST (in header files and .decls files)nijtmans2008-07-241-8/+8
| | | | and CONST -> const (.c files and internal .h files)
* * 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: Added numLevels field to CommandFrame,Miguel Sofer2008-07-221-1/+3
| | | | | * generic/tclExecute.c: let GetCommandSource use it. This solves * generic/tclInt.h: [Bug 2017146]. Thx dgp for the analysis.
* * 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: * tests/info.test:
* * generic/tcl.decls: Changed the implementation ofMiguel Sofer2008-07-211-1/+4
| | | | | | | | | | * generic/tclBasic.c: [namespace import]; removed * generic/tclDecls.h: Tcl_NRObjProc, replaced with * generic/tclExecute.c: Tcl_NRCmdSwap (proposed public * generic/tclInt.h: NRE API). This should fix * generic/tclNRE.h: [Bug 582506]. * generic/tclNamesp.c: * generic/tclStubInit.c:
* * generic/tclBasic.c: NRE: enabled calling NR commandsMiguel Sofer2008-07-211-4/+1
| | | | | | | | * generic/tclExecute.c: from the callbacks. Completely * generic/tclInt.h: redone tailcall implementation * generic/tclNRE.h: using the new feature. * generic/tclProc.c: * tests/NRE.test:
* * generic/tclInt.h: the new macros TclSmallAlloc and TclSmallFreeMiguel Sofer2008-07-131-1/+26
| | | | were badly defined under mem debugging [Bug 2017240] (thx das)
* NRE implementation [Patch 2017110]Miguel Sofer2008-07-131-10/+57
|
* TIP 285 ImplementationJoe Mistachkin2008-06-131-1/+25
|
* TIP #230 IMPLEMENTATIONandreas_kupries2008-06-061-1/+5
| | | | | | | | | | | | | | | | | | | * generic/tclIOCmd.c: Integration of transform commands into 'chan' ensemble. * generic/tclInt.h: Definitions of the transform commands. * generic/tclIORTrans.c: Implementation of the reflection transforms. * tests/chan.test: Tests updated for new sub-commands of 'chan'. * tests/ioCmd.test: Tests updated for new sub-commands of 'chan'. * tests/ioTrans.test: Whole new set of tests for the reflection transform. * unix/Makefile.in: Integration of new files into build rules. * win/Makefile.in: Integration of new files into build rules. * win/makefile.vc: Integration of new files into build rules. NOTE: The file 'tclIORTrans.c' has a lot of code in common with the file 'tclIORChan.c', as that made it much easier to develop the reference implementation as a separate module. Now that the transforms have been committed the one thing left to do is to go over both modules and see which of the common parts we can factor out and share.
* Implementation of TIP #257. Incomplete due to missing Win build support.dkf2008-05-311-1/+18
|
* * generic/tcl.h: Make Tcl_ThreadDataKey a void *.georgeps2008-05-091-4/+9
| | | | | | | | | | | | | | | | | * generic/tclInt.h: Change around some function names and add some new per-platform declarations for thread-specific data functions. * generic/tclThread.c: Make use of of the new function names that no longer have a Tclp prefix. * generic/tclThreadStorage.c: Replace the core thread-specific data (TSD) mechanism with an array offset solution that eliminates the hash tables, and only uses one slot of native TSD. Many thanks to Kevin B. Kenny for his help with this. * unix/tclUnixThrd.c: Add platform-specific TSD functions for use by tclThreadStorage.c. * win/tclWinThrd.c: Add platform-specific TSD functions for use by tclThreadStorage.c.
* Converted the [binary] command into an ensemble.patthoyts2008-05-021-4/+2
|
* More elimination of pre-C89-isms.dkf2008-05-021-4/+4
|
* * generic/tclInt.h: make stubs tables 'static const' anddas2008-04-161-2/+3
| | | | | | | | * generic/tclStubInit.c: export only module-scope pointers to * generic/tclStubLib.c: the main stubs tables (for package * tools/genStubs.tcl: initialization). [Patch 1938497] * generic/tclBasic.c (Tcl_CreateInterp): * generic/tclTomMathInterface.c (TclTommath_Init):
* * generic/tclInt.h: revise Tcl_SetNotifier() to use adas2008-04-161-2/+2
| | | | | | | | * generic/tclNotify.c: module-scope hooks table instead of * generic/tclStubInit.c: runtime stubs-table modification; * macosx/tclMacOSXNotify.c: ensure all hookable notifier functions * win/tclWinNotify.c: check for hooks; remove hook checks in * unix/tclUnixNotfy.c: notifier API callers. [Patch 1938497]
* * generic/tclInt.h (TclIsNaN):Kevin B Kenny2008-03-301-5/+9
| | | | | | | | | * unix/configure.in: Added code to the configurator to check for a standard isnan() macro and use it if one is found. This change avoids bugs where the test of ((d) != (d)) is optimized away by an overaggressive compiler. [Bug 1783544] * unix/configure: autoconf-2.61
* 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.