OVERVIEW:

This adatcl package provides access to tcl
thru Ada.  It is possible to run tcl programs
and to write Ada procedures that define
new tcl procedures using tcl_createcmd.
The program tcltest.a demonstrates use of most
tcl features and implements some of the example
commands from section III of the draft of
the tcl book.

I assume that the user is familiar both with Ada
and with Tcl, hence, I assume that the example
program, tcltest.a, provides an adequate base
level of usage documentation.

There are of course a variety of caveats and limits
on all this.  In particular, you should be warned
that this package seriously abuses C-Ada interoperability.
Specifically:

1. This package is heavily dependent on the features of the
   Verdix/Sunada compiler.  In particular:
	a. It uses the c_strings package
	b. It used pragma interface and pragma interface name
	   to access C library routines (see the adatcl_unix package).

2. This package makes many assumptions about compatability
   between Ada and C:
	a. It assumes that top level procedures in packages
	   can be called from C code correctly when passed
	   integers and pointers.  This is the hidden assumption
	   behind the ability to define new commands from
	   Ada procedures.
	b. It uses unchecked_conversion and unchecked deallocation.

3. In an attempt to provide correct operation under Ada concurrent
   execution, all calls to C code are protected by semaphores.
   As noted in the makescript file, if you intend to use ada tasks,
   then you will want to load the ada-thread save malloc provided
   as part of SunAda.

4. This package avoids the use of exceptions.
   Its style could be improved significantly if that
   were changed.

5. The tcltest.a program exercises most of the features
   of Tcl.  The file tested has an exclamation point next to features
   for which no current exercise exists in tcltest.a

INSTALLATION:

The script named makescript shows how to compile and test
the adatcl package using the tcltest program with test.tcl as
input.

LOCATION:

The README is available via WWW as:
        http://www.cs.colorado.edu/homes/arcadia/public_html/adatcl.html

The source for adatcl may be obtained via WWW or
directly through anonymous ftp as:
        ftp://ftp.cs.colorado.edu/pub/cs/distribs/arcadia/adatcl7.3.tar.Z

The source should also be available from the tcl archive at
        harbor.ecn.purdue.edu
either in the incoming directory or in the regular tcl directory.
The version number indicates the highest known version of tcl
to which it is equivalent.

Address questions and comments to
	Dennis Heimbigner
	Computer Science Dept.
	University of Colorado
	Boulder, CO 80309-0430
	(303-492-6643)
	(dennis@cs.colorado.edu)
