TweetFollow Us on Twitter

Nov 97 Factory Floor

Volume Number: 13 (1997)
Issue Number: 11
Column Tag: From The Factory Floor

CodeWarrior Rhapsody Update, Part 2 and a Quick Look at WarriorWorld

by Dave Mark, ©1997 by Metrowerks, Inc., all rights reserved.

Last month's Factory Floor column featured the first half of an interview with the CodeWarrior Rhapsody team. This month, we'll finish off this interview, starting with a look at the yellow box debugging plans. We'll also take a quick look at a cool new web site, known as WarriorWorld...

Berardino E. Baratta is Vice President, Research and Development for Metrowerks Corp. With the Metrowerks R&D department quickly approaching 100, he has little time left for doing actual coding but he does still sneak it in (mostly by working on it late at night, or early in the morning, depending on how you look at it). Most recently having done compiler and linker modifications for PalmPilot Release 3. He also tries to spend as much time as possible with his wife and young son.

Since starting at Metrowerks in early 1996, Lawrence You has been helping shape the CodeWarrior debugging architecture for non-Mac OS targets, including Rhapsody. He has been a longtime Macintosh developer, also working for Apple and Taligent.

David Hempling is the CodeWarrior Latitude Techinical Lead at Metrowerks, where he is bringing the Latitude Technology to Rhapsody as well, opening new doors for Metrowerks existing applications. David co-founded Quorum Software Systems in 1989 where Latitude was born and has nurtured this unique porting technology as The Latitude Group's President from 1994 to 1996.

Dave: Will MetroNub exist in the yellow box? What are the yellow box debugging plans?

Lawrence You: From the point of view of the CodeWarrior developer, the debugging environment will be very similar, if not identical, to the environment hosted on other platforms. We will know that we did our job well if today's CodeWarrior user cranks up their copy of MW Debug on Rhapsody and says "hey, this looks exactly the same as what I'm used to." There is a growing emphasis on cross-platform development, making ease-of-use and consistency very important in debugging environments.

But, why stop at developing and debugging on only one platform at a time? A developer's needs are different than the customer. Why should a developer be required to use a different platform and often different development tools for every target they develop for? If they are comfortable using an environment on Rhapsody (or MacOS or WindowsNT) and want to use it to cross develop all their versions in one place, why should they have to learn how to use a new debugger? Consider just the number of Yellow Box implementations alone that a developer will have to use: to start, there will be native Yellow Box in PowerPC, native Yellow Box on Intel, and the Yellow Box API on Mac OS.

Considering all of the possibilities, our main goal is to evolve our existing debugging environment into one that can be used for many targets at the same time. Just as we've recognized that our CodeWarrior IDE needed to have the ability to create multiple "targets" which can be used to create fat or cross-developed applications, we also recognize that we have to provide a solution that will let a CodeWarrior user debug for those different targets.

You can see evidence of this strategy already. Just to give you an idea of the extent we believe in this, our Macintosh and Windows debuggers already support C/C++ on MacOS/68K, MacOS/PowerPC, Windows 95/NT/Intel, Sony PlayStation/MIPS, Motorola PowerPC EABI (embedded)/MPC821 and MPC860, PalmOS/68K, OS9/PowerPC not to mention Java and Pascal on the desktop platforms. So along those lines, the Rhapsody targeted debugger will "just" be another plugin; to the CodeWarrior user, MW Debug will look just about the same.

But, there are differences which we'll be addressing. Objective C is different than C and C++. Object file and symbolic information formats are different. MetroNub, which is just a low-level Macintosh INIT, will be replaced by a server. Multitasking and threading will be more prevelant; multiprocessor hardware will be less forgiving of errors in concurrent programs. These are just a few examples.

The Objective-C runtime will require we change the debugger to allow the user to inspect objects and polymorphic functions. Also, the exception handling mechanism is different from C++ but the user will still have the ability to catch exceptions with the debugger. We should also be able to maintain our feature of being able to debug across virtual machine boundaries, like you see with programs which use mixed 68000, PowerPC or JavaVM code.

