[fpc-devel] When will the next version of FPC be released?

Michael Van Canneyt michael at freepascal.org
Sat Jun 1 12:00:01 CEST 2019



On Fri, 31 May 2019, Ryan Joseph wrote:

>
>
>> On May 30, 2019, at 4:18 PM, Ryan Joseph <ryan at thealchemistguild.com> wrote:
>> 
>> I didn’t realize generic functions were in the trunk. I’m not sure I got this implemented properly so it requires some code review but can we try to include “implicitfunctionspecialization” mode switch in the next release along the with actual feature? https://bugs.freepascal.org/view.php?id=35261
>> 
>
> { got blocked again, attempting to resend }
>
> I didn’t realize generic functions were in the trunk. I’m not sure I got this implemented properly so it requires some code review but can we try to include “implicitfunctionspecialization” mode switch in the next release along the with actual feature? https://bugs.freepascal.org/view.php?id=35261
>
> Specifically, for some time now I wanted to make a “ClearMem" function that doesn’t require passing the type but the insanely verbose syntax of generic functions makes it even longer. Honestly the syntax is so intrusive in ObjFPC mode that I would avoid using it all together. 
>
> What we have now:
>
> var
> pt: TPoint;
> begin
> 	FillChar(pt, sizeof(TPoint), 0);
>
> Specialization with generics:
>
> 	specialize ClearMem<TPoint>(pt);
>
> With implicit specialization:
>
> ClearMem(pt); // :)

I don't think this syntax is a good idea.

What with overloads ?

Procedure MyProc<T>(a:T);
Procedure MyProc(a : TObject);

How do I know which one will be called ?

Honestly, the idea of doing so many things "behind my back" is really not comforting.

Brevity goes always at the cost of understandability. 
Have a look at Scala. You can express things really compactly.
But if you look at someone else's compact code (or your own code after 2 months) 
you no longer understand what exactly is happening.

Pascal is meant to be readable and understandable. 
Things like this diminish these qualities hugely.

Michael.


More information about the fpc-devel mailing list