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
>

Reply via email to