| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
| |
* doc/Init.3: Manual entry for Tcl_Init [Bug: 1820].
* doc/expr.n: Added documentation for each of the math library
functions that expr supports [Bug: 1054].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
created when TCL_MEM_DEBUG is defined at compile time.
* doc/TCL_MEM_DEBUG.3: Man page with overall information about
TCL_MEM_DEBUG usage.
* doc/DumpActiveMemory.3: Man page for Tcl_DumpActiveMemory,
Tcl_InitMemory, and Tcl_ValidateAllMemory [Bug: 1816, 1835].
* generic/tclCkalloc.c: Fixed some function headers.
* unix/mkLinks: Regen'd with new mkLinks.tcl.
* unix/mkLinks.tcl: Fixed indentation, made link setup more
intelligent (only do one existance test per man page, instead of
one per function).
|
|
|
|
|
|
|
|
|
| |
* mac/README:
* tools/tcl.wse.in:
* unix/README:
* unix/tcl.spec:
* win/README:
* win/README.binary: Updating URLs to reference dev.scriptics.com
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* win/Makefile.in:
* win/makefile.vc: updated for http change and some cleanup
* library/http2.[13]: moved dir http2.1 to http2.3 to match version
|
|
|
|
| |
* doc/OpenFileChnl.3: Added man entry for Tcl_Ungets [Bug: 1834].
|
|
|
|
| |
* doc/ParseCmd.3: Added documentation for Tcl_ParseVar [Bug: 1828].
|
|
|
|
|
|
|
| |
added write of 'q' into triggerPipe for notifier in threaded case,
so that Tcl doesn't hang when children are still running [Bug: 4139]
* unix/tclUnixThrd.c (Tcl_MutexLock): minor comment fixes.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* library/http2.1/http.tcl: Fixed a newly introduced bug where if
there's a -command callback and something goes wrong, geturl threw
an exception, called the callback, and unset the token. I changed
it so that it will not call the callback when throwing an
exception (so the caller only finds out about a given error from
one place). Also, fixed http::ncode so that it actually gives you
back the http return code (i.e. 200, 404, etc.) instead of the
first digit of the version of HTTP being used (i.e. 1).
|
| |
|
|
|
|
|
| |
* unix/tclUnixPort.h: added Tclp*Alloc defines to allow the use of
USE_TCLALLOC on Unix. [Bug: 4731]
|
|
|
|
|
|
|
|
|
|
|
| |
* library/reg1.0/pkgIndex.tcl:
* win/tclWinChan.c:
* win/tclWinThrd.c: converted CRLF to LF the */tcl.hpj.in files
were not converted, as it confuses hcw locally. [Bug: 5096]
* win/Makefile.in: expanded cleanup or help files
* doc/Thread.3: minor macro cleanup
|
|
|
|
| |
node ids.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.h:
* tools/tcl.wse.in:
* unix/configure.in:
* unix/tcl.spec:
* win/configure.in:
* win/README.binary: bumped version to 8.3.1
* win/tcl.hpj.in: updated copyright date
* generic/tclEnv.c: environment support for Mac OS/X
* unix/tclUnixPort.h: environment support for Mac OS/X
* unix/tclLoadDyld.c: new file for Mac OS/X dl functions
* unix/Makefile.in: added install-strip target; bindir, libdir,
mandir, includedir vars; tclLoadDyld.c target [Bug: 2527]
* unix/tclUnixChan.c (CreateSocket): force a socket back into
blocking mode (default state) after a -async connect succeeds.
[Bug: 4388]
* generic/tclEvent.c (TclInitSubsystems): Moved tclLibraryPath to
thread-local storage to prevent thread-related race condition.
[Bug: 5033]
* unix/tclAppInit.c (main): removed #ifdef TCL_TEST that sets the
library path as it was unnecessary and conflicts with move of
tclLibraryPath to thread-local storage.
|
|
|
|
|
|
|
|
| |
thread-local storage to prevent thread-related race condition.
[Bug: 5033]
* unix/tclAppInit.c (main): removed #ifdef TCL_TEST that sets the
library path as it was unnecessary and conflicts with move of
tclLibraryPath to thread-local storage.
|
|
|
|
|
|
|
| |
* win/tcl.rc:
* win/tclsh.rc:
* win/tclsh.ico: Modified copyright dates in Windows resource
files. Added an icon for tclsh.exe.
|
| |
|
|
|
|
|
|
|
| |
parity on platforms that support it [Bug: 5089]
* generic/tclBasic.c (Tcl_GetVersion): adjusted use of major/minor
to not conflict with global decl on some systems [Bug: 2882]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/Async.3:
* doc/BackgdErr.3:
* doc/CrtChannel.3:
* doc/CrtInterp.3:
* doc/CrtMathFnc.3:
* doc/DString.3:
* doc/Eval.3:
* doc/ExprLong.3:
* doc/GetInt.3:
* doc/GetOpnFl.3:
* doc/Interp.3:
* doc/LinkVar.3:
* doc/OpenFileChnl.3:
* doc/OpenTcp.3:
* doc/PkgRequire.3:
* doc/RecordEval.3:
* doc/SetResult.3:
* doc/SplitList.3:
* doc/StaticPkg.3:
* doc/TraceVar.3:
* doc/Translate.3:
* doc/UpVar.3:
* doc/load.n: removed or updated references to interp->result use.
|
|
|
|
|
|
|
|
| |
* doc/update.n: typo fix [Bug: 4996]
* unix/tcl.m4 (SC_ENABLE_THREADS): enhanced the detection of
pthread_mutex_init [Bug: 4359] and (SC_CONFIG_CFLAGS) added
--enable-64bit-vis switch for Sparc VIS compilation [Bug: 4995]
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
contents string from UTF to native encoding [Bug: 4030].
* tests/regexp.test: Added tests for infinite looping in [regexp -all].
* generic/tclCmdMZ.c: Fixed infinite loop bug with [regexp -all] [Bug: 4981].
|
|
|
|
|
| |
for Windows as the build choked. It seems to be OK using the Unix
fallback (void).
|
|
|
|
|
|
| |
constraint types to skip certain tests.
* generic/tclBasic.c (Tcl_SetCommandInfo): comment fix
|
| |
|
|
|
|
|
|
| |
inside of func as it is declared for non-threads builds as well.
In the non-threads case, it always returns TCL_ERROR (couldn't
create thread).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
| |
[Bug: 3466]
* library/tcltest1.0/tcltest.tcl (initConstraints): removed win32s
references (no longer supported)
* tests/fCmd.test: marked test 8.1 knownBug because it is
dangerous on poorly configured systems [Bug: 3881]
and added 8.2 to keep essence of 8.1 tested.
|
| |
|
|
|
|
|
|
|
|
| |
* generic/tclIO.c (Tcl_UnstackChannel, line 1831): Forcing interest
mask to the correct value after an unstack and re-initialization
of the notifier via the watchProc. Without this the first
fileevent after an unstack will come through and be processed,
but no more. [Bug: ??].
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* library/http2.1/http.tcl: For the -querychannel option,
fconfigure the socket to be binary so that we don't translate
anything while reading the data. This is because we determine the
content length of the data on the channel by using seek (to the end
of the file) and tell on the file handle, and we need the
content-length to match the amount of data actually sent, and
translation can affect the number of bytes posted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to prevent itcl info override crash [Bug: 4064]
* tests/foreach.test:
* tests/namespace.test:
* tests/var.test: Added lsorts to avoid random sorted return
problems. [Bug: 2682]
* tests/fileName.test: fixed 14.1 test fragility [Bug: 1482]
* tools/man2help2.tcl: fixed winhelp cross-linking error [Bug: 4156]
improved translation to winhelp [Bug: 3679]
* unix/Makefile.in (MAN_INSTALL_DIR): patch to accept --mandir
correctly [Bug: 4085]
* unix/dltest/pkg[a-e].c: Cleaned up test packages [Bug: 2293]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
error test (previously only errno was checked, but the return
value of strtod() should be checked as well). [Bug: 4118].
* tests/exec.test: Added test for proper conversion of UTF data
when used with "<< $dataWithUTF" on exec's.
* unix/tclUnixPipe.c (TclpCreateTempFile): Added
Tcl_UtfToExternalDString call, so that if there is UTF content in
the string it will be properly converted to the system encoding
before being written [Bug: 4030].
(TclpCreateTempFile): Added a check on the return value of tmpnam;
some systems (Linux, for example) will start to return NULL after
tmpnam has been called TMP_MAX times; not checking for this can
have bad results (overwriting temp files, core dumps, etc.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
* win/tclWinReg.c: made use of TclWinGetPlatformId instead of
getting info again
* win/tclWinPort.h:
* win/Makefile.in:
* win/configure.in:
* win/tcl.m4: Added support for gcc/mingw on Windows [Bug: 4234]
|
|
|
|
|
|
|
|
| |
more aware of TCL_BYTECODE_PRECOMPILED flagged structs (gen'd by
tbcload), to correctly clean them up.
* generic/tclClock.c (FormatClock): moved check for empty format
earlier, commented 0 result return value
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* library/http2.1/http.tcl: Removed an unnecessary fileevent
statement from the error processing part of the Write method.
Also, fixed two potential memory leaks in wait and reset, in which
the state array wasn't being unset before throwing an exception.
Prior to this version, Brent checked in a fix to catch a
fileevent statement that was sometimes causing a stack trace when
geturl was called with -timeout. I believe Brent's fix is
necessary because TLS closes bad sockets for secure connections,
and the fileevent was trying to act on a socket that no longer
existed.
|
|
|
|
|
|
|
|
|
|
| |
* tests/namespace.test:
* generic/tclNamesp.c (Tcl_Export): added a uniq'ing test to the
export list so only one instance of each export pattern would
exist in the list.
* generic/tclExecute.c (TclExecuteByteCode): optimized case for
the empty string in ==/!= comparisons
|
|
|
|
|
|
|
|
| |
[Bug: 4409].
* unix/tclLoadAout.c:
* unix/tclUnixPipe.c: Added (off_t) type casts in lseek() calls
[Bug: 4410].
|
|
|
|
|
|
| |
* library/http2.1/http.tcl: Fixed a bug where string query data
that was bigger than queryblocksize would get duplicate characters
at block boundaries.
|
|
|
|
|
|
|
|
|
|
| |
* library/http2.1/http.tcl: Fixed bug 4463, where we were getting
a stack trace if we tried to publish a project to a good host but
a port where there was no server listening. It turned out the
problem was a stray fileevent that needed to be cleared. Also,
fixed a bug where http::code could stack trace if called on a bad
token (one which didn't represent a successful geturl) by adding
an http element to the state array in geturl.
|
|
|
|
|
|
|
|
|
| |
respect to the time zone in which they were run and were thus
failing.
* doc/clock.n: Clarified meaning of -gmt with respect to -base
when used with [clock scan] (-gmt does not affect the
interpretation of -base).
|