| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
stringrep of the pathPtr object to TclGetLibraryPath called from
another thread was ineffective if the original's stringrep had
been invalidated as what happens when it gets muted to a list.
* generic/tclInt.h:
* 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.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclEvent.c: Tcl_GetReturnOptions() was leaked.
* generic/tclMain.c: Thanks to Jeff Hobbs for discovery of the
anti-pattern to seek and destroy.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
objThreadMap and lineCLPtr hashtables. Also make the names of the
continuation line information initialization and finalization
functions more consistent. Patch supplied by Joe Mistachkin
<joe@mistachkin.com>.
|
| | |
| | |
| | |
| | | |
"late exit handlers" for similar late process-wide cleanups.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclEvent.c: Tcl_GetReturnOptions() was leaked.
* generic/tclMain.c: Thanks to Jeff Hobbs for discovery of the
anti-pattern to seek and destroy.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change TclpThreadCreate and Tcl_CreateThread
signature, making clear that "proc" is a function
pointer, as in all other "proc" function parameters.
|
| | | |
|
| | |
| | |
| | |
| | | |
calls thread exit handlers for the calling thread, which includes <Destroy> bindings in Tk [Bug 2001201 again].
|
| | | |
|
| | |
| | |
| | |
| | | |
[exit] wrt finalization, and thus solving many multi-thread teardown issues [Bugs 2001201, 486399, and possibly 597575, 990457, 1437595, 2750491].
|
| | |
| | |
| | |
| | |
| | | |
- some internal const decorations
- spacing
|
| | |
| | |
| | |
| | | |
handlers" for similar late process-wide cleanups.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* doc/BackgdErr.3: Converted internal routine
* doc/interp.n: TclBackgroundException() into public routine
* generic/tcl.decls: Tcl_BackgroundException().
* generic/tclEvent.c:
* generic/tclInt.decls:
* generic/tclDecls.h: make genstubs
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
* generic/tclIO.c: Update callers.
* generic/tclIOCmd.c:
* generic/tclInterp.c:
* generic/tclTimer.c:
*** POTENTIAL INCOMPATIBILITY only for extensions using the converted
internal routine ***
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
const tables. No functional
or API change.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclEvent.c: on DLL_PROCESS_DETACH as it may lead
* win/tclWin32Dll.c (DllMain): to issues and the user should be
explicitly calling Tcl_Finalize before unloading regardless.
Clarify the docs to note the explicit need in embedded use.
|
| | | |
|
|/ / |
|
| |
| |
| |
| |
| | |
* tests/event.test (event-5.*): checking to protect against callers
passing invalid return options dictionaries. [Bug 1901113]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
refcount management of Tcl_AppendObjToErrorInfo to become that of
a conventional Consumer routine. This preserves the ease of use
for the overwhelming common callers who pass in a 0-count value,
but makes the proper call with a non-0-count value less surprising.
* generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd): Revised the
one caller within Tcl itself which passes a non-0-count value to
Tcl_AppendObjToErrorInfo().
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
* tests/event.test: default [interp bgerror] handler so that when
it falls back to a hidden [bgerror] in a safe interp, it gets the
right error context data. [Bug 1790274].
|
| |
| |
| |
| |
| |
| |
| |
| | |
* tests/init.test: non-TCL_ERROR code doesn't cause existing
-errorinfo, -errorcode, and -errorline entries to be omitted.
* generic/tclEvent.c: With -errorInfo no longer lost, generate more
complete ::errorInfo when calling [bgerror] after a non-TCL_ERROR
background exception.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclEvent.c: that for the first time permits non-TCL_ERROR
exceptions to trigger [interp bgerror] handling. Closes a gap in
TIP 221. When falling back to [bgerror] (which is designed only
to handle TCL_ERROR), convert exceptions into errors complaining
about the exception.
* generic/tclInterp.c: Convert Tcl_BackgroundError() callers to call
* generic/tclIO.c: TclBackgroundException().
* generic/tclIOCmd.c:
* generic/tclTimer.c:
* generic/tclIntDecls.h: make genstubs
* generic/tclStubInit.c:
|
| |
| |
| |
| |
| | |
* generic/tclEvent.c: of expr parsing and compiling, including the
* generic/tclInt.h: routine TclFinalizeCompilation().
|
| |
| |
| |
| | |
efficient). After [Patch 1529526] (afredd)
|
| |
| |
| |
| |
| |
| |
| | |
* generic/tclEvent.c (Tcl_CreateThread): calls to Tcl_Alloc()
* generic/tclObj.c (UpdateStringOfBignum): with calls to
* unix/tclUnixTime.c (SetTZIfNecessary): ckalloc(), which better
* win/tclAppInit.c (setargv): supports memory debugging.
|
| |
| |
| |
| |
| |
| | |
* tests/event.test (event-5.3): of the command prefix for the interp's
background error handling command to avoid panics due to pointers
to memory invalid after shimmering. [Bug 1670155]
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
easier reading.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
* generic/tclEvent.c: order of finalization routines.
* generic/tclInt.h: [Bug 1251399]
* generic/tclObj.c:
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
of the processing of the event loop or during a blocking [after]. [Bug 1085023]
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclEvent.c: Broke apart TclpSetInitialEncodings() on
* generic/tclInt.h: Windows into TclpSetInterfaces(), that is
* unix/tclUnixInit.c: fundamentally essential, and the initialization
* win/tclWinInit.c: of the system encoding, which is not. Made
the TclpSetInterfaces call part of TclInitSubsystems so it cannot be
overlooked.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclEncoding.c: make use of a ProcessGlobalValue for
* generic/tclEvent.c: storing the executable name.
Added internal routines Tcl(Get|Set)ObjNameOfExecutable() to access
that storage in Tcl_Obj, rather than string format.
* unix/tclUnixFile.c: Rewrote TclpFindExecutable() to use
* win/tclWinFile.c: TclSetObjNameOfExecutable to store the
executable name it computes.
* generic/tclInt.h: Added internal stub entries for
* generic/tclInt.decls: TclpFindExecutable and
Tcl(Get|Set)ObjNameOfExecutable.
* generic/tclIntDecls.h: make genstubs
* generic/tclStubInit.c:
* generic/tclCmdIL.c: Retrieve executable name in Tcl_Obj form
* win/tclWinPipe.c: instead of string form.
* unix/tclUnixTest.c: Update [testfindexecutable] command to use
new internal interfaces.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
startup/initialization of the Tcl library, focused on the
activities of Tcl_FindExecutable().
* generic/tclIO.c: Removed bogus claim in comment that
encoding "iso8859-1" is "built-in" to Tcl.
* generic/tclInt.h: Created a new struct ProcessGlobalValue,
* generic/tclUtil.c: routines Tcl(Get|Set)ProcessGlobalValue,
and function type TclInitProcessGlobalValueProc. Together, these
take care of the housekeeping for "values" (things that can be
held in a Tcl_Obj) that are global across a whole process. That is,
they are shared among multiple threads, and epoch and mutex
protection must govern the validity of cached copies maintained
in each thread.
* generic/tclNotify.c: Modified TclInitNotifier() to tolerate
being called multiple times in the same thread.
* generic/tclEvent.c: Dropped the unused argv0 argument to
TclInitSubsystems(). Removed machinery to unsure only one
TclInitNotifier() call per thread, now that that is safe.
Converted Tcl(Get|Set)LibraryPath to use a ProcessGlobalValue,
and moved them to tclEncoding.c.
* generic/tclBasic.c: Updated caller.
* generic/tclInt.h: TclpFindExecutable now returns void.
* unix/tclUnixFile.c:
* win/tclWinFile.c:
* win/tclWinPipe.c:
* generic/tclEncoding.c: Built new encoding search initialization
on a foundation of ProcessGlobalValues, exposing new routines
Tcl(Get|Set)EncodingSearchPath. A cache of a map from encoding name
to directory pathname keeps track of where encodings are available
for loading. Tcl_FindExecutable greatly simplified into just
three function calls. The "library path" is now misnamed, as its
only remaining purpose is as a foundation for the default encoding
search path.
* generic/tclInterp.c: Inlined the initScript that is evaluated
by Tcl_Init(). Added verification after initScript evaluation
that Tcl can find its installed *.enc files, and that it has
initialized [encoding system] in agreement with what the environment
expects. [tclInit] no longer driven by the value of $::tcl_libPath;
it largely constructs its own search path now, rather than attempt
to share one with the encoding system.
* unix/tclUnixInit.c: TclpSetInitialEncodings factored so that a new
* win/tclWinInit.c: routine TclpGetEncodingNameFromEnvironment
can reveal that Tcl thinks the [encoding system] should be, even
when an incomplete encoding search path, or a missing *.enc file
won't allow that initialization to succeed. TclpInitLibraryPath
reworked as an initializer of a ProcessGlobalValue.
* unix/tclUnixTest.c: Update implementations of [testfindexecutable],
[testgetdefenc], and [testsetdefenc].
* tests/unixInit.test: Corrected tests to operate properly even
when a value of TCL_LIBRARY is required to find encodings.
* generic/tclInt.decls: New internal stubs: TclGetEncodingSearchPath,
TclSetEncodingSearchPath, TclpGetEncodingNameFromEnvironment. These
are candidates for public exposure by future TIPs.
* generic/tclIntDecls.h: make genstubs
* generic/tclStubInit.c:
* generic/tclTest.c: Updated [testencoding] to use
* tests/encoding.test: Tcl(Get|Set)EncodingSearchPath. Updated tests.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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:
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Shift the initialization of errorCode to NONE to more central
location.
* generic/tclEvent.c (BgError,Tcl_BackgroundError,HandleBgErrors):
Rewrite to build on the new TclGet/SetReturnOptions routines.
* generic/tclResult.c (TclGetReturnOptions): Add call to
Tcl_AddObjErrorInfo to be sure error fields are initialized.
* generic/tclResult.c (TclTransferResult):
Rewrite to build on the new TclGet/SetReturnOptions routines.
|