The linker will generate Mach-O output for PowerPC and Intel, which is different from PEF and XCOFF files. Source-level debugging information will go into a separate debugging "section" of the file, although we may also give the user an option to split the symbolic info into a separate file, kind of like ".SYM"/".xSYM". We have been using DWARF for our MIPS and PowerPC embedded compilers and debuggers and have found it to be a more neutral and expressive debugging information format, not to mention that it is a standard. So we'll be using that instead of the Apple SYM format. To ensure a high level of interoperability, we're also working with Apple to help ensure that files created and used by gnu tools (gcc and gdb) can be used in a mix-and-match fashion.

MetroNub is fine for MacOS debugging, but since Mach differs so dramatically from MacOS, we're moving towards a debugging client/server architecture that can be used on not just Rhapsody, but also for other future systems. Some notable differences are that there is the notion of a single user using a host on MacOS. The Mach tasking model allows multiple users, and the new server will allow for that. The new debugger server can be used locally and remotely with little difference except for responsiveness, opening up possibilities for WAN-based graphical debugging.

Driver developers should find remote debugging with a microkernel useful. It's not clear to me yet what low-level code you won't be able to debug locally (or in some cases remotely), but it seems likely many drivers that were impossible to debug on a Mac with CodeWarrior should look similar to applications on Mach. At the very least, we'll make a strong effort to not preclude driver debugging.

Like other modern operating systems, Mach will allow multithreaded programs to run truly concurrently on mulitprocessor machines. This opens up some new opportunities and exposes errors. Many developers have seen "Heisenbug" effects (even without MP machines), whereby a debugger becomes intrusive, ever so-slightly, changing the events in a program. This is an effect that, in some cases, is impossible to avoid. Most debuggers on multithreaded systems, including gdb, allow the user to examine threads and set breakpoints, but we'll work hard to make sure the user has the most flexibility to debug concurrent programs on MP hardware.

Dave: How does PowerPlant play in all this?

Berardino Baratta: We have a large investment in PowerPlant and don't plan on throwing this away, but we are not planning on porting PowerPlant to Rhapsody as a native framework. These are many reasons for this but the simplest one is that PowerPlant was designed from the ground up to be a Mac OS framework, and as such would require a complete rewrite in order to be efficient under Rhapsody, meaning that users couldn't take advantage of their investment in PowerPlant without rewriting their code. We feel that if users are going to be rewriting their code, then they should target the Yellow Box API directly and take advantage of that API's object oriented design from the start.

We are still planning on providing our users with a path to Yellow Box through the use of our Latitude porting library. We ourselves are relying on this path in order to port our IDE native to Rhapsody. The combination of Latitude and PowerPlant allows users to maintain their current design and yet bypass both PowerPlant and Latitude in order to directly access the Yellow Box APIs in order to implement native functionality, thereby taking advantage of features that are only present in the Yellow Box.

Dave: What's the timeline for all this?

Berardino Baratta: As I write this, we've just recieved a version of Rhapsody on PowerPC, and don't know yet how stable this version is. That is one of the largest variables in our being able to deliver the above mentioned tools in our CodeWarrior Professional Release 2 delivery which is supposed to ship on October 15th. We have full support from Apple engineers so we feel that if it can be done, we will work together to make sure that it is done.

We are not putting all our eggs into the Rhapsody native basket though, in that we are planning on implementing cross development support from MacOS as a first step in our plan. We don't see any road blocks in that plan, so at the very least users will have access to these cross compilers, linker and debugger in Pro2 and we'll then invite users to participate in our beta testing program in order to access our native toolset. This is only Plan B, as I speak, we're still on track for Plan A.

The Pro 2 release of Rhapsody tools, will be of prerelease quality, but we'll patch them over time, in order to ship final releases of the tools, around the same time that Apple goes final on their first public release of Rhapsody. Very similar to our strategy in 1994, during the transition from 68K to PowerPC architecture for MacOS. During the interim, we plan to allow our users to work native on Rhapsody from Day One of their receipt of the first Developer release of the new Operating System.

Dave: By the time this issue hits the streets, developers will have had a chance to play with both the first developer's release of Rhapsody as well as a new version of Latitude for that release. What kinds of things will people be able to do with this new version of Latitude?

Dave Hempling: Our development of Latitude for Rhapsody has gone extremely well. We prepared for Rhapsody by doing initial development on the OpenStep 4.2 release on Intel while we awaited Apple's PowerPC Rhapsody Developer Release. All of Latitude's File and Resource Manager functionality was made endian neutral at that time so that we could open, read, and write Mac Resource Forks in OpenStep. Once the basic Graphical User Interface components were coded and in place, we were able to begin interpreting WIND, DITL, MENU, CNTL, and other resources and put up dialog boxes.

With working windows in place, we had canvases to accept drawing operations. All of our basic Quickdraw drawing, including Region support and some complex CopyBits operations like hilighting and patterned brush drawing have been mapped to DPS operations. Since color dithering is a feature of DPS, we didn't have to manually do it ourselves -- which was a welcome change from Latitude's X version.

All of these features have made their way smoothly to Apple's PowerPC Rhapsody Developer Release. We're successfully mapping windows, controls, menus, and graphical and textual rendering to Rhapsody's GUI and DPS. Some of the Latitude implementations may not be as efficient as we'd like but I know we'll have these cleaned up once Apple releases the Premiere Rhapsody release slated for January.

Developers experimenting the Latitude now should be able to access their resources, put up their windows and dialogs, and see a majority of their application's features working well. Features developers will see missing are those that hadn't made it into the Apple Rhapsody Developer release such as Blue/Yellow Box file sharing and AppleEvents.

One void I know developers will see now is a means to get Mac files into their Rhapsody environments. Simply ftp-ing won't do since apps depend on the Mac File Manager to report various Finder attributes, like file types and owners, and this information is lost by simple ftp. Latitude's File Manager will report all this info if it is included with the files in one of several popular formats that encode Finder information into the file, including AppleDouble, AppleSingle, EtherShare, K-AShare, and uShare. As it happens, Jeff Matthews' Fetch 3.0.1 can write AppleSingle files. Until Helios brings EtherShare to Rhapsody, as they've promised, Fetch 3.0.1 is the only way I know at this time to safely transfer Mac files directly to Rhapsody so that they are fully understood by apps ported with Latitude.

This birth of Rhapsody is much like other new UNIX operating system releases that I've witnessed over the years. Not so much cutting edge but rather bleeding edge development. While the Apple engineers rework and fine tune their new operating system, developers like us are attempting to bring out the best tools possible under constantly shifting conditions. Latitude has been through this kind of development before when operating systems like IRIX 4.0 and Solaris 1 were in early releases. As the Rhapsody releases become more stable, so will Latitude's support.

Check Out WarriorWorld

If you've spent any amount of time teaching yourself PowerPlant, chances are you've heard of the PowerPlant Dream Team, a group of folks dedicated to learning about PowerPlant and interacting and collaborating with each other online.

The founders of the PowerPlant Dream Team created a non-profit organization called WarriorWorld, the official CodeWarrior users' group. Now, WarriorWorld has a new home on the web at http://www.codewarrior.org/.

WarriorWorld is ramping up now and, by the time you read this, the site should be complete, offering a range of technical info and services. According to the WarriorWorld FAQ, the site will soon offer a series of free courses in Java, C++, and PowerPlant. Each course will organize a corresponding Dream Team to make the learning process more effective.

To me, this site has huge potential. Check it out...

 
AAPL
$467.36
Apple Inc.
+0.00
MSFT
$32.87
Microsoft Corpora
+0.00
GOOG
$885.51
Google Inc.
+0.00

MacTech Search:
Community Search:

Software Updates via MacUpdate

