Upstream Yocto Bringing in GCC 10
Khetan, Sharad
sharad.khetan at intel.com
Wed Jun 3 04:32:34 AEST 2020
-----Original Message-----
From: openbmc <openbmc-bounces+sharad.khetan=intel.com at lists.ozlabs.org> On Behalf Of Adrian Ambrozewicz
Sent: Tuesday, June 02, 2020 1:19 AM
To: Patrick Williams <patrick at stwcx.xyz>
Cc: OpenBMC Maillist <openbmc at lists.ozlabs.org>
Subject: Re: Upstream Yocto Bringing in GCC 10
W dniu 5/26/2020 o 17:57, Patrick Williams pisze:
> On Mon, May 25, 2020 at 02:35:32PM +0200, Adrian Ambrożewicz wrote:
>>> On May 17, 2020, at 7:08 PM, Patrick Williams <patrick at stwcx.xyz> wrote:
>>> Alright! The great thing about GCC 10.x is that it brings in
>>> support for most of C++20, including co-routines. Looking forward
>>> to playing around with it.
>> Is it allowed in OpenBMC to base the functionality on experimental
>> implementations?
>
> No disagreement with how Brad responded to this. In the past we've
> been pretty prompt at moving up to the new C++ standards.
>
> I am curious what you meant by "experimental implementations" here
> though. Usually the C++ standards committee has put things in the
> 'std::experimental' namespace when they are so and the normal 'std' is
> non-experimental. This means code using 'std' APIs should continue to
> work going forward, but code using 'std::experimental' might not.
>
> The specific example I mentioned here of coroutines is out of
> std::experimental as of C++20. The compiler writers have been slow to
> get it implemented because it is a complicated feature. So, I guess
> you could consider the fresh implementation at the compiler level as
> "experimental" but the language / library features themselves are not?
>
>Sure, we can distinguish 'experimental' part in two parts:
- APIs (not yet standarized),
- implementations (marked by compiler development team as experimental).
>I've meant the latter. In other words - is it good to be early adopter of some cool new features, not yet widely tested in the field. Like you've said - coroutines are quite complicated feature and trusting early implementations might come with a risk.
>I can imagine some companies or communities might choose to be careful in that matter. I was just wondering if there is some 'BKM' which states 'experimental (unstable?) implementations are prohibited from use until marked by software vendor as stable'. Maybe that's my problem - I could be confusing 'experimental' with 'unstable' after all:)
If experimental means potentially unstable, I would say we avoid such implementation in the OpenBMC. We need to keep OpenBMC stable and such new language / compiler features may be pretty gnarly to debug by the users.
Thanks,
-Sharad
More information about the openbmc
mailing list