[Lazarus] Lazarus in trunk not working after Rev 50151 on MacOSX
Ondrej Pokorny
lazarus at kluug.net
Wed Nov 4 08:23:26 CET 2015
Fixed in r50217.
On 04.11.2015 02:14, Mattias Gaertner wrote:
>> A problem could be with such code:
>> >
>> >var
>> > i: SizeInt;
>> > j: Integer;
>> >begin
>> > k:=i+j;
>> >end;
>> >
>> >Because obviously on 32bit SizeInt=longint and Integer=longint, so there
>> >won't be a deterministic way which type wins.
> Left side wins.
> It can't be perfect, but it should be deterministic.
SizeInt always wins - both if it is on left side or right side because
it has a higher rank than Integer. So it is now completely deterministic.
(Under "not deterministic" I ment that "k:=i+j" and "k:=j+i" return
different types, which is the case of "left side wins".)
On 04.11.2015 05:42, Ondrej Pokorny wrote:
> On 04.11.2015 02:25, Mattias Gaertner wrote:
>>> About the table:
>>> >We need one table for integer and one for floating-point types.
>>> >The integer table could look like ['int64', 'sizeint', 'integer',
>>> >'smallint'] (but with all integer types and probably a good idea to
>>> >allow the user to modify and enhance it - e.g. a simple TStringList).
>>> >The winner is the one closest to the left (top - smallest index).
>> Many libs has such types. I have not counted, but I guess the FPC
>> sources has hundreds of them. Probably some of them conflict each other.
>> So something better than a TStringList should be used.
>
> Could you tell which one to use?
Ok, I used just a simple "array of string". It's not the fastest/best
for adding items one-by-one but there are not so many types, so who
cares... It can be easily replaced if you don't like it.
+ I may have not added all predefined types in:
function BooleanTypesOrderList: TTypeAliasOrderList;
function IntegerTypesOrderList: TTypeAliasOrderList;
function RealTypesOrderList: TTypeAliasOrderList;
function StringTypesOrderList: TTypeAliasOrderList;
you are welcome to extend them.
Ondrej
More information about the Lazarus
mailing list