Newsgroups: comp.lang.tcl.announce,comp.lang.tcl,comp.lang.perl.tk,comp.answers,news.answers
Path: lvirden
From: lvirden@cas.org (Larry W. Virden)
Subject: comp.lang.tcl Frequently Asked Questions (May 31, 1996) (1/5)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
(FAQ) and their answers. This is the first of five parts.
This part introduces Tcl and Tk and discusses documentation, etc.
Originator: lvirden@cas.org
Keywords: tcl, extended tcl, tk, expect
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
X-Url: http://www.teraform.com/%7Elvirden/tcl-faq/part1.html Archive-name: tcl-faq/part1 Comp-lang-tcl-archive-name: tcl-faq.part01 Version: 7.000 Last-modified: May 31, 1996 For more information concerning Tcl (see "tcl-faq/part2"), (see "tcl-faq/part3"), (see "tcl-faq/part4"), or (see "tcl-faq/part5"). Also (see "tcl-faq/commercial-uses/part1"), (see "tcl-faq/bibliography/part1"), (see "tcl-faq/usage"), (see "tk/part1"), or (see "tcl-faq/windows"). Index of questions: I. Origin of comp.lang.tcl, the FAQ information, and to whom do I contact for more information about the FAQ? II. What is Tcl? Tk? Extended Tcl? Rush? What is Tcl _not_? III. Do these packages run on my machine? A. Unix B. MacOS C. INTEL DOS-like systems D. VMS E. AmigaDOS F. NeXT G. Other IV. Other than C, What languages can talk to tcl/tk? A. Shell B. C++ C. Modula-3 D. Eiffel E. Ada F. Perl G. Prolog H. Other V. What training material is available? A. Books, Training courses, etc. B. Time-related seminars, conferences, sessions. VI. Where do I report problems, bugs, or enhancements about Tcl - or - what is comp.lang.tcl? End of FAQ Index ---------------------------------------------------------------------- ------------------------------ From: FAQ General information Subject: -I- Origin of comp.lang.tcl, the FAQ information, and to whom do I contact for more information about the FAQ? What is comp.lang.tcl? First, let me assure you what it is not. <URL:news:comp.lang.tcl> (and <URL:news:comp.lang.tcl.announce> now) are NOT bulletin boards. They are not innately mailing lists. Some users may experience the messages in those manners, but these communities of users are what is known as USENET newsgroups. While Dr. John Ousterhout was the creator of the original, unmoderated <URL:news:comp.lang.tcl>, in the current incarnation, clt (as it is often referenced) has no moderator, no owner, no authority to whom one can appeal when one feels slighted, offended, libeled, etc. On the other hand, there are a group of moderators associated with <URL:news:comp.lang.tcl.announce>, whose job it is to ensure that the postings there remain 'on charter'. The majority of readers of <URL:news:comp.lang.tcl> are access the postings in English, and seem to prefer plain text postings formatted to 78 or less characters per line, as opposed to HTML, Postscript, MIME base64, Macintosh special character sets, etc.. They also prefer to have postings which specify a working email address in the From or Reply-To header (or at least in the body of the msg somewhere). While alternatives to that are certainly possible, you decrease the chance of getting a timely relevant answer by choosing alternatives to these. These rules are not unique to clt, but are the typical USENET netiquette that posters are asked to respect. One question that comes up fairly often concerning <URL:news:comp.lang.tcl> is 'why isn't it split?'. The newsgroup varies in traffic, but I have seen as many as 45 messages a day (counting current cross postings, etc.) Currently, many have come forward with ideas on how a split could be handled, but no concensus has been reached. Also, no moderators have stepped forward to take over moderation of a split group. During January, 1996, <URL:news:comp.lang.tcl.announce>, a moderated group containing announcements of new software, doc, etc. relating to Tcl, was created. So as of right now, asking to split the newsgroup only adds to the existing traffic, without resolving any problems. The information in this set of FAQs comes from several sources. The primary source of information is the group itself - I spend (much too much) time each month culling through what I feel are some of the best answers, gathering up new information on ports, etc. and adding it here. I also gather new application information and add it as best I can. The next most predominant source of information comes from the authors of the various software packages. Finally, a small amount comes from my personal experiences. You can find my general Tcl FAQs at either <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq.part01.gz> <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq.part02.gz>, <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq.part03.gz>, <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq.part04.gz>, <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq.part05.gz>, or <URL:http://www.teraform.com/%7Elvirden/tcl-faq/>. The primary location for the commercial use of Tcl FAQ is <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-commercial-faq.gz> as well as <URL:http://www.cpu.com/cpu/tclcom1.htm>. The author is <URL:mailto:gwl@cpu.com> (Gerald W. Lester). This FAQ contains information either about commercial products which incorporate Tcl as a part of them, firms which teach classes about Tcl and Tk in some manner, and other commercial ventures. Please be sure to contact the maintainer for all relevant material about _your_ product! The next FAQ contains a bibliography of published material related to Tcl, and will be managed by <URL:mailto:glv@utdallas.edu> (Glenn Vanderburg). (See "tcl-faq/bibliography/part1") or ftp it at <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq-bib.gz>. The second FAQ contains a series of Tcl-related questions and answers and is managed by <URL:mailto:joe@morton.rain.com> (Joe Moss). (See "tcl-faq/usage"), <URL:http://route.psg.com/tcl.html>, <URL:http://psg.com/%7Ejoem/tcl/faq.html> or find it at <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq-usage.gz>. The third contains Tk-related questions and answers and is managed by <URL:mailto:tja@cpu.com> (Thomas J. Accardo). You can (see "tcl-faq/tk/part1") or find it at <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq-tk-usage.gz> FAQs are also available for the Windows port of Tcl <URL:http://ourworld.compuserve.com/homepages/efjohnson/tclwin.htm> and perl/Tk <URL:http://w4.lns.cornell.edu/%7Epvhp/ptk/ptkFAQ.html>. The Japanese translation of the five part FAQ can be located at <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/docs/tcl-faq-j5.3.tar.gz>. This file contains Japanese EUC-Kanji codes. Contact <URL:mailto:taguchi@fox.aic.co.jp> (Taguchi Takeshi) for more information. If you have corrections, enhancements, modifications, clarifications, suggestions, ideas, new questions, new answers to questions which have never been asked, or something else that I have not covered above, contact me at <URL:mailto:lvirden@cas.org>. ------------------------------ From: FAQ General information Subject: -II- What is Tcl? Tk? Extended Tcl? o Highlights of Tcl based languages Tcl and Tk originated with Dr. John Ousterhout (OH'-stir-howt) from the University of California, Berkeley, California. A quip about the pronunciation of Dr. O's last name from <URL:news:comp.lang.tcl> pundit <URL:mailto:js@aelfric.bu.edu> Jay Sekora: > `It's pronounced Oh-stir-howt > without a doubt! > Not Oh-stir-hoot; > he's not a brute.' Dr. Ousterhout got the idea for Tcl while on sabbatical leave at DEC's Western Research Laboratory in the fall of 1987. He started actually implementing it when he got back to Berkeley in the spring of 1988; by summer of that year it was in use in some internal applications, but there was no Tk. The first external releases of Tcl were in 1989. Tk implemention began in 1989, and the first release of Tk was in 1991. Tcl (current release version 7.5) stands for ``tool command language'' and is pronounced ``tickle.'' The author's home ftp site for the Tcl source code is <URL:ftp://ftp.sunlabs.com/pub/tcl/>. Tcl is actually two things: a language and a library. First, Tcl is a simple textual language, intended primarily for issuing commands to interactive programs such as text editors, debuggers, illustrators, and shells. It has a simple syntax and is also programmable, so Tcl users can write command procedures to provide more powerful commands than those in the built-in set. Second, Tcl is a library package that can be embedded in application programs. The Tcl library consists of a parser for the Tcl language, routines to implement the Tcl built-in commands, and procedures that allow each application to extend Tcl with additional commands specific to that application. The application program generates Tcl commands and passes them to the Tcl parser for execution. Commands may be generated by reading characters from an input source, or by associating command strings with elements of the application's user interface, such as menu entries, buttons, or keystrokes. When the Tcl library receives commands it parses them into component fields and executes built-in commands directly. For commands implemented by the application, Tcl calls back to the application to execute the commands. In many cases commands will invoke recursive invocations of the Tcl interpreter by passing in additional strings to execute (procedures, looping commands, and conditional commands all work in this way). An application program gains several advantages by using Tcl for its command language. First, Tcl provides a standard syntax: once users know Tcl, they will be able to issue commands easily to any Tcl-based application. Second, Tcl provides programmability. All a Tcl application needs to do is to implement a few application-specific low-level commands. Tcl provides many utility commands plus a general programming interface for building up complex command procedures. By using Tcl, applications need not re-implement these features. Third, extensions to Tcl, such as the Tk toolkit, provide mechanisms for communicating between applications by sending Tcl commands back and forth. The common Tcl language framework makes it easier for applications to communicate with one another. Note that Tcl was designed with the philosophy that one should actually use two or more languages when designing large software systems. One for manipulating complex internal data structures, or where performance is key, and another, such as Tcl, for writing smallish scripts that tie together the other pieces, providing hooks for the user to extend. For the Tcl script writer, ease of learning, ease of programming and ease of gluing are more important than performance or facilities for complex data structures and algorithms. Tcl was designed to make it easy to drop into a lower language when you come across tasks that make more sense at a lower level. In this way, the basic core functionality can remain small and one need only bring along pieces that one particular wants or needs. Tk (current release 4.1) is an extension to Tcl which provides the programmer with an interface to the X11 windowing system. Note that Tk has been successfully compiled under X11 R4, X11 R5, X11 R6, as well as Sun's NeWS/X11 environments. The author's home ftp site for the Tk source is the directory <URL:ftp://ftp.sunlabs.com/pub/tcl/>. Note that many users will encounter Tk via the ``wish'' command. Wish is a simple windowing shell which permits the user to write Tcl applications in a prototyping environment. Read <URL:http://www.sunlabs.com/people/john.ousterhout/> and <URL:http://www.sunlabs.com/research/tcl/> for details. The future of Tcl and Tk is quite bright. This year Dr. Ousterhout announced that he has been employed by Sun Microcomputer, Inc. to do some further development of Tcl / Tk. Some of the short term (within the next 12 months or so) plans that Dr. O has mentioned are: - Ports of Tcl and Tk to both the PC and Mac, so scripts written on one platform will run on any of the others, presenting their UI in the look and feel of the platform on which they run. - A commercial-quality graphical interface designer like Visual Basic or NextStep. - Dynamic loading of C code in Tcl. - Incorporating Nathaniel Borenstein's Safe-Tcl back into the Tcl core, so that there is a safe mechanism for executing untrusted scripts that arrive via the Internet. John has given me permission to add this quote as well: >From: ouster@tcl.eng.sun.com (John Ousterhout) >Newsgroups: comp.lang.tcl >Subject: Re: The future of TcL/Tk's Copyright Terms >Date: 31 Aug 1994 20:08:19 GMT >Organization: Sun Microsystems, Inc. >Message-ID: <342nvj$6e9@engnews2.Eng.Sun.COM> > I discussed the status of the Tcl and Tk libraries with people at Sun > as part of my pre-hire negotiations, and we're in agreement that they > will remain free and unrestricted just as they have always been. Future > enhancements made to Tcl and Tk by my group at Sun, including the ports > to Macs and PCs, will be made freely available to anyone to use for > any purpose. My view, and that of the people I report to at Sun, is > that it wouldn't work for Sun to try to take Tcl and Tk proprietary > anyway: someone (probably me, in a new job) would just pick up the > last free release and start an independent development path. This > would be a terrible thing for everyone since it would result in > incompatible versions. > Of course, Sun does need to make money from the work of my team or else > they won't be able to continue to support us. Our current plan is to > charge for development tools and interesting extensions and applications. > Balancing the public and the profitable will be an ongoing challenge for > us, but it is very important both to me and to Sun to keep the support > of the existing Tcl community. I imagine this discussion will repeat > from time to time over the next few years, but I think we can make things > work out well for everyone. See <URL:http://www.utdallas.edu/acc/glv/Tcl/usenix95-bof.html> for more details. John also has asked me to mention the following: > there are now pages containing release notes. The best thing is just to > refer people to my home page, which is: > <URL:http://www.sunlabs.com/people/john.ousterhout/> > <URL:http://www.sunlabs.com/research/tcl/> > <URL:http://www.sunlabs.com/research/%7Eouster/> > You might put a notice about this in the FAQ to help people who see > the FAQ after we reorganize. Extended Tcl (tclX) (Version 7.5a) - This is an extended set of commands for Tcl developed by Karl Lehenbauer and Mark Diekhans. The authors' home ftp site for Extended Tcl is <URL:ftp://ftp.neosoft.com/pub/tcl/distrib/>. Extended Tcl is oriented towards system programming tasks, with many additional interfaces to the Unix operating system along with other useful utilities. Rush is a Tcl-like extension language announced at the Tcl'94 Workshop. Its syntax and semantics are very similar to Tcl's, but it additionally offers an optimizing compiler and a new feature called rules. Its primary advantage over Tcl is performance within a factor of 100 of C, whereas a Tcl compiler is unlikely to do better than a factor of 1000 of C. Rush is not yet publicly available, though ambitious alpha testers are encouraged to inquire. Mail can be sent to either <URL:mailto:asah@cs.berkeley.edu> or <URL:mailto:blojo@cs.berkeley.edu>. For more information, see the paper <URL:ftp://ginsberg.cs.berkeley.edu/pub/asah/papers/rush-tcl94.ps.gz>. o General information about Tcl and Tk by <URL:mailto:glv@utdallas.edu> (Glenn Vanderburg) Tcl (Tool command language) is a freely distributable simple, interpreted language designed to be used as a common extension and customization language for applications. It was designed and implemented by Dr. John Ousterhout in the hope that application designers could spend more of their time on applications and less on scripting languages, and in the hope that users could spend less time learning new scripting languages for each new application. Many useful applications, some of them sold commercially, use Tcl as their scripting language. Tcl is clean and regular, and relatively easy for non-hackers to learn. It is command-oriented, and commands added by applications and users exist on an equal footing with the built-in Tcl commands. Tcl has both simple variables and associative arrays (tables), and all values (including procedure bodies) are represented as strings. Simple customization scripts (such as preference initialization scripts) usually look much like novice users expect them to: a series of simple commands which set options. Tcl is implemented as a C library, which can be embedded in an application. The application can add its own commands to the interpreter (using a clean C interface). It is distributed under a license which allows use for any purpose with no royalties. The Tk toolkit is a Tcl extension (a group of new Tcl commands) which provides a Tcl interface to the X Window System. Tk is one of the easiest ways to build a graphical interface to an application, and due to the interpreted nature of Tcl, Tk-based interfaces tend to be much more customizable and dynamic than those built with one of the C- or C++-based toolkits. Tk implements the Motif look and feel. A number of interesting X applications are implemented entirely in Tk, with no new application-specific commands at all. Tk also provides a mechanism by which one application can send Tcl scripts to other Tk-based applications running on the same display, for easy cooperation between tools. Tcl and Tk are mature, and quite stable, but they are not static: Dr. Ousterhout has moved from Berkeley to Sun Microsystems, where his group is pursuing such projects as a commercial-quality Tk graphical interface designer, an on-the-fly Tcl compiler, and Macintosh and Microsoft Windows ports of Tk. John has stated that the copyright status and licensing provisions of Tcl and Tk will not change. ---- As to what Tcl is not - in the context of the discussion in <URL:news:comp.lang.tcl>, it is not related directly to the Think C Library (TCL) available on the Mac. Confusingly enough, the language concerned with here _is_ available on the Mac, and someone in fact may have used Think C to compile it there. Just one of those universal 'coincidences' that set the stage for Vogon interstellar highway construction crews. Also, Oracle has a product called Tk2Motif which has nothing to do with Tcl or Tk as we are referring to it. ------------------------------ From: FAQ General information Subject: -III- Do these packages run on my machine? A. Unix Tcl runs on Sun 3s and 4s running SunOS 4 and SunOS 5 (Solaris 1.x and 2.x), DECstations running Ultrix, DEC VAXen running Ultrix or BSD, DEC Alphas running OSF/1, 386s running SCO Unix, Xenix, Bell-Tech, Silicon Graphics running IRIX, all sorts of HPs running HP-UX (even HP Snakes running OSF/1 and HP-UX). Intel [34]86 systems running 386bsd, netbsd, freebsd, BSDI, and Linux have Tcl ported. Various CPUs running System V.4 report having ported Tcl. Tcl also appears to be running on Sequent Symmetry running Dynix as well as OSF/1. It also has been reported to run fine on IBM RS6000 under AIX 3.x as well as IBM ES/9000 and AIX/ESA. There were few problems getting it running under Mt. Xinu Mach. It also has been ported to Encore 91's running UMAX V (an 88k based System V with BSD extension Unix). It also runs on Apollos running BSD/SYSV. Tcl runs on a Cray running Unicos. Someone ported Tcl to a Sony NeWS machine running NEWS-OS 4.2. A port to a Convex 3220 and 3880 was also reported. Folks have compiled Tcl/Tk/BLT/itcl to a Mac running the latest A/UX. A port to Tenon MachTen 2.1VM, running on a Mac II which was running MacOS System 7.1, has been reported. The autoconfig did most of the work. That particular user had not ported Tk to this environment yet. Tcl also runs on Supermax Motorola/MIPS based multiprocessors under SMOS. Tk (being based on Tcl) generally requires X11R4 or better as the only additional software requirement. It runs on any of the above Unix systems with that base of software. It also runs on VMS and OSF/1. For information on Tcl/Tk/TclX availability (see "tcl-faq/part4"). B. MacOS (See "tcl-faq/part2") for details of a Macintosh Tcl Mailing list. Ray Johnson <URL:mailto:raymond.johnson@eng.sun.com> has a package called MacTcl. This is a fairly straight port of Tcl to the Macintosh. It is designed to be used as libraries to be embedded into other applications. A basic shell is included. Most Tcl features are present, including many Unix-like features. Additional features include supporting the env variable and sourcing Tcl code from a resource. The current version is available at <URL:ftp://ftp.sunlabs.com/pub/tcl/>. As of Tcl 7.5/Tk 4.1 (now in beta testing), the source code for Tcl and Tk should compile and run on a Macintosh from the original distribution. Also (see "tcl-faq/part4"), the Tcl programs/packages catalog, for the latest port locations and versions. C. INTEL DOS-like systems Numerous ports to DOS are available. One unsupported port to MS-DOS of Tcl and Extended Tcl V6.0a, done by <URL:mailto:Karl@NeoSoft.com> (Karl Lehenbauer), is available on <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/dostcl.zoo> for binaries and <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/dostcl60.zoo> for source. A port of Tcl, V6.1 ?, done by unknown, to MS-DOS Windows V 3.1 ?, is available as binary at <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/w_tclbin.zip> and as source at <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/w_tclsrc.zip>. A port of Tcl V6.2 to MS-DOS was done by <URL:mailto:johnm@cajal.uoregon.edu> (John Martin) and is available via FTP from <URL:ftp://cajal.uoregon.edu/pub/tcl.dos.port/> and <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/tcl62.dos.tar.Z>. An MS-DOS Windows DLL instance of Tcl 6.2 was generated by <URL:mailto:ugo@oliver.sublink.org> (Ugo Cei). Contact him for more details. A Windows DLL was made by <URL:mailto:ekki@prakinf.tu-ilmenau.de> (Ekkehard Beier) by slightly modifying a DOS 6.2 Tcl port. There are still problems with the system/WinExec command. A very rudimentary Debugger User Interface using Borland's Classlib is part of the zip-file, too. The source was used also with BC3.1++/AF on MS W3.1. You can get a copy from <URL:ftp://metallica.prakinf.tu-ilmenau.de/pub/DOS/wintcl.zip> via anonymous ftp. Unfortunately Ekki doesn't have time currently to finish the Windows port and user Interface. A source code only port of Tcl V6.7 to MS-DOS, done by <URL:mailto:PSPRENG@CIPVAX.BIOLAN.UNI-KOELN.DE> (Peter Sprenger), is available from him, somewhere on wuarchive.wustl.edu or as <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/tcl67dos.zip>. A port of Tcl, version 7.3, to MS-DOS, done by <URL:mailto:tpoindex@nyx.net> (Tom Poindexter), is available as <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/mstcl73e.zip> and <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/mstcl73s.zip>. This also includes TclX 7.3a and Tk ported to Desqview/X libraries. <URL:mailto:ken@ms.uky.edu> (Professor Ken K. Kubota) has announced a port of Tcl 7.3 and Tk3.6a to MS DOS Windows using Borland C++ 4.0. Fetch the README files from the ftp sites <URL:ftp://ftp.ms.uky.edu/pub/tk-win/{tkwinbin,tkwin,fedloc}.zip> for more information. Omar Stanford <URL:mailto:omar@fcm.missouri.edu> reported in March of 1994 that he had almost completed his port of Tcl 7.3 to MS-Windows 3.1. He had incorporated extensions for networking (including NetWare), Windows Sockets, and many Windows API functions. He also was working on a facility for dynamically allocating commands to the Tcl environment. If there are other extensions that one would like to see under Windows 3.1, or if you are interested in beta testing, drop him a line. <URL:mailto:haga@sra.co.jp> (Toshihiko Haga) and <URL:mailto:miyata@sra.co.jp> (Shigeaki Miyata) announced twin (tcl/tk for MS-Windows), which does not support exec and send, but supports a -bitmap for Windows .bmp files. A few other modifications or special exceptions are noted. This package's files can be found at <URL:ftp://ftp.sra.co.jp/pub/lang/tcl/{twinesrc,twinebin}.zip> and <URL:ftp://ftp.sra.co.jp/pub/lang/tcl/{twinesrc,twinebin}.doc>. Also, Simon Kenyon <URL:mailto:simon@news.itc.icl.ie> of the Information Technology Centre, Dublin, IRELAND, mentions that they are starting to port Tk to MS-Windows. There is a mailing list (see "tcl-faq/part2") for folk who are interested. A package to take older Tcl source distributions and rename them to MS-DOS conventions, so that it can be compiled, has been written by <URL:mailto:byennaco@east.sun.com> (Bob Yennaco). It is available as <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/tcl2dos.sh.gz> As of Tcl 7.5 (now in alpha testing), the source code for Tcl and Tk should compile and run on Windows machines from the original distribution. Steve Furr <URL:mailto:furr@qnx.com> reports getting Tcl ported to QNX without a lot of trouble. He mentions that QNX users who have the beta X should have gotten a CD-ROM update with Tcl and Tk on the CD. A port of Tcl 7.3, except for glob or command pipelines, to OS/2 2.x using C Set++ has been done by <URL:mailto:wwb@wwa.com> (Bud Bach). Andreas Stuebinger <URL:mailto:stuebing@infosun.fmi.uni-passau.de> also has done an OS/2 port of Tcl (version unknown). Tcl 7.4 has been ported to OS/2 by Stefano Fornari <URL:mailto:fornari@ipvvis.unipv.it> It is available at <URL:ftp://ftp.leo.org/pub/comp/os/os2/devtools/languages/>. Illya Vaes <URL:mailto:ivaes@hr.ns.nl> is working on a port of Tk 4.1 (the Win32 version) to OS/2 Presentation Manager. He is using the native PM/GPI calls and should be able to support OS/2 2.x. It is reported that Ilya Zakharevich <URL:mailto:ilya@math.ohio-state.edu> is doing something similar, using the Developer's API extensions to directly support most of the Win32 API's under OS/2 Warp with DAX/DAPIE and Fixpack 17 installed. Contact them for more details on the progress being made. Also (see "tcl-faq/part4"), the Tcl programs/packages catalog, for the latest port locations. D. VMS A port of Tcl 7.3 and Tk 3.6 to VMS was done by Angel Li <URL:mailto:angel@flipper.rsmas.miami.edu>. The files are at <URL:ftp://mango.rsmas.miami.edu/pub/VMS-tcl/tcl73-tk36-itcl13.tar.Z> and were compressed with the Unix compress command. The pathname may be subject to change as I have seen notes from Angel Li mentioning that BLT 1.6 and the photo widget have also been ported. These were compiled on an Alpha running OpenVMS T6.1. A port of Tcl 6.3 onto VMS 5.5 was done by Wolfgang Kechel <URL:mailto:wolfgang@pr-wiesbaden.de> and Till Imanuel Panzschke. Contact them directly for assistance. A port of most of Tcl 6.7 and Tk 3.2 was done by John Kimball <URL:mailto:jkimball@src.honeywell.com> to VMS 5.5. The files are on <URL:ftp://src.honeywell.com/pub/tcl67-tk32-on-vms55.tar.Z>. A port of Tcl 7.0 and Tk 3.3 has being done to VMS on the VAX and Alpha. These are available as: <URL:ftp://src.honeywell.com/pub/vms-tcl/tcl70-tk33-on-vms55.tar.Z> or <URL:ftp://src.honeywell.com/pub/tcl70-tk33-on-vms55.tar.Z>. Gerald W. Lester <URL:mailto:gwlester@cpu.com> says the following _should_ work. If you installed the POSIX package on VMS (its free), then you should be able to configure and make tcl. To access tcl you would have to do one of the following: 1) Use the POSIX shell, or 2) do a "psx tcl". Tcl scripts would not execute directly from DCL; to execute a script foo.tcl from DCL you would have to do "psx foo.tcl". DISCLAIMER: I have not built any version of tcl under VMS POSIX, these comments are based on other work I've done with VMS POSIX. <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/vms-sharable-binaries.tar.gz> is a version of Tcl/Tk for VMS built as a sharable library. It includes a dynamic module loading command. Otherwise, it matches the src.honeywell.com version. Also (see "tcl-faq/part4"), the Tcl programs/packages catalog, for the latest port locations. E. AmigaDOS Karl Lehbauer <URL:mailto:karl@sugar.NeoSoft.com> has indicated that he started a port of Tcl 3.x to the Amiga. He has a working version, but is no longer working on it. His version uses the Amiga's shared libraries and implements the "send" command. He wrote a MIDI file loader and player as well. Contact him for further details. Ty Sarna <URL:mailto:tsarna@endicor.com> has ported Tcl 6.x to the Amiga. He says: > I've ported 3.3 and several 6.x versions to the Amiga, and it can be > done in under and hour if you leave out the "Unix" functionality. > However, "Unix" functionality includes things like file I/O! Another Amiga user, <URL:mailto:colas@opossum.inria.fr> (Colas Nahaboo), mentioned that using Amiga gcc and the PD X server DaggeX and Xlibs that a port of Tk might be possible. <URL:mailto:hnm@hermes.bouw.tno.nl> (Marco van der Heiden) has completed a port to the Amiga, and suggests Amiga developers contact him by email. <URL:mailto:wulf@hotdog.ping.de> (Berndt Wulf) reports building Tcl and Tk on an Amiga system running NetBSD1.0b2, using the sources on the Walnut Creek Tcl/Tk CD-ROM. A version of Tcl is apparently available on Fish disk number 447. I do not have information concerning what version of Tcl this is. It is my understanding that the Fish disks are available on many of the Amiga Internet archive sites, one of which is <URL:ftp://ftp.cso.uiuc.edu/>. Also (see "tcl-faq/part4"), the Tcl programs/packages catalog, for the latest port locations. F. NeXT (See "tcl-faq/tk/part1") for details on getting Tk to compile under NeXTStep and (see "tcl-faq/usage") for details on getting Tcl to compile. G. Other A port to the Apple IIgs and GNO 1.1/GSOS environment is underway. A beta port of Tcl 7 has been done to VxWorks. You can find it at <URL:ftp://thor.atd.ucar.edu/pub/vx/tclvx7.0.v2.tar.gz> or a name similar (if updates have occurred). A port to GEOS was attempted, but it was found to be difficult to run there (except perhaps under the desktop platform) due to resource limits and constraints. A port of Tcl/Tk and X11R6 to OS-9 has been reported to be done by <URL:mailto:kt@keihh.hanse.de> Kei Thomasen. A different port of Tcl/Tk to OS-9 was done by <URL:mailto:oertel@port.de> Heinz-Juergen Oertel. Also (see "tcl-faq/part4"), the Tcl programs/packages catalog, for the latest port locations. ------------------------------ From: FAQ General information Subject: -IV- Other than C, what languages can talk to tcl/tk? A. Shell There are a number of interfaces which are shell-like. The first is tclsh, which comes as a sample program implementing a Tcl interpreter as a part of the Tcl distribution. Another is wish, which is a shell-like interface that is a part of the Tk package. Many of the other extensions also build interpreters as well. The tclX extension is an example - it builds an interpreter called tcl as well as one called wishx. B. C++ There is a package called Objectify which can be used to assist one in turning C++ classes into Tcl object types. If you wish to use C++ with Tcl then you must have your main() in a source file that is compiled with a C++ compiler; this will ensure that the necessary C++ pre-main initialization code is executed. You can call tcl and tk routines (or other C code) routines from C++ provided that the function prototypes avoid C++ name mangling by using the C++ linkage specification : extern "C" ... prototype ... Fortunately, tcl.h and tk.h will provide these specifications when compiled with a C++ compiler and so you can just use them directly. You can construct your main using normal tcl and tk routines, or use tkMain.c and tkAppInit.c with minor modifications. Ken Yap's patch, obtainable from <URL:ftp://mirror.neosoft.com/pub/tcl/alcatel/distrib/tk3.2forC++.patch>, is a patch that allows tk 3.2 main.c and other extension routines to be compiled with a C++ compiler. Thanks to Ken Yap <URL:mailto:ken@syd.dit.csiro.au> for this code. C++ functions and static class member functions can be used to create Tcl command using Tcl_CreateCommand in the normal way. Non-static member functions cannot be used so simply, Tcl would have to supply a "this" pointer. Check out tcl++.h in Extended Tcl. Based on an original implementation by Parag Patel, it defines a Tcl interpreter class by which Tcl interpreters can be created as objects under C++. Mark Diekhans and Karl Lehenbauer have used this, in combination with the handle facility in Extended Tcl, to build Tcl commands around C++ classes. The Tcl handle facility provides a way to manage table entries that can be referenced by a textual handle from Tcl code. This is provided for applications that need to create data structures in one command, return a reference (i.e. pointer) to that particular data structure and then access that data structure in other commands. An example application is file handles. A handle table was built containing pointers to the instances of a class that were to be accessed from Tcl, say a class `foo_cl', and then a "new" command defined that created an instance of that class and returned a Tcl handle to it. The handle could then passed among Tcl commands that accessed each member function. The handle is in effect an explicit `this' pointer. For example: set obj [foo_cl::new] foo_cl::baz $obj "Hello world" foo_cl::delete $obj It's not totally object-oriented, but it's still very usable. C. Modula-3 Norman Ramsey <URL:mailto:elan.uucp!nr> says: A long time back, Eric Muller posted a Modula-3 interface to the C Tcl library. I wrote down a Modula-3/Tcl interface that used Modula-3 types rather than C types, and that used objects to build closures for commands. I wrote part of the implementation but never finished it. I have mailed copies to <URL:mailto:carroll@udel.edu>, who asked the question, and I will post them if there seems to be general interest. Also, there is an interface between Tk and Modula-3 that is a part of the Modula-3 archives on gatekeeper.dec.com, and Tcl-DP and Modula-3 have been merged. D. Eiffel <URL:mailto:stephan@cs.tu-berlin.de> (Stephan Herrmann) says: ... [the tclish package provides] the marriage of two very different principles by means of combining two programming languages into a hybrid program architecture. There are three classes for the user - tcl interpretor, tk application, and tk window. See <URL:ftp://hepunx.rl.ac.uk/pub/eiffel/tclish> for details. E. Ada <URL:mailto:dennis@dennis.cs.colorado.edu> (Dennis Heimbigner) introduced an adatcl package which gives Ada programmers access to Tcl interpreters. (See "tcl-faq/part4") for details of the package. F. Perl In the past, efforts by Dov Grobgeld <URL:mailto:dov@menora.weizmann.ac.il> and Guenther Schreiner <URL:mailto:guenther@ira.uka.de> were made to develop at least 2 Perl 4 to Tcl/Tk interfaces. More effort has occured in the Perl 5 environment, where an extension to allow Perl 5 to directly access the Tcl C API, as well as an extension to allow the ability to do Tk programming without a Tcl interpreter involved at all are available. These packages can be ftp'd from the Comprehensive Perl Archive Network (CPAN) - a series of ftp sites which keep the latest and greatest archives of Perl code in sync. See <URL:http://www.perl.com/perl/CPAN/CPAN.html> for a pointer to CPAN, and follow the links to find the Tcl related Perl packages. G. Prolog The package ProTcl is an interface between Prolog and Tcl/Tk. It works best with ECLiPSe, but the foreign interface of SICStus and Quintus is also provided. The interface is dynamically loaded into a Prolog process and it gives access to Tcl commands and to handling Tk events. It is also possible to call Prolog from Tcl, handle Tk events in Prolog and to pass Prolog variables back to Tcl. See <URL:http://www.ecrc.de/eclipse/html/protcl.html> for more details. H. Other Work at consolidating Python and Tk is underway - discussion is proceeding in comp.lang.python on this front as the code is primarily Python. Some work relating to the Fresco CORBA interpreter has resulted in a Tcl-based interpreter which interacts with that environment. Some work on Tk bindings for the Dylan language are being investigated as well as Tk bindings for Sather. Duncan Sinclair <URL:mailto:sinclair@dcs.gla.ac.uk> has details of a hack into wish.c some hooks for a Tk to any language system, and has been using it for communication with functional languages such as Haskell and Lazy ML. A paper, plus sample code, is available by ftp from <URL:ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Duncan_Sinclair/fumx.*>. The InterLanguage Unification project is a system that promotes software interoperability via interfaces. It has the ability to allow Common Lisp, ANSI C, C++, Modula 3 to interact and plans to add Python, Tcl, and GNU Emacs-Lisp shortly. Of course the Wafe application environment is designed to make it easier to do X like applications from within several languages using Tk as a basis. There are several interfaces to allow one to interface with SQL though some are specific to a database such as Oracle. There is an interpretor for Silicon Graphics machines for SGI's GL language. There is an interface to WOOL. For more details on the above efforts, (see also "tcl-faq/part4"). ------------------------------ From: FAQ General information Subject: -V- What training material is available? A. Books, Training courses, etc. 1. Title: Tcl and the Tk Toolkit Author: John K. Ousterhout <URL:mailto:ouster@tcl.eng.sun.com> ISBN: 0-201-63337-X Publisher: Addison-Wesley Publication date: April, 1994 Third printing: 1994 The book primarily covers Tcl 7.3 and Tk 3.6. A German translation of this book, titled _Tcl und Tk_, with the ISBN of 3-89319-793-1, is also available. In regards to questions about new revisions to the book, John has indicated that a new revision would be unlikely to appear before the end of 1996. 2. Title: Exploring Expect Author: Don Libes <URL:mailto:libes@nist.gov> Subtitle: A Tcl-Based Toolkit for Automating Interactive Applications Publisher: O'Reilly and Associates, Inc Publication date: 1994 ISBN: 1-56592-092-2 Pages: 602 Email orders: <URL:mailto:order@ora.com> HTTP orders: <URL:http://nearnet.gnn.com/gnn/bus/ora/ordering/index.html> Credit card orders (M-F 6am-6pm PST): (800) 889-8969 / (707) 829-0515 Mailing Address: O'Reilly & Associates, Inc. 103A Morris Street Sebastopol, CA US 95472 For all of you who thought that the Expect man page was too long and too terse at the same time, this book provides relief. "Exploring Expect" is an introduction and comprehensive tutorial to Expect. Numerous examples are provided and explained, demonstrating how to save you time and money. Example topics include how to write patterns, do signal handling, use Expect as a telnetable daemon, and use Expect with Tk and other Tcl extensions. The book also includes an innovative introduction to Tcl - if you've had trouble using Tcl before, all of a sudden, it will make a lot more sense. And while Exploring Expect concentrates primarily on using Expect with Tcl, programmers attempting to automate interactive programs using C, Perl, Python, or any other language will find this book helpful because many of the concepts underlying Expect-like programming are common to all languages. Expect book description: <URL:http://www.ora.com/www/item/expect.desc.html> Front cover art: <URL:http://www.ora.com/www/item/expect.gif> Errata sheet: <URL:ftp://ftp.cme.nist.gov/pub/expect/errata> Exploring Expect remains in the first edition. There have only been a few corrections and updates so they have been easily incorporated in new printings. The last time Don had to make any corrections was in the third printing. Exploring Expect was originally based on Tcl 7.3 and 7.4 alpha. However, the book correctly describes 7.5 as well. Almost all of the recent changes in Tcl were under the cover - which is not the focus of Don's book, so it is still accurate. Interesting story time: Don only needed to make one change in the book when Tcl 7.4 came out of alpha. Tcl 7.4 added checking for overflow which was something his random number generator didn't like. So he changed the constants in the 2nd printing to avoid this problem. Later, Ousterhout got enough grief from people that he later changed it back. So it turned out that Don really hadn't needed to make any changes to the book after all. The book was also based on Tk 3.6 and Tk 4 alpha. Don's book doesn't go into enough depth on Tk that this really matters - in fact, he only needed to mention a difference between Tk 3 and Tk 4 at one point. So the text is still accurate. He does, however, have a lot of real code and some of the Tk examples no longer work quite right because of the way bind changed. However, all of those examples come with Expect and they are Tk4-ized, so it shouldn't be a significant problem. The text describing the examples is still correct. 3. Title: Practical Programming in Tcl and Tk Author: Brent Welch <URL:mailto:bwelch@eng.sun.com> Publisher: Prentice Hall ISBN: 0-13-182007-9 Date: 1995 This book discusses Tcl 7.4 and Tk 4.0. It features about 5000 lines of Tcl and 2400 lines of C code, which come with the book on a floppy. The book describes and summaries all the Tcl and Tk commands and widgets. There are longer examples that put together small applications. The sections on C programmer are not intended to be complete references to the C interfaces - use the man pages for that information. A draft of the book - except for the index - is available as <URL:ftp://parcftp.xerox.com/pub/sprite/welch/tkbook.ps.gz>. Also, see <URL:http://www.sunlabs.com/%7Ebwelch/bwelch.html> for links to pages about the book. 4. Title: How to Manage Your Network Using SNMP: The Networking Management Practicum, Author: Marshall T. Rose <URL:mailto:mrose@dbc.mtview.ca.us>, Keith McCloghrie Publisher: Prentice Hall, Publication Date: 1995 ISBN: 0-13-141517-4. Describes a Tcl-based SNMP API, and contains several example programs. 5. Title: Tcl and Tk reference manual Editor: Donald Barnes, Marc Ewing <URL:mailto:marc@redhat.com>, Erik Troan Publisher: Red Hat Software, Inc. Publication Date: September 1995 Size: 645 pages - 7" x 9", Lay-Flat Binding ISBN: 1-885329-08-3 LoC: QA76.73.T44 Red Hat Software 25 Sylvan Road South Wesport, CT 06880 (800) 546-7274 (203) 454-2582 (203) 454-5500 (FAX) E-mail: <URL:mailto:sales@redhat.com> Price: $24.95 A printed copy of the Tcl 7.4/Tk 4.0 man pages, along with a table of contents, standard index, and permutated index has been published. 6. Title: Distributed objects : neural network architecture rendered in Tcl-DP and Tcl widgets Author: Mark A. Stewart Publisher: Thesis (M.S.) University of Alabam at Birmingham Publication Date: 1995 LoC: QA76.27.T41 The topic is computer network architectures and neural networks. 7. Title: Graphical applications with Tcl and Tk Author: Eric F. Johnson Publisher: M&T Books Publication Date: 1996 ISBN: 1-55851-471-6 WWW info: <URL:http://ourworld.compuserve.com/homepages/efjohnson/tclbook.htm> The book covers Tcl 7.5b1 and Tk 4.1b1. It focuses on creating cross-platform graphical applications. Windows and Unix development is covered. The book comes with a CD-ROM containing Tcl/Tk sources, a binary Tcl/Tk version for Windows, the book's source code and Tcl freeware. 8. Title: The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics Author: Will Schroeder, Ken Martin, Bill Lorensen Publisher: PTR Prentice Hall Publication Date: 1996 ISBN: 0-13-199837-4 The book contains software and information to assist you in transforming data into 3D graphics. The book covers key algorithms, modeling, and techniques for various types of visualization. The CD-ROM contains 400 megabytes of software, data images, and documentation. The software runs on Unix, Windows 95, and Windows NT. 9. Many people learn Tcl/Tk from reading the 'man' pages. These files, a part of the source code distribution, are mentioned in Dr. Ousterhout's book as 'the reference manual'. If the person who installed Tcl/Tk at your site did a build of the executables and then ran the 'make install' step described in the source code distribution, the man pages are probably installed on your system in a directory. Contact your system adminstrator for more details. Also, (see "tcl-faq/part2") for a number of WWW resources which provide additional information about many aspects of Tcl and it's extensions. See the other FAQs mentioned in this document for additional help, pointers to software examples, and other resources from which you can draw help. For instance, (see "tcl-faq/bibliography/part1") for details of published books, magazine and journal articles, proceedings papers, and thesises relating to the Tcl family of languages. (See "tcl-faq/commercial-uses/part3") for details of classes offered commercially. 10. A physical copy of the Tcl / Tk distributed documentation as at one time available at the Northside Copy Central in Berkeley under the name "TCL" and is titled "Tcl/Tk Documents". Northside Copy Central is at 1862 Euclid with a phone of (510) 849-9600. It costs approx. $15-$20 for the book in a spiral bound, pink cover, clear plastic front and back format. 11. Computerized Processes Unlimited has a combined Tcl/Tclx reference manual for sale. (See "commercial-uses/part3") for more information. 12. The USENIX Association <URL:http://www.usenix.org/> not only sponsers various conferences and workshops of possible interest to the Tcl and Tk communities, but also offers the proceedings from those sessions for sale to members. See <URL:http://www.usenix.org/cgi-bin/lookbib.pl?raw=false&TERMS=tcl> for an example of just some of the articles that have been published by the USENIX Association. 13. For a free resource, see <URL:http://www.cis.rl.ac.uk/proj/TclTk/> which is the TclTk Cookbook, a living document describing the use of Tcl and Tk across platforms. --- 14. (See "commercial-uses/part3") for information about training courses by Computerized Processes Unlimited, NeoSoft Communications Services, and ATT training groups. 15. The first Tcl local users' group has formed in the Dallas Texas area. The group will be known as "Tcl Dallas" or "Tcl'D" for short. "Tcl Dallas" is a non-profit organization dedicated to the promotion of the Tcl language along with its many extensions. As a local users group, "Tcl Dallas" supports the regional Tcl developer community by hosting special events and providing a local forum for the discussion of Tcl issues. For further information, see their WWW page at <URL:http://www.tcltk.com/TclDallas/>. B. Time-related seminars, conferences, sessions. 1. There have been, in the past, seminars and BOFs/SIGs at Usenix, the MIT X conference, and other conferences taught by John Ousterhout and others on Tcl and Tk. (See also "tcl-faq/part2") for the URL to the slides from the most recent of these presentations by John. If you are planning on attending a conference, check for these types of activies, as well as sessions dealing with applicatons of Tcl/Tk. Let the others in <URL:news:comp.lang.tcl> know about the event so that others might also attend. For that matter, consider scheduling a Tcl/Tk event yourself if you are so inclined! 2. University of Maryland Baltimore County has been holding a course titled CMSC491C - Special Topics in Computer Science - Scripting Languages. This is an introduction to scripting languages with an emphasis on Perl and Tcl, but also mentioning sed, awk, etc. Taught by Bob Tarr. Call (410) 455-2336 (Continuing Education Department) to sign up as a special non-degree candidate. Info provided by <URL:mailto:finin@cs.umbc.edu> (Tim Finin). 3. The Cooperative Research Centre for Advanced Computational Systems, at the Australian National University, Canberra Australia, has been offering Introductory and Advanced Tcl/Tk courses. The first course, "An Introduction To the Tcl Language and Tk Toolkit", was held from 29th November to 1st December 1995. Courses will be conducted on a regular basis. For the latest information, see <URL:http://pastime.anu.edu.au/tcl/Courses.html>. 4. The 1996 USENIX Tcl/Tk Workshop will be held in Monterey, California, USA from July 10-13, 1996. It is targeting active researchers and developers in the Tcl/Tk community. Paper and demo submissions have a deadline of March 5, 1996. Registration information will be available by April. See <URL:news:comp.lang.tcl> or <URL:news:comp.org.usenix> and <URL:http://www.usenix.org/tcl96.html> for more information, or send email to <URL:mailto:info@usenix.org>. The workshop is to be chaired by Mark Diekhans <URL:mailto:markd@sco.com> and Mark Roseman <URL:mailto:roseman@cpsc.ucalgary.ca>. IMPORTANT DATES for the fourth annual Tcl/Tk Workshop. * Deadlines for paper and demo submissions: March 5, 1996 * Notification of acceptance: April 16, 1996 * Camera-ready copy due: May 28, 1996 ------------------------------ From: FAQ General information Subject: -VI- Where do I report problems, bugs, or enhancements There are two alternatives for reporting bugs and problems. The first is the Usenet news group <URL:news:comp.lang.tcl>, an unmoderated Usenet newsgroup, created for the discussion of the Tcl programming language and tools that use some form of Tcl, such as: the Tk toolkit for the X window system, Extended Tcl, and expect. Please note that postings of source code to <URL:news:comp.lang.tcl> does not automatically get archived on ftp.neosoft.com (in the User Contributions archive site) - if you want your code to be available, you will need to make arrangements with the folks there to have it added. See elsewhere in the FAQ for more details on the user contrib archive site. The second would be to report problems, suggestions, new ideas, etc. directly to the author. Email to <URL:mailto:John.Ousterhout@eng.sun.com> (John Ousterhout) will reach the author of Tcl and Tk - to find the email address of the authors of other Tcl/Tk based programs, (see "tcl-faq/part4"), and (see "tcl-faq/part5"). When you report bugs, be sure you mention what hardware and operating system you are using (e.g. Pentium 100 mhz running Linux version x.y.z), what version of tcl/tk you are using (e.g. Tcl 7.5b3/Tk 4.1b3), what extensions you have added (e.g. tclX, dash, plus, itcl, tix, and blt), and any local modifications you have made. Then, provide if possible either a small piece of code, or a URL (e.g. <URL:ftp://ftp.myhost.com/some/path/stuff.tcl> ) to some code which demonstrates the problem. Either have the code explicitly mention here's what I thought would happen, or in your description mention that. Also, if something used to work, mention which configuration you used. If you have software from which you think someone might benefit (either a program, function, extension, or simple example), or you have a document, magazine or journal article, thesis, project, or even commercial advertisement, be sure to let the appropriate folks know. There are FAQ maintainers for each of these areas as well as the <URL:news:comp.lang.tcl.annouce> newsgroup you can use. Source code postings of reasonable length (and reasonable has been pretty large) are acceptable, BUT postings are not automatically archived on the neosoft ftp site. It is always worthwhile to submit your contributions to the ftp site so more folk in the future can benefit from your experience. ------------------------------ End of comp.lang.tcl Frequently Asked Questions (1/5) *****************************************************