This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Deprecate -frepo option.
- From: Jason Merrill <jason at redhat dot com>
- To: Nathan Sidwell <nathan at acm dot org>, Martin Liška <mliska at suse dot cz>, Richard Biener <richard dot guenther at gmail dot com>
- Cc: Jakub Jelinek <jakub at redhat dot com>, Jonathan Wakely <jwakely dot gcc at gmail dot com>, Iain Sandoe <idsandoe at googlemail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, David Edelsohn <dje dot gcc at gmail dot com>, Jan Hubicka <hubicka at ucw dot cz>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 9 Jul 2019 17:14:34 -0400
- Subject: Re: [PATCH] Deprecate -frepo option.
- References: <firstname.lastname@example.org> <BC1522A8-E989-448F-BB2D-7552F1111F1D@gmail.com> <email@example.com> <CAH6eHdS-oVx-pSwsFwsnsH02biaLPyrhzv-8V23JtpfXa1=WBA@mail.gmail.com> <B2D95072-A88E-4BAA-9F33-E46685EDFE9A@googlemail.com> <firstname.lastname@example.org> <CAH6eHdTPwE+6xv7n6HMsCmH-Ei=zTLN+vmAB-51=CzytmjEJFQ@mail.gmail.com> <email@example.com> <20190621115838.GX815@tucnak> <firstname.lastname@example.org> <20190621141309.GY815@tucnak> <CAFiYyc3mw2hitAyp-Xfucv5sAM6TbmTyHyicGTKWGSi5znPrgA@mail.gmail.com> <email@example.com> <CAFiYyc3h-5GPtA1rNNz1q580s+6EFJ-KyDkZu+UV3XnmDbaF5g@mail.gmail.com> <firstname.lastname@example.org> <email@example.com> <firstname.lastname@example.org>
On 7/9/19 1:48 PM, Nathan Sidwell wrote:
On 7/9/19 9:00 AM, Martin Liška wrote:
On 7/9/19 1:41 PM, Nathan Sidwell wrote:
On 7/9/19 6:39 AM, Richard Biener wrote:
On Mon, Jul 8, 2019 at 2:04 PM Martin Liška <email@example.com> wrote:
Same happens also for GCC7. It does 17 iteration (#define
MAX_ITERATIONS 17) and
apparently 17 is not enough to resolve all symbols. And it's really
hm, 17 is a magic number. in C++98 it was the maximum depth of
template instantiations that implementations needed to support.
Portable code could not expect more. So the worst case -frepo
behaviour would be 17 iterations.
That's not true any more, it's been 1024 since C++11.
Has a bug been filed about this frepo problem?
I create a new one:
If not, it suggest those using frepo are not compiling modern C++.
That said, I would recommend to remove it :)
In the end it's up to the C++ FE maintainers but the above clearly
doesn't look promising
(not sure if it keeps re-compiling _all_ repo-triggered templates or
just incrementally adds
them to new object files).
I'm not opposed to removing -frepo from GCC 10 but then I would start
noting it is obsolete
on the GCC 9 branch at least.
I concur. frepo's serial reinvocation of the compiler is not
compatible with modern C++ code bases.
Great. Then I'm sending patch that does the functionality removal.
Ready to be installed after proper testing & bootstrap?
I'd like Jason to render an opinion, and we should mark it obsolete in
the gcc 9 branch (how much runway would that give people?)
I haven't noticed any responses to my earlier question: Are there any
targets without COMDAT support that we still care about?
But given the observation above about the 17 limit, even if there are
such targets it wouldn't be very useful for modern code. And if people
want to compile old code for old platforms, they might as well continue
to use an old compiler.
So I'm OK with deprecating with a warning for the next GCC 9 release, to
see if anyone complains, and removing in 10.