Proposal: Remove "Frameworks compiler requirements and Modern C++" from Policies
Albert Astals Cid
aacid at kde.org
Tue Nov 25 23:35:40 GMT 2025
El dimarts, 25 de novembre del 2025, a les 10:46:03 (Hora estàndard d’Europa
central), Nicolas Fella va escriure:
> Am 25.11.25 um 10:21 schrieb Albert Astals Cid:
> > El dimarts, 25 de novembre del 2025, a les 1:35:03 (Hora estàndard
> > d’Europa
> >
> > central), Michael Pyne va escriure:
> >> On 11/24/25 3:58 PM, Neal Gompa wrote:
> >>> On Mon, Nov 24, 2025 at 3:54 PM Albert Astals Cid<aacid at kde.org> wrote:
> >>>> https://community.kde.org/Frameworks/Policies#Frameworks_compiler_requi
> >>>> re
> >>>> ments_and_Modern_C++
> >>>>
> >>>> It is wildly outdated, so I would suggest to remove it.
> >>>>
> >>>> Or does someone have a suggested way to update it?
> >>>
> >>> As far as I know, starting from 6.0, we require a C++20 capable
> >>> compiler. That means at least GCC 12, Clang 14, or MSVC 2022 I
> >>> believe.
>
> We did say we _want_ C++20. What specific compiler versions this
> translates to is rather fuzzy since different compiler versions
> implements different subsets of C++20 (e.g. for the longest time
> "nobody" usefully implemented modules). Because of that I don't think we
> ever settled on specific versions.
>
> >> I think there is value in having the policy for allowable C++ standards
> >> and/or compilers written down in some easily-accessible form. Perhaps a
> >> bit more future-proofed so it doesn't get wildly outdated again. I've
> >> been able to find references to requiring C++20-supporting compilers for
> >> KF6 starting from 6.0.
> >
> > The problem is, what is the value of a policy if we do not check/enforce
> > it?
> >
> > Right now the only thing we can say is "it builds with whatever compilers
> > we have in CI".
>
> Even if we don't enforce it by CI there is still value to it. If
> somebody comes around and points out that we broke compilation on
> "reasonably recent platform" that's going to be a different conversation
> than if it's Ubuntu 14.04.
Ok, fair enough, what about something like
A) KDE Frameworks can use features of the previous to latest C++ standard, at
the time of writing (November 2025) that means C++20.
B) KDE Frameworks shall compile with the major compilers: gcc, clang and
msvc(for Frameworks that claim Windows support)
C) KDE Frameworks shall compile with "reasonably old" versions of the
compilers that claim to support the C++ standard mentioned in point "A"
Cheers,
Albert
>
> > Cheers,
> >
> > Albert
> >>
> >> Are there any other relevant policies that apply to KF6 for C++ support
> >> and/or compiler support? Assuming not, I'd propose that the page be
> >> updated to note that KDE Frameworks require a C++20-compatible compiler,
> >> and that the compiler must also be supported by the minimum required Qt
> >> version as listed in the prior section.
> >>
> >> If it were not for Qt supporting as far back as GCC 9 (for openSUSE) we
> >> might simply be able to require the same compiler Qt requires. But it's
> >> not until GCC 12 you get nearly full support for C++20 (and even 12
> >> still misses parts of C++ modules support), so it's probably still worth
> >> mentioning we require a C++20-capable compiler.
> >>
> >> I'll volunteer to update the page if that works, something along the
> >> lines of KF6 requires a C++ compiler that is compliant with at least
> >> C++20 and supported by the oldest supported Qt 6 minor release.
> >>
> >> Regards,
> >>
> >> - Michael Pyne
More information about the Kde-frameworks-devel
mailing list