Tcl 7.5 for Windows

by Scott Stanton
Sun Microsystems Laboratories
scott.stanton@eng.sun.com

SCCS: @(#) README 1.15 96/07/31 14:18:50

1. Introduction
---------------

This is the directory where you configure and compile the Windows
version of Tcl.  This directory also contains source files for Tcl
that are specific to Microsoft Windows.  The rest of this file
contains information specific to the Windows version of Tcl.

2. Distribution notes
---------------------

Tcl 7.5 for Windows is distributed in binary form in addition to the
common source release.  The binary distribution is a self-extracting
archive with a built-in installation script.

Look for the binary release in the same location as the source release
(ftp.smli.com:/pub/tcl or any of the mirror sites).  For most users,
the binary release will be much easier to install and use.  You only
need the source release if you plan to modify the core of Tcl, or if
you need to compile with a different compiler.  With the addition of
the dynamic loading interface, it is no longer necessary to have the
source distribution in order to build and use extensions.

3. Compiling Tcl
----------------

In order to compile Tcl for Windows, you need the following items:

	Tcl 7.5 Source Distribution (plus any patches)

	Borland C++ 4.52/5.0 (both 16-bit and 32-bit compilers)
	  or
	Visual C++ 2.x/4.x
	Visual C++ 1.5 (to build tcl1675.dll for Win32s support)

In the "win" subdirectory of the source release, you will find two
files called "makefile.bc" and "makefile.vc".  These are the makefiles
for the Borland and Visual C++ compilers respectively.  You should
copy the appropriate one to "makefile" and update the paths at the
top of the file to reflect your system configuration.  Now you can use
"make" (or "nmake" for VC++) to build the tcl libraries and the tclsh
executable.

In order to use the binaries generated by these makefiles, you will
need to place the Tcl script library files someplace where Tcl can
find them.  Tcl looks in one of two places for the library files:

	1) The path specified in the environment variable "TCL_LIBRARY".
	2) Relative to the directory containing the Tcl DLL.
	    Tcl will look for a directory "..\lib\tcl7.5" relative to the
	    directory containing the tcl75.dll loaded by the currently running
	    application.

Note that in order to run tclsh75.exe, you must ensure that tcl75.dll
(and tcl1675.dll under Win32s) are on your path, or in the directory
containing tclsh75.exe.

4. Test suite
-------------

This distribution contains an extensive test suite for Tcl.  Some of
the tests are timing dependent and will fail from time to time.  If a
test is failing consistently, please send us a bug report with as much
detail as you can manage.

In order to run the test suite, you should make the "test" target
(e.g. for Borland, you would type "make test").


5. Known Bugs
-------------

Here is the current list of known bugs/missing features for the
Windows beta version of Tcl:

- Non-blocking connect for sockets does not work yet.
- File events only work on sockets.
- The library cannot be used by two processes at the same time under
  Win32s.
- Under Win32s, "exec" generates temp files and leaves them lying
  around under some circumstances.  "Exec" also only works on DOS
  programs.
- exec/open still have some problems with some programs under Windows
  95 and NT:
    * On both platforms redirecting NUL to the input of a pipeline
      does not work.
    * Exec/open only appends .exe during searches.  If you want to
      exec .com or .bat files, you need to specify the extension.
    * 16-bit DOS apps don't work in wish with one exception: if you
      redirect both input and output to a file, you can run 16-bit DOS
      apps under Windows 95.

If you have comments or bug reports for the Windows version of Tcl,
please direct them to:

Scott Stanton
scott.stanton@eng.sun.com

or post them to the newsgroup comp.lang.tcl.