Acorn 4.1 - Bitmap image editor. (Demo)
Acorn is a new image editor built with one goal in mind - simplicity. Fast, easy, and fluid, Acorn provides the options you'll need without any overhead. Acorn feels right, and won't drain your bank... Read more
Mellel 3.2.3 - Powerful word processor w...
Mellel is the leading word processor for OS X, and has been widely considered the industry standard since its inception. Mellel focuses on writers and scholars for technical writing and multilingual... Read more
Iridient Developer 2.2 - Powerful image...
Iridient Developer (was RAW Developer) is a powerful image conversion application designed specifically for OS X. Iridient Developer gives advanced photographers total control over every aspect of... Read more
Delicious Library 3.1.2 - Import, browse...
Delicious Library allows you to import, browse, and share all your books, movies, music, and video games with Delicious Library. Run your very own library from your home or office using our... Read more
Epson Printer Drivers for OS X 2.15 - Fo...
Epson Printer Drivers includes the latest printing and scanning software for OS X 10.6, 10.7, and 10.8. Click here for a list of supported Epson printers and scanners.OS X 10.6 or laterDownload Now Read more
Freeway Pro 6.1.0 - Drag-and-drop Web de...
Freeway Pro lets you build websites with speed and precision... without writing a line of code! With it's user-oriented drag-and-drop interface, Freeway Pro helps you piece together the website of... Read more
Transmission 2.82 - Popular BitTorrent c...
Transmission is a fast, easy and free multi-platform BitTorrent client. Transmission sets initial preferences so things "Just Work", while advanced features like watch directories, bad peer blocking... Read more
Google Earth Web Plug-in 7.1.1.1888 - Em...
Google Earth Plug-in and its JavaScript API let you embed Google Earth, a true 3D digital globe, into your Web pages. Using the API you can draw markers and lines, drape images over the terrain, add... Read more
Google Earth 7.1.1.1888 - View and contr...
Google Earth gives you a wealth of imagery and geographic information. Explore destinations like Maui and Paris, or browse content from Wikipedia, National Geographic, and more. Google Earth... Read more
SMARTReporter 3.1.1 - Hard drive pre-fai...
SMARTReporter is an application that can warn you of some hard disk drive failures before they actually happen! It does so by periodically polling the S.M.A.R.T. status of your hard disk drive. S.M.... Read more

