<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 1/13/22 02:31, Ben Grasset via
      fpc-devel wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAL4d7FjkPVbvZMtNS3JZwa0WXQDtxgYg-O7Ji6B5ktUOXR8aXw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">On Wed, Jan 12, 2022 at 7:38 AM Martin Frb via
          fpc-devel <<a href="mailto:fpc-devel@lists.freepascal.org"
            moz-do-not-send="true" class="moz-txt-link-freetext">fpc-devel@lists.freepascal.org</a>>
          wrote:<br>
        </div>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex"><br>
            The downloads provided by Lazarus are also NOT a "pure,
            native 64-bit <br>
            download". Only the "fpc.exe" and the non-cross "ppc64.exe"
            are native <br>
            64 bit.<br>
            <br>
            As I said, I do not know, what is currently provided by the
            Fpc <br>
            "combined 32-/64-bit download".<br>
            No Idea, if any of the fpc/ppc executable in this download
            are already <br>
            64-bit.<br>
          </blockquote>
          <div><br>
          </div>
          <div>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 <b>IS</b>
            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.</div>
          <div><br>
          </div>
          <div>
            <div dir="ltr">On Wed, Jan 12, 2022 at 7:55 AM Tomas Hajny
              via fpc-devel <<a
                href="mailto:fpc-devel@lists.freepascal.org"
                moz-do-not-send="true" class="moz-txt-link-freetext">fpc-devel@lists.freepascal.org</a>>
              wrote:<br>
            </div>
            <div class="gmail_quote">
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
                0.8ex;border-left:1px solid
                rgb(204,204,204);padding-left:1ex">Wrong - applies only
                to the Win64 target, whereas e.g. 64-bit Linux<br>
                (supported by the same compiler targetting 64-bit code)
                supports<br>
                extended. This means that compiling source code with
                this compiler may<br>
                result in a different binary as soon as there's e.g. an
                extended<br>
                contstant included in the source code, or any
                compile-time calculations<br>
                in this precision need to be performed.</blockquote>
              <div><br>
              </div>
              <div>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.</div>
              <div><br>
              </div>
              <div>In any case, people who want native 64-bit Windows
                toolchains want them pretty much exclusively for use <i>on
                </i>64-bit Windows to <i>target</i> 64-bit Windows, and
                will install any cross-compilers secondarily <i>if </i>they
                have a use for them. The 32-bit-to-64-bit Windows FPC
                toolchain is <i>not </i>a perfect drop-in replacement.
                Based on testing I did locally previously, it's not as
                fast as the native 64-bit one,</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <p>Really? Are you sure, because I just tested make cycle on Linux
      and the results are:</p>
    <p>i386:</p>
    <p>real    1m1.032s<br>
      user    0m53.194s<br>
      sys    0m5.572s<br>
    </p>
    <p>x86_64:</p>
    <p>real    1m32.651s<br>
      user    1m21.486s<br>
      sys    0m9.414s<br>
    </p>
    <p>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.<br>
    </p>
    <p> 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.<br>
    </p>
    <blockquote type="cite"
cite="mid:CAL4d7FjkPVbvZMtNS3JZwa0WXQDtxgYg-O7Ji6B5ktUOXR8aXw@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_quote">
          <div>
            <div class="gmail_quote">
              <div> 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").</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <p>A bug report with steps to reproduce would probably be nice.</p>
    <p>Nikolay<br>
    </p>
  </body>
</html>