| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
* win/configure.in: Generate error when attempting
to build under Cygwin. The Cygwin port of Tcl/Tk
does not build and people are filing bug reports
under the mistaken impression that someone is
actually maintaining the Cygwin port. A post to
comp.lang.tcl asking someone to volunteer as an
area maintainer has generated no results.
Closing bugs 680840, 630199, and 634772 and
marking as "Won't fix".
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TCL_DEBUG_IDENT, used only by TclpCreateProcess.
* unix/Makefile.in: Define TCL_DBGX.
* win/Makefile.in: Define TCL_DBGX.
* win/tclWinPipe.c (TclpCreateProcess):
Check that the Tcl pipe dll actually exists
in the Tcl bin directory and panic if it
is not found. Incorporate TCL_DBGX into
the Tcl pipe dll name. This fixes a really
mysterious error that would show up when
exec'ing a 16 bit application under Win95
or Win98 when Tcl was compiled with symbols.
The error seemed to indicate that the executable
could not be found, but it was actually the
Tcl pipe dll that could not be found.
|
|
|
|
| |
This version bundles gcc 3.
|
|
|
|
|
|
|
|
| |
* win/configure.in: Add test that checks to
see if the compiler can cast to a union type.
* win/tclWinTime.c: Squelch compiler warning
about union initializer by casting to union
type when compiling with gcc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Invoke TclpCutFileChannel and TclpSpliceFileChannel.
* generic/tclInt.h: Declare TclpCutFileChannel
and TclpSpliceFileChannel.
* unix/tclUnixChan.c (FileCloseProc, TclpOpenFileChannel,
Tcl_MakeFileChannel, TclpCutFileChannel,
TclpSpliceFileChannel): Implement thread load data
cut and splice for file channels. This avoids
an invalid memory ref when compiled with -DDEPRECATED.
* win/tclWinChan.c (FileCloseProc, TclpCutFileChannel,
TclpSpliceFileChannel): Implement thread load data
cut and splice for file channels. This avoids
an invalid memory ref that was showing up in the
thread extension.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/tclWinChan.c (Tcl_MakeFileChannel, squelch_warnings):
* win/tclWinFCmd.c (DoRenameFile, DoCopyFile, squelch_warnings):
Re-implement inline ASM SEH handlers for gcc.
The esp and ebp registers are now saved on the
stack instead of in global variables so that
the code is thread safe. Add additional checks
when TCL_MEM_DEBUG is defined to be sure the
values were recovered from the stack properly.
Remove squelch_warnings functions and add
a dummy call in the handler methods to squelch
compiler warnings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/configure.in: Define HAVE_ALLOCA_GCC_INLINE
when we detect that no alloca function is found
in malloc.h and we are compiling with GCC.
Remove HAVE_NO_ALLOC_DECL define.
* win/tclWin32Dll.c (TclpCheckStackSpace):
Don't define alloca as a cdecl function.
Doing this caused a tricky runtime bug because
the _alloca function expects the size argument
to be passed in a register and not on the stack.
To fix this problem, we use inline ASM when
compiling with gcc to invoke _alloca with the
size argument loaded into a register.
|
|
|
|
| |
(DdeServerProc): better refcount handling of returnPackagePtr.
|
|
|
|
|
|
|
|
|
|
|
| |
* win/configure.in:
* win/tclWin32Dll.c (TclpCheckStackSpace): Rework
the SEH exception handler logic to avoid using
the stack since alloca will modify the stack.
This was causing a nasty bug that would set the
exception handler to 0 because it tried to pop
the previous exception handler off the top of
the stack.
|
|
|
|
|
|
|
|
|
| |
* win/tcl.m4 (SC_CONFIG_CFLAGS): Set SHLIB_SUFFIX
so that TCL_SHLIB_SUFFIX will be set to a useful
value in the generated tclConfig.sh.
Set SHLIB_LD_LIBS to "" or '${LIBS}' based on
the --enable-shared flag. This matches the
UNIX implementation.
|
|
|
|
|
| |
the Tcl_Obj returned by ExecuteRemoteObject
if it was not saved in a connection object.
|
|
|
|
| |
bytesWritten to allow strict compilation (no warnings).
|
|
|
|
|
|
| |
* win/tclWinDde.c (Tcl_DdeObjCmd): Prevent crash when empty
service name is passed to 'dde eval' and goto errorNoResult in
request and poke error cases to free up any allocated data.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compiler warnings from SEH ASM code.
* win/tclWinChan.c (squelch_warnings): Squelch
compiler warnings from SEH ASM code.
* win/tclWinDde.c: Add casts to avoid compiler
warnings. Pass pointer to DWORD instead of int
to avoid compiler warnings.
* win/tclWinFCmd.c (squelch_warnings): Add casts
and fixup decls to avoid compiler warnings.
Squelch compiler warnings from SEH ASM code.
* win/tclWinFile.c: Add casts and fixup decls
to avoid compiler warnings. Remove unused variable.
* win/tclWinNotify.c: Declare as DWORD instead
of int to avoid compiler warning.
* win/tclWinReg.c: Add casts to avoid compiler
warning. Fix assignment in if expression bug.
* win/tclWinSerial.c: Add casts to avoid compiler
warnings. Remove unused variable.
* win/tclWinSock.c: Add casts and fixup decls
to avoid compiler warnings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tcl.h: Add if defined(__MINGW32__)
check to code that sets the TCL_WIDE_INT_TYPE
and TCL_LL_MODIFIER.
* generic/tclClock.c (FormatClock): Don't
define savedTimeZone and savedTZEnv if
we are not going to use them.
* generic/tclEnv.c: Add cast to avoid warning.
* win/tclWinChan.c: Use DWORD instead of int
to avoid compiler warning.
* win/tclWinThrd.c: Only define allocLock,
allocLockPtr, and dataKey when TCL_THREADS
is defined. This avoid a compiler warning
about unused variables.
|
|
|
|
|
|
| |
new release includes the released 1.0.8
version of msys which includes a number
of bug fixes.
|
|
|
|
|
|
|
| |
* win/tcl.m4 (SC_CONFIG_CFLAGS): Pull in
addition of shell32.lib to LIBS_GUI that
was added to the Tk tcl.m4 but never made
it back into the Tcl version.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SHORT, and LONG when HAVE_WINNT_IGNORE_VOID
is defined. This avoids a bunch of compiler
warnings when building with Cygwin or Mingw.
* win/configure: Regen.
* win/configure.in: Define HAVE_WINNT_IGNORE_VOID
when we detect a winnt.h that still defines
CHAR, SHORT, and LONG when VOID has already
been defined.
* win/tcl.m4 (SC_LOAD_TCLCONFIG): Subst the
TCL_DEFS loaded from tclConfig.sh so that
Tcl defines can make it into the Tk Makefile.
|
|
|
|
|
|
|
|
|
| |
* win/configure.in: Check for typedefs like LPFN_ACCEPT
in winsock2.h and define HAVE_NO_LPFN_DECLS if not found.
* win/tclWinSock.c: Define LPFN_* typedefs if
HAVE_NO_LPFN_DECLS is defined. This fixes the build
under Mingw and Cygwin, it was broken by the changes
made on 2002-11-26.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/rules.vc: Fixed INSTALLDIR macro problem that blanked itself
by accident causing the install target to put the tree at the root
of the drive built on. Whoops..
Renamed the 'linkexten' option to be 'staticpkg'. Added 'thrdalloc'
to allow the switching _on_ of the thread allocator. Under testing,
I found it not to be benificial under windows for the purpose of the
application I was using it for. It was more important for this app
that resources for tcl threads be returned to the system rather than
saved/moved to the global recycler. Be extra clean or extra fast
for the default threaded build? Let's move to clean and allow it to
be switched on for users who find it benificial for their use of
threads.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tests/winPipe.c:
* win/tclWinPipe.c (Tcl_WaitPid):
* win/tclWinTest.c: Gave Tcl_WaitPid the ability to return a
Win32 exception code translated into a posix style SIG*. This
allows [close] to report "CHILDKILLED" without the meaning
getting lost in a truncated exit code. In TclCleanupChildren(),
TclpGetPid() had to get moved to before Tcl_WaitPid() as the
the handle is removed from the list taking away the ability
to get the process id after the wait is done. This shouldn't
effect the unix implimentaion unless waitpid is called with
a pid of zero, meaning "any". I don't think it is..
|
|
|
|
|
|
|
| |
* win/configure.in: the 8.4.1.1 patchlevel.
* unix/configure: autoconf
* win/configure autoconf
|
|
|
|
|
| |
* generic/tclThread.c (TclFinalizeThreadData): TclpMasterUnlock
must exist and be called unconditional of TCL_THREADS. [Bug #651139]
|
|
|
|
|
|
|
|
| |
that the tsdPtr is valid before dereferencing as we call it from
the exit handler, too [Bug 650353]. Another WSAStartup() loaded
version comparison byte swap issue fixed. Although 0x0101 byte
swapped is still 0x0101, properly claiming which is major/minor
is more correct.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclIntPlatDecls.h: regen
* generic/tclInt.decls: added TclWinResetInterface
* win/tclWin32Dll.c (TclWinResetInterfaces):
* win/tclWinInit.c (TclpSetInitialEncodings, WinEncodingsCleanup):
add exit handler that resets the encoding information to a state
where we can reuse Tcl. Following these changes, it is possible
to reuse Tcl (following Tcl_FindExecutable or Tcl_CreateInterp)
following a Tcl_Finalize.
|
|
|
|
| |
failures that need to be resolved first.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
exception, pass this notice on to the caller with a SIG* code
rather than truncating the exit code and missing the meaning.
This allows TclCleanupChildren() to report "CHILDKILLED".
This has a different behavior than unix in that closing the
read pipe to a process sends the SIGPIPE signal which is
returned as a SIGPIPE exit status. On windows, we send the
process a CTRL_BREAK_EVENT and get back a CONTROL_C_EXIT which
is documented to mean a SIGINT which seems wrong as a system,
but is the correct exit status.
|
|
|
|
| |
to CTRL_BREAK_EVENT as it can't be ignored by the child.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NULL handle.
* win/tclWinPipe.c (PipeClose2Proc, TclpCreateProcess): Send a
real Win32 signal (CTRL_C_EVENT) when the read channel is brought
down to alert the child to close on its side. Start the process
with CREATE_NEW_PROCESS_GROUP to allow the ability to send these
signals. The following test case now brings down the child
without the use of an external [kill] command.
% set p [open "|[info name]" w+]
file8d5380
% pid $p
2876
% close $p <- now doesn't block in Tcl_WaitPid()
%
|
|
|
|
| |
DuplicateHandle() incorrectly used [Bug 618852].
|
|
|
|
| |
error which resulted in 2.0 looking less than 1.1.
|
|
|
|
|
| |
table as it wasn't referenced anywhere and cleaned-up some
casting that that wasn't needed.
|
|
|
|
|
| |
TclX didn't like it. Even though the core doesn't use the
prototypes, do offer them.
|
|
|
|
| |
confusion.
|
| |
|
|
|
|
| |
TcpAccept() hack that has no business being in the core.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/tclWinSock.c: This patch does two things:
1) Cleans-up the winsock typedefs by using the typedefs
provided by winsock2.h. This has no effect on how winsock
is initialized; just makes the source code easier to read.
[Patch 561305]
2) Revamps how the socket message handler thread is brough up
and down to allows for cleaner exits without the use of
TerminateThread(). TerminateThread is evil. No attempt has
been made to resolve [Bug 593810] which may need a new
channel driver version for adding a registering function
whithin the transfered thread to init the handler thread.
IOW, initialization of the TSD structure was getting bypassed
through the thread extension's [thread::transfer] command.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/tclWinPipe.c:
* win/tclWinSerial.c:
* win/tclWinSock.c:
* win/tclWinThrd.c:
* win/tclWinTime.c: General cleanup of all worker threads used
by the channel drivers. Eliminates the normal case where the
worker thread is terminated ('cept the winsock one). Instead,
use kernel events to signal a clean exit. Only when the worker
thread is blocked on an I/O call is the thread terminated.
Essentially, this makes all other channel worker threads behave
like the PipeReaderThread() function for it's cleaner exit
behavior. This appears to fix [Bug 597924] but needs 3rd party
confirmation to close the issue.
|
|
|
|
| |
release #4 build both tcl and tk without problems.
|
|
|
|
|
|
|
| |
improper compiler macros that missed the VC++ compiler. This
resulted in VC++ builds using CreateThread()/ExitThread() in place
of the proper _beginthreadex()/_endthreadex(). This was a large
error and am surprised I missed seeing it earlier.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split out functionality of TclInExit to make it
clear which one should be called in each situation.
* generic/tclInt.decls: Declare TclInThreadExit.
* generic/tclIntDecls.h: Regen.
* generic/tclStubInit.c: Regen.
* mac/tclMacChan.c (StdIOClose):
* unix/tclUnixChan.c (FileCloseProc):
* win/tclWinChan.c (FileCloseProc):
* win/tclWinConsole.c (ConsoleCloseProc):
* win/tclWinPipe.c (TclpCloseFile):
* win/tclWinSerial.c (SerialCloseProc): Invoke the
new TclInThreadExit method instead of TclInExit.
|
|
|
|
|
|
|
|
|
| |
* unix/tcl.m4 (SC_CONFIG_CFLAGS): Generate a fatal
configure error if no ar program can be found on the
path. [Bug #582039]
* win/configure: Regen.
* win/configure.in: Check that AR, RANLIB, and RC
are found on the path when building with gcc.
|