Michael Schnell schrieb:
 On 08/20/2010 12:39 PM, Hans-Peter Diettrich wrote:
The many conditional parts, which are not even properly chained by {$ELSEIF ...}, make the maintance and refactoring a mess :-(
While moving to OO paradigms could make the code slightly slower, I suppose that supporting multiple CPUs with a single compiler might be possible, doing away with the "old-style" $ifdefs, by using derived classes for the different CPUs ans OSes.

In the meantime I found it doable, to remove the conditional compilation, but at a very high price :-(

When a data structure (e.g. COFF header) differs amongst 32 and 64 bit versions, so that fields have different offsets, all references to such fields have either to become virtual, or the code has to be duplicated for both models. In this case I find it more efficient, with regards to both speed and coding efforts, to leave the conditional parts in place.

Even in a mixed-mode coding model, with such polymorphic parts moved into re-usable include files, the number of such files would become very high.


Now I'm somewhat blocked, as long as nobody reviews the current state of the NoGlobals branch. I understand that it's summertime (in most countries ;-), and many core developers are in vacancies. But if there is a real desire for parallel execution in the compiler, a quick review would allow me to proceed in that direction.

TIA
  DoDi

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to