TCL Update '99
Robert Huber, TCL Developer

Think Class Library 1.3.1

CodeWarrior Port Package
11 May 1999
Produced by lobsterman


About the TCL port package
Compiling the TCL source code
Converting your application source code
Version history
Legal Notices
Web Sites for TCL Updates

Download Size
CodeWarrior TCL Port v1.3.1 2.9M
TCL Version v1.2 Upgrade 223k
TCL Version 1.1.2 Upgrade 229k

Have questions about porting your TCL code? <Click here>

About the TCL port package

This document describes the Pascal TCL CodeWarrior Port Package which allows compilation of the Pascal Think Class Library and projects based on it with the Metrowerks CodeWarrior 68K and PowerPC compilers. Revisions to TCL were made by Marcel Achim of Metrowerks so that it would compile using the CW compilers. Vik Rubenfeld beta-tested this version of TCL on a 100,000 line+ (not counting TCL) program, and it seems to work just like TCL 1.1.2 did when compiled with Think Pascal. Marcel even ported the exceptions-handling mechanisms for both 68K and PPC. This package will be updated regularly as new versions of the Metrowerks compilers become available and as new bug fixes or features are incorporated. The most recent version is available at lobsterman's webserver. This package does not include the Think Class Library itself, which was included with your purchase of Symantec Think Pascal. Please note that this package is provided free of charge.

To use the Pascal TCL CodeWarrior Port Package, you need the following items:
- Metrowerks CodeWarrior Pro 4 or newer
- 20MB disk space
- A 680x0 Macintosh with at least 8MB of RAM, or a PowerPC Macintosh with at least 16MB of RAM

To port your own TCL-based projects to Codewarrior you need to convert your source code to a form usable by the Metrowerks compilers. The source code of the Think Class Library itself was converted and updated by a variety of programmers (Marcel Achim, Vik Rubenfeld, etc.). This has allowed us to compile the TCL source code into a library which you may include with your projects. I maintain a list of bugs found in the TCL. If you discover a bug in the TCL (whether or not it is related to the CodeWarrior port), please send me an e-mail message describing the nature of the problem so that I may include it in the bug list (and correct it in the CodeWarrior port).

Compiling the updated TCL source code

The package includes everything you need to compile TCL code with Codewarrior. The TCL.prefix file declares a number of compiler variables used in this version of TCL. Use it as the prefix file. You set the prefix file in the Pascal Language preferences dialog. Please note in particular the following compiler variable statement {$SETC OptimizeHierarchyIsOff = false} OptimizeHierarchyIsOff corresponds to the Optimize Hierarchy checkbox in the Pascal Language preferences. Set this variable TRUE if that checkbox is unchecked. Set it FALSE if that checkbox is checked. Compile the TCL library by chosing "Make" from the "Project" menu.

Converting your project code

Creating a Project File using the "TCL Project Multi-Target" stationary. To use this stationary move the folder "TCL Project Multi-Target" into the folder "Pascal" within the folder "MacOS" within the folder "(Project Stationery)". This new project includes the TCL library and all project preferences have been set properly. This version of TCL requires the Universal Interfaces, so if you are porting a TCL application from Think to CW, you will need to update your code to use the Universal Interfaces. The Universal Interfaces come with your CodeWarrior CDs. See the enclosed file "Porting to UPI FAQ v1.0" for information on preparing your application to use the Universal Interfaces. SANE calls such as Str2Num, Num2Str, etc. are no longer supported. Sane2FP reimplements a number of commonly used SANE calls under the Universal Interfaces. Replace the test source files with your own source code files and build the project by chosing "Make" from the "Project" menu.

Version history

04/18/96 - Version - First release.
04/24/96 - Version - mods to CMenuDefProc.p to support PPC.
04/25/96 - Version - mods to MethTableUtils.p.
07/10/96 - Version 1.2 - mods to CMenuDefProc.p, cw_gluePPC.c, FW_Tearoffs.p, MethTableUtils.p, & CompilerVars.prefix. TCL lib files updated. Starter App project files included.
12/23/98 - Version 1.3 - see file "changes made since v1.2". updated for CodeWarrior Pro 4, switched support for the TCL from Vik Rubenfeld to lobsterman,
05/11/99 - Version 1.3.1 - maintenance release, commented out unused variables, etc.


Thanks to Marcel and Metrowerks for CW Pascal, CW Object Pascal, and CW PPC Pascal, and thanks to Marcel for his great contribution to the Pascal programming community with this version of TCL. Marcel: "I just did some coding, note that Metrowerks doesn't support TCL. I did it to test my compiler that's all but if it can help someone else that's even better."

Thanks to
Vik Rubenfeld for his contributions to the CW Port and the Porting FAQ.

Legal notices

This package and its contents is made available to you an an "as is" basis. No warranty is made, either express or implied, by statute or otherwise, regarding this package - including TCL, this version of TCL - its quality, its performance, its merchantability, or its fitness for any particular purpose. All of the authors assume no liability for damages, direct or consequential, which may result from the use of this package or any of its contents.

Web site for TCL updates

Look for updates and support files on lobsterman's webserver or Bill Catambay's Pascal Central web

Copyright © 1999 Robert Huber . All Rights Reserved.