Tcl 8.0p1 for Macintosh by Ray Johnson Sun Microsystems Laboratories rjohnson@eng.sun.com SCCS: @(#) README 1.30 97/11/20 22:01:16 1. Introduction --------------- This is the README file for the Macintosh version of the Tcl scripting language. The file consists of information specific to the Macintosh version of Tcl. For more general information please read the README file in the main Tcl directory. 2. What's new? -------------- The main new feature is the Tcl compilier. You should certainly notice the speed improvements. Any problems are probably generic rather than Mac specific. If you have questions or comments about the compilier feel free to forward them to the author of the compilier: Brian Lewis . Several things were fixed/changed since the a1 release so be sure to check this out. The largest incompatible change on the Mac is the removal of the following commands: "rm", "rmdir", "mkdir", "mv" and "cp". These commands were never really supported and their functionality is superceded by the file command. I've also added in a new "AppleScript" command. This was contributed by Jim Ingham who is a new member of the Tcl group. It's very cool. The command isn't actually in the core - you need to do a "package require Tclapplescript" to get access to it. This code is officially unsupported and will change in the next release. However, the core functionality is there and is stable enough to use. Documentation can be found in "AppleScript.html" in the mac subdirectory. The resource command has also been rewacked. You can now read and write any Mac resource. Tcl now has the new (and VERY COOL) binary command that will allow you to pack and unpack the resources into useful Tcl code. We will eventually provide Tcl libraries for accessing the most common resources. See the main Tcl README for other features new to Tcl 8.0. 3. Mac specific features ------------------------ There are several features or enhancements in Tcl that are unique to the Macintosh version of Tcl. Here is a list of those features and pointers to where you can find more information about the feature. * The "resource" command allows you manipulate Macintosh resources. A complete man page is available for this command. * The Mac version of the "source" command has an option to source from a Macintosh resource. Check the man page from the source command for details. * The only command NOT available on the Mac is the exec command. However, we include a Mac only package called Tclapplescript that provides access to Mac's AppleScript system. This command is still under design & construction. Documentatin can be found in the mac subdirectory in a file called "AppleScript.html". * The env variable on the Macintosh works rather differently than on Windows or UNIX platforms. Check out the tclvars man page for details. * The command "file volumes" returns the available volumes on your Macintosh. Check out the file command for details. * The command "file attributes" has the Mac specific options of -creator and -type which allow you to query and set the Macintosh creator and type codes for Mac files. See file man page for details. * We have added a template for creating a Background-only Tcl application. So you can use Tcl as a faceless server process. For more details, see the file background.doc. If you are writing cross platform code but would still like to use some of these Mac specific commands, please remember to use the tcl_platform variable to special case your code. 4. The Distribution ------------------- Macintosh Tcl is distributed in three different forms. This should make it easier to only download what you need. The packages are as follows: mactk8.0.1.sea.hqx This distribution is a "binary" only release. It contains an installer program that will install a 68k, PowerPC, or Fat version of the "Tcl Shell" and "Wish" applications. In addition, it installs the Tcl & Tk libraries in the Extensions folder inside your System Folder. mactcltk-full-8.0.1.sea.hqx This release contains the full release of Tcl and Tk for the Macintosh plus the More Files packages which Macintosh Tcl and Tk rely on. mactcl-source-8.0.1.sea.hqx This release contains the complete source for Tcl 8.0. In addition, Metrowerks CodeWarrior libraries and project files are included. However, you must already have the More Files package to compile this code. 5. Documentation ---------------- The "html" subdirectory contains reference documentation in in the HTML format. You may also find these pages at: http://sunscript.sun.com/man/tcl8.0/contents.html Other documentation and sample Tcl scripts can be found at the Tcl ftp site: ftp://ftp.neosoft.com/tcl/ The internet news group comp.lang.tcl is also a valuable source of information about Tcl. A mailing list is also available (see below). 6. Compiling Tcl ---------------- In order to compile Macintosh Tcl you must have the following items: CodeWarrior Pro 1 Mac Tcl 8.0 (source) More Files 1.4.3 There are two sets of project files included with the package. The ones we use for the release are for CodeWarrior Pro 1, and are not compatible with CodeWarrior Gold release 11 and earlier. We have included the files for earlier versions of CodeWarrior in the folder tcl8.0:mac:CW11 Projects, but they are unsupported, and a little out of date. As of Tcl8.0p2, the code will also build under CW Pro 2. The only change that needs to be made is that float.mac.c should be replaced by float.c in the MacTcl MSL project file. However, there seems to be a bug in the CFM68K Linker in CW Pro 2, which renders the CFM68K Version under CW Pro 2 very unstable. I am working with MetroWerks to resolve this issue. The PPC version is fine, as is the Traditional 68K Shell. But if you need to use the CFM68K, then you must stay with CW Pro 1 for now. The project files included with the Mac Tcl source should work fine. The only thing you may need to update are the access paths. Unfortunantly, it's somewhat common for the project files to become slightly corrupted. The most common problem is that the "Prefix file" found in the "C/C++ Preference" panel is incorrect. This should be set to MW_TclHeaderPPC, MW_TclHeader68K or MW_TclHeaderCFM68K. To build the fat version of TclShell, open the project file "TclShells.¼", select the "TclShell" target, and build. All of the associated binaries will be built automoatically. There are also targets for building static 68K and Power PC builds, for building a CFM 68K build, and for building a shared library Power PC only build. Special notes: * There is a small bug in More Files 1.4.3. Also you should not use MoreFiles 1.4.4 - 1.4.6. Look in the file named morefiles.doc for more details. * You may not have the libmoto library which will cause a compile error. You don't REALLY need it - it can be removed. Look at the file libmoto.doc for more details. * Check out the file bugs.doc for information about known bugs. If you have comments or Bug reports send them to: Jim Ingham jingham@eng.sun.com