Hi everyone, great release, congratulations! I have a project that compiles just fine in trunk, but does not compiles in RC2 due to some FPC trunk and FPC 3.2.2 differences. May I ask if should I report them for future updates? Please, take a look:
If your code needs FPC trunk then it does (and will) not work in any released Lazarus (except if you combine such a release with FPC trunk yourself).
I would expect you get the same error in Lazarus 3.6 and 3.8? (maybe except the undefined label, but that is still an fpc issue).
The release will only be build with the released fpc 3.2.2.
(And when fpc 3.2.4 comes out, then an update will be released / but I do not know the fpc schedule on that).
You can of course test the 4.0RC with fpc trunk. (if your fpc trunk install is recent enough).
If that gives errors, then it has to be established if this is an issue in fpc trunk (since bugs come and go in trunk), or if it is in Lazarus. The latter will likely be addressed (if the fpc team confirms that the change in the compiler is by design).
In Generics.Default, FPC trunk uses const (instead of constref) in TComparer.Compare:
If that prevent any code that is part of Lazarus (IDE, LCL, components, ...) from compiling (e.g. due to inheritance failing) then we will likely fix our code with relevant IFDEF so it can be compiled with trunk.
In general we aim for any code that we ship to compile with
- the current fpc release (as of now 3.2.2)
- the previous fpc release (as of now 3.2.0)
- fpc fixes branch (only the most recent commit) / if it fails, first update
- fpc trunk branch (only the most recent commit) / if it fails, first update
Of course for the 2 branches, only if compiler errors are not caused by bugs in that fpc revision.
FPC 3.2.2 do not propagate String helpers for ShortString's.
That would likely only affect your code? So then, nothing we can do. If you need that you need to install FPC trunk yourself. It should not require changes in Lazarus.
I am getting an internal error 200510032, and also "Undefined symbol: .Lj2139"
Definitely a bug in fpc.
It might be that Lazarus 3.6 or 3.8 did not trigger this. But unfortunately we don't know what triggers this fpc bug. So we can't add any work around for it.
(if that bug is triggered for your code by changes in Lazarus between V3 and V4)