Recent

Author Topic: FPC 3.2.4-rc1 available  (Read 37037 times)

PascalDragon

  • Hero Member
  • *****
  • Posts: 6387
  • Compiler Developer
Re: FPC 3.2.4-rc1 available
« Reply #165 on: April 27, 2026, 09:46:50 pm »
We don't allow that precisely to avoid people trying to compile a current 3.3.1 with an older 3.3.1 which had been regular support questions before the version check despite us saying that we only support compiling with the current official release (and the one before that). The version check can't a more granular check because the revision might have been stripped.

"which had been regular support questions before": would you mind rewording that paragraph in clear English please? i think understanding what you are trying to say here may be important, but you have mangled the language enough to make it ambiguous.

We had many people asking in the past why they couldn't compile a development version using an older compiler of the same version (e.g. 3.3.1, though there the version check is already long in place). With the version check these questions were vastly reduced.

robert rozee

  • Sr. Member
  • ****
  • Posts: 372
Re: FPC 3.2.4-rc1 available
« Reply #166 on: April 28, 2026, 01:45:00 am »
i'm only interested in release versions. currently, i use FPC 3.2.2, and i regularly use it to recompile itself. i expect that when the next release comes out to, likewise, for it be able to recompile itself. will i be unpleasantly surprised?


cheers,
rob.


MarkMLl

  • Hero Member
  • *****
  • Posts: 8571
Re: FPC 3.2.4-rc1 available
« Reply #167 on: April 28, 2026, 09:58:28 am »
I suggest that that also needs to automatically accept recompilation with the current version, not just the previous one.

We don't allow that precisely to avoid people trying to compile a current 3.3.1 with an older 3.3.1 which had been regular support questions before the version check despite us saying that we only support compiling with the current official release (and the one before that). The version check can't a more granular check because the revision might have been stripped.

The question arose- and I made it abundantly clear at the time- because I was trying to compile the published 3.2.2 sources with a freshly-downloaded 3.2.2 both from the FPC repository.

One response- from IIRC Marco- was that in order to compile 3.2.2 I had to use 3.2.0: which didn't work because (in that particular case) changes that Debian had made to the linker etc.

The other response- from you- was that in order to compile 3.2.2 I had to use 3.2.2: which quite simply didn't work because of the version check in the makefile.

So while I sympathise with your requirement that a non-published development version like 3.3.1 should only be compiled by some very tightly defined prior version, I do not believe that the test you are applying to the published sources of a non-development version is reasonable.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

MarkMLl

  • Hero Member
  • *****
  • Posts: 8571
Re: FPC 3.2.4-rc1 available
« Reply #168 on: April 28, 2026, 10:14:22 am »
Note you can pass OVERRIDEVERSIONCHECK=1 to override for special cases, like not have a formal bootstrap version available. (as is often done for new targets).

Which is neither documented (for FPC 3.2.2 or older) nor anywhere useful in the wiki.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Thaddy

  • Hero Member
  • *****
  • Posts: 19115
  • Glad to be alive.
Re: FPC 3.2.4-rc1 available
« Reply #169 on: April 28, 2026, 11:03:19 am »
Because it should not be documented in the first place.
Anyway, release compilers can always build themselves, it is just trunk, with its undefined status between commits.
objects are fine constructs. You can even initialize them with constructors.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12837
  • FPC developer.
Re: FPC 3.2.4-rc1 available
« Reply #170 on: April 28, 2026, 11:48:08 am »
Note you can pass OVERRIDEVERSIONCHECK=1 to override for special cases, like not have a formal bootstrap version available. (as is often done for new targets).

Which is neither documented (for FPC 3.2.2 or older) nor anywhere useful in the wiki.

Afaik the only general documentation about the build process is the buildfaq, but that is out of date. it is on my todo to revive that. Lots of useful new stuff like  FPMAKEOPT="-T 4"  and NOWPOCYCLE=1

But if you want to query about proper build procedures, please open another thread.

robert rozee

  • Sr. Member
  • ****
  • Posts: 372
Re: FPC 3.2.4-rc1 available
« Reply #171 on: April 28, 2026, 01:13:57 pm »
[...]
One response- from IIRC Marco- was that in order to compile 3.2.2 I had to use 3.2.0: which didn't work because (in that particular case) changes that Debian had made to the linker etc.

