                           Extended Tcl (TclX) 7.5.2
                           =========================

INTRODUCTION
============

    Extended Tcl (TclX), is a set of extensions to Tcl 7.5, the Tool Command
Language invented by Dr. John Ousterhout.  Tcl is a powerful, yet simple
embeddable programming language.  Extended Tcl is oriented towards Unix system
programming tasks and large application development.  Many additional
interfaces to the Unix operating system are provided.  It is upwardly
compatible with Tcl 7.5.  You take the Extended Tcl package, add it to Tcl
7.5, and from that you get Extended Tcl.  (Tcl is not included in this
distribution, obtain it from ftp.smli.com).

   Support is also included for building a Tk 4.1 wish shell (wishx)
with the Extended Tcl command set and signal handling.

   While this TclX distribution is tested with Tcl 7.5 and Tk 4.1, it will
probably work with new versions of Tcl & Tk with little or no changes.

   Extended Tcl was designed and implemented by Karl Lehenbauer
(karl@NeoSoft.com) and Mark Diekhans (markd@Grizzly.com), with help
in the early stages from Peter da Silva (peter@NeoSoft.com).

   As with Tcl, all of Extended Tcl is freely redistributable, including for
commercial use and resale.

MS WINDOWS 95/NT
================
  A port of TclX to MS Windows 95 & NT is under way, contact us at 
tcl-project@neosoft.com if you would like to be an alpha tester. The code
as of this release is included in the distribution, but it does not currently
build.

BUILDING TCLX
=============

   For instructions on how to build TclX on Unix and Unix-like systems,
see unix/INSTALL.

CHANGES IN TCLX 7.5.2
=====================
  o This is a bug fix release to fix a problem where copyfile would cause
    an abort if used on a file open for both reading and writing file.


CHANGES IN TCLX 7.5.1
=====================
  o This is a bug fix release to fix several build and install problems in
    7.5.0.  Most of these have to do with shared libraries.


CHANGES IN TCLX 7.5.0
=====================

  o The TclX runtime is no longer independent of the standard Tcl and
    Tk runtimes.  Tcl_Init must now be called before Tclx_Init and Tk_Init
    before Tkx_Init.
    (* Potential Incompatibility for C code *)

  o Dropped support for the C++ interfaces in tcl++.h.   This file was
    outdated, not documented and of limited usefulness.  It was often
    a source of portability problems.  If you need this support,
    tcl++.h and tcl++.C from a previous release should work.  Contact
    us if this causes you problems.
    (* Potential Incompatibility for C code *)

  o Added support for building shared libraries on systems where shared
    library support is implemented by Tcl.  The TclX library (libtclx.so)
    is now dynamically loadable using the load command.

  o Deprecated server_* commands in favor of new Tcl socket command.
    The server_info command has been renamed to host_info and the
    server_cntl functionallity has been incorporated in the fcntl
    command.  All old scripts using the server_* commands will continue
    to work.

  o Modified the commandloop command to support event based command input.
    (* Potential Incompatibility for Tcl code *)

  o Added a procedure, mainloop, which makes it easy to build event oriented
    programs in the TclX shell in a manner similar to wish.

FEATURES ADDED BY EXTENDED TCL
==============================

   Here is a summary of the features added by Extended Tcl.  For
more details on the commands and functionality provided by Extended
Tcl, see the manual page man/TclX.man.

    o A shell, which provides an environment for developing and
      executing Tcl programs.  It also supports event driven programming
      outside of Tk.

    o Advanced Tcl code library facility that is oriented towards building
      large applications.  It is compatible with standard Tcl auto-loading.

    o General purpose commands which define new programming
      constructs,  debugging and profiling facilities.

    o Unix access commands provide access to many Unix system calls,
      including process management.

    o File I/O commands provide added facilities for accessing and
      manipulating open files.

    o File scanning facility that provides awk-like functionality.

    o Extended list manipulation commands.

    o Keyed lists, a type of list that provides functionality
      similar to C structures.

    o Extended string and character manipulation commands.

    o Online help on Tcl, TclX and Tk commands.

    o X/PG based internationalization commands.

    o Support for event-oriented programming in non-Tk applications.

ON-LINE HELP
============

    There is a help system included with Extended Tcl.  It contains some
documentation on every command in Tcl, Extended Tcl and Tk.  You can invoke it
interactively from within Extended Tcl by typing "help".

    Once you bring Tcl up and have gotten it to pass all the tests,
try typing "help help" to learn how to use help.

    There is also a Tk based help program "tclhelp".

MANUAL PAGES
============

    Man pages in nroff/troff format are provided for all of Tcl and
the extensions in the directory tclX7.5.2/doc.  Start with the
TclX.n manual.

EXTENDED TCL VERSION NAMING
===========================

    Extended Tcl takes its version number from the corresponding
version of Tcl upon which it is based, with the addition of another
decimal number.  This release is TclX 7.5.2.

LINKING APPLICATIONS AND EXTENSION WITH TCLX
============================================

   There are three basic approaches to linking TclX into applications or
with other extensions:

   o Dynamically load the C code using either 'package require' or
     the 'load' command.

   o Linking TclX into an application based on the standard Tcl or Tk
     shells (tclsh or wish) or based on your own startup.

   o Build an application based on the TclX shells (tcl or wishx).

See the TclX_Init.3 manual page for more details.  The pkg_mkIndex does not
generate a pkgIndex.tcl file that works with TclX.  See TclX_Init.3 for
instructions on how to setup a pkgIndex.tcl file for use with the
package require command.  A prototype pkgIndex.tcl file is installed into the
TclX run time directory.  There is no need to dynamically load libtkx, its
only there to support wishx and applications that want wishx's signal handling.

SUPPORT FOR EXTENDED TCL
========================

    We are committed to providing continuing support for Extended Tcl.
Please send questions, bug reports, and bug fixes to:

         tcl-project@NeoSoft.com

WHERE TO GET IT
===============

Extended Tcl 7.5.2 can be downloaded by anonymous FTP from:

   ftp.neosoft.com:/pub/tcl/tclx-distrib/tclX7.5.2.tar.gz


A contributed sources archive resides on ftp.aud.alcatel.com and
is mirrored on ftp.ibp.fr for our friends in Europe.  An Frequently
Asked Questions (FAQ) document exists in this archive.

Remember to mail Extended Tcl problems and questions to
tcl-project@NeoSoft.com not Dr. John Ousterhout.

THANKS
======

  A big thanks to all of the Extended Tcl users from all over the world
who have helped us debug problems and given us valuable suggestions.
A special thanks to John Ousterhout and his team at Sun for Tcl, Tk and
all the support they have given us.

Thanks to Dr. Joseph E. Sacco <jsacco@ssl.com> for his initial work on
building shared libraries.

Thanks to Michael E. Shorter <mike@globalware.com> and
Christopher M. Sedore <cmsedore@zombie.maxwell.syr.edu> for their work on
porting TclX to MS Windows.

NEOSOFT TCL CONSULTING
======================

  NeoSoft, co-developers of Extended Tcl, provides commercial Tcl
releases, support, training and consulting.  NeoSoft can be reached 
by sending electronic mail to info@NeoSoft.com or by phoning 
+1 713 968-5800.
