[fpc-pascal] Warning not to use the "String" type with FPC 3.x

Jonas Maebe jonas.maebe at elis.ugent.be
Mon May 9 12:47:55 CEST 2016


Graeme Geldenhuys wrote:
> On 2016-05-09 11:28, Jonas Maebe wrote:
>>>>      so the programmer is completely helpless in preventing
>>>>      this.
>> Unlike in previous FPC versions, in FPC 3.x the programmer can specify
>> the encoding that ansistring should use at run time via the
>> SetMultiByteConversionCodePage().
>>
>
> True, and from earlier mailing list discussions, not many know about
> that. No fault of yours of course. The most important point is that by
> the time they find out they need to call
> SetMultiByteConversionCodePage() they already lost valuable data.

As mentioned in my previous mail, the same happened in previous FPC 
versions.

> All
> the compiler does is raise "warnings" in the compiler output, yet
> happily compiles further and generates you a fatal executable. Those
> should really be errors!

You also want errors when assigning longints to bytes etc? (which does 
not even produce a warning) The previous compiler version did not even 
produce warnings for string conversions that could result in data loss, 
and yet you argue that the situation got worse with FPC 3.x.

> I'm not in the fpc-devel mailing list, but do you mind sharing some
> quick information on what the FPC team are planning for the RTL?

There is no such quick information, because it's a very hairy topic and 
no agreement has been reached yet.

> My opinion:

Having opinions available is not the issue. Getting people to completely 
implement all of their opinions so that we can compare all options in 
practice, with the chance that most of those people's work will be 
discarded afterwards (or have them implement it in a way that is usable 
no matter which option is chosen in the end), is —understandably— much 
more difficult.


Jonas



More information about the fpc-pascal mailing list