Strategy & Tactics: World War II Upd...
Strategy & Tactics: World War II Update Adds Two New Scenarios Posted by Andrew Stevens on August 12th, 2013 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Expenses Planner Review
Expenses Planner Review By Angela LaFollette on August 12th, 2013 Our Rating: :: PLAIN AND SIMPLEUniversal App - Designed for iPhone and iPad Expenses Planner keeps track of future bills through due date reminders, and it also... | Read more »
Kinesis: Strategy in Motion Brings An Ad...
Kinesis: Strategy in Motion Brings An Adaptation Of The Classic Strategic Board Game To iOS Posted by Andrew Stevens on August 12th, 2013 [ | Read more »
Z-Man Games Creates New Studio, Will Bri...
Z-Man Games Creates New Studio, Will Bring A Digital Version of Pandemic! | Read more »
Minutely Review
Minutely Review By Jennifer Allen on August 12th, 2013 Our Rating: :: CROWDSOURCING WEATHERiPhone App - Designed for the iPhone, compatible with the iPad Work together to track proper weather conditions no matter what area of the... | Read more »
10tons Discuss Publishing Fantasy Hack n...
Recently announced, Trouserheart looks like quite the quirky, DeathSpank-style fantasy action game. Notably, it’s a game that is being published by established Finnish games studio, 10tons and developed by similarly established and Finnish firm,... | Read more »
Boat Watch Lets You Track Ships From Por...
Boat Watch Lets You Track Ships From Port To Port Posted by Andrew Stevens on August 12th, 2013 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Expenses Review
Expenses Review By Ruairi O'Gallchoir on August 12th, 2013 Our Rating: :: STUNNINGiPhone App - Designed for the iPhone, compatible with the iPad Although focussing primarily on expenses, Expenses still manages to make tracking... | Read more »
teggle is Gameplay Made Simple, has Play...
teggle is Gameplay Made Simple, has Players Swiping for High Scores Posted by Andrew Stevens on August 12th, 2013 [ permalink ] | Read more »
How To: Manage iCloud Settings
iCloud, much like life, is a scary and often unknowable thing that doesn’t always work the way it should. But much like life, if you know the little things and tweaks, you can make it work much better for you. I think that’s how life works, anyway.... | Read more »

Price Scanner via MacPrices.net

13″ 2.5GHz MacBook Pro on sale for $150 off M...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $1049.95 including free shipping. Their price is $150 off MSRP plus NY sales tax only. B&H will include free copies of Parallels Desktop... Read more
iPod touch (refurbished) available for up to...
The Apple Store is now offering a full line of Apple Certified Refurbished 2012 iPod touches for up to $70 off MSRP. Apple’s one-year warranty is included with each model, and shipping is free: -... Read more
27″ Apple Display (refurbished) available for...
The Apple Store has Apple Certified Refurbished 27″ Thunderbolt Displays available for $799 including free shipping. That’s $200 off the cost of new models. Read more
Apple TV (refurbished) now available for only...
The Apple Store has Apple Certified Refurbished 2012 Apple TVs now available for $75 including free shipping. That’s $24 off the cost of new models. Apple’s one-year warranty is standard. Read more
AnandTech Reviews 2013 MacBook Air (11-inch)...
AnandTech is never the first out with Apple new product reviews, but I’m always interested in reading their detailed, in-depth analyses of Macs and iDevices. AnandTech’s Vivek Gowri bought and tried... Read more
iPad, Tab, Nexus, Surface, And Kindle Fire: W...
VentureBeat’s John Koetsier says: The iPad may have lost the tablet wars to an army of Android tabs, but its still first in peoples hearts. Second place, however, belongs to a somewhat unlikely... Read more
Should You Buy An iPad mini Or An iPad 4?
Macworld UK’s David Price addresses the conundrum of which iPAd to buy? Apple iPad 4, iPad 2, iPad mini? Or hold out for the iPad mini 2 or the iPad 5? Price notes that potential Apple iPad... Read more
iDraw 2.3 A More Economical Alternative To Ad...
If you’re a working graphics pro, you can probably justify paying the stiff monthly rental fee to use Adobe’s Creative Cloud, including the paradigm-setting vector drawing app. Adobe Illustrator. If... Read more
New Documentary By Director Werner Herzog Sho...
Injuring or even killing someone because you were texting while driving is a life-changing experience. There are countless stories of people who took their eyes off the road for a second and ended up... Read more
AppleCare Protection Plans on sale for up to...
B&H Photo has 3-Year AppleCare Warranties on sale for up to $105 off MSRP including free shipping plus NY sales tax only: - Mac Laptops 15″ and Above: $244 $105 off MSRP - Mac Laptops 13″ and... Read more

Jobs Board

Sales Representative - *Apple* Honda - Appl...
APPLE HONDA AUTOMOTIVE CAREER FAIR! NOW HIRING AUTO SALES REPS, AUTO SERVICE BDC REPS & AUTOMOTIVE BILLER! NO EXPERIENCE NEEDED! Apple Honda is offering YOU a Read more
*Apple* Developer Support Advisor - Portugue...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
RBB - *Apple* OS X Platform Engineer - Barc...
RBB - Apple OS X Platform Engineer Ref 63198 Country USA…protected by law. Main Function | The engineering of Apple OS X based solutions, in line with customer and Read more
RBB - Core Software Engineer - Mac Platform (...
RBB - Core Software Engineer - Mac Platform ( Apple OS X) Ref 63199 Country USA City Dallas Business Area Global Technology Contract Type Permanent Estimated publish end Read more
*Apple* Desktop Analyst - Infinity Consultin...
Job Title: Apple Desktop Analyst Location: Yonkers, NY Job Type: Contract to hire Ref No: 13-02843 Date: 2013-07-30 Find other jobs in Yonkers Desktop Analyst The Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.