May 00 Factory Floor
Volume Number: 16 (2000)
Issue Number: 5
Column Tag: Programming
CodeWarrior for Mac OS X
By Joe Hayden and Matt Henderson, Metrowerks, all rights reserved'
CodeWarrior for Macintosh, Release 6
What's going on with Release 6?
Joe: A lot! Since the CodeWarrior Release 5.3 Update went out in December, we have been working full-steam on Release 6. This is going to be our best and most stable release to date, and we expect to ship the product this Summer. I'll go through some of the new features below, the main one being targeting and hosting on Mac OS X. Apple has built a great OS and we are excited to be providing the tools that the Mac developer community will be using to target it.
IDE 4.1 will be a Carbonized PEF application. It will run on any Mac OS supporting the CarbonLib extension (currently Mac OS 8.1). On Mac OS X the IDE will have the new Aqua look and feel. Under Mac OS 8.1 - 9, it will retain the Classic Mac OS interface.
A new IDE feature enhances Preference Panels, allowing you to import and export to and from XML. We are adding a new Shielded Folders panel that gives the ability to specify which files and folders are skipped during certain operations. Previously, this was accomplished by enclosing the folder name with parentheses. The Shielded Folders panel will let you better define the type of operation for which a given folder should be shielded. For example, you may want to skip a folder for a build, but include it for a file compare operation. This feature will help you meet that demand. We've also added new controls to the Source Tree and File Mappings panels that make working with them more intuitive. In addition, the Remove Object Code dialog will have an option to recurse sub-projects.
The new Debugger will support single machine debugging on Mac OS X as well as remote debugging to X. There will also be new panels and a new UI for better remote debugging support in general.
MSL has been Carbonized. The SiouxWASTE text engine has been updated to WASTE 2.0 for use with Carbon. Other changes since the Release 5.3 Update include new hash containers and vector classes and further reorganization to clean up the increasing number of shared libraries. Multi-target projects will replace MSL Build Libraries, which are being moved to an Obsolete folder. Scripts will be available to load and build the common libraries from the IDE.
An updated Carbonized PowerPlant, Carbonized Profiler, and Carbonized PowerPlant Constructor with Aqua interface will be included in the new release.
What about Mach-O support?
Matt: Apple has told us that Mach-O is the preferred object file format for Mac OS X, and CodeWarrior will support it fully. Already, we've released preliminary versions of our PowerPC C/C++ compiler and linker that can build Mach-O executables. These tools are available on CodeWarrior for Mac Release 5, and will be updated on Release 6. However, they will remain in the pre-release folder in this release.
Our Mach-O compiler is, of course, based on the same C/C++ front-end and PowerPC optimizer that our PEF tools have been using for years. Thus, developers who need to build Mach-O versions of their products can expect the same high level of language conformance and code quality that our existing Mac compiler provides.
Likewise, PowerPlant and MSL have been fully Carbonized, so developers can use them to build Mach-O applications without difficulty.
The IDE does not yet support debugging Mach-O executables, but it will. There are still a number of low-level issues to work out regarding our debugger and Mach-O, and we've already started. You can expect to see full Mach-O debugging support for CodeWarrior in a future release.
At WWDC this month, we'll be providing a road map for our CodeWarrior for Mac products. This will include details on our Mach-O support.
What do you think about Mac OS X and Aqua?
Matt: As a company, Metrowerks is ecstatic about Mac OS X. It's amazingly powerful, it's beautiful to look at, and best yet, it's going to ship. To borrow a phrase, it's "insanely great," and we can't wait until Mac OS X is everywhere.
A lot of us at Metrowerks remember what it was like just after Apple introduced the PowerPC, and that's the level of excitement that Mac OS X has brought to us. We love to watch Apple push the OS envelope, and we're going to help them do that by enabling Mac developers to get their products onto OS X as quickly and easily as possible.
As for Aqua, I'm responsible for a lot of the IDE's user interface, so I've been thinking about it a lot. Like most everyone else, we had no idea that Aqua was on its way. The first time that I saw it was on Apple's web site during MacWorld Expo in January. I was stunned, and more than a little skeptical. Since then, I've had the opportunity to use and work with Aqua, and it's completely won me over. What's most impressive about Aqua is not what's new and different, but how familiar it feels. It's very obvious that Mac OS X is Mac OS, and I think that it's a great triumph for Apple's Aqua designers that they've created an interface that's at once astonishingly innovative and also completely comfortable.
What's going on with MPTP?
Joe: MPTP is alive and well. There have been some changes, including a new administrator, and it is taking a little time to get things running as smoothly as before. There was some concern about a message that went out in February about the MPTP server being temporarily unavailable. This was due to some minor changes being made to our network and it was back up a short time later. Unfortunately, we didn't follow up with a message indicating that the service was resumed, causing some people to think we may discontinue MPTP. This is certainly not the case. In fact, by the time this is published, most if not all Release 6 components should be available from MPTP.
What is the future of CodeWarrior for Macintosh?
Matt: Since Metrowerks is now part of Motorola's Semiconductor Product Sector (SPS) and Apple is Motorola SPS's largest customer, CodeWarrior for Mac OS will continue to be top priority for Metrowerks. The vast majority of software for Mac OS is created with CodeWarrior, so the benefits of CodeWarrior for Mac OS to Motorola SPS are obvious.
With Release 6, you'll see us take care of all the basics for Mac OS X development. After that, we're going to work hard to make sure that developers can fully exploit the power of Mac OS X. In particular, we plan to rapidly incorporate support for new Mac OS X technologies into PowerPlant. Expect to see PowerPlant classes for Apple's new Carbon Events API, the CoreFoundation APIs, the Data Browser API, pre-emptive threading, and the Quartz graphics APIs.
Likewise, we're still hard at work on the rest of our Mac tools. We're improving Java support for Mac OS, and full Java support for Mac OS X is on the way. Now that the IDE has made the transition to Carbon, you can expect many new and cool IDE features. And of course, we never let up on our compilers. We continue to work hard on C/C++ language conformance and PowerPC code generation.
So, the future of CodeWarrior for Mac OS has never been brighter. CodeWarrior was there for you when you needed to move to PowerPC, it's here for you now to move to Mac OS X, and it will be there in the future as Mac OS continues to grow and become more powerful.
Joe Hayden is the Product Engineering Manager for CodeWarrior on the Macintosh. He spends his time developing efficient ways to deliver large software products like CodeWarrior. Write to him at firstname.lastname@example.org.
Matt Henderson is a senior engineer on the CodeWarrior IDE team and Technical Lead for CodeWarrior Mac OS X tools.