home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / answers / tcl-faq / part1 next >
Text File  |  1994-09-28  |  39KB  |  884 lines

  1. Newsgroups: comp.lang.tcl,comp.answers,news.answers
  2. Path: bloom-beacon.mit.edu!hookup!yeshua.marcam.com!news.kei.com!eff!wariat.org!malgudi.oar.net!chemabs!lvirden
  3. From: lvirden@cas.org (Larry W. Virden)
  4. Subject: FAQ: comp.lang.tcl Frequently Asked Questions (1/5)
  5.     (Last updated: July 26, 1994)
  6. Message-ID: <tcl.p1_780761786@cas.org>
  7. Followup-To: comp.lang.tcl
  8. Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions 
  9.     (FAQ) and their answers.  This is the first of five parts.
  10.     This part introduces Tcl and Tk and discusses documentation, etc.
  11. Originator: lvirden@cas.org
  12. Keywords: tcl, extended tcl, tk, expect
  13. Sender: lvirden@cas.org
  14. Supersedes: <tcl.p1_778352339@cas.org>
  15. Reply-To: lvirden@cas.org (Larry W. Virden)
  16. Organization: Chemical Abstracts Service
  17. Date: Wed, 28 Sep 1994 14:16:31 GMT
  18. Approved: news-answers-request@MIT.Edu
  19. Expires: Wed, 9 Nov 1994 14:16:26 GMT
  20. X-Url: http://www.cis.ohio-state.edu/hypertext/faq/usenet/tcl-faq/part1/faq.html
  21. Lines: 860
  22. Xref: bloom-beacon.mit.edu comp.lang.tcl:18134 comp.answers:7483 news.answers:26433
  23.  
  24. Archive-name: tcl-faq/part1
  25. Version: 6.0
  26. Last-modified: August 12, 1994
  27.  
  28.  
  29.     For more information concerning Tcl (see "tcl-faq/part2"),
  30. (see "tcl-faq/part3"), (see "tcl-faq/part4"), or (see "tcl-faq/part5").
  31. Also (see "tcl-faq/commercial-uses"), (see "tcl-faq/usage"), 
  32. (see "tcl-faq/bibliography").
  33.  
  34. Index of questions:
  35.  
  36. I.   Origin of the comp.lang.tcl FAQ information and
  37.     to whom do I contact for more information about the FAQ?
  38. II.  What is Tcl?  Tk?  Extended Tcl?  Rush?  What is Tcl _not_? 
  39. III. Do these packages run on my machine?
  40.     A. Unix
  41.     B. MacOS
  42.     C. INTEL DOS-like systems
  43.     D. VMS
  44.     E. AmigaDOS
  45.     F. NeXT
  46.     G. Other
  47. IV.  Other than C, What languages can talk to tcl/tk?
  48.     A. Shell
  49.     B. C++
  50.         C. Modula-3
  51.     D. Eiffel
  52.     E. Ada
  53.     F. Perl
  54.     G. Prolog
  55.     H. Other
  56. V.   What training material is available?
  57.     A. Training courses, materials, etc.
  58.     B. Time-related seminars, conferences, sessions.
  59. VI.  Where do I report problems, bugs, or enhancements about Tcl - or -
  60.     what is comp.lang.tcl?
  61.     
  62. End of FAQ Index
  63.  
  64. ----------------------------------------------------------------------
  65.  
  66. ------------------------------
  67.  
  68. From: FAQ General information
  69. Subject: -I- Origin of the comp.lang.tcl FAQ information.
  70.  
  71.     The information in this set of FAQs comes from several sources.  The
  72. primary source of information is the group itself - I spend (much too
  73. much) time each month culling through what I feel are some of the best
  74. answers, gathering up new information on ports, etc. and adding it
  75. here.  I also gather new application information and add it as
  76. best I can.  The next most predominant source of information comes from
  77. the authors of the various software packages.  Finally, a small amount
  78. comes from my personal experiences.
  79.  
  80.     The primary location for the commercial use of Tcl FAQ is 
  81. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl-commercial-faq.gz>.
  82. The author is gwl@cpu.com (Gerald W. Lester).  This FAQ contains information
  83. either about commercial products which incorporate Tcl as a part of
  84. them or firms which teach about Tcl and Tk in some manner.
  85.  
  86.     The Japanese translation of the comp.lang.tcl FAQ can be
  87. located at
  88. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl-faq-j5.3.tar.gz>.
  89. This file contains Japanese EUC-Kanji codes.  Contact
  90. taguchi@fox.aic.co.jp (Taguchi Takeshi - Father of Japanese translation of FAQ)
  91. for more information.
  92.  
  93.     Three new general FAQs are in progress.  These are spin-offs
  94. from this original source document.  The first will contain a bibliography
  95. of published material related to Tcl, and will be managed by
  96. glv@utdallas.edu (Glenn Vanderburg).  (See "tcl-faq/bibliography/part1")
  97. or ftp it at
  98. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl-faq-bib.gz>.
  99.  
  100.     The second FAQ will contain the series of Tcl-related questions 
  101. and answers and is managed by joe@morton.rain.com (Joe Moss). 
  102. (See "tcl-faq/tk-Q-and-A/part1") or find it at
  103. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl-Q-and-A.p1.gz>.
  104.  
  105.     The third will contain Tk-related questions and answers and 
  106. is managed by tja@cpu.com (Thomas J. Accardo).  You can
  107. (see "tcl-faq/tk.Q-and-A/part1") or find it
  108. at <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tk.Q-and-A.p1.gz>
  109.  
  110.     If you have corrections, enhancements, modifications,
  111. clarifications, suggestions, ideas, new questions, new answers to
  112. questions which have never been asked, or something else that I have
  113. not covered above, contact me at lvirden@cas.org.
  114.  
  115. ------------------------------
  116.  
  117. From: FAQ General information
  118. Subject: -II- What is Tcl?  Tk?  Extended Tcl? 
  119.  
  120. o Highlights of Tcl based languages
  121.  
  122.     Tcl and Tk originated with Dr. John Ousterhout (Oh'-stir-hout -
  123. last syllable rhymes with rout, not root) from the University of California,
  124. Berkeley, California.
  125.  
  126.     Tcl (current release version 7.3) stands for ``tool command
  127. language'' and is pronounced ``tickle.'' The author's home ftp site for
  128. the Tcl source code is <URL:ftp://ftp.cs.berkeley.edu/ucb/tcl/>.
  129. Tcl is actually two things: a language and a library.  First, Tcl is a
  130. simple textual language, intended primarily for issuing commands to
  131. interactive programs such as text editors, debuggers, illustrators, and
  132. shells.  It has a simple syntax and is also programmable, so Tcl users
  133. can write command procedures to provide more powerful commands than
  134. those in the built-in set.
  135.  
  136.     Second, Tcl is a library package that can be embedded in
  137. application programs.  The Tcl library consists of a parser for the Tcl
  138. language, routines to implement the Tcl built-in commands, and
  139. procedures that allow each application to extend Tcl with additional
  140. commands specific to that application.  The application program
  141. generates Tcl commands and passes them to the Tcl parser for
  142. execution.  Commands may be generated by reading characters from an
  143. input source, or by associating command strings with elements of the
  144. application's user interface, such as menu entries, buttons, or
  145. keystrokes.  When the Tcl library receives commands it parses them into
  146. component fields and executes built-in commands directly.  For commands
  147. implemented by the application, Tcl calls back to the application to
  148. execute the commands.  In many cases commands will invoke recursive
  149. invocations of the Tcl interpreter by passing in additional strings to
  150. execute (procedures, looping commands, and conditional commands all
  151. work in this way).
  152.  
  153.     An application program gains three advantages by using Tcl for
  154. its command language.  First, Tcl provides a standard syntax:  once
  155. users know Tcl, they will be able to issue commands easily to any
  156. Tcl-based application.  Second, Tcl provides programmability.  All a
  157. Tcl application needs to do is to implement a few application-specific
  158. low-level commands.  Tcl provides many utility commands plus a general
  159. programming interface for building up complex command procedures.  By
  160. using Tcl, applications need not re-implement these features.  Third,
  161. extensions to Tcl, such as the Tk toolkit, provide mechanisms for
  162. communicating between applications by sending Tcl commands back and
  163. forth.  The common Tcl language framework makes it easier for
  164. applications to communicate with one another.  
  165.  
  166.     Note that Tcl was designed with the philosophy that one should
  167. actually use two or more languages when designing large software
  168. systems.  One for manipulating complex internal data structures, or
  169. where performance is key, and another, such as Tcl, for writting
  170. smallish scripts that tie together the C pieces and provide hooks for
  171. others to extend.  For the Tcl scripts, ease of learning, ease of
  172. programming and ease of glue-ing are more important than performance or
  173. facilities for complex data structures and algorithms.  Tcl was
  174. designed to make it easy to drop into a lower language when you come
  175. across tasks that make more sense at a lower level.  In this way,
  176. the basic core functionality can remain small and one need only bring
  177. along pieces that one particular wants or needs.
  178.  
  179.     Tk (current release 3.6) is an extension to Tcl which provides
  180. the programmer with an interface to the X11 windowing system.  Note
  181. that Tk has been successfully compiled under X11 R4, X11 R5, X11 R6,
  182. as well as Sun's NeWS/X11 environments.
  183.  
  184. The author's home ftp site for the Tk source is the directory
  185. <URL:ftp://ftp.cs.berkeley.edu/ucb/tcl/>.
  186. Note that many users will encounter Tk via the ``wish'' command.  Wish
  187. is a simple windowing shell which permits the user to write Tcl
  188. applications in a prototyping environment.  Tk 4.0 is in the works.
  189. It is expected to appear by first quarter 95.  Some of the changes to
  190. expect are:
  191.  
  192. - A major overhaul of text widgets (embedded windows, horizontal
  193.   scrolling, better vertical scrolling, more display options such as
  194.   vertical spacing, margins, justification, and baseline offsets).
  195. - An overhaul of bindings, including the binding tags discussed at
  196.   last year's workshop and  a change in the evaluation mechanism to make
  197.   bindings more composable.
  198. - A few other changes to event handling, including a new "fileevent"
  199.   command (similar to Mark Diekhans' "addinput") and the ability to
  200.   cancel "after" handlers.
  201. - A general-purpose and user-extensible mechanism for images, intended to
  202.   handle things like color icons, full-color images, and video.
  203. - Improvements to colormap and visual handling.
  204. - A solution to the X resource id wrap-around problem that tends to cause
  205.   errors in long-running applications.
  206. - A bunch of improvements to widgets, including justification in entries and
  207.   the ability to have multi-line text in widgets like buttons and labels.
  208.  
  209. Other things which may appear are:
  210.  
  211. - support for Motif keyboard traversal highlight rings and
  212.   completely overhaul the widget bindings to bring them into better Motif
  213.   compliance.  Emacs-like bindings will also be provided for entries and
  214.   texts where they don't conflict with Motif bindings.
  215. - Application embedding (like Sven Delmas' "tksteal" stuff, I think).
  216. - Overhauls of the send command, the selection, and the input focus
  217.   mechanism.
  218.  
  219. Early beta release of Tk 4.0 is expected before fourth quarter 1994.
  220.  
  221.     The future of Tcl and Tk is quite bright.  This year Dr. Ousterhout
  222. announced that he has been employed by Sun Microcomputer, Inc. to do
  223. some further development of Tcl / Tk.  Some of the short term (within the
  224. next 12 months or so) plans that Dr. O has mentioned are:
  225.  
  226.  
  227. - Ports of Tcl and Tk to both the PC and Mac, so scripts written on one
  228.   platform will run on any of the others, presenting their UI in the look
  229.   and feel of the platform on which they run.
  230. - A commercial-quality graphical interface designer like Visual Basic or
  231.   NextStep.
  232. - Dynamic loading of C code in Tcl.
  233. - Incorporating Nathaniel Borenstein's Safe-Tcl back into the Tcl core,
  234.   so that there is a safe mechanism for executing untrusted scripts that
  235.   arrive via the Internet.
  236.  
  237. John has given me permission to add this quote as well:
  238.  
  239. From: ouster@tcl.eng.sun.com (John Ousterhout)
  240. Newsgroups: comp.lang.tcl
  241. Subject: Re: The future of TcL/Tk's Copyright Terms
  242. Date: 31 Aug 1994 20:08:19 GMT
  243. Organization: Sun Microsystems, Inc.
  244. Message-ID: <342nvj$6e9@engnews2.Eng.Sun.COM>
  245.  
  246. > I discussed the status of the Tcl and Tk libraries with people at Sun
  247. > as part of my pre-hire negotiations, and we're in agreement that they
  248. > will remain free and unrestricted just as they have always been.  Future
  249. > enhancements made to Tcl and Tk by my group at Sun, including the ports
  250. > to Macs and PCs, will be made freely available to anyone to use for
  251. > any purpose.  My view, and that of the people I report to at Sun, is
  252. > that it wouldn't work for Sun to try to take Tcl and Tk proprietary
  253. > anyway:  someone (probably me, in a new job) would just pick up the
  254. > last free release and start an independent development path.  This
  255. > would be a terrible thing for everyone since it would result in
  256. > incompatible versions.
  257.  
  258. > Of course, Sun does need to make money from the work of my team or else
  259. > they won't be able to continue to support us.  Our current plan is to
  260. > charge for development tools and interesting extensions and applications.
  261. > Balancing the public and the profitable will be an ongoing challenge for
  262. > us, but it is very important both to me and to Sun to keep the support
  263. > of the existing Tcl community.  I imagine this discussion will repeat
  264. > from time to time over the next few years, but I think we can make things
  265. > work out well for everyone.
  266.  
  267.  
  268.     Extended Tcl (tclX) (Version 7.3b) - This is an extended set of
  269. commands for Tcl developed by Karl Lehenbauer and Mark Diekhans.  The
  270. authors' home ftp site for Extended Tcl is ftp.neosoft.com.  Extended
  271. Tcl is oriented towards system programming tasks, with many additional
  272. interfaces to the Unix operating system along with other useful
  273. utilities.
  274.  
  275.     Rush is a Tcl-like extension language announced at the Tcl'94
  276. Workshop.  Its syntax and semantics are very similar to Tcl's, but it
  277. additionally offers an optimizing compiler and a new feature called rules.
  278. Its primary advantage over Tcl is performance within a factor of 100 of C,
  279. whereas a Tcl compiler is unlikely to do better than a factor of 1000 of
  280. C.  Rush is not yet publicly available, though ambitious alpha testers
  281. are encouraged to inquire.  Mail can be sent to either asah@cs.berkeley.edu
  282. or blojo@cs.berkeley.edu.  For more information, see the paper
  283. <URL:ftp://ginsberg.cs.berkeley.edu/pub/asah/papers/rush-tcl94.ps.gz>.
  284.  
  285.  
  286. o General information about Tcl and Tk by glv@utdallas.edu (Glenn Vanderburg)
  287.  
  288. Tcl (Tool command language) is a freely distributable simple,
  289. interpreted language designed to be used as a common extension and
  290. customization language for applications.  It was designed and
  291. implemented by Dr. John Ousterhout in the hope that application
  292. designers could spend more of their time on applications and less on
  293. scripting languages, and in the hope that users could spend less time
  294. learning new scripting languages for each new application.  Many useful
  295. applications, some of them sold commercially, use Tcl as their
  296. scripting language.
  297.  
  298. Tcl is clean and regular, and relatively easy for non-hackers to
  299. learn.  It is command-oriented, and commands added by applications and
  300. users exist on an equal footing with the built-in Tcl commands.  Tcl
  301. has both simple variables and associative arrays (tables), and all
  302. values (including procedure bodies) are represented as strings.
  303. Simple customization scripts (such as preference initialization
  304. scripts) usually look much like novice users expect them to: a series
  305. of simple commands which set options.
  306.  
  307. Tcl is implemented as a C library, which can be embedded in an
  308. application.  The application can add its own commands to the
  309. interpreter (using a clean C interface).  It is distributed under a
  310. license which allows use for any purpose with no royalties.
  311.  
  312. The Tk toolkit is a Tcl extension (a group of new Tcl commands) which
  313. provides a Tcl interface to the X Window System.  Tk is one of the
  314. easiest ways to build a graphical interface to an application, and due
  315. to the interpreted nature of Tcl, Tk-based interfaces tend to be much
  316. more customizable and dynamic than those built with one of the C- or
  317. C++-based toolkits.  Tk implements the Motif look and feel.  A number
  318. of interesting X applications are implemented entirely in Tk, with no
  319. new application-specific commands at all.  Tk also provides a
  320. mechanism by which one application can send Tcl scripts to other
  321. Tk-based applications running on the same display, for easy
  322. cooperation between tools.
  323.  
  324. Tcl and Tk are mature, and quite stable, but they are not static:
  325. Dr. Ousterhout has moved from Berkeley to Sun Microsystems, where his
  326. group is pursuing such projects as a commercial-quality Tk
  327. graphical interface designer, an on-the-fly Tcl compiler, and
  328. Macintosh and Microsoft Windows ports of Tk.  He has said that the
  329. copyright status and licensing provisions of Tcl and Tk will not change.
  330.  
  331.  
  332. As to what is Tcl not - in the context of the discussion in
  333. comp.lang.tcl, it is not related directly to the Think C Library (TCL)
  334. available on the Mac.  Confusingly enough, the language concerned with
  335. here _is_ available on the Mac, and someone in fact may have used Think C
  336. to compile it there.  Just one of those universal 'coincidences' that
  337. set the stage for Vogon interstellar highway construction crews.
  338.  
  339. ------------------------------
  340.  
  341. From: FAQ General information
  342. Subject: -III- Do these packages run on my machine?
  343.  
  344.  
  345. A. Unix
  346.  
  347.     Tcl runs on Sun 3s and 4s running SunOS 4 and SunOS 5 (Solaris
  348. 1.x and 2.x), DECstations running Ultrix, DEC VAXen running Ultrix or
  349. BSD, DEC Alphas running OSF/1, 386s running SCO Unix, Xenix, Bell-Tech,
  350. Silicon Graphics running IRIX, HPs running HP-UX as well as HP Snakes
  351. running OSF/1 and HP-UX.  Intel [34]86 systems running
  352. 386bsd, netbsd, freebsd, BSDI, and Linux have Tcl ported.  Various CPUs
  353. running System V.4 report having ported Tcl.  Tcl also appears to be
  354. running on Sequent Symmetry running Dynix as well as OSF/1.  It also
  355. has been reported to run fine on IBM RS6000 under AIX 3.x as well as
  356. IBM ES/9000 and AIX/ESA.  There were few problems getting it running
  357. under Mt. Xinu Mach.  It also has been ported to Encore 91's running
  358. UMAX V (an 88k based System V with BSD extension Unix).  It also runs
  359. on Apollos running BSD/SYSV.  Tcl runs on a Cray running Unicos.  Folks
  360. have ported Tcl to a Mac (IIfx) running A/UX v3.  Someone ported Tcl to
  361. a Sony NeWS machine running NEWS-OS 4.2.  A port to a Convex 3220 and
  362. 3880 was also reported.
  363.  
  364.     Tk (being based on Tcl) generally requires X11R4 or better as
  365. the only additional software requirement.  It runs on any of the above
  366. Unix systems with that base of software.  It also runs on VMS and
  367. OSF/1.
  368.  
  369.     For information on Tcl/Tk/TclX availability (see "tcl-faq/part4").
  370.  
  371.  
  372. B. MacOS
  373.  
  374.     (See "tcl-faq/part2") for details of a Macintosh Tcl Mailing list.
  375.  
  376.     Ray Johnson <rjohnson@aic.lockheed.com> has a package called
  377. MacTcl.  This is a fairly straight port of Tcl to the Macintosh.  It is
  378. designed to be used as libraries to be embedded into other
  379. applications.  A basic shell is included.  Most Tcl features are
  380. present, including many Unix-like features.  Additional features
  381. include supporting the env variable and sourcing Tcl code from a 
  382. resource.  The current version is available at
  383. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/MacTcl7.3.sea.hqx>.
  384.  
  385.     As of this time, I have no leads on anyone porting Tk to MacOS.
  386. I also have not heard of anyone porting Tcl/Tk to a Apple PowerMac.
  387.  
  388.     Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
  389. for the latest port locations and versions.
  390.  
  391.  
  392. C. INTEL DOS-like systems
  393.  
  394.     Numerous ports to DOS are available.  One unsupported port to
  395. MS-DOS of Tcl and Extended Tcl V6.0a, done by
  396. Karl@NeoSoft.com (Karl Lehenbauer), is available on
  397. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl.zoo> for binaries and
  398. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl60.zoo> for source.
  399.  
  400.     A port of Tcl V6.2 to MS-DOS was done by 
  401. johnm@cajal.uoregon.edu (John Martin) and is available via FTP from
  402. <URL:ftp://cajal.uoregon.edu/pub/tcl.dos.port/> and
  403. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl62.dos.tar.Z>.
  404.  
  405.     A source code only port of Tcl V6.7 to MS-DOS, done by 
  406. PSPRENG@CIPVAX.BIOLAN.UNI-KOELN.DE (Peter Sprenger), is available from
  407. him, somewhere on wuarchive.wustl.edu
  408. or as
  409. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl67dos.zip>.
  410.  
  411.     A port of Tcl, version 7.3, to MS-DOS, done by
  412. tpoind@advtech.uswest.com (Tom Poindexter), is available as
  413. <URL:ftp://harbor.ecn.purdue/edu/pub/tcl/distrib/mstcl73*.zip>.  This
  414. also includes TclX 7.3a and Tk ported to Desqview/X libraries.
  415.  
  416.     A port of Tcl, V6.1 ?, done by unknown, to MS-DOS Windows
  417. V 3.1 ?, is available as binary at
  418. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclbin.zip> and as source at
  419. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclsrc.zip>.
  420.  
  421.     A package to take a Tcl source distribution and port it cleanly
  422. to MS-DOS, so that it can be compiled has been written by 
  423. Bob Yennaco (byennaco@east.sun.com).  It is available as
  424. <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl2dos.sh.gz>
  425.  
  426.     An MS-DOS Windows DLL instance of Tcl 6.2 was generated by
  427. Ugo Cei <ugo@oliver.sublink.org>.  Contact him for more details.
  428.  
  429.     A Windows DLL was made by ekki@prakinf.tu-ilmenau.de (Ekkehard Beier)
  430. by slightly modifying a DOS 6.2 Tcl port.  There are still problems
  431. with the system/WinExec command.  A very rudimentary Debugger User Interface
  432. using Borland's Classlib is part of the zip-file, too.
  433. The source was used also with BC3.1++/AF on MS W3.1.  You can get a copy from
  434. <URL:ftp://metallica.prakinf.tu-ilmenau.de/pub/DOS/wintcl.zip>
  435. via anonymous ftp.  Unfortunately Ekki doesn't have time currently to
  436. finish the Windows port and user Interface.
  437.  
  438.     haga@sra.co.jp (Toshihiko Haga) and miyata@sra.co.jp (Shigeaki Miyata)
  439. announced twin (tcl/tk for MS-Windows), which does not support exec and
  440. send, but supports a -bitmap for Windows .bmp files.  A few other
  441. modifications or special exceptions are noted.  This package's files
  442. can be found at
  443. <URL:ftp://ftp.sra.co.jp/pub/lang/tcl/{twinesrc,twinebin}.zip> and
  444. <URL:ftp://ftp.sra.co.jp/pub/lang/tcl/{twinesrc,twinebin}.doc>.
  445.  
  446.     Professor Ken K. Kubota <ken@ms.uky.edu> has announced a port
  447. of Tcl 7.3 and Tk3.6a to MS DOS Windows using Borland C++ 4.0.  Fetch
  448. the README files from the ftp sites
  449. <URL:ftp://ftp.ms.uky.edu/pub/tk-win/{tkwinbin,tkwin,fedloc}.zip>
  450. for more information.
  451.  
  452.     Omar Stanford <omar@fcm.missouri.edu> reported in March of 1994
  453. that he had almost completed his port of Tcl 7.3 to MS-Windows 3.1.
  454. He had incorporated extensions for networking (including NetWare),
  455. Windows Sockets, and many Windows API functions.  He also was working on
  456. a facility for dynamically allocating commands to the Tcl environment.
  457. If there are other extensions that one would like to see under Windows 3.1,
  458. or if you are interested in beta testing, drop him a line.
  459.  
  460.     Also, Simon Kenyon <simon@news.itc.icl.ie> of the Information
  461. Technology Centre, Dublin, IRELAND, mentions that they are starting to
  462. port Tk to MS-Windows.  There is a mailing list (see below) for
  463. folk who are interested.
  464.  
  465.     Steve Furr <furr@qnx.com> reports getting Tcl ported to QNX
  466. without a lot of trouble.  He mentions that QNX users who have the
  467. beta X should have gotten a CD-ROM update with Tcl and Tk on the CD.
  468.  
  469.     A port of Tcl 7.3, except for glob or command pipelines, to OS/2 2.x
  470. using C Set++ has been done by wwb@wwa.com (Bud Bach).  As of this date, I
  471. have no leads on anyone porting Tk to any version of OS/2.  There is some
  472. OS/2 X client support kits available for purchase, which might make it
  473. easier to port Tk.
  474.  
  475.     Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
  476. for the latest port locations.
  477.  
  478.  
  479. D. VMS
  480.  
  481.     A port of Tcl 7.3 and Tk 3.6 to VMS was done by Angel Li
  482. <angel@flipper.rsmas.miami.edu>.  The files are at
  483. <URL:ftp://mango.rsmas.miami.edu/pub/VMS-tcl/tcl73-tk36-itcl13.tar.Z>
  484. and were compressed with the Unix compress command.  The pathname may
  485. be subject to change as I have seen notes from Angel Li mentioning that
  486. BLT 1.6 and the photo widget have also been ported.  These were compiled
  487. on an Alpha running OpenVMS T6.1.
  488.  
  489.     A port of Tcl 6.3 onto VMS 5.5 was done by Wolfgang Kechel
  490. <wolfgang@pr-wiesbaden.de> and Till Imanuel Panzschke.  Contact them
  491. directly for assistance.
  492.  
  493.     A port of most of Tcl 6.7 and Tk 3.2 was done by John Kimball
  494. <jkimball@src.honeywell.com> to VMS 5.5.  The files are on
  495. <URL:ftp://src.honeywell.com/pub/tcl67-tk32-on-vms55.tar.Z>.
  496.  
  497.     A port of Tcl 7.0 and Tk 3.3 has being done to VMS on the
  498. VAX and Alpha.  These are available as:
  499. <URL:ftp://src.honeywell.com/pub/vms-tcl/tcl70-tk33-on-vms55.tar.Z>
  500. or
  501. <URL:ftp://src.honeywell.com/pub/tcl70-tk33-on-vms55.tar.Z>.
  502.  
  503.     Gerald W. Lester (gwlester@cpu.com) says the following _should_ work.
  504. If you installed the POSIX package on VMS (its free), then you should be 
  505. able to configure and make tcl.  To access tcl you would have to do one 
  506. of the following: 1) Use the POSIX shell, or 2) do a "psx tcl".
  507. Tcl scripts would not execute directly from DCL; to execute a script foo.tcl
  508. from DCL you would have to do "psx foo.tcl".
  509. DISCLAIMER: I have not built any version of tcl under VMS POSIX, these
  510. comments are based on other work I've done with VMS POSIX.
  511.  
  512.     Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
  513. for the latest port locations.
  514.  
  515.  
  516. E. AmigaDOS
  517.  
  518.     Karl Lehbauer <karl@sugar.NeoSoft.com> has indicated that
  519. he started a port of Tcl 3.x to the Amiga.  He has a working
  520. version, but is no longer working on it.  His version uses the
  521. Amiga's shared libraries and implements the "send" command.
  522. He wrote a MIDI file loader and player as well.  Contact him for
  523. further details.  
  524.  
  525.     Ty Sarna <tsarna@endicor.com> has ported Tcl 6.x to the Amiga.  
  526. He says:
  527. > I've ported 3.3 and several 6.x versions to the Amiga, and it can be
  528. > done in under and hour if you leave out the "Unix" functionality.
  529. > However, "Unix" functionality includes things like file I/O!
  530.  
  531.     Another Amiga user, colas@opossum.inria.fr (Colas Nahaboo), mentioned
  532. that using Amiga gcc and the PD X server DaggeX and Xlibs that a port of
  533. Tk might be possible.
  534.  
  535.     hnm@hermes.bouw.tno.nl (Marco van der Heiden) has completed a port
  536. to the Amiga, and suggests Amiga developers contact him by email.  
  537.  
  538.     Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
  539. for the latest port locations.
  540.  
  541.  
  542. F. NeXT
  543.  
  544.     Gianmaria Bertanzon <gm@itnsun4.lii.unitn.it> reports:
  545. We are using tk3.2 on NeXT ( Motorola ) under NextStep 3.0 under X.
  546. The compilation was easy. (we do not remember precisely all the steps)
  547.  
  548.     Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
  549. for the latest port locations.
  550.  
  551.  
  552. G. Other
  553.  
  554.     A port to the Apple IIgs and GNO 1.1/GSOS environment is underway.
  555.  
  556.     A beta port of Tcl 7 has been done to VxWorks.
  557.     You can find it at
  558. <URL:ftp://thor.atd.ucar.edu/pub/vx/tclvx7.0.v2.tar.gz>
  559. or a name similar (if updates have occurred).
  560.  
  561.     Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
  562. for the latest port locations.
  563.  
  564.  
  565. ------------------------------
  566.  
  567. From: FAQ General information
  568. Subject: -IV- Other than C, what languages can talk to tcl/tk?
  569.  
  570.  
  571. A. Shell
  572.  
  573.     There are at least two interfaces which are shell-like.  The
  574. first is wish, which is a windowing shell like interface that is a part
  575. of the Tk package.  The second is tcl, a line command interpreter that
  576. is part of the Extended Tcl package.
  577.  
  578. B. C++
  579.  
  580.     There is a package called Objectify which can be used to assist
  581. one in turning C++ classes into Tcl object types.
  582.  
  583.     If you wish to use C++ with Tcl then you must have your main()
  584. in a source file that is compiled with a C++ compiler; this will
  585. ensure that the necessary C++ pre-main initialization code is
  586. executed.
  587.  
  588.     You can call tcl and tk routines (or other C code) routines from C++ 
  589. provided that the function prototypes avoid C++ name mangling by using
  590. the C++ linkage specification :
  591.  
  592.     extern "C"  ... prototype ...
  593.  
  594.     Fortunately, tcl.h and tk.h will provide these specifications when
  595. compiled with a C++ compiler and so you can just use them directly.
  596.  
  597.     You can construct your main using normal tcl and tk routines, or
  598. use tkMain.c and tkAppInit.c with minor modifications. Ken Yap's
  599. patches obtainable from ... 
  600.  
  601.  
  602.     <URL:ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tk3.2forC++.patch>
  603. is a patch that allows tk 3.2 main.c and other extension routines
  604. to be compiled with a C++ compiler.  Thanks to Ken Yap <ken@syd.dit.csiro.au>
  605. for this code.
  606.  
  607.     C++ functions and static class member functions can be used to
  608. create Tcl command using Tcl_CreateCommand in the normal way. 
  609. Non-static member functions cannot be used so simply, Tcl would
  610. have to supply a "this" pointer. 
  611.  
  612.     Check out tcl++.h in Extended Tcl.  Based on an original
  613. implementation by Parag Patel, it defines a Tcl interpreter class by
  614. which Tcl interpreters can be created as objects under C++.
  615.  
  616.     Mark Diekhans and Karl Lehenbauer have used this, in
  617. combination with the handle facility in Extended Tcl, to build Tcl
  618. commands around C++ classes.
  619.  
  620.     The Tcl handle facility provides a way to manage table entries
  621. that can be referenced by a textual handle from Tcl code.  This is
  622. provided for applications that need to create data structures in one
  623. command, return a reference (i.e. pointer) to that particular data
  624. structure and then access that data structure in other commands.  An
  625. example application is file handles.
  626.  
  627.     A handle table was built containing pointers to the instances
  628. of a class that were to be accessed from Tcl, say a class `foo_cl', and
  629. then a "new" command defined that created an instance of that class and
  630. returned a Tcl handle to it.  The handle could then passed among Tcl
  631. commands that accessed each member function.  The handle is in effect
  632. an explicit `this' pointer.
  633.  
  634.     For example:
  635.  
  636.      set obj [foo_cl::new]
  637.      foo_cl::baz $obj "Hello world"
  638.      foo_cl::delete $obj
  639.  
  640. It's not totally object-oriented, but it's still very usable.
  641.  
  642.  
  643. C. Modula-3
  644.  
  645.     Norman Ramsey <elan.uucp!nr> says:
  646.     A long time back, Eric Muller posted a Modula-3 interface to
  647. the C Tcl library.  I wrote down a Modula-3/Tcl interface that used
  648. Modula-3 types rather than C types, and that used objects to build
  649. closures for commands.  I wrote part of the implementation but never
  650. finished it.  I have mailed copies to carroll@udel.edu, who asked the
  651. question, and I will post them if there seems to be general interest.
  652.  
  653.     Also, there is an interface between Tk and Modula-3 that is a part
  654. of the Modula-3 archives on gatekeeper.dec.com, and Tcl-DP and
  655. Modula-3 have been merged.
  656.  
  657.  
  658. D. Eiffel
  659.  
  660.     stephan@cs.tu-berlin.de (Stephan Herrmann) says:
  661.     ... [the tclish package provides] the marriage of two very different
  662. principles by means of combining two programming languages into a
  663. hybrid program architecture.  
  664.  
  665.     There are three classes for the user - tcl interpretor, tk application,
  666. and tk window.  See <URL:ftp://hepunx.rl.ac.uk/pub/eiffel/tclish> for
  667. details.
  668.  
  669.  
  670. E. Ada
  671.  
  672.     dennis@dennis.cs.colorado.edu (Dennis Heimbigner) introduced
  673. an adatcl package which gives Ada programmers access to Tcl interpreters.
  674. See the catalog for details of the package.
  675.  
  676. F. Perl
  677.  
  678.     Two different projects are underway - see comp.lang.perl
  679. for discussions on adding a Tk like interface to Perl version 4 as well
  680. as Perl version 5.  This is more an interface based on Tk ideas
  681. than to actual Tcl code from what I understand.
  682.  
  683. G. Prolog
  684.  
  685.     The package ProTcl is an interface between Prolog and Tcl/Tk.
  686. It works best with ECLiPSe, but the foreign interface of SICStus and Quintus
  687. is also provided. The interface is dynamically loaded into a Prolog process
  688. and it gives access to Tcl commands and to handling Tk events. It is also
  689. possible to call Prolog from Tcl, handle Tk events in Prolog and to
  690. pass Prolog variables back to Tcl. See
  691. <URL:http://www.ecrc.de/eclipse/html/protcl.html> for more details.
  692.  
  693. H. Other
  694.  
  695.     Work at consolidating Python and Tk is underway - discussion
  696. is proceeding in comp.lang.python on this front as the code is primarily
  697. Python.
  698.  
  699.     Some work relating to the Fresco CORBA interpreter has resulted in a
  700. Tcl-based interpreter which interacts with that environment. 
  701.  
  702.     Some work on Tk bindings for the Dylan language are being investigated
  703. as well as Tk bindings for Sather.
  704.  
  705.     Duncan Sinclair <sinclair@dcs.gla.ac.uk> has details of a hack
  706. into wish.c some hooks for a Tk <-> any language system, and has been using 
  707. it for communication with functional languages such as Haskell and Lazy ML.
  708. A paper, plus sample code, is available by ftp from
  709. <URL:ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Duncan_Sinclair/fumx.*>.
  710.  
  711.     The InterLanguage Unification project is a system that promotes
  712. software interoperability via interfaces.  It has the ability to allow
  713. Common Lisp, ANSI C, C++, Modula 3 to interact and plans to add Python,
  714. Tcl, and GNU Emacs-Lisp shortly.
  715.  
  716.     Of course the Wafe application environment is designed to make
  717. it easier to do X like applications from within several languages using
  718. Tk as a basis.
  719.  
  720.     There are several interfaces to allow one to interface with SQL
  721. though some are specific to a database such as Oracle. 
  722.  
  723.     There is an interpretor for Silicon Graphics machines for SGI's
  724. GL language. 
  725.  
  726.     There is an interface to WOOL.
  727.  
  728.     For more details on the above efforts, (see also "tcl-faq/part04").
  729.  
  730.  
  731. ------------------------------
  732.  
  733. From: FAQ General information
  734. Subject: -V- What training material is available?
  735.  
  736.  
  737. A. Training courses, materials, etc.
  738.  
  739. 1. A text book by John K. Ousterhout is available from Addison Wesley.
  740. It's title is _Tcl and the Tk Toolkit_ and has an ISBN of 0-201-63337-X.
  741. The first printing was in April of 1994.  I believe that the third printing
  742. is now available.  The book primarily covers Tcl 7.3 and Tk 3.6.
  743.  
  744. 2. A physical copy of the Tcl / Tk distributed documentation is
  745. available at the Northside Copy Central in Berkeley under the name "TCL" and
  746. is titled "Tcl/Tk Documents".  Northside Copy Central is at 1862 Euclid 
  747. with a phone of (510) 849-9600.  It costs approx. $15-$20 for the book in
  748. a spiral bound, pink cover, clear plastic front and back format.
  749.  
  750. 3. A tutorial by Don Libes is in the works.  Here is a blurb from the author
  751. himself:
  752.  
  753. Title: Exploring Expect
  754. Subtitle: A Tcl-Based Toolkit for Automating Interactive Applications
  755. Publisher: O'Reilly and Associates, Inc
  756. ISBN: 1-56592-089-9
  757. Pages: 575
  758. Expected Date: October-November '94
  759.  
  760. For all of you who thought that the Expect man page was too long and too
  761. terse at the same time, this book provides relief.  "Exploring Expect"
  762. is an introduction and comprehensive tutorial to Expect.  Numerous
  763. examples are provided and explained, demonstrating how to save you time
  764. and money.  Example topics include how to write patterns, do signal
  765. handling, use Expect as a telnetable daemon, and use Expect with Tk and
  766. other Tcl extensions.
  767.  
  768. The book also includes an innovative introduction to Tcl - if you've
  769. had trouble using Tcl before, all of a sudden, it will make a lot more
  770. sense.  And while Exploring Expect concentrates primarily on using
  771. Expect with Tcl, programmers attempting to automate interactive
  772. programs using C, Perl, Python, or any other language will find this
  773. book helpful because many of the concepts underlying Expect-like
  774. programming are common to all languages.
  775.  
  776. 4. Additional books specifically dealing with Tcl are in the process of
  777. being written. For instance, by Brent Welch, _Practical Programming in
  778. TCL and TK_ to be published by Prentice Hall. See the Tcl bibliography
  779. for details of other references.
  780.  
  781. 5. Computerized Processes Unlimited has a combined Tcl/Tclx reference
  782. manual for sale.  They also offer courses on Tcl.
  783. (See also "tcl-commercial-faq") for more information.
  784.  
  785. 6. NeoSoft Communications Services teaches introductory and advanced
  786. Tcl courses on site or at their location in Houston, Texas.
  787. (See also "tcl-commercial-faq") for more information.
  788.  
  789.  
  790. See the Tcl bibliography for more books, magazine and journal articles ,
  791. proceedings papers, and thesises relating to the Tcl family of languages.
  792.  
  793. B.  Time-related seminars, conferences, sessions.
  794.  
  795. 1. There have been, in the past, seminars at Usenix and an MIT X
  796. conference taught by John Ousterhout (and sometimes by others) on Tcl and Tk.
  797. (See also "tcl-faq/part02") for the URL to the slides from the most recent 
  798. of these presentations.
  799.  
  800. 2. An upcoming USENIX symposium will be dealing with Perl, Tcl and other
  801. similar languages.  Here is the information I have to date.
  802.  
  803. Symposium on Very High Level Languages
  804. October 26-28, 1994
  805. El Dorado Hotel
  806. Santa Fe, New Mexico
  807. Program Chair: Tom Christiansen (tchrist@usenix.org)
  808. Extended abstracts due June 30, 1994
  809.  
  810. 3. University of Maryland Baltimore County is offering
  811. CMSC491C - Special Topics in Computer Science - Scripting Languages.
  812. This is an intro to scripting languages with an emphasis on Perl and
  813. Tcl, but also mentioning sed, awk, etc.  Taught by Bob Tarr, Tuesdays
  814. and Thursdays from 5:30-6:45pm.  Call (410) 455-2336 (Continuing
  815. Education Department) to sign up as a special non-degree candidate.
  816. Info provided by finin@cs.umbc.edu (Tim Finin).
  817.  
  818. 4. The UC Berkeley Extension program is offering a 10 week course on
  819. "Developing User Interfaces with X Windows and C++"taught by
  820. Sriram Srinivasan. This course is being conducted on the
  821. UC Berkeley (Berkeley, CA, USA) campus from Sep 15 thru Nov 17, every
  822. Thursday, from 7-10 p.m.  It includes Tcl, Fresco, ET++, as well as
  823. many other UI development choices. For course details, please contact
  824.       Mark Palermo
  825.       Continuing Education in Engg.
  826.       (510)642-4151, course@garnet.berkeley.edu
  827.  
  828. Course EDP number: EDP 308684
  829. Course Fees : $335
  830.  
  831.  
  832.  
  833. ------------------------------
  834.  
  835. From: FAQ General information
  836. Subject: -VI- Where do I report problems, bugs, or enhancements - or -
  837.         What is comp.lang.tcl?
  838.  
  839.     There are two alternatives for reporting bugs and problems.
  840. The first is the USENET news group <URL:news:comp.lang.tcl>, an unmoderated 
  841. USENET newsgroup, created for the discussion of the Tcl programming language
  842. and tools that use some form of Tcl, such as: the Tk toolkit for the X window
  843. system, Extended Tcl, and expect.  Please note that postings of source
  844. code to comp.lang.tcl does not automatically get archived on
  845. harbor.ecn.purdue.edu - if you want your code to be available from the
  846. User Contributions archive you will need to make arrangements with the
  847. folks there to have it added.  See elsewhere in the FAQ for more details on
  848. the harbor archive site.
  849.  
  850.     The second would be to report problems, suggestions, new
  851. ideas, etc. directly to the author.  Email to
  852.  
  853. John.Ousterhout@eng.sun.com (John Ousterhout)
  854.  
  855. will reach the author of Tcl and Tk - to find the email
  856. address of the authors of other Tcl/Tk based programs,
  857. (see "tcl-faq/part4"), and (see "tcl-faq/part5").
  858.  
  859.     One question that comes up fairly often concerning comp.lang.tcl
  860. is why it isn't split.  The newsgroup varies in traffic, but recently
  861. I have seen it as much as 45 messages a day (counting current cross
  862. postings, etc.)  Dr. Ousterhout was the created of the unmoderated
  863. comp.lang.tcl.  Currently, no one has come forward with the time and
  864. resources to run a discussion of how a split could be handled, nor
  865. have any moderators stepped forward to take over moderation of a group
  866. such as comp.lang.tcl.announce for instance.  So to date, such a question
  867. is good for adding to the existing traffic, but that is about all the
  868. farther things go.
  869.  
  870. ------------------------------
  871.  
  872. End of comp.lang.tcl Frequently Asked Questions (1/5)
  873. *****************************************************
  874. -- 
  875. :s Great net resources sought...
  876. :s Larry W. Virden                 INET: lvirden@cas.org
  877. :s <URL:http://www.mps.ohio-state.edu/cgi-bin/hpp?lvirden_sig.html>
  878. The task of an educator should be to irrigate the desert not clear the forest.
  879. -- 
  880. :s Great net resources sought...
  881. :s Larry W. Virden                 INET: lvirden@cas.org
  882. :s <URL:http://www.mps.ohio-state.edu/cgi-bin/hpp?lvirden_sig.html>
  883. The task of an educator should be to irrigate the desert not clear the forest.
  884.