[fpc-devel] I've asked this before, but perhaps I wasn't specific enough that time: what do I *personally*, specifically need to do to ensure that a native Windows 64-bit build winds up on the FPC website for the next release?

Sven Barth pascaldragon at googlemail.com
Wed Jan 12 18:48:34 CET 2022

Martin Frb via fpc-devel <fpc-devel at lists.freepascal.org> schrieb am Mi.,
12. Jan. 2022, 18:06:

> On 12/01/2022 17:31, Tomas Hajny via fpc-devel wrote:
> > On 2022-01-12 16:03, Martin Frb via fpc-devel wrote:
> >>
> >>
> >> But, if any change to the code (not even necessarily a functional
> >> change) would allow the compiler to do those calculations at compile
> >> time, then the value changes. And the entire behaviour of the app may
> >> change.
> >> Possible, this could even be a change just in optimization settings
> >> (or upgrading FPC), allowing the compiler to to propagate constants...
> >>
> >> So does that mean, any code (that is to be compiled for Win-64bit) is
> >> considered "unstable" if it contains "extended" ?
> >
> > Not necessarily - when targetting Win64, the user needs to be prepared
> > for the lower precision. However, imagine that that the user compiles
> > his source code for target x86_64-linux. The resulting binary and its
> > output will be exactly the same if the source code is compiled (with
> > the same options, etc.) on Linux or if it is compiled on Windows using
> > a Win32 hosted compiler, but it will differ if using a Win64 hosted
> > compiler. From compiler support point of view, this is an issue.
> Ok. So a question of priority. (E.g., reducing maintenance on tests?)

No, it's a question of unnecessary support we want. We already had users
that complained that their code compiled from Win64 to x86_64-linux behaved
differently than if compiled from Win32 or from x86_64-linux. We don't want
to promote (and support) a compiler that doesn't produce the same code as
the other two variants.

>  >> when targetting Win64, the user needs to be prepared for the lower
> precision
> Yes, but It is one thing to be prepared for:
> - One (exactly one) "lower precision", and all behaviour (on that
> platform [1]) to be always according to that specific precision.
> [1] on that platform, with that exact revision of the compiler.
>       But with any compile options, and independent of none functional
> changes to the users code.
> It is another thing to be prepared for
> - A random[2] "precision" that will change depending on compiler options
> and/or seemingly unrelated changes in the user's code
> [2] From the users view "random", in that the user can not predict all
> the factors that will affect the selection.
> Currently the user must be prepared for the latter.

No, it is deterministic, it's simply different from a native x86_64-linux
compilation or one from Win32 as mentioned above and that is bad.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20220112/ccc8f1bd/attachment-0001.htm>

More information about the fpc-devel mailing list