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

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Paragraphs 1.0.1 - Writing tool just for...
Paragraphs is an app just for writers. It was built for one thing and one thing only: writing. It gives you everything you need to create brilliant prose and does away with the rest. Everything in... Read more
BlueStacks App Player 0.9.21 - Run Andro...
BlueStacks App Player lets you run your Android apps fast and fullscreen on your Mac. Version 0.9.21: Note: Now requires OS X 10.8 or later running on a 64-bit Intel processor. Initial stable... Read more
Apple iTunes 12.2 - Play Apple Music...
Apple iTunes lets you organize and stream Apple Music, download and watch video and listen to Podcasts. It can automatically download new music, app, and book purchases across all your devices and... Read more
Apple Security Update 2015-005 - For OS...
Apple Security Update 2015-005 is recommended for all users and improves the security of OS X. For detailed information about the security content of this update, please visit: http://support.apple.... Read more
Apple HP Printer Drivers 3.1 - For OS X...
Apple HP Printer Drivers includes the latest HP printing and scanning software for OS X Lion or later. For information about supported printer models, see this page. Version 3.1: The latest printing... Read more
Epson Printer Drivers 3.1 - For OS X 10....
Epson Printer Drivers installs the latest software for your EPSON printer or scanner for OS X Yosemite, OS X Mavericks, OS X Mountain Lion, and OS X Lion. For more information about printing and... Read more
Xcode 6.4 - Integrated development envir...
Xcode provides everything developers need to create great applications for Mac, iPhone, and iPad. Xcode brings user interface design, coding, testing, and debugging into a united workflow. The Xcode... Read more
OS X Yosemite 10.10.4 - Apple's lat...
OS X Yosemite is Apple's newest operating system for Mac. An elegant design that feels entirely fresh, yet inherently familiar. The apps you use every day, enhanced with new features. And a... Read more
Dash 3.0.2 - Instant search and offline...
Dash is an API Documentation Browser and Code Snippet Manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
FontExplorer X Pro 5.0 - Font management...
FontExplorer X Pro is optimized for professional use; it's the solution that gives you the power you need to manage all your fonts. Now you can more easily manage, activate and organize your... Read more

