Annotation of micropolis/src/tclx/readme, revision 1.1.1.1

1.1       root        1: 
                      2:               *** README.EXTD - README file for Extended Tcl ***
                      3: 
                      4: 
                      5: EXTENDED TCL
                      6: ============
                      7: 
                      8:     Extended Tcl (TclX), defines a set of extensions to Tcl 6.4, the Tool
                      9: Command Language invented by Dr. John Ousterhout of the University of
                     10: California at Berkeley.  Tcl is a powerful, yet simple embeddable programming
                     11: language.  Extended Tcl is oriented towards system programming tasks, with
                     12: many additional interfaces to the Unix operating system, It is upwardly
                     13: compatible with Tcl 6.4.  You take the Extended Tcl package, add it to Tcl
                     14: 6.4, and from that you get Extended Tcl.  (Berkeley Tcl is not included in
                     15: this distribution, obtain it from sprite.berkeley.edu).
                     16: 
                     17:    Support is also included for building a Tk wish shell with the Extended Tcl
                     18: command set.
                     19: 
                     20:     Extended Tcl was designed and implemented by Karl Lehenbauer
                     21: ([email protected]) and Mark Diekhans ([email protected]), with help in the
                     22: early stages from Peter da Silva ([email protected]).
                     23: 
                     24:    As with Berkeley Tcl, all of Extended Tcl is freely redistributable,
                     25: including for commercial use and resale.
                     26: 
                     27: 
                     28: FEATURES ADDED BY EXTENDED TCL
                     29: ==============================
                     30: 
                     31:    Here is a summary of the features added by Extended Tcl.  For more details
                     32: on the commands and functionality provided by Extended Tcl, see the manual
                     33: page man/TclX.man.
                     34: 
                     35:     o A shell, which provides an environment for developing and executing
                     36:       Tcl programs.  
                     37: 
                     38:     o Advanced Tcl code library facility.
                     39: 
                     40:     o General purpose commands which define new programming constructs,
                     41:       debugging and profiling facilities.
                     42: 
                     43:     o Unix access commands provide access to many Unix system calls, including
                     44:       process management.
                     45: 
                     46:     o File I/O commands provided added facilities for accessing and
                     47:       manipulating open files.
                     48: 
                     49:     o File scanning facility that provides awk-like functionality.
                     50: 
                     51:     o Math commands (random, sin, cos, etc).
                     52: 
                     53:     o Extended list manipulation commands
                     54: 
                     55:     o Keyed lists, a type of list that provided functionality similar to C
                     56:       structures.
                     57: 
                     58:     o Extended string and character manipulation commands.
                     59: 
                     60: 
                     61: NEW FEATURES IN THIS RELEASE
                     62: ============================
                     63: 
                     64:     o All known bugs are fixed.
                     65: 
                     66:     o Configuration has been simplified.
                     67: 
                     68:     o Improved support for Tk.  Including building a wish with signal support
                     69:       and building a Tk package library.
                     70: 
                     71:     o All floating point functions (sin, cos, etc).  Now take expressions
                     72:       as arguments.  Floating point numbers will not be demoted to integers
                     73:       or lose precision.
                     74: 
                     75:     o The standard Tcl expr command is patched so that floating point numbers
                     76:       do not get demoted to integers or lose precision.  This patch has been
                     77:       submitted to John Ousterhout.
                     78: 
                     79:     o The character string manipulation commands take integer expressions
                     80:       for positions and lengths.
                     81: 
                     82:     o The performance of the loading of package library indices and the
                     83:       loading of packages from the libraries has been improved.
                     84: 
                     85:     o A performance profiling facility has been added.
                     86: 
                     87:     o The alarm command will take fractions of a second on systems with the
                     88:       setitimer system call.
                     89: 
                     90:     o Fcntl and fstat are easier to use.
                     91: 
                     92:     o Better signal handling on systems with Posix signals.
                     93: 
                     94:     o And more.  Review "TclX.man" and "CHANGES" for full details.
                     95: 
                     96: ON-LINE HELP
                     97: ============
                     98: 
                     99:     There is a help system included with Extended Tcl.  It contains some
                    100: documentation on every command in Berkeley Tcl, and Extended Tcl.  You can
                    101: invoke it interactively from within Extended Tcl by typing "help".
                    102: 
                    103:     Once you bring Tcl up and have gotten it to pass all the tests, try typing
                    104: "help help" to learn how to use help.
                    105: 
                    106: MANUAL PAGES
                    107: ============
                    108: 
                    109:     Man pages in nroff/troff format are provided for all of Tcl and the
                    110: extensions in the directory tclX6.4c/man.  Start with the TclX.man manual.
                    111: 
                    112: EXTENDED TCL VERSION NAMING
                    113: ===========================
                    114: 
                    115:     Extended Tcl takes its version number from the corresponding version of
                    116: Berkeley (Ousterhout) Tcl upon which it is based, with the addition of a
                    117: trailing letter in case there are multiple releases of Extended Tcl within a
                    118: single release of Berkeley Tcl.  This release is TclX 6.4c.
                    119: 
                    120: INTERFACING TCL AND C++
                    121: =======================
                    122: 
                    123: C++ programmers can include the file "tcl++.h" to define C++ classes
                    124: that can be used to access a Tcl interpreter.  This is based on Tcl
                    125: C++ classes originally developed by Parag Patel.
                    126: 
                    127: TCL DIRECTORY HIERARCHY
                    128: =======================
                    129: 
                    130: Here is an overview of the directory hierarchy:
                    131: 
                    132:                              top_level_directory
                    133: 
                    134:                           tcl6.4    tclX6.4c   tk2.3
                    135: 
                    136: The tcl6.4 directory contains Berkeley Tcl, unmodified and tk2.3 contains
                    137: unmodified tk2.3, if you plan to use Tk  These locations are only suggested,
                    138: they maybe changed by editing tclX6.4c/Config.mk.
                    139: 
                    140: The following directories are included under the tclX6.4c directory:
                    141: 
                    142:     o config - Configuration files for various Unix versions.
                    143: 
                    144:     o man - Unformated manual pages for TclX.
                    145: 
                    146:     o src - The main source for TclX.
                    147: 
                    148:     o osSupport - Library routines required by TclX that may not be available
                    149:       on all Unix versions. 
                    150: 
                    151:     o ucbsrc - A makefile and sed scripts used to modify source files that
                    152:       are supplied with UCB Tcl.  The files are modified with sed so you don't
                    153:       have to have patch to build Tcl, however context diffs are provided if
                    154:       problems occur porting to a new version of Tcl.
                    155: 
                    156:     o tclsrc - Tcl source that is built into the Tcl package library.
                    157: 
                    158:     o tcllib - Tcl source and runtime environment that is required to run TclX.
                    159: 
                    160:     o tcllib/help - Help files for Tcl and TclX.
                    161: 
                    162:     o tests - Tests for TclX.
                    163: 
                    164:     o tkucbsrc - A makefile and sed scripts used to modify source files that
                    165:       are supplied with Tk to add in TclX functionality.  Context diffs are
                    166:       also provided.
                    167: 
                    168:     o tksrc - A makefile that builds a version of the Tk wish shell containing
                    169:       Extended Tcl.
                    170: 
                    171:     o experimental - An directory of expermintal and contributed Tcl source.
                    172:       The code is not normally built as part of TclX.
                    173: 
                    174: HOW TO BUILD IT
                    175: ===============
                    176: 
                    177:    Please read TclX.man in the tclX6.4c/man directory before starting the
                    178: engine or working under the hood.
                    179: 
                    180:     Configure and build Berkeley Tcl as described in that distribution.  Don't
                    181: forget to do a "csh config" before running make for the first time.
                    182: 
                    183:     Cd to the "tclX6.4c" directory, which contains this distribution.  Edit the
                    184: file "Config.mk" to configure Extended Tcl for your Unix version and your
                    185: preferences.  The first part of this file contains user preference options,
                    186: including the location of the Berkeley Tcl source and, optionally, the Tk 2.3
                    187: source.  A macro TCL_CONFIG_FILE is also defined that points to a Unix system
                    188: configuration file in the "config" directory.  There should be one there for
                    189: your system.  If not, you will have to develop one based on the documentation
                    190: in "Config.mk".  If you develop or fix problems in a configuration file,
                    191: please send it to us at the address below.
                    192: 
                    193:     Now do a "make".  If all goes well, this will augment the tcl.a library
                    194: will all of the functions defined by both Berkeley and Extended Tcl, and
                    195: create an executable version of tcl in the "tclX6.4c" directory called, simply
                    196: enough, "tcl".  A "wish" executable will be also built if it was requested.
                    197: 
                    198:     Until the Extended Tcl runtime files are installed, "tcl" and "wish" can't
                    199: be run directly.  To run them before installation, use "runtcl" or "runwish".
                    200: 
                    201:     Next enter the command "runtcl" and, if everything worked, you should be
                    202: greeted by a tcl prompt:
                    203: 
                    204: tcl>
                    205: 
                    206:    Note that until Extended Tcl is installed, it will only run while in the
                    207: tclX6.4c directory.
                    208: 
                    209: RUN TESTS TO INSURE THAT TCL IS WORKING PROPERLY
                    210: ================================================
                    211: 
                    212:     Tcl and TclX come with over 1400 tests that you can run to insure that it
                    213: is working properly.  These tests have greatly helped us while working on Tcl
                    214: by detecting bugs that get introduced accidentally as side-effects of changes.
                    215: Consequently, we have found Tcl to be very reliable, and have had very few
                    216: cases where a new release has regressed by introducing new bugs in old
                    217: functions, or reintroducing old bugs in old functions.
                    218: 
                    219:    There are two sets of tests: the tests from Berkeley Tcl, and tests for
                    220: Extended Tcl, which test both the new commands added by Extended Tcl and the
                    221: procedures defined in the Tcl procedure library.
                    222: 
                    223:     Run both the Berkeley and TclX tests by typing "make test" in the Extended
                    224: directory.
                    225: 
                    226:     If a test fails, please dig into the test and the C source for the function
                    227: being tested, fix the bug and mail us the change.  If you're not inclined to
                    228: do this, please report the problem, including the output of the test, to
                    229: [email protected].  Sometimes tests fail due to problems in the system
                    230: environment or bugs in that test rather than problems with TclX.  Even if a few
                    231: of the tests fail, you probably still have a working TclX.
                    232: 
                    233:    If you're having trouble with the Berkeley tests, and you suspect that the
                    234: extensions might be involved, you can build a special minimal version of
                    235: Berkeley Tcl by cd'ing to the tcl6.4 directory and doing a "make tclTest".
                    236: You can then invoke "tclTest", where you should be greeted by a "%" prompt.
                    237: Next, cd to the tests directory and do a "source all".
                    238: 
                    239:     Note that the Berkeley tests turn off tcl's ability to autoload procedures
                    240: from the Tcl source library, so after running the tests, you should usually
                    241: exit Tcl and restart it.
                    242: 
                    243: INSTALLING EXTENDED TCL
                    244: =======================
                    245: 
                    246:     To install Extended Tcl, edit the tclX6.4c/Config.mk installation
                    247: configuration section to match your preferences. Read the information in the
                    248: Makefile carefully before configuring it. Cd to the tclX6.4c directory and do
                    249: a "make install" (normally as root).  This will install include files and
                    250: manual pages for Berkeley Tcl and TclX, as well as the TclX binary and
                    251: library.
                    252: 
                    253:     The Tcl default file may be used to install more than one version of
                    254: TclX on a system.
                    255: 
                    256: MAKING EXECUTABLE TCL SCRIPTS
                    257: =============================
                    258: 
                    259:     It is common to want to write Tcl scripts, put them in a directory along
                    260: your search path, and execute them just like you do with shell scripts.
                    261: 
                    262: On systems that support the "#!" convention, you can put a
                    263: 
                    264: #!/usr/local/bin/tcl
                    265: 
                    266: as the first line of your script, and executing the script will
                    267: automatically invoke tcl to process it.  Of course if you install
                    268: Tcl somewhere else, you'll use a different path.
                    269: 
                    270:     For systems that don't support this convention (most System V
                    271: systems, for example), it is probably best to create a shell
                    272: script that does something like:
                    273: 
                    274:         exec tcl commandfile.tcl
                    275: 
                    276: 
                    277: PACKAGE LIBRARIES
                    278: =================
                    279: 
                    280:     Package Libraries are a Tcl source code management tool included in
                    281: this release.  Package libraries allow you to group Tcl procedures into
                    282: logical bundles and create single files, libraries, that contain multiple
                    283: packages.  The package code provides a low-overhead means of automatically
                    284: demand-loading a package on the first attempt to execute one of the procedures
                    285: defined within it.  As such, package libraries provide a mechanism to
                    286: accommodate the creation of Tcl applications and libraries of a substantial
                    287: size.
                    288: 
                    289: SUPPORT FOR EXTENDED TCL
                    290: ========================
                    291: 
                    292:     We are committed to providing continuing support for Extended Tcl.  Please
                    293: send questions, bug reports, and bug fixes to:
                    294: 
                    295:          [email protected] (uupsi!sugar!tcl-project)
                    296: 
                    297: Or leave a note on our BBS at (713) 684-5900
                    298: 
                    299: SEND US YOUR LIBRARY ROUTINES
                    300: =============================
                    301: 
                    302:     If you write a useful Tcl procedure and would like to share it with
                    303: everyone, send us a copy and we'll consider it for the Tcl library!
                    304: 
                    305: COMPATIBILITY WITH TCLX 6.2b
                    306: ============================
                    307: 
                    308:    We have attempted to main backwards-compatibility with older versions
                    309: of TclX.  A few changes were made to enhance usability or fix problems that
                    310: have introduced a few incompatibilities, these are listed below.  Remember
                    311: that multiple versions of Tcl may be installed on a system using the Tcl
                    312: default file.  This is useful when converting applications to the new version.
                    313: 
                    314:     o The "wait" command only takes one pid.  This is in anticipation of
                    315:       supporting full waitpid functionallity in the wait command.  This will
                    316:       be available as soon as it is supported in UCB Tcl.
                    317: 
                    318:     o The -i flag has been dropped from the "chmod" command.  It now assumes
                    319:       that the number is decimal unless prefixed by a 0.
                    320: 
                    321:     o The "fcntl" command has been changed to use Posix defined flag names.
                    322:       NDELAY has been renamed NONBLOCK and CLEXEC is now CLOEXEC.  The command
                    323:       no longer returns a list of current values, instead individule values
                    324:       may be queried.
                    325:   
                    326:     o The format of the data returned by "signal get" has changed.  Enough
                    327:       information is now returned to be able to reset signals.
                    328: 
                    329:     o The "fstat" command has changed to make it easier to get single values,
                    330:       consequently the syntax to return stat data in an array has changed.
                    331: 
                    332:     o A parameter has been added to the Tcl_GetKeyedListKeys C function.
                    333: 
                    334:     o The format of package library index files (.tndx) has changed.  These
                    335:       should be purged and rebuilt.
                    336: 
                    337:     o Added an options argument to Tcl_Startup.  It is not currrently used.
                    338: 
                    339: 
                    340: CAVEATS
                    341: =======
                    342: 
                    343:     Although Extended Tcl compiles and executes the tests properly on SCO Unix
                    344: System V/3.2.4, Xenix System V/386, and SunOS, it has not had much use under
                    345: Xenix System V/386.
                    346: 
                    347: comp    Previous versions of Extended Tcl have also run under Berkeley BSD, HP-UX
                    348: and Xenix/286.  This release, however, has not been tested on these machines,
                    349: although there is configuration information in the makefile for BSD and HP-UX,
                    350: and Extended Tcl should come up fairly easily on these machines.
                    351: 
                    352:     Do not create any set-user-id versions of Tcl yet.  There are holes in
                    353: the startup sequence involving shell variables and default files that need
                    354: to be plugged first.
                    355: 
                    356: MAILING LISTS AND NEWSGROUPS FOR TCL
                    357: ====================================
                    358: 
                    359:     A Usenet newsgroup, comp.lang.tcl, is dedicated to discussing Tcl, Tk and
                    360: the applications that embed it.
                    361: 
                    362: WHERE TO GET IT
                    363: ===============
                    364: 
                    365: Tcl 6.4 is available via anonymous ftp from:
                    366: 
                    367:    sprite.berkeley.edu:tcl/tcl6.4.tar.Z
                    368: or
                    369:    ftp.uu.net:languages/tcl/tcl6.4.tar.Z
                    370: 
                    371: Extended Tcl 6.4c can be downloaded by anonymous FTP from:
                    372: 
                    373:    sprite.berkeley.edu:tcl/tclX6.4c.tar.Z
                    374: or
                    375:    barkley.berkeley.edu:tcl/extensions/tclX6.4c.tar.Z
                    376: or
                    377:    ftp.uu.net:languages/tcl/tclX6.4c.tar.Z
                    378: 
                    379: A contributed sources archive resides on barkley.berkeley.edu.
                    380: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.