On 1/13/22 02:31, Ben Grasset via fpc-devel wrote:
On Wed, Jan 12, 2022 at 7:38 AM Martin Frb via fpc-devel
<fpc-devel@lists.freepascal.org> wrote:
The downloads provided by Lazarus are also NOT a "pure, native 64-bit
download". Only the "fpc.exe" and the non-cross "ppc64.exe" are
native
64 bit.
As I said, I do not know, what is currently provided by the Fpc
"combined 32-/64-bit download".
No Idea, if any of the fpc/ppc executable in this download are
already
64-bit.
Every single executable that actually originates from the FPC
toolchain (so like `fpc.exe`, `ppcx64.exe`, `ppudump.exe`,
`pas2js.exe`, `h2pas.exe`, and so on) contained in the current
"lazarus-2.2.0-fpc-3.2.2-win64.exe" installer that the Lazarus website
directs to when you click "Download Now" on a system running 64-bit
Windows *IS* currently 64-bit. I just verified this myself. That
particular installer does not include any cross compilers at all, also
(the ones to target 32-bit Windows from 64-bit come in the smaller
"lazarus-2.2.0-fpc-3.2.2-cross-i386-win32-win64.exe" installer.
On Wed, Jan 12, 2022 at 7:55 AM Tomas Hajny via fpc-devel
<fpc-devel@lists.freepascal.org> wrote:
Wrong - applies only to the Win64 target, whereas e.g. 64-bit Linux
(supported by the same compiler targetting 64-bit code) supports
extended. This means that compiling source code with this compiler may
result in a different binary as soon as there's e.g. an extended
contstant included in the source code, or any compile-time
calculations
in this precision need to be performed.
Isn't this specifically the kind of thing that the `FPC_SOFT_FPUX80`
define solves? FPC does not even let you go from 64-bit Windows to
32-bit targets if that define isn't active IIRC, so presumably the
same thing could be made the case in other scenarios if it's something
people are widely concerned about.
In any case, people who want native 64-bit Windows toolchains want
them pretty much exclusively for use /on /64-bit Windows to /target/
64-bit Windows, and will install any cross-compilers secondarily /if
/they have a use for them. The 32-bit-to-64-bit Windows FPC toolchain
is /not /a perfect drop-in replacement. Based on testing I did locally
previously, it's not as fast as the native 64-bit one,
Really? Are you sure, because I just tested make cycle on Linux and the
results are:
i386:
real 1m1.032s
user 0m53.194s
sys 0m5.572s
x86_64:
real 1m32.651s
user 1m21.486s
sys 0m9.414s
So, the 64-bit compiler is 50% slower. This is on an AMD Ryzen 9 5900X
12-core processor, 128 GB RAM and an SSD.
I haven't tested in Windows, but it would be very strange and suspicious
if the results are very different. I would double check if that's really
the case and also try some things, like disabling any antivirus programs
that might be slowing down your computer by scanning every exe file,
produced by the compiler.
and additionally there are other things to keep in mind like the 4GB
RAM limit on 32-bit (which I have in fact seen more than one user on
the Lazarus forums run into with larger projects, none of whom were
using the 32-bit executables "on purpose").
A bug report with steps to reproduce would probably be nice.
Nikolay
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel