rme@olympia.unet.com (Richard Emberson) (03/29/91)
I'm looking for the lastest version of TcL (Tool Command Language) written by J. Ousterhout at ucb. I've got version 3.3 circa 3/90. Pointers to later releases or applications written using Tcl would be appreciated. Richard Emberson rme@olympia.net.com
karl@ficc.ferranti.com (Karl Lehenbauer) (04/03/91)
In article <1326@unet.UUCP> rme@olympia.unet.com (Richard Emberson) writes: >I'm looking for the lastest version of TcL (Tool Command Language) >written by J. Ousterhout at ucb. >I've got version 3.3 circa 3/90. >Pointers to later releases or applications written using Tcl would >be appreciated. Tcl 4.0, a Unix/Xenix Tcl programming environment that includes a bunch of extensions to 3.3 to provide enhanced string and list operations, stdio-style I/O, file scanning, associative arrays and so forth, is available from media-lab.media.mit.edu (18.85.0.2) ~ftp/tcl-4.0-pl1.tar.Z We are about to release a new version, tentatively titled 4.1, but we will probably start calling it TclU (Tcl for Unix) or something similar. To get on our mailing list, send email to tcl-users-request@hackercorp.com (uunet!sugar!tcl-users-request). I have included extracts from the README file for the 4.0 release below... WELCOME TO TCL ============== Welcome to Tcl, a string processing language and programming environment for the Unix operating system. This is release 4.0, a beta release made to the Usenet alt.sources newsgroup beginning on Sunday, December 16th, 1990. WHAT TCL IS =========== Tcl stands for "Tool command language", and was invented by Dr. John Ousterhout and his graduate students at the University of California at Berkeley. (For a rationale for why Tcl was invented, a paper was presented at the Winter '90 Usenix and is available in the proceedings of that conference. It is also included in machine-readable form in this release, as the postscript file tcl/baseline/man/usenix.ps. For those without postscript printing capability, a text file called tcl/baseline/man/usenix.text is provided.) Tcl is pronounced "tickle," although a lot of people (including us most of the time) call it T-C-L. WHAT THIS TCL IS ================ This release of Tcl builds on Ousterhout's embeddable interpreter to provide Unix with a powerful string and file processing language that is easy to learn, understand and write understandable programs in. Tcl achieves its power without sacrificing elegance and simplicity by keeping the syntax simple and implementing most operations as Tcl subroutines. In our experience, large scripts written in Tcl tend to run around ten to twenty times faster than large Bourne shell scripts calling the usual mix and density of sed, awk, grep, expr and so forth. The Unix extensions were invented and implemented by Karl Lehenbauer (karl@hackercorp.com), Mark Diekhans (uunet.uu.net!cruzio!osprey!markd) and Peter da Silva (peter@hackercorp.com) with help from Jordan Henderson (jordan@hackercorp.com). They consist of extensions to Tcl to support extended string and list operations, stdio-style I/O to files and pipelines, scanning files for regular expressions and executing Tcl code when they're found, sorting, sorted file searching, associative arrays (arrays with arbitrary indexes and values), fork/wait/kill/exec Unix multitasking operations, extensions for interactive use as a shell and awk-like command- line operation, automatic loading of tcl source based on the invocation of tcl under an alias name (with complete Tcl access to command line arguments), "load on first call" demand-loading of Tcl procedures from files and Tcl source libraries, a trace capability, and more. (Planned future extensions are described later in this document.) MANY UNIX SYSTEMS ARE SUPPORTED =============================== This release of Tcl should compile and run under most Unix System V 3.2.0 and 3.2.2 systems, Xenix, HP-UX and BSD 4.3 systems. It should be close on a lot of others. Care has been taken to ensure that Tcl runs properly on the Intel 80286. Tcl has been tested on: SCO Unix 3.2.2 SCO Xenix System V Microsoft Xenix/286 Rev 3.5 Zap 14 Intel/Bell Technologies Unix System V/3.2.0 BSD 4.3 on a Vax C PROGRAMMERS CAN USE THIS PACKAGE TO BUILD TCL INTO THEIR APPLICATIONS, TOO ============================================================================ As an embeddable interpreter, Tcl offers a powerful, plug-in-and-go programming language that saves the programmer who needs to provide programmability in an application from having to design and implement his or her own. Tcl provides a better and more complete language than most programmers have the time or inclination to write and could reduce the all-too-common proliferation of similar-but-incompatible embedded programming languages. In addition to the Tcl programming environment for Unix, this release also provides C programmers with everything they need to embed the Tcl programming language into an existing application or to build a new application and include Tcl within it. C programmers (and people programming in languages from which they can make C-compatible calls for that matter) can link against the tcl.a library, which this package should produce when you get it built successfully, to include all of the baseline capabilities, plus any of our extensions that they like, plus any application-specific extensions they add themselves to produce a package with a significant runtime programmability. We have found that including Tcl into large programs provides a good way to decouple the bulk of the application from the user interface, allows sophisticated users to write programs to control the application, shortens turnaround time during development, makes many debugging tasks easier, and allows you to code tricky data processing tasks in just a few lines of Tcl. YOU CAN REUSE IT, GIVE IT AWAY OR SELL IT WITHOUT ROYALTIES =========================================================== The code contained within this package is freely redistributable without license or royalties of any kind provided the very unrestrictive copyright terms (we're not responsible and Berkeley is not responsible for problems; don't delete UCB's or our copyrights or otherwise pretend that you wrote it) in the source code are met. ON-LINE HELP ============ There is a help system included with Tcl. It contains at least a bit of documentation on every, or almost every, command. You can invoke it interactively from within Tcl by typing "help". The help files are extracted from the manual pages. See the "BUILD THE HELP FILES" section later in this file for details. MANUAL PAGES ============ Man pages in nroff/troff format are provided for all of Tcl and the extensions. These are in the "man" subdirectories of the top-level baseline, extend, and tclsh directories. The Tcl manual is file Tcl.man in the baseline/src directory. Other files in that directory document the subroutines that support interfacing to Tcl from C. Files in the extend/man directory document the Tcl-callable extensions. Files in the tclsh/man directory document how packages (Tcl source libraries) work, the insides of Tcl startup, and the procedures of Tcl source library tcl.tlib. As mentioned previously, a Usenix paper presented by Dr. Ousterhout is provided as a Postscript file. It contains an overview of Tcl, the rationale for creating a new embeddable programming language rather than using an existing one, speculations on future uses and so forth. This file is usenix.ps in the baseline/man directory. ... THE TCL SHELL ============= The Tcl shell is an application built upon Tcl and the Tcl extensions. It is contained within subdirectories of the tclsh directory and consists of a simple main.c and associated files. (You can use this as a template for your own application's Tcl startup, if you add Tcl to one of your applications. In main.c, the various extensions are included by calling their associated Tcl_Initxxx routines. You call the ones you want, then link against the tcl.a library, and the linker should then be able to link them into your application.) The Tcl shell is not yet enough of a shell for you to abandon csh, ksh or whatever your favorite shell is. It is, however, a totally usable environment for writing Tcl programs. From the Tcl shell, you can type in Tcl procedures, run any Tcl command or procedure with arguments, display any or all procedures, trace Tcl with various trace options, and, yes, kick off Unix programs, including other shells, optionally returning their output as a string to Tcl, or using pipes to feed their input or receive their output through our Tcl stdio package. With a small amount of care, you can create your Tcl source files so they will run standalone (i.e. run when specified from the Tcl command line or a Tcl alias) or interactively (loaded into an interactive Tcl environment by the "source" command). PACKAGES ======== Packages are a Tcl source code management tool included in this release. Packages allow you to group code into logical bundles and create single libraries that contain multiple packages. The package code provides a low-overhead means of automatically demand-loading a package on the first attempt to execute one of the procedures it defines. Packages are documented in more detail in tclsh/man/packages.man. ... INCOMPATIBILITIES ================= This version of Tcl was derived from, and is mostly upwardly compatible with, Berkeley Tcl 3.3. The following known backward incompatibilities exist from our version: Exec command: We strip final trailing newline returned, if present. "<<" redirects from a string rather than "<" "<" now redirects from a file rather than a string Variable parsing: Parsing used to stop at anything other than an alphanumeric character of underscore for variables referenced by the $ shorthand. Now left- parens are spanned too, to handle array references. This could cause problems in rare cases for old Tcl programs. Rename command: We treat "rename" of a nonexistent command or procedure as an error. Error messages: The text of error messages have changed in a lot of cases, possibly breaking "catch" routines. Note that the errorCode variable in this version of Tcl really helps when writing "catch" routines. Abbreviations: Berkeley Tcl optionally permitted commands to be abbreviated. We removed this capability because we feel it is dangerous, that abbreviations that you know work will suddenly start failing as new procedures are added to the environment. We hope to add a command completion capability, to be used when Tcl is run interactively, in the not too distant future. CAVEATS ======= Although Tcl compiles and executes the tests properly on all the aforementioned systems, it has not had much use under Xenix System V, HP-UX or BSD 4.3. Do not create any set-user-id versions of Tcl yet. There are holes in the startup sequence involving shell variables and default files that need to be plugged first. ERRATA ====== The recursion limit should be smaller on the 286 because I get a core dump in stkgro prior to actually hitting the limit... man files are not currently auto-installed to /usr/man by a "make install" -- we haven't worked out the nuances of man pages for all the different unix systems expand needs a test If a directory occurs twice in your Tcl search path or if "." is one of the search path entries and the current directory is also one of the search path entries, you will get bogus warnings about Tcl having seen duplicate function definitions once Tcl has to locate all the packages along the path. HELP US ======= Please send us your input, bug lists, bug fixes and ideas. Please send your complaints and details of your experiences, positive or otherwise. If you do profiling of any significant applications you write in Tcl, we'd like to know the results -- email us the output of prof. EPILOGUE ======== Please direct electronic mail correspondence regarding Tcl to tcl-project@hackercorp.com, or uunet!sugar!tcl-project, or write: Hackercorp Attention: TCL Project 3918 Panorama Missouri City, TX 77459 Or drop a note on our BBS at (713) 438-5018 -- -- Have computer, will travel. Same old story, same old song; Come to Texas for the it goes all right till it goes all wrong. chili that burns twice!! -- Will Jennings
truesdel@nas.nasa.gov (David A. Truesdell) (04/03/91)
karl@ficc.ferranti.com (Karl Lehenbauer) writes: >In article <1326@unet.UUCP> rme@olympia.unet.com (Richard Emberson) writes: >>I'm looking for the lastest version of TcL (Tool Command Language) >>written by J. Ousterhout at ucb. >>I've got version 3.3 circa 3/90. >>Pointers to later releases or applications written using Tcl would >>be appreciated. >Tcl 4.0, a Unix/Xenix Tcl programming environment that includes a bunch >of extensions to 3.3 to provide enhanced string and list operations, >stdio-style I/O, file scanning, associative arrays and so forth, is >available from >media-lab.media.mit.edu (18.85.0.2) ~ftp/tcl-4.0-pl1.tar.Z >We are about to release a new version, tentatively titled 4.1, but we >will probably start calling it TclU (Tcl for Unix) or something similar. Ousterhout's latest version of tcl, version 5.0, is available along with Tk 1.0, his Tcl based toolkit for X. It is available by anonymous ftp from sprite.berkeley.edu, in the file tk.tar.Z. The "Hackercorp" version of Tcl seems to have some nice extensions, but it is not completely compatable with the Ousterhout Tcl, so I have not used it to any great extent. Perhaps they (The "Hackercorp" folks) could coordinate their work with that of Ousterhout, to produce one enhanced version of Tcl. -- T.T.F.N., dave truesdell (truesdel@nas.nasa.gov) Ita erat quando hic adventi.
peter@ficc.ferranti.com (Peter da Silva) (04/04/91)
In article <truesdel.670643220@sun418> truesdel@nas.nasa.gov (David A. Truesdell) writes: > The "Hackercorp" version of Tcl seems to have some nice extensions, but it > is not completely compatable with the Ousterhout Tcl, so I have not used it > to any great extent. Perhaps they (The "Hackercorp" folks) could coordinate > their work with that of Ousterhout, to produce one enhanced version of Tcl. We would love to do so, and have in the past sent Ousterhout copies of our fixes and extensions. He has, to his credit, picked some of them up... but he doesn't appear interested in any closer co-operation than that. He is mainly using TCL as an extension language for X. We mainly use it as a scripting language and an extension language for traditional UNIX style applications, so the differences are understandable. What does 5.0 have over 3.0, other than the change in the name of the X toolkit? -- Peter da Silva. `-_-' peter@ferranti.com +1 713 274 5180. 'U` "Have you hugged your wolf today?"