[ruby-core:98137] [Ruby master Misc#16803] Discussion: those internal macros reside in public API headers
From:
shyouhei@...
Date:
2020-05-05 06:43:16 UTC
List:
ruby-core #98137
Issue #16803 has been updated by shyouhei (Shyouhei Urabe).
ioquatix (Samuel Williams) wrote in #note-7:
> If it was me, I'd literally call it `ruby/internal/file.h` to make it very clear, along with `ruby3` -> `rb_internal_/RB_INTERNAL_`
>
> Assuming `impl` means implementation, it's not clear that it's private, but `internal` does mean a certain kind of private.
That arrangement could be confusing when @nobu merges his https://github.com/nobu/ruby/tree/feature/src-dir branch. You should persuade him first.
----------------------------------------
Misc #16803: Discussion: those internal macros reside in public API headers
https://bugs.ruby-lang.org/issues/16803#change-85379
* Author: shyouhei (Shyouhei Urabe)
* Status: Open
* Priority: Normal
----------------------------------------
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?
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>