Tcl 8.0a2 for Macintosh

by Ray Johnson
Sun Microsystems Laboratories
rjohnson@eng.sun.com

SCCS: @(#) README 1.21 97/01/22 18:52:15

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 <btlewis@eng.sun.com>.
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 from Lucent Technologies.  It's very cool.  The command
isn't actually in the core - yout need to do a "package require
tclapplescript" to get access to it.  This code will certainly be
changed a good deal before beta.  However, the core functionality is
there and is stable enough to use.  Send thank-you notes to Jim at
<wolfsuit@fast.net>.  Send bug reports to me. :(  Currently, there
is no documentation - that will be available in the next release.
(Jim currently has a web site with the basic documentation.)

Aside from that Tcl hasn't changed much.  I've made a small fix to 
the socket code and some other minor changes.  As usual let me know if
you have any problems.

3. 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.0a2.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.0a2.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.0a2.sea.hqx

    This release contains the complete source for Tcl 8.0a2.  In
    addition, Metrowerks CodeWarrior libraries and project files
    are included.  However, you must already have the More Files
    package to compile this code.

4. Documentation
----------------

The "html" subdirectory contains reference documentation in
in the HTML format.  You may also find these pages at:

	http://www.smli.com/research/tcl/man/

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).

5. Compiling Tcl
----------------

In order to compile Macintosh Tcl you must have the 
following items:

	CodeWarrior Release 9 or higher (newer is better)
	Mac Tcl 8.0a2 (source)
	More Files 1.4.3

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 or MW_TclHeader68K.

Special notes:

* Problem with dnr.c.  You will also need to modify the file dnr.c
  which is supplied by MetroWerks and included by the Mac Tcl project
  files.  This file uses C++ style comments which will not compile
  because the supplied project files have the "Strict ANSI" option
  set.  The best thing to do is simply change the C++ style comments
  into standard ANSI comment blocks.  You should also send a bug
  report to MetroWerks so they will fix this stupid problem.

* There is a small bug in More Files 1.4.3.  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.

6. Environment Variables
------------------------

Environment variables may be added to the system via three different 
mechanisms. The first is automatic inclusion of system variables.  These 
variables include things like the system folder path.  These variables are 
determined at startup time (for the interpreter) but are not changed if 
the system changes.  The following environment variables are created via 
this method:
	
	LOGIN - holds the Chooser name of the Macintosh
	USER - also holds the Chooser name of the Macintosh
	SYS_FOLDER - path to the system directory
	APPLE_M_FOLDER - path to the Apple Menu directory
	CP_FOLDER - path to the control panels directory
	DESK_FOLDER - path to the desk top directory
	EXT_FOLDER - path to the system extensions directory
	PREF_FOLDER - path to the preferences directory
	PRINT_MON_FOLDER - path to the print monitor directory
	SHARED_TRASH_FOLDER - path to the network trash directory
	TRASH_FOLDER - path to the trash directory
	START_UP_FOLDER - path to the start up directory
	PWD - path to the application's default directory

Environment variables may also be placed in a file.  A file named 
"Tcl Environment Variables" may be placed in the preferences folder.  
Each line of this file should be of the form "VAR_NAME=var_data".
	
For example,

	PRINTER=Joe's LW
	TCLLIBPATH=Lozoya:System Folder:Tcl Lib

The last alternative is to place environment variables in a 'STR#' 
resource named "Tcl Environment Variables" of the application.  This is 
considered a little more "Mac like" than a Unix style Environment
Variable file.  Each entry in the 'STR#' resource has the same format
as above.  The source code file "tclMacEnv.c" contains the
implementation of the env mechanisms.  This file contains many
#define's that allow customization of the env mechanisms to fit your
applications needs.

7. Macintosh Tcl Mailing List
-----------------------------

A Mailing List has been set up to discuss Macintosh related Tcl issues
including (but not limited to) MacTcl.  In order to use this Mailing
List you must have access to the internet.  If you have access to the
WWW the home page for this mailing list is located at the following
URL:

	http://www.smli.com/research/tcl/lists/mactcl-list.html

The home page contains information about the list and an HTML archive
of all the past messages on the list.  To subscribe send a message to:
	
	listserv@sunlabs.sun.com
	
In the body of the message (the subject will be ignored) put:
	
	subscribe mactcl Joe Blow
	
Replacing Joe Blow with your real name, of course.  If you would just
like to receive more information about the list without subscribing
but the line:

	information mactcl
	
in the body instead.



If you have comments or Bug reports send them to:
Ray Johnson
rjohnson@eng.sun.com

