FreePascal on the Macintosh

Welcome to the FreePascal on the Macintosh page. Here is information especially for you who want to write a program for the Macintosh.

News:

2005-12-18:

Version 2.0.2 that was released a few weeks ago has all fixes and improvements of the 2.1.1 snapshot that was here (like Mac Pascal style objects and creation of dynamic libraries). Additionally, it doesn't suffer from the installation problems the 2.1.1 snapshot installer had. Get the release here.

2005-07-23:

The 2.1.1 snapshot that was here is no longer available.

If you really need to be up to date with FPC, please consider using Subversion, and build the compiler by your self.

Some changes: 2005-06-29:

There is now a wiki page covering porting issues, from traditional mac pascals to FPC.

2005-06-21:

A FPC 2.1.1 snapshot is available here (10.8 MB, does not include the PDF documentation). It includes: Should you desire to do so, you can switch back to 2.0 by simply installing the 2.0 package again.

2005-05-15:

At last !!!!! Free Pascal 2.0 is released for Mac OS X and classic Mac OS, as well as for other targets.

This means Free Pascal for the mac is not considered beta anymore. Get it on one of the mirror download sites.


Targets on the Macintosh:

Target / Processor

Status

Remark

Contact

Darwin on PowerPC

final

For Mac OS X

jonas@SPAM.freepascal.ME.org.NOT

MacOS on PowerPC

final

Target MacOS means classic Mac OS, up to System 9.x. Although it of course also work in the classic environment in Mac OS X

olle.raab@freepascal.org

MacOS on M68K

not planned

If someone is interrested to contribute, there is a possiblity to implement this target. There is support for MC68000 in the FPC source code, although not updated for a while.

Mac Pascal dialect

The dialect of Pascal supported by popular Pascals on Macintosh is supported in part. Read more here.

Target Darwin (Mac OS X)

Free Pascal 2.0 for Mac OS X is the current release. It should at least work on Mac OS X 10.1 and higher. It requires that you have installed XCode from Apple, to have assembler, linker and make tools available to fpc. For older versions of Mac OS X you should install Apple Development Tools instead. Both can be downloaded for free from Apple, but requires that you register yourself as a member of Apple Developer Connection. Both are also included in the Mac OS X bundle.

To download, go to the Download page, and choose a mirror site near you (to limit net traffic). The documentation is included, but can also be downloaded separatelly. If you want the source code, it has to be downloaded separatelly.

There most recent FPC 2.1.1 snapshot is available here (10.4 MB) with, among others, support for mac style object pascal. See above under NEWS.

Note that the compiler is a unix style program and is run from the Terminal on MacOS X.

Please report any bugs encountered.

Using FPC from XCode

It is possible to use Free Pascal from within XCode (Mac OS X 10.3 is required). Look at the step-by-step instruction of how to download and install the XCode Integration Kit. Thanks to Rolf Jansen for this contribution.

Target MacOS (Classic Mac OS)

Free Pascal 2.0 for Mac OS is the current release. It will work on latest classic Mac OS (that is 9.2.2) and below, probably down to 7.1.2 (the first Mac OS for PowerPC), and also in the classic compatibility environment on Mac OS X. However it has only been tested on Mac OS 9 and Mac OS X classic environment.

It requires that you have installed Macinstosh Programmers Workshop (MPW) which can be downloaded for free from Apple.

To download, go to the Download page, and choose a mirror site near you (to limit net traffic). The documentation, as well as the source code (if you need it), has to be downloaded separatelly.

Note that the compiler is an MPW tool.

Please report any bugs encountered.

Current status of classic Mac OS

Native FPC compiler (as an MPW tool)

Almost complete

Unit System.pp

Complete

The system unit is implicitly used by every program. Contains basic file and memory handling among others.

Unit Dos.pp

Complete

Contrary to what its name suggests, the DOS unit is cross plattfrom and contains utility routines for file and date handling, beyond that in System.pp. It is reminiscent from Turbo Pascal.

Unit Sysutils.pp

Planned

A moderner alternative to unit DOS, compatible with Delphi.

Unit MacOS

Complete

API to the Macintosh Toolbox

Units strings objpas heaptrc getopts etc

Implemented.

They are target independent.

Other units

Non-existent. Some will be implemented.

Implementation will depend on how important the unit is and if difficulties arise.

Debugging

There is some limited possibilities to debug programs in classic MacOS. See MPW debugging in the wiki.

As an alternative, you might do the main debugging in a MacOSX/Darwin version of your program.

The Mac Dialect

There are three major Pascal dialects: Turbo Pascal (extended to Delphi, supported by FreePascal, and partially by Gnu Pascal), Extended Pascal (an ISO standard, supported by Gnu Pascal, DEC Pascal, Prospero Pascal), and the dialect originating from Apple (commonly used in the Mac community, supported by MPW Pascal, Metrowerks Pascal and Think Pascal). We call this dialect Mac Pascal and there is a special language mode for it: MacPas.

Mode MacPas is a compatibility mode. It is probably not possible to mimic the Mac Pascal dialect in detail. So the goal is to implement often used constructs, if this doesn't require too much effort, as well as easy-to-implement constructs.

To use MacPas, add -Mmacpas to the command line or insert the compiler directive {$MODE MACPAS} in the source code.

Note that the mac pascal dialect and mac targets are not interrelated. It is thus possible to write a mac program with the turbo dialect and to write a Windows program with the mac dialect.

The following are supported: Mac compiler directives like $SETC, $IFC, $ELSEC, $ENDC, $J, $Z. Most of the constructs found in interface files, especially Apples Universal Interfaces. Cycle, Leave, Otherwise. More is planned.

More updated info on the Wiki page.


By Olle Raab

For questions and suggestions, we suggest subscribing on our mailing lists , in particular FPC-pascal for questions about using Free Pascal.

Or write to olle.raab@freepascal.org

Latest modified 2005-07-28