[fpc-devel] What's the status of Maciej's Smart Pointer enhancements?

Michael Van Canneyt michael at freepascal.org
Mon Apr 30 20:56:29 CEST 2018

On Mon, 30 Apr 2018, Maciej Izak wrote:

> 2018-04-30 14:59 GMT+02:00 Michael Van Canneyt <michael at freepascal.org>:
>> Maybe because your solution is simply not convincing and I wish to try and
>> find a solution just a little harder ?
>> Allow me to exaggerate the point a little:
>> A bunch of changes are introduced, things are rammed through our throat
>> which we didn't ask for and then we're told "this is the price for
>> progress'.
> Management operators feature was one of the point from Sven's TODO list and
> was consulted with Sven, Florian and Jonas. If Sven, Florian or Jonas likes
> to remove this idea I have no objections it was not my idea I am just a
> modest contractor.
> The FastRTTI was created on your request (not directly) because you asked
> about speed comparison between FPC 1.0 and 3.0/trunk in core mailing list.
> Florian asked for patch and FastRTTI is the answer for Florian request,
> checked also by Sven. I don't understand your aggression and the whole
> message. You was informed all the time like others in core team.

There is no agression. There is critique.

Maybe the others were satisfied with your solution I am not. So I brought it
again to everyone's attention.

> Maybe other people can contribute to a solution that satisfies everyone.
> Maybe yes, probably I am too stupid :)

I didn't want to imply that at all. 
As you know, 2 pairs of eyes see more than 1 pair.

All I am saying is that what I consider an important principle is being violated, 
namely that a feature you do not use should not influence your code:
If I use plain pascal, then the fact that we have advanced records does 
not influence the speed of my code.

Here something is introduced that, even if I do not use it, will influence
my code, and I cannot avoid it. (provided I understood your design right)

That is what I am pointing out, and it is what I want to draw attention to.

And PLEASE don't take this personal. I am not attacking you, I am pointing
out what I consider flaws in a design/implementation/whatever you want to
call it. You may or may not agree, I'm fine with that, but please treat the
subject in an impersonal manner. Because so do I.

As for solutions: Can we not add a class field or class method to the VMT or
some new table (typeinfo, whatever) that shows whether a class needs extra 
initialization or not.

I can imagine that checking such a field will be more fast than actually 
calling a routine. This is just a thought, if you had already considered 
such a thing, I would like to hear why you discarded it, for my education.


More information about the fpc-devel mailing list