			Tcl-DP, Version 3.5beta2
			      August 16, 1996

This is to announce the official release of Tcl-DP, version 3.5, release
beta 2.  This version is compatible with Tk 4.1 and Tcl 7.5.  It's a quick
and dirty port for Unix systems only and will probably have bugs in it, so
use it at your own risk.  The next release will be the proper port. 

You can get Tcl-Dp3.5beta2 via ftp from:

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

Only the source release is available at this point.  Please email any
problems to tcl-dp@cs.cornell.edu.  

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-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.

Copies of this file have been uploaded to ftp.aud.alcatel.com and should
appear there shortly.  Below are the major changes since version 3.2 and
the README.

---------- changes for tcl-dp3.5b2 --------------------

1. Quick port to Tcl7.5/tk.4.1.  Main change in adapting the new Tcl I/O
   subsystem to Tcl-Dp.


---------- changes for tcl-dp3.4b2 --------------------

1. Binary release, generally cleaned up installation

2. Added detection code for Solaris 2.4 vs 2.5 (bug fix).

---------- changes for tcl-dp3.4b1 --------------------

1. HTML documentation and Postscript tutorial for Tcl-DP.

2. Tk4.0 compatible (NOTE: we are *NOT* 7.5/4.1 compatible!)

3. Binary data support via dp_readbinary and dp_writebinary functions.

4. Bug fixes

---------- changes for tcl-dp3.3b2 --------------------

1. Incorporated changes for window-NT (courtesy Gordon Chaffee
   chaffee@cs.berkeley.edu)

2. Merged dplite distribution into main release.

3. Changed the install procedures to be more consistent with Tk 4.0

---------- changes for tcl-dp3.3b1 --------------------

1. 5/95 (improvement) Expanded test suite.
 
2. 5/95 Changed the name of the global Tcl variable "rpcFile" to
   "dp_rpcFile".
	  *** POTENTIAL INCOMPATIBILITY *** 

3. 4/95 (new feature) Added multicast socket options to dp_socketOption:
   ttl, loopBack, add membership, drop membership.  See the dp_socketOption
   man page for details.

4. 3/95 (new feature) Added IP-multicast sockets to dp_connect (-mudp).
   (Courtesy Jon Knight < J.P.Knight@lut.ac.uk>)

5. 3/95 (new feature) Added timeout for dp_MakeRPCClient as well as two new 
   functions:
    - dp_gets: used in the code to implement timeout for dp_MakeRPCClient
    command. This is required in the case when the dp-server is busy doing
    some work and does not reply to client connect for a large period of time.
    - dp_fupdate: Updates file descriptors optflags
    (Courtesy Rupak Chandra <rchandra%hss@lando.hns.com>)

6. 2/95 (bug fix) Fixed part of a solaris bug by adding: 
	|| *host == 0 in translate  the hostname in dpnetwork.c
    (Courtesy Mark Leisher <mleisher@crl.nmsu.edu>)

7. 2/95 (bug fix) Fixed a bug in the distributed object mechanism where
   undistribute commands weren't being recorded properly
    (Courtesy Sacha Krakowiak <krakowia@imag.fr>) 

8. 2/95 (enhancement) Added extra test in dprpc.c because when rpcFile is
   not set, the trace routine would explicitly call Tcl_UnsetVar and then 
   Tcl_TraceVar.The old traces were not being removed so rpcFile ended up 
   with a huge list of traces, which bogged things down immensely. Now they 
   are removed. 
	if (Tcl_VarTraceInfo(interp, "rpcFile", TCL_GLOBAL_ONLY,
                                Tdp_RPCVarTrace, NULL) == NULL) 
   (Courtesy  Andrew Swan <aswan@cs.berkeley.edu>)
  
9. 2/95 (enhancement) Redefined array structure in dpnetwork.c to reduce the 
	number of max arrays.

10. 2/95 (bug fix) Fixed bug in passing service names instead of port
   numbers on little endien machines.


------------------------------------------------------------------


             Tcl Distributed Programming (Tcl-DP)
               (Version 3.4beta2; April 2, 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.4 is compatible with Tcl 7.4 and Tk 4.0.

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.4b2 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.

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.4 and Tk 4.0 get a copy and follow
the instructions to build the system.  Tcl-DP 3.4 will not work with
earlier versions of Tcl/Tk.  Although not required, we recommend that
you place tcl-dp3.4 in a sibling directory to tcl7.4 and tk4.0 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
