| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.decls:
* generic/tclPanic.c: Added CONST to Tcl_*Panic* public interfaces.
[Patch 415648, TIP 27]
* generic/tclInt.decls:
* mac/tclMacAppInit.c (main):
* mac/tclMacBOAAppInit.c (main):
* mac/tclMacPanic.c: Modified special Mac implementations of
Tcl_*Panic* to be exact copies of the generic implementations.
Added TclMacSetPanic. The generic implementations should be
used directly, rather than copies, but that requires further
changes by someone familiar with the Mac build systems.
[Patch 415648]
* generic/tclDecls.h:
* generic/tclIntPlatDecls.h:
*`generic/tclStubInit.c: `make gentubs` after above changes.
* doc/Panic.3:
* unix/mkLinks: New file documenting Tcl_*Panic* public interfaces,
followed by `make mklinks`. [Patch 415648, Bug 219170, Bug 414936]
|
| |
|
|
|
|
|
|
|
| |
* generic/tclDecls.h:
* generic/tclStubInit.c:
* generic/tclStringObj.c (Tcl_GetUnicodeFromObj): new function to
parallel Tcl_GetStringFromObj (fix of an API oversight).
|
|
|
|
|
|
|
|
|
| |
time adding CONST to the API's exported from tclBasic.c.
[Patch #415179]
***POTENTIAL INCOMPATIBILITY*** from 8.4a2, in which Vince
Darley's changes to command tracing were added. A const has been
added to the type signature of one of the parameters to
Tcl_CommandTraceProc.
|
|
|
|
| |
in place of simple "char*". (kennykb) [Patch #404026]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* All of the changes below belong to TIP #10 [Tcl I/O Enhancement:
Thread-Aware Channels]. See also [Patch #403358] at SF.
* generic/tclIO.h (struct ChannelState, line 236f): Extended the
structure with a new field of type 'Tcl_ThreadId' to hold the id
of the thread currently managing all channels with this state.
Note: This structure is shared by all channels in a stack of
transformations.
* generic/tclIO.c (Tcl_CreateChannel, lines 1058-1065): Modified
to store the Id of the current thread in the 'ChannelState' of
the new channel.
* generic/tclIO.c (Tcl_SpliceChannel, lines 2265-2270): Modified
in the same manner as 'Tcl_CreateChannel' as the channel will be
managed by the current thread afterward.
* generic/tclIO.c (Tcl_GetChannelThread, lines 1478-1503):
* generic/tcl.decls (Tcl_GetChannelThread, lines 1504-1506): New
API function to retrieve the Id of the managing thread from a
channel. Implementation and declaration.
* generic/tclTest.c (TestChannelCmd, lines 4520-4532): Added
subcommand 'mthread' to query a channel about its managing
thread.
|
|
|
|
| |
tclDecls.h was not generated using 'make genstubs'. Typos in case.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Everything below belongs together, it fixes bug #123153.
* generic/tcl.h (line 342): A bit more explanation about the
default value for TCL_PRESERVE_BINARY_COMPATABILITY.
* generic/tcl.h (line 1208): Removed the macro 'Tcl_InitHashTable'
as it kills binary compatibility to 8.3 and earlier
versions. This is the main part of the patch/change.
* generic/tcl.decls (line 1469):
* generic/tclHash.c (Tcl_InitHashTable):
* generic/tclHash.c (Tcl_InitHashTableEx):
* generic/tclObj.c (Tcl_InitObjHashTable): Changed
'Tcl_InitHashTableEx' to 'Tcl_InitCustomHashTable'. This change
is more of an estethical nature, replacing the ubiquitous 'Ex'
suffix with a more meaningful name. The introduced binary
incompatibility is deemed acceptable as it is between alpha
versions. Updated callers.
* doc/Hash.3:
* unix/mkLinks: Changed 'Tcl_InitHashTableEx' to
'Tcl_InitCustomHashTable'.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclDecls.h:
* generic/tcl.decls: added Tcl_SetMainLoop proc that allows people
to set a main loop that will run for tclsh.
* generic/tcl.h: added Tcl_MainLoopProc typedef
* generic/tclMain.c (Tcl_SetMainLoop, StdinProc, Prompt): new
StdinProc and Prompt static procs and Tcl_SetMainLoop stubs proc.
The first two handle a fileevent based prompt (taken from
tkMain.c). Tcl_SetMainLoop enables the interactive setting of a
main loop procedure. This enables Tk to be a loadable package.
|
|
|
|
| |
8.4a2 code base, merged in with some existing new 8.4a2 features.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/StringObj.3: Added entry for Tcl_AttemptSetObjLength.
* generic/tclDecls.h:
* generic/tclStubInit.c: Regen'ed stubs files from new tcl.decls.
* generic/tcl.decls: Added stubs for the Tcl_Attempt* memory
allocators and for Tcl_AttemptSetObjLength.
* generic/tcl.h: Added #define's for attemptckalloc,
attemptckrealloc, which map to the Tcl_Attempt* memory allocators.
* generic/tclCkalloc.c: Added non-panic'ing versions of Tcl_Alloc,
Tcl_Realloc, etc.; these are called Tcl_AttemptAlloc,
Tcl_AttemptRealloc, etc. These are used by
Tcl_AttemptSetObjLength and the string obj append functions.
* generic/tclStringObj.c: Modified string growth algorithm to use
doubling algorithm as long as possible, and only fall back when
that fails. Added Tcl_AttemptSetObjLength, and modified
AppendUnicodeToUnicodeRep, AppendUtfToUtfRep, and
Tcl_AppendStringsToObjVA to support this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
syntax as deprecated; added documentation for command
rename/delete traces and variable array traces.
* tests/trace.test: Updated tests for new trace syntax; new tests
for command rename/delete traces; new tests for array traces.
* generic/tclVar.c: Support for new trace syntax; support for
TCL_TRACE_ARRAY.
* generic/tclStubInit.c:
* generic/tclDecls.h:
* generic/tcl.decls: Stub functions for command rename/delete traces.
* generic/tcl.h:
* generic/tclInt.h:
* generic/tclBasic.c: Support for command traces.
* generic/tclCmdMZ.c (TclTraceVariableObjCmd): Patched to support
new [trace] syntax:
trace {add|remove|list} {variable|command} name ops command
Added support for command traces (rename, delete operations).
Added support for TCL_TRACE_ARRAY at Tcl level (array operation
for variable traces).
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c:
* generic/tclInt.h:
* generic/tclHash.c:
* generic/tclDecls.h:
* generic/tcl.h:
* generic/tcl.decls:
* doc/Hash.3: Reapplied patch from Paul Duffin to extend hash tables
to allow custom key types, such as Tcl_Obj *'s, and others.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c:
* generic/tclInt.h:
* generic/tclHash.c:
* generic/tclDecls.h:
* generic/tcl.h:
* generic/tcl.decls:
* doc/Hash.3: Reverted patch from Paul Duffin to extend hash tables
to allow custom key types, such as Tcl_Obj *'s, and others; it
seems to break Tk.
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c:
* generic/tclInt.h:
* generic/tclHash.c:
* generic/tclDecls.h:
* generic/tcl.h:
* generic/tcl.decls:
* doc/Hash.3: Applied patch from Paul Duffin to extend hash tables
to allow custom key types, such as Tcl_Obj *'s, and others.
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclStubInit.c:
* generic/tcl.decls:
* generic/tclDecls.h:
* generic/tclUtf.c: Added new functions Tcl_UniCharNcasecmp and
Tcl_UniCharCaseMatch (unicode parallel to Tcl_StringCaseMatch)
* generic/tclUtil.c: rewrote Tcl_StringCaseMatch algorithm for
optimization and made Tcl_StringMatch just call Tcl_StringCaseMatch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Overall changes:
(1) Implementation of joinable threads for all platforms.
(2) Additional API's for channels. Required to allow the
thread extension to move channels between threads.
* generic/tcl.decls (lines 1360f): Added Tcl_JoinThread,
Tcl_IsChannelShared, Tcl_IsChannelRegistered, Tcl_CutChannel,
Tcl_SpliceChannel, Tcl_IsChannelExisting and
Tcl_ClearChannelHandlers (slots 394 to 400).
* generic/tclIO.c: Implemented Tcl_IsChannelRegistered,
Tcl_IsChannelShared, Tcl_CutChannel, Tcl_SpliceChannel,
Tcl_IsChannelExisting and Tcl_ClearChannelHandlers.
Tcl_CutChannel uses code from CloseChannel. Replaced this code
by a call to Tcl_CutChannel. Replaced several code fragments
adding channels to the channel list with calls to
Tcl_SpliceChannel. Removed now unused variables from
CloseChannel and Tcl_UnstackChannel. Tcl_ClearChannelHandlers
uses code from Tcl_Close. Replaced this code by a call to
Tcl_ClearChannelHandlers. Removed now unused variables from
Tcl_Close. Added the subcommands 'cut', 'forgetch', 'splice' and
'isshared' to the test code
(TclTestChannelCmd).
* unix/tclUnixThread.c: Implemented Tcl_JoinThread using the
pthread-functionality.
* win/tclWinThrd.c: Fixed several small typos in comments.
Implemented Tcl_JoinThread using a platform independent
emulation layer (see generic/tclThreadJoin.c below). Added
'joinLock' to serialize Tcl_CreateThread and TclpExitThread to
prevent a race for joinable threads.
* mac/tclMacThrd.c: Implemented Tcl_JoinThread using a platform
independent emulation layer (see generic/tclThreadJoin.c
below). Due to the cooperative nature of threading on this
platform the race mentioned above is not present.
* generic/tclThreadJoin.c: New file. Contains a platform
independent emulation layer helping in the implementation of
joinable threads for the win and mac platforms.
* generic/tclInt.h: Added declarations for TclJoinThread,
TclRememberJoinableThread and TclSignalExitThread. These
procedures define the API of the emulation layer for joinable
threads (see generic/tclThreadJoin.c above).
* win/Makefile.in:
* win/makefile.vc: Added generic/tclTheadJoin.o to the rules.
* mac/: I don't know to which file generic/tclTheadJoin.o has to
be added to so that it compiles. Sorry.
* unix/tclUnixChan.c: #ifdef'd the thread-local list of file
channels as it prevents us from transfering channels. To restore
this we may need an extended interface to drivers in the
future. Target: 9.0. Found while testing the new transfer of
channels. The information in this list for a channel was left
behind and then crashed the system during finalization.
* generic/tclThreadTest.c: Added -joinable flag to 'testthread
create'. Added subcommand 'testthread join'.
* doc/CrtChannel.3: Added documentation for Tcl_IsChannelRegistered,
Tcl_IsChannelShared, Tcl_CutChannel, Tcl_SpliceChannel,
Tcl_IsChannelExisting and Tcl_ClearChannelHandlers.
* doc/Thread.3: Added documentation for Tcl_JoinThread.
* tests/thread.test: Added tests for joining of threads.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Overall change: Definition of a public API for the creation of
new threads.
* generic/tclInt.h (line 1802f): Removed the definition of
'TclpThreadCreate'. (line 793f) Removed the definition of
'Tcl_ThreadCreateProc'.
* generic/tcl.h (line 388f): Readded the definition of
'Tcl_ThreadCreateProc'. Added Win32 stuff send in by David
Graveraux <davygrvy@bigfoot.com> to that too (__stdcall,
...). Added macros for the default stacksize and allowed flags.
* generic/tcl.decls (line 1356f): Added definition of
'Tcl_CreateThread', slot 393 of the stub table. Two new
arguments in the public API, for stacksize and flags.
* win/tclWinThrd.c:
* mac/tclMacThrd.c: Renamed TclpThreadCreate to Tcl_CreateThread,
added handling of the stacksize. Flags are currently ignored.
* unix/tclUnixThrd.c: See above, but handles joinable
flag. Ignores the specified stacksize if the macro
HAVE_PTHREAD_ATTR_SETSTACKSIZE is not defined.
* generic/tclThreadTest.c (line 363): See below.
* unix/tclUnixNotfy.c (line 210): Adapted to the changes
above. Uses default stacksize and no flags now.
* unic/tcl.m4 (line 382f): Added a check for
'pthread_attr_setstacksize' to detect platforms not implementing
this feature of pthreads. If it is implemented, configure will
define the macro HAVE_PTHREAD_ATTR_SETSTACKSIZE (See
unix/tclUnixThrd.c too).
* doc/Thread.3: Added Tcl_CreateThread and its arguments to the
list of described functions. Removed stuff about not providing a
public C-API for thread-creation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Overall change: Definition of public API's for the finalization
of conditions and mutexes. [Bug: 4199].
* generic/tclInt.h: Removed definitions of TclFinalizeMutex and
TclFinalizeCondition.
* generic/tcl.decls: Added declarations of Tcl_MutexFinalize and
Tcl_ConditionFinalize.
* generic/tclThread.c: Renamed TclFinalizeMutex to
Tcl_MutexFinalize. Renamed TclFinalizeCondition to
Tcl_ConditionFinalize.
* generic/tclNotify.c: Changed usage of TclFinalizeMutex to
Tcl_MutexFinalize.
* unix/tclUnixNotfy.c:
* generic/tclThreadTest.c: Changed usages of TclFinalizeCondition to
Tcl_ConditionFinalize.
* generic/tcl.h: Added empty macros for Tcl_MutexFinalize and
Tcl_ConditionFinalize, to be used when the core is compiled
without threads.
* doc/Thread.3: Added description the new API's.
|
|
|
|
|
|
|
| |
* generic/tcl.decls: change Tcl_GetOpenFile to use decl of 'int
forWriting' instead of 'int write' to avoid shadowing [Bug: 4121]
* generic/tcl.h (TCL_RELEASE_SERIAL): Moved to 8.3.0 patchlevel
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.decls: moved Tcl_ProcObjCmd to stubs table [Bug: 3827]
and removed 'register' from stub definition of
Tcl_AppendUnicodeToObj [Bug: 4038]
* generic/tclFileName.c: improved guessing of path separator
for the Mac. (Darley)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/OpenFileChnl.3:
* doc/file.n:
* tests/cmdAH.test:
* tclIO.c:
* tclCmdAH.c: added "file channels ?pattern?" tcl command, with
associated Tcl_GetChannelNames and Tcl_GetChannelNamesEx public
C APIs (added to tcl.decls as well), with docs and tests.
* generic/tclCompile.c: add TCL_TOKEN_VARIABLE to the part types
that cause differed compilation for exprs, to correct the expr
double-evaluation problem for vars. Added test cases.
|
|
|
|
| |
Tcl_ListObjGetElements()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.decls:
* generic/tclDecls.h: Applied patch from Jim Ingham to change the
prototype of Tcl_ListObjGetElements to have the last argument have
a CONST so that you can feed it the objv that you get from the
standard TclObj command proc.
* generic/tclAlloc.c:
* generic/tclCmdIL.c:
* generic/tclIO.c:
* generic/tclThread.c:
* win/tclWinThrd.c:
* unix/tclUnixThrd.c: Fixed Brent's changes so that they work on
Windows (and he fixed the bug in the Unix thread implementation).
|
|
|
|
|
|
|
|
| |
can be linked against alternate thread packages.
2 Added Tcl_GetChannelNames to tclIO.c
3 Added TclVarTraceExists hook so "info exists" triggers read traces
exactly like it did in Tcl 7.6
4 Stubs table changes to reflect new internal and external APIs
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.decls:
* generic/tclDecls.h:
* generic/tclInt.h:
* generic/tclInt.decls:
* generic/tclIntDecls.h:
* generic/tclRegexp.h:
* generic/tclStubInit.c: Move some exported public and internal
functions to the stub tables. Removed functions that are in the
stub tables (from this and previous changes) from the original
header files.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.decls:
* generic/tclInt.decls:
* generic/tclDecls.h:
* generic/tclIntDecls.h:
* generic/tclUtf.c:
* compat/strftime.c:
* unix/tclUnixTime.c: Changed function declarations in
non-platform-specific APIs to use "unsigned long" instead of
"size_t", which may not be defined on certain compilers (rather
than include sys/types.h, which may not exist).
|
| |
|
|
|
|
| |
returns a Tcl_Channel, not void.
|
|
|
|
| |
stub files were not regenerated.
|
|
|
|
| |
Added new code that modifies the channel in place.
|
|
|
|
| |
functions.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclRegexp.h:
* generic/tclRegexp.c:
* generic/tcl.h:
* generic/tcl.decls: Renamed Tcl_RegExpMatchObj to
Tcl_RegExpExecObj and added a new Tcl_RegExpMatchObj that is
equivalent to Tcl_RegExpMatch. Added public macros for the regexp
compile/execute flags. Changed to store either an object pointer
or a string pointer in the TclRegexp structure. Changed to avoid
adding a reference to the object or copying the string.
|
|
|
|
|
|
|
|
|
| |
the puplic API: Tcl_NewUnicodeObj, Tcl_SetUnicodeObj,
Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange,
Tcl_AppendUnicodeToObj.
Note: some stringObj tests are still failing--the teststringobj command
still needs to be updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed several memory bugs. Added TclAppendUnicodeToObj.
* generic/tclInt.h: Added declarations for various Unicode string
functions.
* generic/tclRegexp.c:
* generic/tclCmdMZ.c: Changed to use new Unicode string interfaces
for better performance.
* generic/tclRegexp.h:
* generic/tclRegexp.c:
* generic/tcl.h:
* generic/tcl.decls: Added Tcl_RegExpMatchObj and
Tcl_RegExpGetInfo calls to access lower level regexp API. These
features are needed by Expect. This is a preliminary
implementation pending final review and cleanup.
* generic/tclCmdMZ.c:
* tests/string.test: Fixed bug where string map failed on null
strings.
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclCmdMZ.c:
* generic/tclDecls.h:
* generic/tclInt.decls:
* generic/tclIntDecls.h:
* generic/tclPort.h:
* generic/tclStubInit.c:
* generic/tclStubLib.c: Various header file related changes and other
lint to try to get the Mac builds working.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* generic/tclStubInit.c:
* generic/tclDecls.h:
* generic/tclUtf.c:
* generic/tcl.decls: Added Tcl_UtfNcmp and Tcl_UtfNcasecmp.
|
| |
|
| |
|
|
|
|
| |
also one minor fix in tests/all.tcl to fix bug 1770.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it matches 8.1.
* generic/tclBasic.c:
* generic/tcl.h:
* generic/tcl.decls: Changed Tcl_ReleaseType from an enum to
macros so it can be used in .rc files.
Added Tcl_GetString.
* unix/Makefile.in: Added compat binaries to the stub library.
Changed compat binaries to always compile with shared flags since
they need to be shared for the stub library.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclStubs.c:
* generic/tclStubInit.c: Added undefs for all of the TCL_MEM_DEBUG
macros to avoid conflicts with the stub names.
* generic/tclStubInit.c:
* generic/tclInt.h:
* generic/tclInt.decls: Moved some declarations out of the generic
and into the platform specific sections. Added missing
declarations and Mac specific declarations.
* generic/tclInt.h:
* generic/tclDate.c:
* generic/tclClock.c: Created a new opaque TclpTime_t type so
generic functions that depend on the format of time_t can appear
in the generic header files.
* generic/tclStubInit.c:
* generic/tclPanic.c:
* generic/tcl.h:
* generic/tcl.decls: renamed Tcl_Panic back to panic to avoid
incompatibilities in a patch release.
|