Heroki (Games)
Heroki 1.0 Device: iOS Universal Category: Games Price: $7.99, Version: 1.0 (iTunes) Description: CLEAR THE SKIES FOR A NEW HERO!The peaceful sky village of Levantia is in danger! The dastardly Dr. N. Forchin and his accomplice,... | Read more »
Hands-On With Raceline CC
Set for release soon, Rebellion’s motorbike racing game, Raceline CC certainly looks stylish. But how does it play? I got my hands on a preview build to answer exactly that. | Read more »
Siegefall - Tips, Tricks, and Strategies...
So, you fancy establishing a base and ruling the world again. Siegefall is a convenient place to do that, but how about some great tips and tricks on how best to go about it? Here are a few ideas on how to get ahead as a beginner to this medieval... | Read more »
The WWE Comes to Racing Rivals - Because...
Racing Rivals is a racing game that's all about, well, rivalry. And who knows rivalry better than WWE superstars (shhhh, that was rhetorical)? [Read more] | Read more »
Hey, Who Put Apple Music in My SoundHoun...
One of the App Store's popular music discovery sources - SoundHound - has already been updated to include Apple's own music discovery source - Apple Music. That was fast! [Read more] | Read more »
Arcane Legends has a New Expansion Calle...
Arcane Legends has been going strong since it debuted at the tail end of 2012. So well, in fact, that it's already up to its sixth expansion. [Read more] | Read more »
Vector 2 is Officially a Thing and it...
Vector is a pretty cool parkour-driven runner that's gotten a pretty decent following since it first came out - although personally I think more people could stand to show it some love. Anyway, Nekki has announced that a sequel isofficially on its... | Read more »
Get Ready to Trucksform and Roll Out (an...
It looks like NuOxygen is bringing the truck-transforming racer Trucksform (get it?) to iOS in a couple of weeks. Although really it's more of an auto-driver than a racer. But still, transforming trucks! [Read more] | Read more »
This Week at 148Apps:June 22-26, 2015
June's Summer Journey Continues With 148Apps How do you know what apps are worth your time and money? Just look to the review team at 148Apps. We sort through the chaos and find the apps you're looking for. The ones we love become Editor’s Choice,... | Read more »
LEGO® Minifigures Online (Games)
LEGO® Minifigures Online 1.0.1 Device: iOS iPhone Category: Games Price: $4.99, Version: 1.0.1 (iTunes) Description: | Read more »

Price Scanner via MacPrices.net

Logo Pop Free Vector Logo Design App For OS X...
128bit Technologies has released of Logo Pop Free 1.2 for Mac OS X, a vector based, full-fledged, logo design app available exclusively on the Mac App Store for the agreeable price of absolutely free... Read more
21-inch 1.4GHz iMac on sale for $999, save $1...
B&H Photo has new 21″ 1.4GHz iMac on sale for $999 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Best Buy has the 21″ 1.4GHz iMac on sale for $999.99 on their... Read more
16GB iPad mini 3 on sale for $339, save $60
B&H Photo has the 16GB iPad mini 3 WiFi on sale for $339 including free shipping plus NY tax only. Their price is $60 off MSRP. Read more
Save up to $40 on iPad Air 2, NY tax only, fr...
B&H Photo has iPad Air 2s on sale for up to $40 off MSRP including free shipping plus NY sales tax only: - 16GB iPad Air 2 WiFi: $489 $10 off - 64GB iPad Air 2 WiFi: $559 $40 off - 128GB iPad Air... Read more
Apple Releases OS X 10.10.4 With WIFi Fix, iO...
On Tuesday, Apple released final versions of OS X 10.10.4 and iOS 8.4, as well as updates for the Safari browser for OS X Yosemite, Mavericks, and Mountain Lion. The OS X 10.10.4 update focuses on... Read more
Dual-Band High-Gain Antennas for Home Wi-Fi N...
Linksys has announced what it claims are the first dual-band, omni-directional high-gain antennas for the consumer market. The new Linksys high-gain antennas available in a 2- and 4-pack (WRT004ANT... Read more
Apple refurbished 2014 15-inch Retina MacBook...
The Apple Store has Apple Certified Refurbished 2014 15″ 2.2GHz Retina MacBook Pros available for $1609, $390 off original MSRP. Apple’s one-year warranty is included, and shipping is free. They have... Read more
Clearance 2014 MacBook Airs available for up...
Adorama has 2014 MacBook Airs on sale for up to $301 off original MSRP including NY + NJ sales tax and free shipping: - 11″ 256GB MacBook Air: $798 $301 off original MSRP - 13″ 128GB MacBook Air: $... Read more
5K iMacs on sale for $100 off MSRP, free ship...
B&H Photo has the new 27″ 3.3GHz 5K iMac on sale for $1899.99 including free shipping plus NY tax only. Their price is $100 off MSRP. They have the 27″ 3.5GHz 5K iMac on sale for $2199, also $100... Read more
27-inch 3.2GHz iMac on sale for $1679, save $...
B&H Photo has the 27″ 3.2GHz iMac on sale for $1679.99 including free shipping plus NY sales tax only. Their price is $120 off MSRP. Read more

Jobs Board

Senior Payments Security Manager - *Apple*...
**Job Summary** Apple , Inc. is looking for a highly motivated, innovative and hands-on senior payments security manager to join the Apple Pay security team. You will Read more
Project Manager - *Apple* Pay Security - Ap...
**Job Summary** The Apple Pay Security team is seeking a highly organized, results-driven Project Manager to drive the development of Apple Pay Security. If you are Read more
Web Developer, *Apple* Online Store Innovat...
**Job Summary** The Apple Online Store Innovation Lab team is seeking a talented individual with strong web development and design skills to prototype future Apple Read more
*Apple* TV Live Streaming Frameworks Test En...
**Job Summary** Work and contribute towards the engineering of Apple 's state-of-the-art products involving video, audio, and graphics in Interactive Media Group (IMG) at Read more
Project Manager, WW *Apple* Fulfillment Ope...
…a senior project manager / business analyst to work within our Worldwide Apple Fulfillment Operations and the Business Process Re-engineering team. This role will work Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.