| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
to ensembles.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
objTypes.
|
| |
|
| |
|
| |
|
|
|
|
| |
efficient). After [Patch 1529526] (afredd)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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/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:
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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/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/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclDictObj.c:
* generic/tclExecute.c:
* generic/tclIOCmd.c:
* generic/tclLink.c:
* generic/tclTest.c:
* generic/tclVar.c: fix for [Bug 1334947]. The functions
TclPtrSetVar, Tcl_ObjSetVar2 and Tcl_SetVar2Ex now always consume
the newValuePtr argument - i.e., they will free a 0-refCount
object if they failed to set the variable. Fixed all callers in
the core.
|
|
|
|
| |
easier reading.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdIL.c:
* generic/tclCompCmds.c:
* generic/tclDictObj.c:
* generic/tclExecute.c:
* generic/tclLiteral.c:
* generic/tclParseExpr.c:
* generic/tclScan.c:
* generic/tclUtil.c:
* generic/tclVar.c:
|
|
|
|
|
|
| |
[kennykb-numerics-branch] Resynchronized with the HEAD; at this
checkpoint [-rkennykb-numerics-branch-20051008], the HEAD and
kennykb-numerics-branch contain identical code.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
support "*" fields and needed to interpret precision limits on
%s conversions as a maximum number of bytes, not Tcl_UniChars, to
take from the (char *) argument.
* generic/tclBasic.c: Updated several callers to use
* generic/tclCkalloc.c: TclFormatToErrorInfo() and/or
* generic/tclCmdAH.c: TclObjPrintf().
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclDictObj.c:
* generic/tclExecute.c:
* generic/tclIORChan.c:
* generic/tclIOUtil.c:
* generic/tclNamesp.c:
* generic/tclProc.c:
|
| |
|
|
|
|
| |
when the locking was in the core of the iterator itself.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.h:
* generic/tclUtil.c:
* generic/tclIntDecls.h: `make genstubs`
* generic/tclStubInit.c:
* generic/tclBasic.c: Added callers of TclMatchIsTrivial where
* generic/tclCmdIL.c: a search can be done more efficiently
* generic/tclCompCmds.c:when it is recognized that a pattern match
* generic/tclDictObj.c: is really an exact match. [Patch 1076088]
* generic/tclIO.c:
* generic/tclNamesp.c:
* generic/tclVar.c:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it into agreement with its docs. Further investigation reveals it
was the docs that were incorrect.
* doc/BoolObj.3: Corrections to the documentation of
Tcl_GetBooleanFromObj to bring it into agreement with what this
public interface has always done, including noting the difference
in function between Tcl_GetBooleanFromObj and Tcl_GetBoolean.
* generic/tclGet.c: Revised Tcl_GetBoolean to no longer be a
wrapper around Tcl_GetBooleanFromObj (different function!).
* generic/tclObj.c: Removed TclGetTruthValueFromObj routine
that was added yesterday. Revisions so that only
Tcl_GetBoolean-approved values get the "boolean" Tcl_ObjType.
This retains the fix for [Bug 1187123].
* generic/tclInt.h: Revert most recent change.
* generic/tclBasic.c:
* generic/tclCompCmds.c:
* generic/tclDictObj.c:
* generic/tclExecute.c:
* tests/obj.test:
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclBasic.c: Define [::tcl::Bgerror] in new interps.
* generic/tclEvent.c: Update Tcl_BackgroundError to make use
of the registered [interp bgerror] command.
* generic/tclInterp.c: New [interp bgerror] subcommand.
* tests/interp.test: syntax tests updated.
TIP #226 IMPLEMENTATION
* generic/tcl.decls: Stubs for Tcl_(Save|Restore|Discard)InterpState
* generic/tcl.h: New public opaque type, Tcl_InterpState.
* generic/tclInt.h: Drop old private declarations. Add
Tcl(Get|Set)BgErrorHandler
* generic/tclResult.c: Tcl_*InterpState implementations.
* generic/tclDictObj.c: Update callers.
* generic/tclIOGT.c:
* generic/tclTrace.c:
TIP #227 IMPLEMENTATION
* generic/tcl.decls: Stubs for Tcl_(Get|Set)ReturnOptions.
* generic/tclInt.h: Drop old private declarations.
* generic/tclResult.c: Tcl_*ReturnOptions implementations.
* generic/tclCmdAH.c: Update callers.
* generic/tclMain.c:
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclResult.c (Tcl*InterpState): TclSaveInterpState,
TclRestoreInterpState, and TclDiscardInterpState are superior
replacements for Tcl_(Save|Restore|Discard)Result. Intent is that
these routines will be converted to public routines after TIP approval.
* generic/tclBasic.c (TclEvalObjvInternal):
* generic/tclDictObj.c (DictUpdateCmd, DictWithCmd):
* generic/tclIOGT.c (ExecuteCallback):
* generic/tclTrace.c (Trace*Proc,TclCheck*Traces,TclCallVarTraces):
Callers of Tcl_*Result updated to call the new routines. The
calls were relocated in several cases to perform save/restore
operations only when needed.
* generic/tclEvent.c (HandleBgErrors):
* generic/tclFCmd.c (CopyRenameOneFile):
Calls to Tcl_*Result that were eliminated because they appeared
to serve no useful purpose, typically saving/restoring an error
message, only to throw it away.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclBinary.c:
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclCompExpr.c:
* generic/tclDictObj.c:
It is a poor practice to directly set or append to the value
of the objResult of an interp, because that value might be
shared, and in that circumstance a Tcl_Panic() will be the
result. Searched for example of this practice and replaced
with safer alternatives, often using the Tcl_AppendResult()
routine that dkf just rehabilitated.
|
| |
|
|
|
|
|
| |
in a straw poll. Also made T_DODone;T_DONext a non-fatal sequence, leading
to simplified code.
|
| |
|
| |
|
|
|
|
| |
Also added support for [FRQ 951168] but left that switched off by default.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
to 'Tcl_Panic' (the function). The #define
of panic in tcl.h clearly states it is
deprecated in the comments.
[Patch 865264]
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.h: Updated Tcl_ConvertCountedElement() to quote
* generic/tclUtil.c: the leading "#" character of all list elements
unless the TCL_DONT_QUOTE_HASH flag is passed in.
* generic/tclDictObj.c: Updated Tcl_ConvertCountedElement() callers
* generic/tclListObj.c: to pass in the TCL_DONT_QUOTE_HASH flags
* generic/tclResult.c: when appropriate.
|
| |
|
|
|
|
| |
Thanks to Andreas Kupries for reporting this.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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:
|