[fpc-devel] Re: Testing for..in feature
Alexander Klenin
klenin at gmail.com
Fri Nov 6 00:42:17 CET 2009
On Fri, Nov 6, 2009 at 05:51, "Vinzent Höfler"
<JeLlyFish.software at gmx.net> wrote:
> Von: Michael Van Canneyt <michael at freepascal.org>:
>
>> Like I said, we should not have named it enums. They are not enums.
>> They're a hack to support some C construct in a type-safe way.
>> No more, no less.
>
> IBTD.
[skip Ada sample]
> They might be an ugly hack, but I really doubt the part about being a C construct. And then, even in Ada, the definitions have to be in (ascending) order. Which means, the compiler only has to support "holes", not an arbitrary set of values.
>
> Maybe this would be an option for FPC, too?
I agree that there is, in principle, nothing wrong with sparse enums.
However, Ada is well-known for sacrificing performance for correctness and
generality, and I am not sure if FPC should follow that.
The best Succ(X) algorithm I can think of that works correctly on
sparse enums is O(log enum_size).
>Which means, the compiler only has to support "holes", not an arbitrary set of values.
Yes, current enum implementation in FPC is slightly broken in this aspect:
---
type
T = (a = 0, b = 0);
begin
Writeln(b);
end.
---
Prints 'a'.
--
Alexander S. Klenin
More information about the fpc-devel
mailing list