

             Tcl Distributed Programming (Tcl-DP)
               (Version 3.5beta2; August 16, 1996)

		      Brian C. Smith
		Department of Computer Science
		    Cornell University

		     Lawrence A. Rowe
               Computer Science Division-EECS
             University of California at Berkeley

This directory contains a freely distributable extension to Tcl/Tk
called Tcl Distributed Programming (Tcl-DP).  Tcl-DP adds TCP, UDP, and
IP-multicast connection management, remote procedure call (RPC),
distributed object protocols, and a name server to Tcl/Tk.  A C
interface to the RPC primitives is also provided.  Unlike the "send"
command of Tk, Tcl-DP does not require that Tcl/Tk processes that want
to communicate share an X server because Tcl-DP is built directly upon
TCP/IP.

BACKGROUND

Tcl stands for the Tool Command Language, a freely distributable,
embeddable scripting language package.  Tk is an freely distributable X
windows interface toolkit and widget library implemented by a
collection of new commands added to Tcl.  Information about Tcl/Tk is
available by anonymous ftp from sprite.berkeley.edu [128.32.150.27].
Tcl-DP was originally developed for Tcl 6.5 and Tk 3.0.  Tcl-DP Version
3.5beta2 is compatible with Tcl 7.5 and Tk 4.1 (for Unix platforms only).

This distribution contains the source code for Tcl-DP, man pages that
describe the commands, and several examples that illustrate how to use
Tcl-DP to build simple distributed applications.  You can get Tcl-DP
3.4b1 and related documentation from the Tcl-DP home page at

    http://www.cs.cornell.edu/Info/Projects/zeno/Projects/Tcl-DP.html

Both source and binary releases are available.

Tcl-Dp3.5beta2 is available via ftp from:

    ftp://ftp.cs.cornell.edu/pub/tcl-dp/tcl-dp3.5beta2.tar.gz

In the examples subdirectory, several sample applications are supplied
that use Tcl-DP.  As you can see from the examples, the distributed
programming mechanisms of Tcl-DP are very simple.  A dp_RPC command,
for example, sends a Tcl command to a remote process, which evaluates
the command in the destination Tcl interpreter and returns the result
as the value of the dp_RPC command.

COMPILING/USING TCL-DP

To compile Tcl-DP:

+) If you do not already have Tcl 7.5 and Tk 4.1 get a copy and follow
the instructions to build the system.  Tcl-DP 3.5 will not work with
earlier versions of Tcl/Tk.  Although not required, we recommend that
you place tcl-dp3.5 in a sibling directory to tcl7.5 and tk4.1 and
then make a symlink from tcl-dp3.4 to tcl-dp.

+) Follow the instructions in the INSTALL file in this directory.

To learn how to use Tcl-DP:

+) Print and read the tutorial (tutorial.ps) in the doc subdirectory.

+) Read the README file in the examples subdirectory and play with
the example applications.

+) Scan the man pages to see what's available.  Use the "man" subdirectory
   or "html/dp_index.html" as a starting point.  An on-line version
   of the manual is available at
      http://www.cs.cornell.edu/Info/Projects/zeno/Tcl-DP/html/dp_index.html

To report bugs, bug fixes, descriptions of interesting Tcl-DP 
applications, and suggested improvements:

+) Send email to tcl-dp@CS.Cornell.EDU.

or

+) Post an article in the comp.lang.tcl newsgroup.

We extend our thanks to everyone who helped to create, debug, and
distribute this software.  Although there are too many people to mention
at this point, the following people deserve special attention:

  John Ousterhout, creator of Tcl/Tk; 
  Pekka Nikander, creator of tcpConnect;
  Tim MacKenzie, creator of tclRawTCP;
  Lou Salkind, ported Tcl-DP to Tcl 7.0/Tk 3.3
  R Lindsay Todd, developed security mechanism
  Peter Liu, developed extended name server code
  Ulla Bartsich, integrated many changes into Tcl-DP 3.3
  Mike Grafton, wrote extensive test suites for Tcl-DP
  Jon Knight, wrote IP-multicast extensions to Tcl-DP
  Gordon Chaffee, ported Tcl-DP to Windows-NT
  Mike Perham, integrated many changes into Tcl-DP 3.4