The other response- from [PascalDragon]you- was that in order to compile 3.2.2 I had to use 3.2.2: which quite simply didn't work because of the version check in the makefile.
[...]

are we now dealing with Schrödinger's Cat?!

i am, myself, using Linux Mint, versions 19.3 to current (22.3), with XFCE as the desktop. the version of FPC i have used for nearly 5 years is the one available in the release folders on SourceForge as linked to from https://www.freepascal.org/download.html and paired with release versions of Lazarus. The version of FPC identifies itself as "FPC version 3.2.2".
  • i have never had any problems using this FPC 3.2.2 to recompile itself.
  • after recompiling FPC, it has never had any problems working with the Lazarus IDE.
  • it must be conceded that i have never had any reason to recompile for platforms other than Linux i386 and x86-64.

is there any release version of FPC for Linux, as published on SourceForge, that can not recompile itself?

is there any plan to make future release versions of FPC for Linux artificially incapable of recompiling themselves?


note: i have not one iota of interest in the absolute mess that currently exists of GitLab; it is unstable, convoluted, experimental, and disorganized. while i applaud those brave souls who are currently attempting to create a new release version of FPC from what can at best be described as a 'dumpsite fire', i have no interest in the hoops one may have to jump through to create a build except when/if the next release of FPC is published.

can anyone provide a straight answer?


cheers,
rob   :-)
« Last Edit: April 28, 2026, 01:27:52 pm by robert rozee »

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12837
  • FPC developer.
Re: FPC 3.2.4-rc1 available
« Reply #172 on: April 28, 2026, 01:59:32 pm »
Because it should not be documented in the first place.
Anyway, release compilers can always build themselves, it is just trunk, with its undefined status between commits.

Technically they can. But it is not supported, e.g. if you try to compile fixes, you get the error below. Formally supported is only "the last release" to compile the "next release", to build a bootstrap chain. That is already the case since before I joined last century. Which later has been extended to the last two versions in practice, as the compiler of the fixes branch is usually not that different.

Code: [Select]
Makefile:2835: *** The only supported starting compiler version is 3.2.2. You are trying to build with 3.2.4..  Stop.

(so despite the message 3.2.0 will work too, the message only lists the formal spec)

The check is deliberately simple and basic, so that catches a number of wrong combinations (deliberate or not) for simple building.  For all other special cases (like bootstrapping on an OS where the last release doesn't work) there is OVERRIDEVERSIONCHECK define.

Note that this check already exists this way since 2.6.2 or 2.6.4 or so, and extended to two versions iirc around 3.2.0.
« Last Edit: April 28, 2026, 02:13:51 pm by marcov »

Fred vS

  • Hero Member
  • *****
  • Posts: 3917
    • StrumPract is the musicians best friend
Re: FPC 3.2.4-rc1 available
« Reply #173 on: May 05, 2026, 04:08:47 pm »
Congratulations on the many commits made in the fixes_fpc_32 branch.
It seems the next release will be fpc 3.2.4 RC2.
Does this mean the final version 3.2.4 will have to wait a little longer?
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Thaddy

  • Hero Member
  • *****
  • Posts: 19115
  • Glad to be alive.
Re: FPC 3.2.4-rc1 available
« Reply #174 on: May 05, 2026, 04:29:51 pm »
As I understand it, there is an effort to get it over with. If that is what you mean. So test it once announced and DO NOT ASK FOR ANY NEW FEATURES.
Check for bugs.

Anything else will delay any progress.
objects are fine constructs. You can even initialize them with constructors.

JCLRQ

  • Newbie
  • Posts: 3
Re: FPC 3.2.4-rc1 available
« Reply #175 on: May 08, 2026, 03:28:45 pm »
I do not want to stress the developers. But this is the reason, we need to accelerate on fpc release. Here are the metrics for my project. Honestly i was not expecting that much  :D. There is no code change between both just a rebuild:

Metric                         FPC 3.2.2 (Old)   FPC 3.3.1 (Trunk)   Improvement
Throughput (GEN work)   4,648 units   5,008 units            +7.7%
Total Structs Produced   641                   694                            +8.3%
Archive Merging Time           735 ms           349 ms                    +52.5% reduction
Merging Efficiency          30.6 ms / merge   11.2 ms / merge   ~2.7x faster

Built for: x86-64-Win 64, AVX2


 

TinyPortal © 2005-2018