summaryrefslogtreecommitdiffstats
path: root/generic/tclCmdIL.c
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclCmdIl.c (Tcl_LreverseObjCmd):Miguel Sofer2008-01-221-1/+10
| | | | | * tests/cmdIL.test (cmdIL-7.7): fix crash on reversing an empty list [Bug 1876793].
* * generic/tclCmdIL.c: more [lsort] data handling streamlines. TheMiguel Sofer2007-12-261-137/+108
| | | | | | | | function MergeSort is gone, essentially inlined into Tcl_LsortObjCmd. It is not a straight inlining, two loops over all lists elements where merged in the process: the linked list elements are now built and merged into the temporary sublists in the same pass.
* * generic/tclCmdIL.c: more [lsort] data handling streamlines.Miguel Sofer2007-12-251-51/+63
| | | | | | Extra mem reqs of latest patches removed, restored to previous mem profile. Improved -unique handling, now eliminating repeated elems immediately instead of marking them to avoid reinsertion at the end.
* * generic/tclCmdIL.c: speed patch for lsort [Patch 1856994].Miguel Sofer2007-12-231-41/+109
|
* * generic/tclCmdIL.c (Tcl_LsortObjCmd, Tcl_LsearchObjCmd): avoidMiguel Sofer2007-12-221-23/+36
| | | | calling SelectObjFromSublist when there are no sublists.
* * generic/tclCmdIL.c (Tcl_LsortObjCmd): preallocate a listObj ofMiguel Sofer2007-12-221-12/+24
| | | | | | sufficient length for the sorted list instead of growing it. Second commit replaces calls to Tcl_ListObjAppenElement with direct access to the internal rep.
* * generic/tclCmdIL.c (Tcl_LsortObjCmd): preallocate a listObj ofMiguel Sofer2007-12-221-2/+2
| | | | sufficient length for the sorted list instead of growing it.
* merge stable branch onto HEADdgp2007-12-131-1/+1
|
* Prevent shimmering crash in [lsearch] when -exact and -integer/-real are mixed.dkf2007-12-051-1/+15
| | | | [Bug 1844789]
* Factor out the core compiled-ensemble builder for simplicity.dkf2007-11-211-42/+3
|
* Greatly improved ensemble compiler. This one now can handle any ensemble.dkf2007-11-161-34/+36
| | | | | 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-7/+12
|
* [Patch 1830038]: Increased usage of macros to detect and take advantage of ↵Miguel Sofer2007-11-111-36/+36
| | | | objTypes.
* * generic/tclCmdIL.c: factor our core of InfoFrameCmd() into internaldas2007-09-131-14/+41
| | | | TclInfoFrame() for use by DTrace probes.
* VarReform [Patch 1750051]Miguel Sofer2007-07-311-449/+6
| | | | *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h)
* fix typo ... donal broke the buildMiguel Sofer2007-07-011-2/+2
|
* Plug a memory leak caused by a missing Tcl_DecrRefCount on an error path. ↵dkf2007-06-301-9/+11
| | | | [Bug 1717186]
* * generic/tclCmdIL.c: More conversions to use TclStackAlloc.dgp2007-06-221-3/+5
| | | | * generic/tclScan.c:
* * generic/tclInt.decls: Revised the interfaces of the routinesdgp2007-06-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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/tclCmdIL.c (InfoFrameCmd):Miguel Sofer2007-06-181-10/+15
| | | | | | | * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): * generic/tclCompile.c (TclInitCompileEnv): * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Moved the CmdFrame off the C stack and onto the Tcl stack.
* Convert [info] into an ensemble command.dkf2007-06-121-183/+145
|
* Changes to allow the tip257 code to work as an extension properly post-tip280dkf2007-05-051-7/+16
|
* Whitespace policing, replacing commas in varargs with constant string ↵Kevin B Kenny2007-04-201-3/+3
| | | | catenation, and fixed an oversight in the fix for NZA time zones.
* Handle creation of Tcl_Objs from constant strings better (easier to use, moredkf2007-04-101-45/+31
| | | | efficient). After [Patch 1529526] (afredd)
* Fix [Bug 1679072]dkf2007-03-121-33/+43
|
* Fix [Bug 1675044]dkf2007-03-111-3/+15
|
* * generic/tclCmdIL (Tcl_LsortObjCmd): changed fix to [Bug 1675116]Miguel Sofer2007-03-101-10/+13
| | | | to use the cheaper TclListObjCopy() instead of Tcl_DuplicateObj()
* Fix [Bug 1675116]dkf2007-03-091-13/+20
|
* Moved [lindex] guts to tclListObj.c, same as [lset] guts.dkf2007-03-081-187/+23
|
* * generic/tclCmdIL.c (TclLindex*): Rewrites to make efficient ↵dgp2007-03-071-180/+66
| | | | | | | | | | private copies of the list and indexlist arguments, so we can operate on the list elements directly with no fear of shimmering effects. Replaces defensive coding schemes that are otherwise required. End result is that TclLindexList is entirely a wrapper around TclLindexFlat, which is now the core engine of all [lindex] operations.
* * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Added missingdgp2007-03-021-1/+2
| | | | | TclInvalidateStringRep() call when we directly manipulate the intrep of an unshared "list" Tcl_Obj. [Bug 1672585].
* Added comments warning against certain optimizationsdgp2007-03-021-1/+10
|
* * generic/tclCmdIL.c (Tcl_JoinObjCmd): Revised [join] implementationdgp2007-03-021-20/+11
| | | | to append Tcl_Obj's instead of strings. [RFE 1669420]
* * generic/tclCmdIL.c (Info*Cmd): Code simplifications anddgp2007-03-021-28/+20
| | | | optimizations.
* * generic/tclCmdIL.c (Tcl_LinsertObjCmd): Code simplificationsdgp2007-03-011-15/+6
| | | | and optimizations.
* * generic/tclCmdIL.c (Tcl_LreplaceObjCmd): Code simplificationsdgp2007-03-011-19/+5
| | | | and optimizations.
* Remove line with no effectdgp2007-03-011-2/+1
|
* * generic/tclCmdIL.c (Tcl_LrangeObjCmd): Rewrite in the samedgp2007-03-011-47/+24
| | | | spirit; avoid shimmer effects rather than react to them.
* * generic/tclCmdIL.c (Tcl_LassignObjCmd): Rewrite to make andgp2007-03-011-63/+28
| | | | | | efficient private copy of the list argument, so we can operate on the list elements directly with no fear of shimmering effects. Replaces defensive coding schemes that are otherwise required.
* Function header/whitespace police/general format fixesdkf2007-02-061-574/+589
|
* * generic/tclBasic.c: TIP #280 implementation.andreas_kupries2006-11-281-8/+270
| | | | | | | | | | | | | | | | | | | | | * 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:
* TIP#270 IMPLEMENTATIONdgp2006-11-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tcl.decls: New public routines Tcl_ObjPrintf, * generic/tclStringObj.c: Tcl_AppendObjToErrorInfo, Tcl_Format, * generic/tclInt.h: Tcl_AppendLimitedToObj, Tcl_AppendFormatToObj and Tcl_AppendPrintfToObj. Former internal versions removed. * generic/tclDecls.h: make genstubs * generic/tclStubInit.c: * generic/tclBasic.c: Updated callers. * generic/tclCkalloc.c: * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCmdMZ.c: * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclDictObj.c: * generic/tclExecute.c: * generic/tclIORChan.c: * generic/tclIOUtil.c: * generic/tclMain.c: * generic/tclNamesp.c: * generic/tclObj.c: * generic/tclPkg.c: * generic/tclProc.c: * generic/tclStrToD.c: * generic/tclTimer.c: * generic/tclUtil.c: * unix/tclUnixFCmd.c:
* Optimize for the unshared case.dkf2006-11-091-12/+28
|
* Implemented [lreverse] from TIP#272dkf2006-11-091-1/+51
|
* * generic/tclBasic.c: Further revised TclAppendPrintToObj() anddgp2006-11-021-3/+3
| | | | | | | | | | | | | | | | | | | | | * generic/tclCkalloc.c: TclObjPrintf() routines to panic when unable * generic/tclCmdAH.c: to complete their formatting operations, rather * generic/tclCmdIL.c: than report an error message. This means an * generic/tclCmdMZ.c: interp argument for error message recording is * generic/tclDictObj.c: no longer needed, further simplifying the * generic/tclExecute.c: interface for callers. * generic/tclIORChan.c: * generic/tclIOUtil.c: * generic/tclInt.h: * generic/tclMain.c: * generic/tclNamesp.c: * generic/tclParseExpr.c: * generic/tclPkg.c: * generic/tclProc.c: * generic/tclStringObj.c: * generic/tclTimer.c: * generic/tclUtil.c: * unix/tclUnixFCmd.c:
* * generic/tclBasic.c: Refactored and renamed the routinesdgp2006-10-311-5/+5
| | | | | | | | | | | | | | | | | | | | | * generic/tclCkalloc.c: TclObjPrintf, TclFormatObj, and * generic/tclCmdAH.c: TclFormatToErrorInfo to a new set of * generic/tclCmdIL.c: routines TclAppendPrintfToObj, * generic/tclCmdMZ.c: TclAppendFormatToObj, TclObjPrintf, and * generic/tclDictObj.c: TclObjFormat, with the intent of making * generic/tclExecute.c: the latter list, plus TclAppendLimitedToObj * generic/tclIORChan.c: and TclAppendObjToErrorInfo, public via * generic/tclIOUtil.c: a revised TIP 270. * generic/tclInt.h: * generic/tclMain.c: * generic/tclNamesp.c: * generic/tclParseExpr.c: * generic/tclPkg.c: * generic/tclProc.c: * generic/tclStringObj.c: * generic/tclTimer.c: * generic/tclUtil.c: * unix/tclUnixFCmd.c:
* * generic/tcl.h: Modified the Tcl call stack soMiguel Sofer2006-10-231-14/+8
| | | | | | | | | | | | | * generic/tclBasic.c: there is always a valid CallFrame, even * generic/tclCmdIL.c: at level 0 [Patch 1577278]. Most of the * generic/tclInt.h: changes involve removing tests for * generic/tclNamesp.c: iPtr->(var)framePtr==NULL. There is now a * generic/tclObj.c: CallFrame pushed at interp creation * generic/tclProc.c: with a pointer to it stored in * generic/tclTrace.c: iPtr->rootFramePtr. A second unused * generic/tclVar.c: field in Interp is hijacked to enable further functionality, currently unused (but with several FRQs depending on it).
* Undo mistaken commit to wrong branch caused by CVS fumble... :-}dkf2006-10-201-13/+7
|
* Consolidated TIP#257 patch applied to HEAD to allow for experimentation bydkf2006-10-201-7/+13
| | | | other developers
* Error message consistency improvements. [Bug 1534628]dkf2006-08-091-3/+3
|