Re: C++ version for GCC development

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Jonathan.

Thank you for the detailed clarification.

> At what point did the GCC developers give up C++98 and start using C++11?


For GCC 11. This is stated at https://gcc.gnu.org/install/prerequisites.html


Are you referring to these lines:

ISO C++11 compiler
> Necessary to bootstrap GCC.

 Versions of GCC prior to 11 also allow bootstrapping with an ISO C++98
> compiler,.....


I thought bootstrapping and compilation are two separate things. In this
context, are bootstrapping and compilation the same i.e. GCC is a compiler
and the ISO C++11 compiler is being used to compile GCC?

The exceptions are some tests which have .c extensions but get
> compiled as both C and C++, when we want to test that both language
> front-ends pass the test.


Are you referring to files in the testsuite folders
(example: gcc/testsuite/g++.dg/lto/pr65302_1.C)?

Regards,
Abdullah.



On Thu, Mar 3, 2022 at 5:36 AM Jonathan Wakely <jwakely.gcc@xxxxxxxxx>
wrote:

> On Thu, 3 Mar 2022 at 09:04, Abdullah Siddiqui
> <siddiquiabdullah92@xxxxxxxxx> wrote:
> >
> > Hello.
> >
> >> Hello.
> >>
> >> This question is for the developers of GCC:
> >>
> >> Which C++ version are you using to write the C++ code of the current GCC
> >> version?
> >>
> >>
> >>
> >> C++11
> >
> >
> > I know Jonathan said earlier that GCC is implemented in C++11. However,
> this page states the following:
> >
> >>  As of version 4.8, GCC is (mostly) implemented in C++, C++98
> specifically.
> >
> >
> > The current version is GCC 11.2, isn't it?
>
> That's the most recent released version. The Git master branch is
> newer than that.
>
> Obviously a page talking about the status as of GCC 4.8 is going to be
> outdated, because that was about 7 years ago.
>
> > At what point did the GCC developers give up C++98 and start using C++11?
>
> For GCC 11. This is stated at
> https://gcc.gnu.org/install/prerequisites.html
>
> > Is it correct to say that the C++ code of GCC is composed of both C++98
> and C++11?
>
> No, IMHO it's not correct. Some files might use an older C++98-ish
> style, but they are all compiled as C++11 (or newer) and so it would
> be wrong to say they are C++98. They can use 'auto' type deduction and
> 'constexpr' and 'noexcept' so they are not C++98.
>
>
> > Additionally, Jonathan also stated the following in one of his emails in
> this thread:
> >
> >> It also looks like they haven't updated those numbers since April last
> year, so it will wrongly count all .c files as C even the ones which
> contain C++ instead. A huge number of files were renamed from .c to .cc
> recently, because they contain C++ and so had a misleading .c extension.
> That doesn't seem to be accounted for in those numbers.
> >
> >
> > The page linked above also has a similar claim:
> >
> >>  As of version 4.8, GCC is (mostly) implemented in C++, but we haven’t
> renamed the source files. Hence you will see source files with a .c
> extension throughout the source tree. These are generally handled by the
> build system as C++, rather than C.
> >
> >
> > Does this mean that ALL the files with the ".c" extension in the GCC
> codebase are C++ files?
>
> No, because as I said previously (and you quoted above), they were
> renamed from .c to .cc recently. Dave's page that talks about "as of
> version 4.8" is very old now. My email from a few weeks ago is a lot
> more current. You should use the current information, not the seven
> year old information.
>
> > How shall I determine which files are C++ files and which ones are in C?
>
> In the current Git master branch, .c files are C and .cc files are
> C++. The exceptions are some tests which have .c extensions but get
> compiled as both C and C++, when we want to test that both language
> front-ends pass the test.
>




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux