home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2340 < prev    next >
Encoding:
Internet Message Format  |  1990-12-28  |  24.6 KB

  1. From: karl@sugar.hackercorp.com (Karl Lehenbauer)
  2. Newsgroups: alt.sources
  3. Subject: Tcl - a tool command language for Unix   README
  4. Message-ID: <7300@sugar.hackercorp.com>
  5. Date: 18 Dec 90 08:48:08 GMT
  6.  
  7. WELCOME TO TCL
  8. ==============
  9.  
  10. Welcome to Tcl, a string processing language and programming environment
  11. for the Unix operating system.
  12.  
  13. This is release 4.0, a beta release made to the Usenet alt.sources newsgroup
  14. beginning on Sunday, December 16th, 1990.
  15.  
  16.  
  17. WHAT TCL IS
  18. ===========
  19.  
  20. Tcl stands for "Tool command language", and was invented by Dr. John
  21. Ousterhout and his graduate students at the University of California
  22. at Berkeley.  (For a rationale for why Tcl was invented, a paper was
  23. presented at the Winter '90 Usenix and is available in the proceedings 
  24. of that conference.  It is also included in machine-readable form in
  25. this release, as the postscript file tcl/baseline/man/usenix.ps.
  26. For those without postscript printing capability, a text file called
  27. tcl/baseline/man/usenix.text is provided.)
  28.  
  29. Tcl is pronounced "tickle," although a lot of people (including us most of
  30. the time) call it T-C-L.
  31.  
  32.  
  33. WHAT THIS TCL IS
  34. ================
  35.  
  36. This release of Tcl builds on Ousterhout's embeddable interpreter to provide
  37. Unix with a powerful string and file processing language that is easy
  38. to learn, understand and write understandable programs in.  
  39.  
  40. Tcl achieves its power without sacrificing elegance and simplicity by
  41. keeping the syntax simple and implementing most operations as Tcl 
  42. subroutines.
  43.  
  44. In our experience, large scripts written in Tcl tend to run around ten to 
  45. twenty times faster than large Bourne shell scripts calling the usual
  46. mix and density of sed, awk, grep, expr and so forth.
  47.  
  48. The Unix extensions were invented and implemented by Karl Lehenbauer
  49. (karl@hackercorp.com), Mark Diekhans (uunet.uu.net!cruzio!osprey!markd)
  50. and Peter da Silva (peter@hackercorp.com) with help from Jordan Henderson
  51. (jordan@hackercorp.com).  They consist of extensions to Tcl to support
  52. extended string and list operations, stdio-style I/O to files and pipelines,
  53. scanning files for regular expressions and executing Tcl code when they're
  54. found, sorting, sorted file searching, associative arrays (arrays with
  55. arbitrary indexes and values), fork/wait/kill/exec Unix multitasking
  56. operations, extensions for interactive use as a shell and awk-like command-
  57. line operation, automatic loading of tcl source based on the invocation of
  58. tcl under an alias name (with complete Tcl access to command line arguments),
  59. "load on first call" demand-loading of Tcl procedures from files and Tcl
  60. source libraries, a trace capability, and more.  (Planned future extensions
  61. are described later in this document.)
  62.  
  63.  
  64. MANY UNIX SYSTEMS ARE SUPPORTED
  65. ===============================
  66.  
  67. This release of Tcl should compile and run under most Unix System V 3.2.0
  68. and 3.2.2 systems, Xenix, HP-UX and BSD 4.3 systems.  It should be close
  69. on a lot of others.  Care has been taken to ensure that Tcl runs properly
  70. on the Intel 80286.  
  71.  
  72. Tcl has been tested on:
  73.  
  74.     SCO Unix 3.2.2
  75.     SCO Xenix System V
  76.     Microsoft Xenix/286 Rev 3.5 Zap 14
  77.     Intel/Bell Technologies Unix System V/3.2.0
  78.     BSD 4.3 on a Vax
  79.  
  80.  
  81. C PROGRAMMERS CAN USE THIS PACKAGE TO BUILD TCL INTO THEIR APPLICATIONS, TOO
  82. ============================================================================
  83.  
  84. As an embeddable interpreter, Tcl offers a powerful, plug-in-and-go
  85. programming language that saves the programmer who needs to provide
  86. programmability in an application from having to design and implement his
  87. or her own.  Tcl provides a better and more complete language than most
  88. programmers have the time or inclination to write and could reduce the 
  89. all-too-common proliferation of similar-but-incompatible embedded 
  90. programming languages.
  91.  
  92. In addition to the Tcl programming environment for Unix, this release
  93. also provides C programmers with everything they need to embed the
  94. Tcl programming language into an existing application or to build a new
  95. application and include Tcl within it.  C programmers (and people programming
  96. in languages from which they can make C-compatible calls for that matter)
  97. can link against the tcl.a library, which this package should produce when
  98. you get it built successfully, to include all of the baseline capabilities,
  99. plus any of our extensions that they like, plus any application-specific
  100. extensions they add themselves to produce a package with a significant
  101. runtime programmability.
  102.  
  103. We have found that including Tcl into large programs provides a good
  104. way to decouple the bulk of the application from the user interface, 
  105. allows sophisticated users to write programs to control the application,
  106. shortens turnaround time during development, makes many debugging tasks
  107. easier, and allows you to code tricky data processing tasks in just a
  108. few lines of Tcl.
  109.  
  110.  
  111. YOU CAN REUSE IT, GIVE IT AWAY OR SELL IT WITHOUT ROYALTIES
  112. ===========================================================
  113.  
  114. The code contained within this package is freely redistributable without
  115. license or royalties of any kind provided the very unrestrictive copyright
  116. terms (we're not responsible and Berkeley is not responsible for problems;
  117. don't delete UCB's or our copyrights or otherwise pretend that you
  118. wrote it) in the source code are met.
  119.  
  120.  
  121. ON-LINE HELP
  122. ============
  123.  
  124. There is a help system included with Tcl.  It contains at least a bit of
  125. documentation on every, or almost every, command.  You can invoke it 
  126. interactively from within Tcl by typing "help".  The help files are
  127. extracted from the manual pages.  See the "BUILD THE HELP FILES"
  128. section later in this file for details.
  129.  
  130.  
  131. MANUAL PAGES
  132. ============
  133.  
  134. Man pages in nroff/troff format are provided for all of Tcl and the
  135. extensions.  These are in the "man" subdirectories of the top-level
  136. baseline, extend, and tclsh directories.  The Tcl manual is file
  137. Tcl.man in the baseline/src directory.  Other files in that directory
  138. document the subroutines that support interfacing to Tcl from C.
  139. Files in the extend/man directory document the Tcl-callable extensions.
  140. Files in the tclsh/man directory document how packages (Tcl source
  141. libraries) work, the insides of Tcl startup, and the procedures of
  142. Tcl source library tcl.tlib.
  143.  
  144. A couple of files were too big to ship without being split up.
  145. These are usenix.ps and Tcl.man in the baseline/man directory.
  146. Tcl.man is in two parts, Tcl.man1 and Tcl.man2.  Usenix.ps is
  147. in three, in the same manner.  A Makefile is provided in the
  148. baseline/man directory such that a "make" in that directory will
  149. cat the files together to create the full documents.  Note that
  150. a "make clean" or "make realclean" at the top level will delete
  151. Tcl.man and usenix.ps, not their component files.
  152.  
  153. As mentioned previously, a Usenix paper presented by Dr. Ousterhout is
  154. provided as a Postscript file.  It contains an overview of Tcl, the
  155. rationale for creating a new embeddable programming language rather
  156. than using an existing one, speculations on future uses and so forth.
  157. This file is usenix.ps in the baseline/man directory.
  158.  
  159.  
  160.  
  161. BUILDING TCL
  162. ============
  163.  
  164. This release of Tcl is not shipped as the usual shar archive.  There are
  165. a couple of files that are too big for the version of cshar we have,
  166. and the automatic splitting of the files required manual rejoining
  167. of them, plus cshar complained a lot about lines being too long and
  168. trailing whitespace.  Consequently this release is shipped as a
  169. 12-part uuencoded, compressed cpio archive.
  170.  
  171. To unpack the Tcl package, collect all twelve parts.  Strip the headers
  172. and the trailers off each part, then cat them together and uudecode
  173. the result.  This should produce the file tcl40.cpio.Z.  Run "compress -d"
  174. on this to produce tcl40.cpio.  Next, cd to the directory you want to
  175. unpack tcl into, and unpack the archive with something like
  176.     cpio -icdvmua <tcl40.cpio
  177.  
  178. The "c" specifies that character headers were used, the "d" that 
  179. subdirectories are to be created as needed, the "v" is to be verbose,
  180. the "m" is to retain the date of last modification, the "u" is to
  181. unconditionally restore and the "a" resets the time of last access.
  182.  
  183.     Next, type:
  184.     
  185.     Configure
  186.  
  187. The Configuration script asks various questions in order to determine
  188. what kind of Unix you have, where you want files installed, and so
  189. forth.  Where possible, defaults are suggested; many of the suggested
  190. defaults just leave things wherever they were unpacked to.  On subsequent
  191. runs of Configure without an intervening "make realclean" the answers you
  192. gave last time are supplied as defaults.
  193.  
  194. Note that after you run Configure to change configurations, you need
  195. to do a "make clean" and a "make" to build up a new version of Tcl
  196. with your new configuration selections.
  197.  
  198. The questions are detailed below:
  199.  
  200.     Enter Unix (sysv3.2.0, sysv3.2.2, bsd, hpux, xenix286 or xenix386)
  201.  
  202. Give one of the answers from the list.  If you don't have one of these
  203. you will probably have to fiddle with the source to get it to work.
  204. Context diffs for popular Unix variants and other systems where changes
  205. are not too substantial are solicited.
  206.  
  207.     Directory to install Tcl binary into? [/usr/local/bin]:
  208.  
  209. "make install" will cause Tcl to be installed in the specified directory.
  210. The directory must already exist.
  211.  
  212.     Directory tcl.a library goes into? []:
  213.  
  214. The directory that the tcl.a C library, the library you would link C
  215. applications with to get Tcl included, goes wherever you tell it to
  216. from here.
  217.  
  218.     Directory .tcl files go into? []:
  219.  
  220. The directory you want the .tcl files and .tlib libraries installed into.
  221. Usually something like /usr/local/lib/tcl.  The directory must already
  222. exist before doing an install.
  223.  
  224.     Tcl default file for configuration information [/etc/default/tcl]:
  225.  
  226. If the TCLDEFAULT environment variable isn't set, Tcl reads the Tcl source
  227. path and path of the Tcl initialization file from the Tcl default
  228. file.  This capability allows you to create and distribute binary copies
  229. of Tcl without hardcoding any filepaths, other than the one to the
  230. default file.  If the TCLDEFAULT environment variable is set, it can contain
  231. a filename or actual Tcl source code -- examine tclsh/man/startup.man
  232. for details.
  233.  
  234. We chose /etc/default/tcl as the suggested name of the default file
  235. for Tcl, because that's what the /etc/default directory is all about.
  236. Unfortunately you will likely need to have superuser privileges to write
  237. to this directory, or get the superuser to create the file for you.
  238. If you cannot do this, specify a path to a directory where you do have
  239. permissions to create the default file.
  240.  
  241. If you had to get the default file created for you, but the superuser
  242. trusts you enough to let you modify it, get them to chown the
  243. /etc/default/tcl file to you so you can change it without bugging the
  244. superuser.)
  245.  
  246. So that you can try out Tcl without installing it, Tcl will look
  247. in the current directory for a file named TclDefaults before checking
  248. the normal default file.  This is also convenient so the Tcl-based
  249. portions of installation can run from a known base.  The Configure script
  250. creates the TclDefaults file in the directory where you unpacked Tcl.  After
  251. you've made up Tcl, before you install, if you run it from this directory
  252. it should find the TclDefaults file and start up from the values it
  253. reads in it.  "make install" tries to create the actual defaults file
  254. if it does not exist.
  255.  
  256. Note that you should use an absolute path for this file and any other
  257. paths that Configure prompts for, or its likely the Tcl you create
  258. will only run from one directory, if that.
  259.  
  260.  
  261.     Tcl init file [TclInit.tcl]:
  262.  
  263. If you want Tcl to load a different initialization file than the standard
  264. one, specify its name here.
  265.  
  266.     Do you want history included?
  267.  
  268. History provides a facility for editing and redoing previously entered
  269. command lines.  To include it adds about 6K bytes to your tcl program.
  270. History is an area that needs improvement, but it is usable as is.
  271.  
  272.     Do you want symbolic debugging included?
  273.  
  274. If you have a C symbolic debugging capability on your system, if you
  275. answer "y" to this question Configure will try to create Tcl with
  276. symbolic debugging included.
  277.  
  278.     Enter your C compiler and linker debug flags
  279.  
  280. If you selected symbolic debugging you are asked this question.  The
  281. default is "-g" which seems to work on a lot of systems.
  282.  
  283.     Do you want memory debugging included?
  284.  
  285. Memory debugging enables a special memory allocator that helps to find
  286. memory region overflows.  It is a small performance impact and should
  287. be used when developing new C language commands for Tcl, when using
  288. Tcl to debug a C application and/or when you select Tcl might have a
  289. memory problem.
  290.  
  291.     Do you want memory validation enabled?
  292.  
  293. If you selected memory debugging you are asked this question.  Memory
  294. validation goes a step beyond memory debugging and validates all memory
  295. regions on every allocation and deallocation.  It causes a severe
  296. performance impact and should only be used if memory corruption problems
  297. are suspected.  It may be enabled by default or turned on with the memory
  298. command, so you should probably only select it here when memory problems
  299. are causing Tcl to coredump before it comes up, or you suspect corruption
  300. is occurring during the startup sequence.
  301.  
  302.     Do you want optimization enabled?
  303.  
  304. If you want Tcl compiled with C optimization, answer "y".  If Tcl is
  305. misbehaving in weird ways, or say it won't pass the tests, you might
  306. want to try rebuilding it with optimization off before digging too far,
  307. as some C optimizers generate incorrect code in certain circumstances.
  308.  
  309.     Enter your C compiler optimization flags [-O] 
  310.  
  311. By default, "-O".  If you have a different choice, enter it here.
  312. Xenix '286 users may want to use this opportunity to enter a compiler
  313. flag to inhibit stack probes on subroutine calls.
  314.  
  315.     Do you want profiling enabled [n]
  316.  
  317. If you select profiling, tcl will be compiled with the "-p" option, which
  318. should generate a file named mon.out when tcl exits, where you can then
  319. run prof to find out the execution profile of Tcl.  Note that some Unixes'
  320. profilers don't work, sometimes produce erroneous results, or have memory
  321. model restrictions that make them unusable.
  322.  
  323.     Enter your C compiler profiling flags [-p]
  324.  
  325. If you selected profiling, you are offered the opportunity to enter
  326. alternate profiling flags.
  327.  
  328.  
  329. The first time you build Tcl, it is probably a good idea to steer a
  330. conservative course -- select symbolic debugging (if your system supports
  331. it), memory debugging and don't enable optimization.  After you have verified
  332. that your build of Tcl passes all of the included tests and any other tests
  333. and checkout that you decide to do on your own, you can then rebuild it with
  334. optimization enabled and so forth (don't forget to rerun the tests after doing
  335. so.)
  336.  
  337. Then do a...
  338.  
  339.     make
  340.  
  341. If all is well after the make, there should be an executable called "tcl" 
  342. in the top level directory and if you execute it from a command line with 
  343. no parameters, it should come up, greet you with a banner, and produce
  344. a "tcl>" prompt.
  345.  
  346.     make bldhelp
  347.  
  348. ...will extract the on-line help files from the included man pages.
  349.  
  350.     make install
  351.  
  352. ...will install the files in the selected target directories.
  353.  
  354.     make clean
  355.  
  356. ...will delete tcl, the tcl.a C library and all of the object files within
  357. the subtree in which Tcl was extracted and built.
  358.  
  359.     make realclean
  360.  
  361. ...will delete everything "make clean" deletes, plus all of the 
  362. other files that were built by Configure to begin with, such as the
  363. extracted makefiles, extracted Tcl source code libraries and so forth.
  364.  
  365. "Make realclean" will usually render the Tcl subtree clean enough to
  366. where you can feed all of the remaining files to one of the archiving
  367. programs to create a release.  Look out for the occasional stray
  368. mon.out and so forth.
  369.  
  370.  
  371. INSTALLATION
  372. ============
  373.  
  374. To install the Tcl executable, source code and man pages into the directories
  375. you specified when you ran the Configure script, do a "make install".  You
  376. should probably look over the top-level Makefile, which is created by
  377. Configure, to make sure everything is really going to go where you want it.
  378.  
  379.  
  380. RUN TESTS TO VERIFY THAT TCL WORKS PROPERLY ON YOUR MACHINE
  381. ===========================================================
  382.  
  383. This release of Tcl comes with quite a few test files that can
  384. be used to verify its operation.  There are tests for the baseline
  385. code and for the extensions.
  386.  
  387. You can run the baseline tests by starting up tcl and cd'ing to the
  388. baseline/tests and doing a "source all".  You can run the tests of
  389. the extensions by cd'ing to extend/tests (again from within Tcl) and
  390. doing a "source all".  Tcl can pass all the tests on our 386-based
  391. Unix System V/3.2.0 and 3.2.2 systems, our clunky Intel '286 Xenix
  392. systems, our HP-UX systems and our '386 Xenix systems.  When you get
  393. it to pass all the tests on your machine, you should have at least some
  394. confidence that a lot of Tcl is working OK.
  395.  
  396. If any tests fail, you may have to run them by hand (the tests are files
  397. matching the pattern "*.test" in the respecting "tests" directories.
  398. Do an "echo $errorInfo" after a run-by-hand test fails to determine
  399. exactly which test step failed and to provide you with a start at
  400. determining what's wrong.
  401.  
  402. If baseline tests fail and you suspect the Tcl extensions may be 
  403. responsible, you can test a minimal Tcl built upon the baseline
  404. system only by cd'ing to baseline/test and doing a "make".  This creates 
  405. a baseline-only version of Tcl named tclTest that should be capable
  406. of running the baseline tests.
  407.  
  408. At the top level of the command interpreter, Tcl normally tries to
  409. execute commands it couldn't find within Tcl as a shell command.
  410. The "source all" command of the tests turn this capability off, and
  411. currently you have to restart Tcl to get them back on again.  Note
  412. that if you run the tests by hand you need to turn off the execute-
  413. missing-commands-as-a-shell-command capability.  Right now that's
  414. easiest by doing a "source all", then hitting the kill key after it
  415. starts, then doing a source on the test you want to run.
  416.  
  417.  
  418. BUILD THE HELP FILES
  419. ====================
  420.  
  421. The on-line help files are extracted from the Tcl manual pages included in
  422. this package.  Once you have built and tested Tcl, you need to use it to
  423. extract the manual pages.  From your top-level Tcl directory, do a
  424. "make bldhelp".  Make will call Tcl to the extraction.
  425.  
  426. Note that you need to have the Unix "nroff" and "col" programs present
  427. on your machine for this to work.
  428.  
  429.  
  430. TCL DIRECTORY HIERARCHY
  431. =======================
  432.  
  433. Here is an overview of the directory hierarchy:
  434.  
  435.                                  tcl
  436.  
  437.     baseline             extend               tclsh             ossupport
  438.  
  439. src  man  tests      src  man  tests      src  man  tclsrc         src
  440.  
  441.                                                    tcl.libsrc
  442.  
  443.  
  444.  
  445. The subdirectories of the baseline directory contain what we call "baseline"
  446. Tcl.  This is the minimal portable Tcl interpreter and would be used as a
  447. porting base for people wanting to use Tcl as an embedded programming language
  448. within one of their C applications.
  449.  
  450. The "extend" subdirectories contain our extensions to Tcl for Unix.
  451. Many of the Tcl C-extensions in tclu/src could be useful when embedding
  452. Tcl as well, depending upon the application.
  453.  
  454. The Tcl source code is in the tclsh/tclsrc directory.
  455.  
  456. The "ossupport" subdirectory contains implementation of Unix routines
  457. used by other code in Tcl that may not be supported in all Unix environments.
  458.  
  459.  
  460. THE TCL SHELL
  461. =============
  462.  
  463. The Tcl shell is an application built upon Tcl and the Tcl extensions.
  464. It is contained within subdirectories of the tclsh directory and consists
  465. of a simple main.c and associated files.  (You can use this as a template
  466. for your own application's Tcl startup, if you add Tcl to one of your
  467. applications.  In main.c, the various extensions are included by calling 
  468. their associated Tcl_Initxxx routines.  You call the ones you want, then
  469. link against the tcl.a library, and the linker should then be able to link
  470. them into your application.)
  471.  
  472. The Tcl shell is not yet enough of a shell for you to abandon csh, ksh
  473. or whatever your favorite shell is.  It is, however, a totally usable
  474. environment for writing Tcl programs.  From the Tcl shell, you can type
  475. in Tcl procedures, run any Tcl command or procedure with arguments,
  476. display any or all procedures, trace Tcl with various trace options, and,
  477. yes, kick off Unix programs, including other shells, optionally returning
  478. their output as a string to Tcl, or using pipes to feed their input or
  479. receive their output through our Tcl stdio package.
  480.  
  481. With a small amount of care, you can create your Tcl source files so
  482. they will run standalone (i.e. run when specified from the Tcl command
  483. line or a Tcl alias) or interactively (loaded into an interactive Tcl
  484. environment by the "source" command).
  485.  
  486.  
  487. PACKAGES
  488. ========
  489.  
  490. Packages are a Tcl source code management tool included in this release.
  491. Packages allow you to group code into logical bundles and create single
  492. libraries that contain multiple packages.  The package code provides a
  493. low-overhead means of automatically demand-loading a package on the first
  494. attempt to execute one of the procedures it defines.  Packages are
  495. documented in more detail in tclsh/man/packages.man.
  496.  
  497.  
  498. THIS RELEASE AND OUR NEAR-TERM PLANS FOR TCL
  499. ============================================
  500.  
  501. We do not think there are many bugs in this release.  We have been using
  502. this code for work and play at our jobs and at home for several months now,
  503. although there has been a flurry of work on Tcl the last few weeks, getting
  504. this release together.  The tests have helped a lot.
  505.  
  506. The install procedures are rather primitive in comparison to a Configure
  507. that would have been generated by Larry Wall's metaconfig program.  Anyone,
  508. feel free to help out on this.
  509.  
  510. Anyway, prior to a formal release to a mainstream Usenet sources group,
  511. we thought we'd kick it out in alt.sources and let it get a bit more
  512. circulation.  Please send us all bug reports and, best of all, bug fixes.
  513.  
  514. Within a few weeks after everything settles down, i.e. no new bug reports,
  515. we'll post a more formal release.
  516.  
  517.  
  518. INCOMPATIBILITIES
  519. =================
  520.  
  521. This version of Tcl was derived from, and is mostly upwardly
  522. compatible with, Berkeley Tcl 3.3.  The following
  523. known backward incompatibilities exist from our version:
  524.  
  525. Exec command:
  526.     We strip final trailing newline returned, if present.
  527.     "<<" redirects from a string rather than "<"
  528.     "<" now redirects from a file rather than a string
  529.  
  530. Variable parsing:
  531.     Parsing used to stop at anything other than an alphanumeric character
  532.     of underscore for variables referenced by the $ shorthand.  Now left-
  533.     parens are spanned too, to handle array references.  This could
  534.     cause problems in rare cases for old Tcl programs.
  535.  
  536. Rename command:
  537.     We treat "rename" of a nonexistent command or procedure as an error.
  538.  
  539. Error messages:
  540.     The text of error messages have changed in a lot of cases, possibly
  541.     breaking "catch" routines.  Note that the errorCode variable in this
  542.     version of Tcl really helps when writing "catch" routines.
  543.  
  544. Abbreviations:
  545.     Berkeley Tcl optionally permitted commands to be abbreviated.  We
  546.     removed this capability because we feel it is dangerous, that
  547.     abbreviations that you know work will suddenly start failing 
  548.     as new procedures are added to the environment.  We hope to add
  549.     a command completion capability, to be used when Tcl is run
  550.     interactively, in the not too distant future.
  551.  
  552.  
  553. CAVEATS
  554. =======
  555.  
  556. Although Tcl compiles and executes the tests properly on all the 
  557. aforementioned systems, it has not had much use under Xenix System
  558. V, HP-UX or BSD 4.3.
  559.  
  560. Do not create any set-user-id versions of Tcl yet.  There are holes in
  561. the startup sequence involving shell variables and default files that need
  562. to be plugged first.
  563.  
  564.  
  565. ERRATA
  566. ======
  567.  
  568. The recursion limit should be smaller on the 286 because I get a core
  569. dump in stkgro prior to actually hitting the limit...
  570.  
  571. man files are not currently auto-installed to /usr/man by a "make install" --
  572.   we haven't worked out the nuances of man pages for all the different
  573.   unix systems
  574.  
  575. expand needs a test
  576.  
  577. If a directory occurs twice in your Tcl search path or if "." is one of
  578. the search path entries and the current directory is also one of the
  579. search path entries, you will get bogus warnings about Tcl having seen
  580. duplicate function definitions once Tcl has to locate all the packages
  581. along the path.
  582.  
  583.  
  584. HELP US
  585. =======
  586.  
  587. Please send us your input, bug lists, bug fixes and ideas.  Please send
  588. your complaints and details of your experiences, positive or otherwise.
  589. If you do profiling of any significant applications you write in Tcl,
  590. we'd like to know the results -- email us the output of prof.
  591.  
  592.  
  593. EPILOGUE
  594. ========
  595.  
  596. Please direct electronic mail correspondence regarding Tcl to
  597. tcl-project@hackercorp.com, or uunet!sugar!tcl-project, or
  598. write:
  599.  
  600.     Hackercorp
  601.     Attention: TCL Project
  602.     3918 Panorama
  603.     Missouri City, TX  77459
  604.  
  605.  
  606. Or drop a note on our BBS at (713) 438-5018
  607.     
  608.  
  609. ----------------------------------------------------------------
  610.  
  611. @(#) %M% %I% %H%
  612.  
  613. -- 
  614. -- uunet!sugar!karl
  615. -- Usenet access: (713) 438-5018
  616.