CodeWarrior II
Volume Number: 10
Issue Number: 5
Column Tag: Tools Of The Trade
Codewarrior, A Second Look
There’s more, it’s better, and they’ve responded to customer requests
By Dennis Cohen, Claris Corporation
Well, here it is, ten weeks after the release of Metrowerks’ CodeWarrior product
and coincident (as of this writing) with their DR2 release on CD. How are the company
and the product shaping up and living up to the promises made and implied? Now
seems like a good time to take a reading.
DR1 to DR2 Activity
The DR1 release of CodeWarrior Gold, made available during San Francisco’s
MacWorld Expo in January, generated a lot of enthusiasm, e specially considering the
barely alpha and pre-alpha state of the various components. Included, licensed from
Apple, were MPW (sans compilers but with all the other tools), ToolServer,
SourceServer, ResEdit, DocViewer, MacsBug (including Discipline), and the standard
system utilities plus Apple’s Mac on RISC documentation. At MacWorld, only the
Bronze and Gold versions were being sold. Now, with the release of the Power
Macintosh, the Silver edition has been made available. Interestingly, the product was
localized for five different (human) languages at introduction and Metrowerks wasn’t
taking the easy way out on languages - they even had a Kanji version. This practice has
been continued with the DR2 release.
The environment, described in my previous article (January, 1994) was
well-received, but a few omissions were noted in discussions on the various electronic
services. Foremost among these was the inability to use substitute editors or script the
environment. While not originally in the plans for version 1.0, the requests for this
were sufficient to get Metrowerks to implement full AppleEvent support in the Project
Manager and it is available in the DR2 releases. Demo versions of both Object Master
and BBEdit are available on the CD. Similarly, I mentioned that there would probably
be mixed reaction to the lack of hardcopy documentation. Metrowerks plans to make
hardcopy documentation available at an additional charge after 1.0 ships.
The C and C++ compilers for the 68K and the C compiler for the Power
Macintosh were at alpha 1, everything else was a development version. Missing from
the C++ (and still missing with the alpha 4 releases on DR2) are exceptions and
templates, promised to be implemented soon with exceptions at a higher priority than
templates since Metrowerks needs exceptions for their own use. One of the Metrowerks
engineers said on the Internet that the current plan called for having templates in
place by the August CD, with the possibility of a preliminary version via patch before
then. By the time this article appears in print, Metrowerks plans to have patchers out
on the networks to update users to beta 1 of the C and C++ compilers. Included are the
Plauger/Plum-Hall standard C Library and the emerging Plauger C++ library which
is tracking the ANSI standard. The PowerPC C/C++ compiler is shipped as a fat
binary, allowing you to create native code for the Power Macintosh on either a
68K-based machine or a Power Macintosh. For those who wish source to these
libraries, Metrowerks has arranged with Plum-Hall to make it available for their
licensing cost (approximately $100).
There are notes and sample projects for using MacApp 3.1 with CodeWarrior. The
examples all seem to build and execute properly, but I didn’t have enough time to try
anything beyond this test for MacApp.
Pascal was a pretty immature compiler on DR1, but got patched to a somewhat
usable tool between CDs. The DR2 release, while still pre-alpha at d7, is now usable
for serious work. There should be an updater on the networks by the time you read this
to move the Pascal compiler to alpha 1. A PowerPC Pascal compiler is promised during
the second calendar quarter. Until that time, purchasers of the Silver edition will
receive the 68K Pascal compiler so that they may start their porting effort.
The DR1 68K Debugger looked nice, but a large number of its features were not
yet implemented, with no 601 native Debugger available. With DR2, we now have
Debuggers for both platforms which are almost feature-complete. You can modify
variable values in the Debugger and continue running and you can get assembly-level
displays while debugging. You can even use the native Debugger to debug MacApp 3.1
applications. The Debuggers are real-world examples of using PowerPlant (see
below); both the document and symbolic views are implemented via the class library.
New with DR2 are active profilers for both processors. While active profilers do
require some source code modification, they allow you to gather more (precise) data
than that provided by a passive profiler. Besides, we all conditionally compile that code
for a variety of reasons, so it isn’t a detriment when we send out final or even
prerelease versions, right?
PowerPlant, the Metrowerks class library, got a very favorable reaction to its
non-monolithic nature and full support for scriptable, recordable, and attachable
applications. There were, however, pockets of discontent due to the fact that
applications built based upon PowerPlant are System 7-only. For DR2, persistent
object support was added through the inclusion of NeoPersist from NeoLogic and the
documentation went to seven chapters (not counting the separate NeoPersist
documentation) from the four which were on DR1. In addition, an encrypted copy of
NeoAccess is on the CD in case you want to license it from NeoLogic. Rez templates are
included for the construction of PowerPlant object resources. PowerPlant
Constructor, while still pre-alpha, now has its basic functionality implemented.
Rich Siegel, of Bare-Bones Software (BBEdit), has written a THINK Project
Converter and has given Metrowerks permission to freely distribute it. Other
third-party tools and demos are also included on the DR2 CD: the above-mentioned
NeoAccess, a demo version of Resorcerer, a demo version of Object Master which can
be used for 20 minutes at a time, a demo version of BBEdit, and a discount offer for
TheDebugger from Jasik Designs.
Not available on the CD, but available on the Internet and some other services, is
a TCL Converter package by Jon W{tte (yes, that’s how he spells it). This package
allows you to convert your (unmodified) Think Class Library to be compiled by a
“stock” C++ compiler, such as the one in CodeWarrior or MPW.
Future Plans and Promises
Purchase of a Metrowerks CodeWarrior product entitles the purchaser to the CD
they receive and the next two releases with the releases scheduled for May, August, and
January. Between DR1 and DR2, Metrowerks posted patchers to America Online, the
Internet, CompuServe, AppleLink, and probably a few services I don’t frequent,
allowing users to incrementally update their copies to intermediate versions. This is a
practice which Metrowerks plans to continue. Educational pricing has been set in place
and the Gold version is $99 to full-time students, Bronze and Silver slightly less.
An interesting announcement from Greg Galanos is that on DR3 (due at this year’s
WWDC), there will be library support for creating MPW Tools with the Metrowerks
compilers. This will allow you to create custom tools for use with the included MPW
and ToolServer releases.
Metrowerks personnel maintain an active presence on the major electronic
services (Internet, AppleLink, CompuServe, and America Online) and take bug reports
and suggestions via their Internet and AppleLink addresses - support@metrowerks.ca
on the Internet and SUPPORTWERKS on AppleLink. In the “ReadMe” on DR2, Greg
Galanos says to send your bug reports and your suggestions in; they listen and they
respond. So far, that is definitely the case, and the electronically connected developer
community is responding quite favorably. This provides validation for a thesis I’ve
seen expressed that the developer community will be far more tolerant of minor
shortcomings and missing features in their tools if the tool providers treat them as
partners as well as customers and are responsive to input - even if the response is not
always affirmative.
As I wrote in the January issue, it is getting to be an exciting time for Macintosh
developers.
[CodeWarrior is available through the Mail Order Store (page 89, this issue). If
you order through MacTech, ask and you’ll get a subscription bundled with your order
at the same price. Ed nst]
Other Power Macintosh
Development Tools Announced
As mentioned in the main article, Language Systems (Reston, VA) has announced a
Pascal compiler under MPW for the PowerPC chip. In addition, they have announced
that there will be a version of their FORTRAN compiler to generate PowerPC code. The
Pascal compiler is, to most all intents and purposes, the MPW Object Pascal compiler
which they have licensed from Apple. Thus, for those of you who were wondering if
there would be an upgrade path for your MPW Pascal, Language Systems is now it. I
haven’t seen the PowerPC-generating compiler as yet, just as I haven’t seen one from
Metrowerks.
Just a few days before this writing, Symantec announced their 7.0 upgrade
package for Symantec C++ (68K Macintosh) and added mention of a cross-compiling,
drop-in tool for an additional $100 which would generate PowerPC code. This is an
interim solution until they have their new, native environment ready.
Microsoft has announced that they will be creating a Windows NT-hosted
cross-compiling version of their popular Visual C++ product for both 68K and
PowerPC-based Macintoshes, both of which will leverage off the Microsoft Foundation
Classes.
Borland has stated that they will be entering the PowerPC development tools
arena as well, but haven't said with what and speculation is wide-ranging.
As before, Apple is still shipping the FastTrack SDK (MPW-hosted Lucid
cross-compiler) and some early adopters are still using IBM's xlc compiler on an
RS6000 to build for PowerPC.