[fpc-devel] FPC compiler architecture documentation

Hans-Peter Diettrich DrDiettrich1 at aol.com
Sat Sep 1 04:44:59 CEST 2012

Mark Morgan Lloyd schrieb:

> However, what's needed /is/ the big picture, starting off with what's 
> needed for a port (a PC, preferably running Linux, and a working FPC), 
> where the modified source should be put (local svn, Lazarus CCR, or a 
> branch of the main repository, and who to talk to and/or how best to do 
> it in each case), and what naming conventions etc. should be applied 
> (roughly, how to set up ./compiler/xxxxx and what to change in 
> ./compiler to make the build process aware of it).

Let me summarize the recent answers on this topic:

1. FPC is a production compiler[1].

2. Implementors shall ask the developers concrete questions, once they 
start running into problems.

[1] "production" means that the compiler is a moving target, with 
optimization in the first place - documentation will be outdated once it 
has been written. The same applies to the code for new targets, as long 
as it is not yet maintained by the core developers.

The basic FPC code violates all acknowledged programming rules, by e.g. 
using global variables for caching all over, so that it's impossible to 
track assignments to the underlying record fields.

> With respect to everybody concerned, I'd strongly suggest that 
> http://wiki.lazarus.freepascal.org/ZSeries/Part_1 et seq. are worth 
> reviewing since they contain a number of misconceptions that have been 
> echoed by others (e.g. that the best way to start is to have a working 
> Pascal compiler on the target system).

A cross compiler doesn't deserve an bootstrap compiler on every target 
system. Delphi goes the same route BTW.


More information about the fpc-devel mailing list