[fpc-devel] I'll be straight

Florian Klämpfl florian at freepascal.org
Sun Feb 10 14:19:14 CET 2019

Am 09.02.19 um 00:41 schrieb J. Gareth Moreton:
> I'll be straight here.  Exactly what should I even be looking at and 
> working on?  Being self-guided is evidently not cutting it because 
> recently, everything I see and think has potential or could use 
> improvement has been rejected or dismissed out of hand because it 
> damages maintainability, is deemed too risky to even experiment with or 
> touches a unit that was derived from a third party source and one 
> doesn't want to make changes to it in the name of being able to compare 
> it line-for-line (even though the third party source is in C)
> If I'm the wrong kind of person for this project, I understand, and you 
> can boot me out.  What am I but naïve 'new blood' who is overly 
> optimistic and doesn't understand risk?

Well, when changing something you have always to think about the gains. 
Making some difficult code more complex for little speed gain is simply 
not worth the effort. As I guess you are talking about 35045: the 
parameter managers are a very complex piece of software as they:
- have to take care of the abi to implement
- the different abis of a CPU on the same architecture
- different abis on different OSes
- getting all the information right so FPC can process it further
Furthermore, bugs in the parameter managers are typically hard to track 
down as they might appear only during very rare circumstances. So nobody 
really wants to touch this code. Even if you do so, the person who 
commits the patch will be later on responsible to get things fixed the 
patch breaks it.

To get patches accepted the following per-requisites are very helpful:
- the advantage of the patch is clearly visible:
   * better code generation on as much as possible platforms
   * measurable speed ups of the compiler
   * code clean ups: their use can be easily measured in the number of 
lines remove
   * rewrite of some ugly code: this is hard to judge, so before doing 
such a rewrite, discuss first on the mailing list if the code is really 
considered ugly
- it is regression tested by the submitter on as much as possible 
affected targets, if it is a x86 patch, at least on i386 and x86-64
- it contains no "noise", i.e. unrelated changes
- the patch is finished

More information about the fpc-devel mailing list