[fpc-other] Fork

Hans-Peter Diettrich DrDiettrich1 at aol.com
Wed Oct 20 03:30:00 CEST 2010


There seems to exist some interest in FPC modifications that are 
incompatible with the official FPC code (SVN trunk). If so, we should 
find means to open one or more public alternative repositories, and 
possibly a dedicated mailing list, chat room... Graeme, you seem to be 
the git expert, what would you suggest for the repository topic?

Next we'll have to agree about the topics, which are subject to a 
redesign, extension or whatsoever. Clearly everybody can tweak the 
existing code in any way, but perhaps we want to integrate various 
changes into one new compiler, what deserves some considerations. IMO at 
least the back-ends (target systems and CPUs) should be inherited from 
the FPC trunk, because these require detailed knowledge about both the 
targets and the related FPC infrastructure (code generation...). The 
same for the compiler and RTS build process, at least we should have a 
chance to get a fully working environment (including Lazarus) for any 
non-standard compiler.

My own interests concentrate on the compiler infrastructure, where I 
feel a need for a more abstract (parser oriented) API. Next comes the 
consolidation of the layer beyond that API, as covered partially in my 
NoGlobals branch. The result should be a more readable and extensible 
compiler, best along with according documentation.

Unfortunately some restrictions apply to the possible changes to the 
original code, when we want to stay in sync with the SVN trunk. I've 
already tried out several ways, with questionable results. At least we 
have to understand and respect the way, how SVN or Git merge updates 
into an common branch. IMO large changes should be avoided, they can be 
moved into include files or into subroutines in a different location. If 
nothing helps, the original subroutine can be renamed, so that it is not 
used further, and a new subroutine of the old name can be located 
somewhere else, e.g. at the end of the unit. Perhaps somebody has more 
experience with the compatibility and merging of modified code, possibly 
from multiple branches?

So much for now, from my part. Please specify your own interests, if you 
want to participate in an FPC fork, and want your work being noticed and 
used by the community.


The same considerations apply to Lazarus forks, but that's quite a 
different story. As a general note, I'd like to publish a user-oriented 
Lazarus version, with only approved (documented) features, and easy 
installation. Every Lazarus (LCL...) component or feature should be 
added to that version only iff documented (online help available) and 
implemented without major flaws. My favorites for exclusion/replacement 
are AutoSize, AnchorDocking and the management of IDE form positions...

DoDi



More information about the fpc-other mailing list