[quote author=sam707 link=topic=27813.msg187179#msg187179 date=1441672151]
Returning from hollidays, I read this whole drama with a smile... I notice that a lot of presure against each other, however, makes Lazarus consistent and going on! thats cool! yep!
I am also running my own projects (actually an encrypted client/server suite with my own protocol over Tcp/ip) on my spare time and managing my team at real life around C++
If/when I would have time I may try to modify FPC in such a way - by adding a $MODE - to enable multithreading/parallel compilation. For that purpose, compiler needs to separate implementations and interfaces of monolithic units either by splitted files either programmatically, like modula 2 compilers did and like C/C++ compilers do (split DEFS from CODE, avoid LIFO around 'uses' clauses processing, so the actually compiling unit gets the defs of others even if they stil not are compiled -"headers" alike)
I've thought about both parallel compilation and Modula2 in the past too, and don't see why that would be needed? Simply cache the already parsed interface (the .ppu) of the first compile, or read the ppu if it isn't.
C/C++ compilers have no internal make/build functionality, and are as stupid as they come.
with nowadays multicore processors, it is no more a gadget! FPC is a FAST compiler that is very competitive compared to C/C++ already parallel compilers and I think that if it can be parallelized, FPC would beat them at speed easily...
One could argue that C/C++ has no parallel compilers, but simply has such a weak coherence that starting multiple compilers isn't noticed :-)
But that's a brute force, zeroeth order approach, and partially it only earns back some of the endless reparsing of headers that C/C++ does.
It will be hard to implement such thing in FPC. A more logical approach would be to make the actual compiler multithreaded and recycle its cache of interfaces.
If someone is interested in such improvement, as I have no time atm, feel free to catch my idea... otherwise I will try to make it ASAP
The amount of work to do so is mindboggling, that's what prevented me. I talked to Florian about it, but he wasn't very responsive either.
Still, if buildcontrol is ever rewritten, it would be a good thing to at least keep such scenario in mind.