On Tuesday, 5 June 2018 at 19:18:15 UTC, Adam D. Ruppe wrote:
On Tuesday, 5 June 2018 at 19:05:27 UTC, DigitalDesigns wrote:
For loops HAVE a direct cpu semantic! Do you doubt this?

What are they?

And for bonus points, are they actually used by compilers?

Then the final question: is the generated code any different than inlined ranges?

It doesn't matter! The issue that I said was not that ranges were slower but that ranges exist on an abstract on top of language semantics! that means that they can never be faster than the language itself! Anything that a range does can never be faster than doing it by hand.

This is not a hard concept to understand. I know everyone wants to defend their precious ranges but what happens is irrelevant in some particular case. Ranges could be 100x faster in some specific case but it doesn't change the fact that they are an abstraction on top of the language, not in the language.

I've already pointed out, and made it clear, I will do it one last time:

There is no guarantee(doesn't have to be 100% by the rule of god) by the compiler that a ranges performance will even come close to hand written code or that it won't all of a sudden change when someone decides to "optimize" it and actually makes it worse! These problems are far less likely to occur in a well established language semantic.

I can't believe people are really defending library solutions as not having these issues, but I guess that is the nature of most humans.

Reply via email to