Prepping for the PowerPC

by Jeri Dube

Question:

What do you get when you combine six programmers, two types of compilers, one cross-system debugger, five PowerPC's, six PS/2 model 95's, five applications ranging from 70 KLOC to over a million lines of code, a porting consultant from the One Up Corporation, and a healthy helping of IBMers?

Answer:

The 1995 OS/2 Warp Connect (PowerPC Edition) Beta II Demo Fest held the week of May 15 in Boca Raton, Florida!

So, you may ask, "What was this demo fest?" It was a five-day event sponsored by IBM to help and encourage Independent Software Vendors (ISVs) to port their 32-bit OS/2 Warp applications that currently run on complex instruction set computer (CISC) processors to the PowerPC. The ISVs gained a lot from the experience because they got lots of attention from IBM to help them over any hurdles they encountered, and they got a head start on their work to port to OS/2 Warp Connect (PowerPC Edition). Furthermore, their products have been demonstrated at the PowerPC launch event.

IBM also gained from the demo fest. Some of the best OS/2 programmers in the world exercised the new development tools as well as the operating system, and they supplied direct, immediate feedback to the development team.

The Participants
ISVs from all over the world participated in this demo fest, providing an international feeling to the event.

Sent from Germany were:

Arnd Beissner programming for Scilab - Arnd is the manager of software development for Scilab's XACT application. This scientific presentation graphics tool is used by both businesses and scientists. The application is available in English as well as German. XACT is an easily portable application that is available for many operating systems. All of the operating system-specific code is kept in a library so the application can exploit features of the different operating systems yet be easily portable.

Phillipe Annett programming for Compart - Phillipe is the lead programmer for a consumer-oriented image processing application called IMPOS/2. Phillipe was the one person who used the beta version of the C Set compiler for the PowerPC rather than the PowerPC compiler from MetaWare.

Martin Hollmichel and Thomas Hosemann from Star Division - Martin and Thomas probably had the most ambitious goals of all the participants. They intended to compile over 2,000 object files that are shared by Star Division's Star Draw, Star Calc, and Star Writer applications. Furthermore, their code is written in C++ in an excellent object-oriented design.

Representing Canada was:

Brian Perlman of Footprint Software, Inc. - Brian had the most experience working with the OS/2 Warp Connect (PowerPC Edition) operating system and development tools. Brian was very excited about the progress that IBM has made on the tools since last August. Brian said, "The Beta was a vast improvement over the COMDEX Alpha. The Beta II is really something. I was impressed." Brian was also pleased with the MetaWare compiler improvements. The latest version of the compiler was much easier to use because it has more options and is more compatible with C Set. (C Set is the compiler being used for the CISC version of his application.)

From the United States was:

John Holliday, a development manager from Computer Associates in Durham, North Carolina - John was the last to arrive at the demo fest, totally missing the first day. John's task was to port the portion of the Realia Workbench that was not written in assembler to the PowerPC. Realia Workbench is an integrated development environment for COBOL programmers. The first time he saw a PowerPC was when he walked in the door at IBM. He had no experience with the tools either. Despite this disadvantage, John was able to accomplish his goal.

The Process
Just as IBM has been promising, porting from an OS/2 32-bit application is really quite straightforward. The major challenge was to get familiar with the new development tools. The steps to port are mainly the same as those done on the CISC platform, with two differences:
 * You need to complete the resource compile before linking. This is because with the ELF format, the linker links all object files including the resource objects in the final step.
 * The makefiles must be modified to change the compiler and linker switches. These changes should be done in such a way that it is easy to go between the PowerPC and CISC compilers. That means including #ifdef statements in the makefiles.

The Results
At the end of the five days, the ISVs were happy with the results of the demo fest. The ISVs had used the new tools, the new hardware, and the new operating system to create working versions of their code in less than a week's time. As a result of their hard work, they had usable code that demonstrates the abilities of the PowerPC hardware and OS/2 Warp Connect (PowerPC Edition).

The first to finish was Arnd from Scilab. By lunchtime on Wednesday, Arnd had the 1.3 million lines of XACT code up and running on the PowerPC. Arnd attributed his quick success to the fact that his code has been through numerous compilers. He did not have to make any changes to get through the compiler - only a few modifications to get through some bugs still in the beta.

Arnd offered the following hints for developing portable code:
 * Create a header file that completely describes the platform. Adjust all "platform" values in that file.
 * Create a relatively high-level shared library that contains all code that interacts with the operating system.

Note that Star Division, because of their object-oriented code, stumbled upon a derailing problem in the MetaWare compiler that had not been previously encountered. The problem was that the compiler produced one constructor call and then two destructor calls when creating and destroying C++ objects. It was impossible for Martin and Thomas to create work-arounds because the objects where this problem was encountered were pervasive throughout their code. Once they received the fix from IBM early the next week, they easily completed their porting effort.

By the end of the five days, the rest of the ISVs produced OS/2 code that ran on the PowerPC. All in all, the participants were pleased with the amount of progress they made in a short time. They found the toolset usable and productive, and they look forward to the general availability of OS/2 Warp Connect (PowerPC Edition).