Project

General

Profile

Actions

Misc #16803

open

Discussion: those internal macros reside in public API headers

Added by shyouhei (Shyouhei Urabe) over 1 year ago. Updated over 1 year ago.

Status:
Open
Priority:
Normal
Assignee:
-
[ruby-core:97992]

Description

A while ago I merged https://github.com/ruby/ruby/pull/2991 ("Split ruby.h"). This seems working. But the changeset raised several questions.

The biggest one relates to those newly publicised macros and inline functions. For instance RUBY3_STATIC_ASSERT is a macro that expands to either _Static_assert (for C) or static_assert (for C++). A similar mechanism has been implemented inside of our repository for a while. The pull request moved the definition around to be visible outside.

Discussion #1

Is it a good idea or a bad idea, to make them visible worldwide?

Discussion #2

Why not publicise everything? For instance debuggers could benefit from ruby internal symbols.

Discussion #3

It is relatively hard for us to change public APIs (doing so could break 3rd party gems). We don't want that happen for internal APIs. How do we achieve future flexibility?

Actions

Also available in: Atom PDF