| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
* generic/tclInt.h: control the timing with which the global
* generic/tclNamesp.c: variables ::errorCode and ::errorInfo get
* generic/tclProc.c: updated after an error. This keeps more
* generic/tclResult.c: precise compatibility with Tcl 8.4.
* tests/result.test (result-6.2): [Bug 1649062]
|
|
|
|
| |
* generic/tclExecute.c: Tcl-stack reform, [Patch 1701202]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing
* generic/tclCompile.h: expanded literal words. These sections were
mostly in place to enable [info frame] to discover line information
in expanded literals. Since the parser now generates a token for
each post-expansion word referring to the right location in the
original script string, [info frame] gets all the data it needs.
* generic/tclInt.h: Revised the parser so that it never produces
* generic/tclParse.c: TCL_TOKEN_EXPAND_WORD tokens when parsing an
* tests/parse.test: expanded literal word; that is, something like
{*}{x y z}. Instead, generate the series of TCL_TOKEN_SIMPLE_WORD
tokens to represent the words that expansion of the literal string
produces. [RFE 1725186]
|
|
|
|
| |
from tclInt.h now they are in the internal stubs table.
|
|
|
|
| |
so make sure it is also always declared (with MODULE_SCOPE).
|
| |
|
| |
|
|
|
|
|
| |
branches, use empty 'if ; else' to handle use in unbraced outer
if/else conditions (as already done in tcl.h)
|
|
|
|
| |
efficient). After [Patch 1529526] (afredd)
|
|
|
|
|
|
| |
* generic/tclInt.h: the internal stubs table; regen.
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
|
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c: variable linking commands: 'global',
* generic/tclCompile.h: 'variable', 'upvar', 'namespace upvar'
* generic/tclExecute.c: [Patch 1688593]
* generic/tclInt.h:
* generic/tclVar.c:
|
|
|
|
|
|
|
|
|
|
|
| |
[string reverse] command in terms of the new TclStringObjReverse()
routine.
* generic/tclInt.h (TclStringObjReverse): New internal routine
* generic/tclStringObj.c (TclStringObjReverse): that implements the
[string reverse] operation, making use of knowledge/surgery of the
String intrep to minimize the number of allocs and copies needed to
do the job.
|
|
|
|
|
|
|
|
|
|
|
|
| |
the recounting logic of the List internal rep need not be repeated
there. Better encapsulation of internal details.
* generic/tclInt.h: New internal routine TclListObjCopy() used
* generic/tclListObj.c: to efficiently do the equivalent of
[lrange $list 0 end]. After some experience with this, might be
a good candidate for exposure as a public interface. It's useful
for callers of Tcl_ListObjGetElements() who want to control the
ongoing validity of the returned objv pointer.
|
|
|
|
|
|
|
|
|
|
| |
* doc/chan.n: New subcommand [chan pending].
* generic/tclBasic.c: Thanks to Michael Cleverly for proposal
* generic/tclInt.h: and implementation.
* generic/tclIOCmd.c:
* library/init.tcl:
* tests/chan.test:
* tests/ioCmd.test:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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:
|
|
|
|
| |
operators, plus docs and tests.
|
|
|
|
|
|
| |
* generic/tclInt.h: tclInt.h. Only know user is Expect, which
already #include's tclInt.h. No need to continue greater exposure.
[Bug 926500]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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/tclEncoding.c: pointer from/to integer of different
* generic/tclEvent.c: size' on 64-bit platforms by casting to
* generic/tclExecute.c: intermediate types intptr_t/uintptr_t
* generic/tclHash.c: via new PTR2INT(), INT2PTR(),
* generic/tclIO.c: PTR2UINT() and UINT2PTR() macros.
* generic/tclInt.h: [Patch 1592791]
* generic/tclProc.c:
* generic/tclTest.c:
* generic/tclThreadStorage.c:
* generic/tclTimer.c:
* generic/tclUtil.c:
* unix/configure.in:
* unix/tclUnixChan.c:
* unix/tclUnixPipe.c:
* unix/tclUnixPort.h:
* unix/tclUnixTest.c:
* unix/tclUnixThrd.c:
* unix/configure: autoconf-2.59
* unix/tclConfig.h.in: autoheader-2.59
|
| |
|
| |
|
|
|
|
|
|
| |
* generic/tclInt.h: TclFormat() and TclAppendFormatToObj() that
* generic/tclNamesp.c: accept (objc, objv) arguments rather than
* generic/tclStringObj.c: any varargs stuff.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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:
|
|
|
|
| |
structure.
|
| |
|
| |
|
|
|
|
| |
[apply] terms generate stack trace info.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tests/clock.test (3.1, 34.1): messages to make use of the
new rewrite capabilities of [info level]
* generic/tcl.h: Lets TEOV update the iPtr->objc/objv
* generic/tclBasic.c: fields, except when the (new) flag bit
* generic/tclInt.h: TCL_EVAL_NOREWRITE is present. This
* generic/tclNamesp.c: causes [info level] to know and use
* generic/tclProc.c: ensemble rewrites [Bug 1577492]
* tests/namespace.test:
***POTENTIAL INCOMPATIBILITY***
The return value from [info level 0] on interp alias calls is
changed: previously returned the target command (including curried
values), now returns the source - what was actually called.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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).
|
| |
|
|
|
|
| |
other developers
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.h:
* generic/tclIntDecls.h:
* generic/tclObj.c:
* generic/tclStubInit.c: added an internal function
TclObjBeingDeleted to provide info as to the reason for the loss
of an internal rep. [FR 1512138]
|
|
|
|
|
|
|
|
|
| |
* generic/tclHistory.c:
* generic/tclInt.h:
* generic/tclProc.c: made Tcl_RecordAndEvalObj not call "history"
if it has been redefined to an empty proc, in order to reduce the
noise when debugging [FR 1190441]. Moved TclCompileNoOp from
tclProc.c to tclCompile.c
|
|
|
|
| |
end of the structure, for better backward compatibility.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclDecls.h: Regenerated from tcl.decls.
* generic/tclStubInit.c:
* doc/PkgRequire.3: Documentation of extended API,
* doc/package.n: extended testsuite.
* tests/pkg.test:
* generic/tcl.decls: Implementation.
* generic/tclBasic.c:
* generic/tclConfig.c:
* generic/tclInt.h:
* generic/tclPkg.c:
* generic/tclTest.c:
* generic/tclTomMathInterface.c:
* library/init.tcl:
* library/package.tcl:
* library/tm.tcl:
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdMZ.c (Tcl_TimeObjCmd): nanosecond resolution timer
* generic/tclInt.h: to [clock clicks] and [time]
* unix/configure.in (Darwin): when TCL_WIDE_CLICKS defined.
* unix/tclUnixTime.c (TclpGetWideClicks, TclpWideClicksToNanoseconds):
* unix/configure: autoconf-2.59
* unix/tclConfig.h.in: autoheader-2.59
|
| |
|
|
|
|
| |
* tests/execute.test (execute-9.1): dgp's fix for [Bug 1522803].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that builds a parse tree instead of operating with deep recursion.
This corrects reports of stack-blowing crashes parsing long
expressions [Bug 906201] and replaces a fundamentally O(N^2)
algorithm with an O(N) one [RFE 903765]. The new parser is better
able to generate error messages that clearly report both the nature
and context of the syntax error [Bugs 1029267, 1381715]. For now,
the code for the old parser is still present and can be activated
with a "#define OLD_EXPR_PARSER 1". This is for the sake of a clean
implementation patch, and for ease of benchmarking. The new parser
is non-recursive, so much lighter in stack consumption, but it
does use more heap, so there may be cases where parsing of long
expressions that succeeded with the old parser will lead to out
of memory panics with the new one. There are still more improvements
possible on that point, though significant progress may require
changes to the Tcl_Token specifications documented for the public
Tcl_Parse*() routines.
***POTENTIAL INCOMPATIBILITY*** for any callers that rely on the
exact (usually terrible) error messages generated by the old parser.
This includes a large number of tests in the test suite.
* generic/tclInt.h: Replaced TclParseWhiteSpace() with
* generic/tclParse.c: TclParseAllWhiteSpace() which is what
* generic/tclParseExpr.c: all the callers really needed.
Breaking whitespace runs at newlines is useful only to the command
parsing function, and it can call the file scoped routine
ParseWhiteSpace() to do that.
* tests/expr-old.test: Removed knownBug constraints that masked
* tests/expr.test: failures due to revised error messages.
* tests/parseExpr.test:
|
| |
|
|
|
|
|
|
| |
* generic/tclInt.h: specifiers for [binary] to account for the
* generic/tclStrToD.c: "middle endian" floating point format used
in Nokia N770.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/Encoding.3: New subcommand [encoding dirs].
* doc/encoding.n: New routine Tcl_GetEncodingNameFromEnvironment.
* generic/tcl.decls: Made public:
* generic/tclBasic.c: TclGetEncodingFromObj
* generic/tclCmdAH.c: -> Tcl_GetEncodingFromObj
* generic/tclEncoding.c:TclGetEncodingSearchPath
* generic/tclInt.decls: -> Tcl_GetEncodingSearchPath
* generic/tclInt.h: TclSetEncodingSearchPath
* generic/tclTest.c: -> Tcl_SetEncodingSearchPath
* library/init.tcl: Removed commands:
* tests/cmdAH.test: [tcl::unsupported::EncodingDirs]
* tests/encoding.test: [testencoding path] (Tcltest)
* unix/tclUnixInit.c: [Patch 1413934].
* win/tclWinInit.c:
* generic/tclDecls.h: make genstubs
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/apply.n: (New file) New command [apply]. [Patch 944803].
* doc/uplevel.n:
* generic/tclBasic.c:
* generic/tclInt.h:
* generic/tclProc.c:
* tests/apply.test: (New file)
* tests/proc-old.test:
* tests/proc.test:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/Namespace.3: New command [namespace unknown]. New public
* doc/namespace.n: C routines Tcl_(Get|Set)NamespaceUnknownHandler. * doc/unknown.n: [Patch 958222].
* generic/tcl.decls:
* generic/tclBasic.c:
* generic/tclInt.h:
* generic/tclNamesp.c:
* tests/namespace.test:
* generic/tclDecls.h: make genstubs
* generic/tclStubInit.c:
|
|
|
|
|
|
|
|
|
| |
* doc/namespace.n: New command [namespace upvar]. [Patch 1275435]
* generic/tclInt.h:
* generic/tclNamesp.c:
* generic/tclVar.c:
* tests/namespace.test:
* tests/upvar.test:
|
| |
|