[fpc-pascal]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-pascal
mailing list