MacApp Pascal
Volume Number: 11
Issue Number: 11
Column Tag: Pascal Activists
MacApp Pascal Rides Again 
Volunteers convert MacApp Pascal to generate native PowerPC code
By Brian Arnold and Guy McCarthy
In 1992, Apple stunned Macintosh developers by announcing that it was dropping MPW
Pascal support from its compiler suite and from MacApp, their premier application
framework. This was a shock, given that Apple had been advising developers for years
to program in Object Pascal with MacApp for maximum compatibility with future
technology.
MacApp developers split into two camps: those able to make the arduous
transition to C++, and those who could not justify the expense or were unwilling to
abandon Object Pascal. The latter group faced an uncertain future, and hopes of porting
existing MacApp applications to run native on the new platform were slim.
Before the fateful announcement, Apple and Language Systems had been
collaborating on the next generation of Pascal compilers for the RISC-based Macintosh.
That project, however, was ultimately scrapped when Apple decided to drop
multi-language support from its RISC compiler architecture. In December of 1993,
development of LS Object Pascal began again, this time using source code from Apple’s
MPW Pascal compiler as the base. It was a long and difficult task to merge the aging
MPW Pascal source code with Language System’s FORTRAN technology and update it for
the PowerMacintosh.
In May of 1994, the first native Pascal sample program was shown to an
enthusiastic crowd of Pascal supporters at the World Wide Developers’ Conference.
Shortly after, a grass-roots cooperative of Pascal MacApp developers was formed to
investigate the possibility of porting MacApp native with the Language Systems
compiler. The MacApp2PPC co-op (as it has come to be known) was organized by
Brian Arnold of Lumina Decision Systems. This group of volunteers proceeded to
accomplish what the corporations could not.
Over the next several months, contributors on three continents began the lengthy
process of converting the entire body of MacApp 2.0.1 source code. In October, an FTP
site and Web page were operational with a preliminary version of the scripts and
documentation (see below). In November, key changes to the compiler’s runtime
architecture were implemented to satisfy requirements of the group. By December
1994, all of the converted source code was compiling successfully with Language
Systems’ beta LS Object Pascal compiler. Only runtime issues remained.
In February, the target release date of May 1995 was set to coincide with the
Worldwide Developer Conference in San Jose, California. Final technical issues were
addressed during a 48 hour “Hack Session” on March 17-19 in nearby Menlo Park.
Language Systems sent two compiler engineers with Power Macintosh CPUs to aid the
effort.
The Hack Session was a success. Participants (some of them operating remotely)
included: Masahiro Abe, Brian Arnold, Colleen Barton, Per Bergland, Greg Branche,
Larry Hamel, Steven Hopkins, Eric Jackson, David Johnston, Steve Lavagnino, Cheryl
Lins, Kurt Schmucker, and Larry Tesler. Although the first native execution of a
complete MacApp application was still weeks away, important technical issues, such as
exception handling, were resolved. In addition, new technology such as floating
palettes and other enhancements were merged into the Pascal framework.
In the weeks following the Hack Session, the co-op mounted an incredible effort
to get PowerPC native MacApp 2.0.1 up to beta quality in time for the Developer
Conference. Support for the Metrowerks Pascal compiler was added. Several key
managers at Apple joined in and arranged a distribution license so that Language
Systems and Metrowerks could include the PowerPC native MacApp 2.0.1 on their CDs.
(Special thanks to Kurt Schmucker for rallying this effort!) The first developer
release of MacApp2PPC shipped on CodeWarrior DR6 in May. An improved version
shipped on DR7, but owing to a CD pressing glitch, the project files and documentation
are wrong; the correct material is available online (see below).
About a dozen developers have already partially or completely ported their
applications to PowerPC, and a few of them have already started shipping their native
applications. Brian Arnold ported his own application, Analytica™, in under two
weeks, and expects to ship by the end of the year.
It is hoped that by January 1996, two versions will be ready: the final, stable
MacApp2PPC, and a developer release of an improved version. MacTech hopes to report further details in upcoming issues. In the mean time, developers who have LS
Pascal can use the netborne release of MacApp2PPC. For more information see the
MacApp2PPC web pages at:
http://www.lumina.com/arnold/MacApp2PPC.html
Or, for anonymous ftp:
ftp://ftp.rahul.net/ftp/pub/arnold/macapp2ppc.
To get on the mailing list, write to:
arnold@lumina.com