| 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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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/tclIO.c: moved channel test commands from tclIO.c to
tclTest.c.
* generic/tclIO.h: new file, split out from tclIO.c to allow test
commands to be moved to tclTest.c.
* generic/tclStubInit.c:
* generic/tclIntDecls.h:
* generic/tclInt.decls: removed TclTestChannel*Cmd from internal
stubs table and added TclChannelEventScriptInvoker to the internal
stubs table so it can be used from the test code.
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
| |
noting the need to pair ckalloc with ckfree. [Bug: 4262]
* generic/tclInt.decls:
* generic/tclIntPlatDecls.h:
* generic/tclStubInit.c:
* win/tclWin32Dll.c: removed TclWinSynchSpawn (vestige of Win32s
support).
|
|
|
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tests/fileName.test:
* generic/tclInt.decls:
* generic/tclInt.h:
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
* generic/tclEncoding.c:
* generic/tclFileName.c:
* mac/tclMacFile.c:
* unix/tclUnixFile.c:
* win/tclWinFile.c: enhanced the glob command with the new options
-types -path -directory and -join. Deprecated TclpMatchFiles with
TclpMatchFilesTypes, extended TclGlob and TclDoGlob and added
GlobTypeData structure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclMain.c :
* unix/tclAppInit.c:
* win/tclAppInit.c: Added two new internal functions,
TclSetStartupScriptFileName() and TclGetStartupScriptFileName()
and added hooks into the main() code for supporting TclPro and
other "big" shells more easily without requiring a copy of the
main() code.
* generic/tclEncoding.c:
* generic/tclEvent.c: Moved encoding-related startup code from
tclEvent.c into the more appropriate tclEncoding.c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Tcl test code to work wth stubs [Bug: 2445]
|
| |
|
|
|
|
| |
Added new code that modifies the channel in place.
|
|
|
|
| |
Remove unused tclStubs.c file.
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.decls:
* generic/tclCompile.c: Added TclSetByteCodeFromAny that takes a
hook procedure to invoke after compilation but before the byte
codes are emitted. This makes it possible to do postprocessing on
the compiled byte codes before the ByteCode is generated.
* generic/tclLiteral.c: Added TclHideLiteral and TclAddLiteralObj
to make it possible to create local unshared literal objects.
|
| |
|
|
|
|
| |
also one minor fix in tests/all.tcl to fix bug 1770.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.decls: Added TclWinAddProcess to make it possible
for expect to use Tcl_WaitForPid(). This patch is from Gordon
Chaffee.
* mac/tclMacPort.h:
* win/tclWinInit.c:
* unix/tclUnixPort.h:
* generic/tclAsync.c: Added TclpAsyncMark to fix bug in async
handling on Windows where async events don't wake up the event
loop. This patch comes from Gordon Chaffee.
* generic/tcl.decls: Fixed declarations of reserved slots.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|