[fpc-devel]Mac OS X pre-release version of the Free Pascal Compiler available!
Jonas Maebe
jonas at zeus.ugent.be
Sun Jan 4 23:23:40 CET 2004
Hello,
I'm very glad I can announce that today, for the first time I've been
able to do a "make cycle" under Mac OS X (compile the compiler with
itself, and then again with the resulting compiler, and then once
more). This means that the compiler is now self-hosting under
Darwin/Mac OS X, and ready for first testing!
--- What is ready?
* The basic units required to cycle the compiler (mostly file-system
and exception handling related)
* The PPC code generator is in quite good shape (correctness-wise). On
Linux/PPC, our regression test suite currently shows 17 errors (on 2185
tests), versus 10 for the 80x86 version. I have not yet run the test
suite under Mac OS X, and some OS-specific things will probably still
need fixing
--- What is still left to do?
* Mac OS (X) specific:
* Port the missing RTL units (mainly text console handling)
* Create a Mac OS X installer package definition
* Try to create some kind of plug-in so the compiler can be called
from XCode and Project Builder
* Run the test suite and fix bugs
* Fix support for importing global variables from shared libraries
* Replace as many of my handwritten assembler routines with calls to
libc versions, as Apple is much better at writing fast ppc assembler
code that I am :) Do the same for the generic math routines.
* Support the Apple dialect so we can use the Universal Interfaces
* Finish Classic Mac OS support
* ...
* PPC-specific:
* improve AIX abi-compatibility (e.g., we don't pass records as the
AIX abi prescribes)
* create a PPC-optimizer (if only a peephole optimizer for starters)
* re-enable support for register variables (that's not really
PPC-specific, but the PPC will benefit a *lot* of that)
--- System requirements
The Darwin RTL is based on libc and uses only a few basic library
calls. Therefore, even though I compiled the binary below on Mac OS X
10.3.2, it should theoretically run on everything, even the Mac OS X
Public Beta :) The BSD subsystem and the Developer Tools (or XCode)
must be installed, though. There are no further requirements.
--- Where to get it
* The source
You can get the source code of the compiler and rtl by following the
instructions at <http://www.freepascal.org/develop.html#cvs>. To
recompile the compiler and rtl, first download and install the binary
snapshot as indicated below, then go in the fpc/compiler directory you
checked out from cvs and type "make cycle".
* The binary snapshot
You can download a minimal binary snapshot from
<http://jonagold.elis.ugent.be/~jonas/fpc/fpc-darwinppc
-20040104.tar.bz2>. I would suggest not unpacking it with Stuffit
Expander, but on the command line. Use
gnutar xjvf fpc-darwinppc-20040104.tar.bz2
and it will expand the file in the current directory. You'll get one
directory (fpc) with two subdirectories: bin and rtl. The bin directory
contains the two program files, ppcppc (the actual compiler) and fpc
(the compiler front-end). The rtl directory contains a darwin
subdirectory with all units.
The easiest will be if you put this fpc directory in your home
directory, then create a file called ".fpc.cfg" (note the extra "." at
the start) in your home directory with as contents (replace
<your_short_name> with your short login name)
-Fu/Users/<your_short_name>/fpc/rtl/darwin
-O1
-vei
Next, if your shell is bash, add the following to the file
.bash_profile in your home directory (create the file if it doesn't
exist yet):
export PATH=~/fpc/bin:"$PATH"
If your shell is tcsh, add the following to the file .tcshrc in your
home directory:
setenv PATH ~/fpc/bin:{$PATH}
Type 'exit' in the Terminal window, and then open a new one. From now
on, you can compile programs by going to the directory with your source
files and typing e.g.
fpc helloword.pas
Run the result by typing
./helloworld
Happy programming, and bug reports are of course welcome!
Jonas
More information about the fpc-devel
mailing list