| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdAH.c (Tcl_CatchObjCmd):
* generic/tclCmdMZ.c (TclMergeReturnOptions,TclProcessReturn):
* generic/tclCompCmds.c (TclCompileReturnCmd):
* generic/tclExecute.c (TclCompEvalObj):
* generic/tclInt.h (Interp):
* generic/tclProc.c (TclUpdateReturnInfo):
Place primary storage of the -level and -code information in private
fields of the Interp struct, rather than in a DictObj. This should
significantly improve performance of TclUpdateReturnInfo.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TclEvalObjvInternal,Tcl_LogCommandInfo,TclAddObjErrorInfo):
* generic/tclCmdAH.c (Tcl_CatchObjCmd):
* generic/tclEvent.c (BgError,ErrAssocData,Tcl_BackgroundError,
HandleBgErrors,BgErrorDeleteProc):
* generic/tclExecute.c (TclCreateExecEnv,TclDeleteExecEnv):
* generic/tclIOUtil.c (comments only):
* generic/tclInt.h (ExecEnv,Interp, ERR_IN_PROGRESS):
* generic/tclInterp.c ([tclInit]):
* generic/tclMain.c (comments only):
* generic/tclNamesp.c
(Tcl_CreateNamespace,Tcl_DeleteNamespace,TclTeardownNamespace):
* generic/tclProc.c (TclUpdateReturnInfo):
* generic/tclResult.c
(Tcl_ResetResult,TclTransferResult):
* generic/tclTrace.c (CallVarTraces):
Reworked management of the "errorInfo" data of an interp.
That information is now primarily stored in a new private
(Tcl_Obj *) field of the Interp struct, rather than using a
global variable ::errorInfo as the primary storage. The
ERR_IN_PROGRESS flag bit value is no longer required to manage
the value in its new location, and is removed. Variable traces
are established to support compatibility for any code expecting
the ::errorInfo variable to hold the information.
***POTENTIAL INCOMPATIBILITY***
Code that sets traces on the ::errorInfo variable may notice a
difference in timing of the firing of those traces. Code that
uses the value ERR_IN_PROGRESS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TclEvalObjvInternal,Tcl_LogCommandInfo):
* generic/tclCmdAH.c (Tcl_CatchObjCmd):
* generic/tclEvent.c (BgError,Tcl_BackgroundError,HandleBgErrors):
* generic/tclInt.h (Interp, ERROR_CODE_SET):
* generic/tclNamesp.c
(Tcl_CreateNamespace,Tcl_DeleteNamespace,TclTeardownNamespace):
* generic/tclResult.c
(Tcl_ResetResult,Tcl_SetObjErrorCode,TclTransferResult):
* generic/tclTrace.c (CallVarTraces):
Reworked management of the "errorCode" data of an interp.
That information is now primarily stored in a new private
(Tcl_Obj *) field of the Interp struct, rather than using a
global variable ::errorCode as the primary storage. The
ERROR_CODE_SET flag bit value is no longer required to manage
the value in its new location, and is removed. Variable traces
are established to support compatibility for any code expecting
the ::errorCode variable to hold the information.
|
|
|
|
| |
as strings every time through. [Patch 1037357]
|
|
|
|
|
|
| |
* generic/tclInt.h (Interp): EXPR_INITIALIZED. It was set during
interp creation and never tested. Whatever purpose it had is in
the past.
|
|
|
|
|
|
|
| |
* generic/tclInt.h (Interp): USE_EVAL_DIRECT. It was used only
* generic/tcLTest.c (TestevalexObjCmd): in the testing command
* tests/parser.test (parse-9.2): [testevalex] and nothing in the
test suite made use of the capability it enabled.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* doc/interp.n: Added support for a -namespace option to the
* generic/tclBasic.c: [interp invokehidden] command. Also added an
* generic/tclInt.h: internal routine TclObjInvokeNamespace() and
* generic/tclInterp.c: corrected the flag names TCL_FIND_ONLY_NS and
* generic/tclNamesp.c: TCL_CREATE_NS_IF_UNKNOWN that are passed to the
* generic/tclTrace.c: internal routine TclGetNamespaceForQualName().
* tests/interp.test: [Patch 981841]
|
|
|
|
|
|
|
| |
* generic/tclInt.h: fully cleanup on exit and allow for
* generic/tclThreadAlloc.c: reinitialization. [Bug #736426]
* unix/tclUnixThrd.c: (mistachkin, kenny)
* win/tclWinThrd.c:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclBasic.c (DeleteInterpProc):
* generic/tclLiteral.c (TclCleanupLiteralTable):
* generic/tclInt.h: added a TclCleanupLiteralTable function,
called from DeleteInterpProc, that frees internal representations
of shared literals early when an interpreter is being deleted.
This change corrects a number of memory mismanagement issues in
the cases where the internal representation of one literal
contains a reference to another, and avoids conditions such as
resolved variable names referring to procedure and namespace
contexts that no longer exist. [Bug 994838]
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* generic/tclInt.h: Updated TclpFindExecutable() so that failed
* generic/tclUtil.c: attempts to find the executable are saved
* unix/tclUnixFile.c: just as successful finds are. [Patch 966053]
* unix/tclUnixTest.c:
|
|
|
|
| |
breaks the core completely. :^}
|
| |
|
|
|
|
| |
Added C docs, cleaned up C code, added note on behaviour of limited master interps
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c (TclFreeObj): made TclFreeObj use the new macro
TclFreeObjMacro(), so that the allocation and freeing of Tcl_Obj
is defined in a single spot (the macros in tclInt.h), with the
exception of the TCL_MEM_DEBUG case.
The #ifdef logic for the corresponding macros has been reformulated
to make it clearer.
|
|
|
|
|
| |
* generic/tclInt.h: declared in the TCL_MEM_DEBUG and
* generic/tclThreadAlloc.c: TCL_THREADS configuration. [Bug 947564]
|
|
|
|
|
|
| |
* generic/tclInt.h: reverted fix for [Bug 926445] of 2004-04-02,
restoring TCL_ALIGN to the header file. Todd Helfter reported that
the macro is required by tbcload.
|
|
|
|
|
| |
* generic/tclThreadAlloc.c: fix for Bug 945447 with a cleaner,
more permanent replacement.
|
|
|
|
| |
* generic/tclInt.h: [Bugs 926459, 926486]
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
| |
is also a unicode platform.
* generic/tclEncoding.c (TclFindEncodings, Tcl_FindExecutable):
* generic/tclInt.h: 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/tclInt.h: Reworked the Tcl header files into a clean
* unix/tclUnixPort.h: hierarchy where tcl.h < tclPort.h < tclInt.h
* win/tclWinInt.h: and every C source file should #include
* win/tclWinPort.h: at most one of those files to satisfy its
declaration needs. tclWinInt.h and tclWinPort.h also better organized
so that tclWinPort.h includes the Windows implementation of
cross-platform declarations, while tclWinInt.h makes declarations that
are available on Windows only.
* generic/tclBinary.c (TCL_NO_MATH): Deleted the generic/tclMath.h
* generic/tclMath.h (removed): header file. The internal Tcl
* macosx/Makefile (PRIVATE_HEADERS): header, tclInt.h, has a
* win/tcl.dsp: #include <math.h> directly,
and file external to Tcl needing libm should do the same.
* win/Makefile.in (WIN_OBJS): Deleted the win/tclWinMtherr.c file.
* win/makefile.bc (TCLOBJS): It's a vestige from matherr() days
* win/makefile.vc (TCLOBJS): gone by.
* win/tcl.dsp:
* win/tclWinMtherr.c (removed):
|
|
|
|
|
| |
* generic/tclInt.h: removed the macro TCL_ALIGN() from tclInt.h,
replaced by the static macro ALIGN() in tclCompile.c [Bug 926445]
|
|
|
|
| |
[Bug 926454]
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.h: but caused warnings related to
* generic/tclInt.decls: strict aliasing with GCC 3.3.
* generic/tclClock.c:
* generic/tclDate.c:
* generic/tclGetDate.y:
* win/tclWinTime.c:
* unix/tclUnixTime.c:
|
| |
|
| |
|
|
|
|
|
| |
* generic/tclParse.c (TclParseInit): for initializing a Tcl_Parse
* generic/tclParseExpr.c: struct into one routine.
|
| |
|
|
|
|
| |
variable names in
|
| |
|
|
|
|
|
|
|
| |
Not a direct copy
* Better use of Tcl object API
* More extensive test suite
* More extensive documentation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
such as [return -code error $msg] to be bytecompiled.
* generic/tclInt.h: Factored Tcl_ReturnObjCmd() into two pieces:
* generic/tclCmdMZ.c: TclMergeReturnOptions(), which can parse the
options to [return], check their validity, and create the
corresponding return options dictionary, and TclProcessReturn(),
which takes that return options dictionary and performs the
[return] operation.
* generic/tclCompCmds.c: Rewrote TclCompileReturnCmd() to
call TclMergeReturnOptions() at compile time so the return options
dictionary is computed at compile time (when it is fully known).
The dictionary is pushed on the stack along with the result, and
the code and level values are included in the bytecode as operands.
Also supports optimized compilation of un-[catch]ed [return]s from
procs with default options into the INST_DONE instruction.
* generic/tclExecute.c: Rewrote INST_RETURN instruction to retrieve
the code and level operands, pop the return options from the stack,
and call TclProcessReturn() to perform the [return] operation.
* generic/tclCompile.h: New utilities include TclEmitInt4 macro
* generic/tclCompile.c: and TclWordKnownAtCompileTime().
|
|
|
|
| |
TclAllocObjStorage macro.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that appends a Tcl_Obj to the errorInfo, saving the caller the trouble
of extracting the string rep.
* generic/tclStringObj.c (TclAppendLimitedToObj): New internal
routine that supports truncated appends with optional ellipsis marking.
This single routine supports UTF-8-safe truncated appends needed in
several places throughout the Tcl source code, mostly for error and
stack messages. Clean fix for [Bug 760872].
* generic/tclInt.h: Declarations for new internal routines.
* generic/tclCmdMZ.c: Updated callers to use the new routines.
* generic/tclCompExpr.c:
* generic/tclCompile.c:
* generic/tclExecute.c:
* generic/tclIOUtil.c:
* generic/tclNamesp.c:
* generic/tclObj.c:
* generic/tclParseExpr.c:
* generic/tclProc.c:
* generic/tclStringObj.c:
* mac/tclMacResource.c:
* library/init.tcl: Updated ::errorInfo cleanup in [unknown] to
reflect slight modifications to Tcl_LogCommandInfo(). Corrects
failing init-4.* tests.
|
| |
|
| |
|
| |
|