On Thu, May 2, 2024 at 10:12 AM Jason Merrill <ja...@redhat.com> wrote: > > On 5/2/24 12:45, Jason Merrill wrote: > > On 5/2/24 12:20, Ken Matsui wrote: > >> On Thu, May 2, 2024 at 8:34 AM Ken Matsui <kmat...@cs.washington.edu> > >> wrote: > >>> > >>> On Thu, May 2, 2024 at 8:16 AM Patrick Palka <ppa...@redhat.com> wrote: > >>>> > >>>> On Tue, 30 Apr 2024, Jason Merrill wrote: > >>>> > >>>>> On 2/28/24 11:26, Ken Matsui wrote: > >>>>>> This patch implements built-in trait for std::rank. > >>>>> > >>>>> __rank seems too short, maybe __array_rank? > >>>>> > >>>>> Actually, it occurs to me that perhaps we should have been adding > >>>>> __builtin to > >>>>> all of these rather than just __ and the library trait name. I > >>>>> guess it's too > >>>>> late to do that for the GCC 14 traits, but we could do it for this > >>>>> group? > >>>> > >>>> Clang already implements many of these built-in, without using > >>>> "__builtin" in their name. Shouldn't we be consistent with Clang where > >>>> we can? > >> > >> Since I had already replaced the prefix locally with __builtin, I > >> submitted patches addressing all other Jason's reviews with that. > >> Please let me know if we want to use __ and __array_rank. > > > > If Clang already has a corresponding built-in (as with __array_rank, > > apparently), let's use the same name; otherwise let's add __builtin to > > the new ones. > > Eh, this could probably use more discussion. > > The practice of omitting __builtin from type-trait builtins goes back to > Paolo's r123366 (cb68ec50) for > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26099 > > There was some discussion of how to name the built-ins back in > https://gcc.gnu.org/pipermail/gcc-patches/2007-March/thread.html#212171 > but __builtin wasn't discussed. > > Apparently this naming convention follows the MSVC precedent: > http://msdn2.microsoft.com/en-us/library/ms177194.aspx > > I notice some discussion of this pattern around Clang adding various > built-ins in https://github.com/llvm/llvm-project/issues/61852 > indicating that this is a policy based on precedent. > > But I don't see any actual reason for this pattern other than that it's > what Paolo happened to do in 2007. > > I'm not sure what the right way forward is. Perhaps we're stuck with > the questionable choices of the past. >
Hmm, I personally prefer the __builtin prefix. However, it seems that we need to reach a consensus across MSVC, Clang, and GCC. Would this be realistically possible? Until then, I think it would be better to use __ for all built-in traits. What do you think? > Jason >