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