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.

Jason

Reply via email to