From: s.wanabe@... Date: 2019-05-14T00:08:14+00:00 Subject: [ruby-core:92637] [Ruby trunk Feature#15833] Some refactors for shared-root array Issue #15833 has been updated by wanabe (_ wanabe). Eregon (Benoit Daloze) wrote: > I think nowadays RArray should be considered internal and C extensions should not access members of struct RArray directly, as that's very likely going to be incorrect or very complex. > I don't think many C extensions use RArray directly, but it would be good to check. Thank you to comment. I didn't think about C extension but the readability of MRI itself. `struct RArray` definition can't move from `include/ruby/ruby.h`, so it can't be avoided to modify `include/ruby/ruby.h` if I want to rename `struct RArray` member for readability. But I change my mind that it may not be good to export `RARRAY_SHARED_ROOT_FLAG`. I will drop `0002-Export-RARRAY_SHARED_ROOT_FLAG.patch`. And I will also drop `0003-Fix-object-info-of-shared-root-array.patch` because it it based on above 0002. ---------------------------------------- Feature #15833: Some refactors for shared-root array https://bugs.ruby-lang.org/issues/15833#change-77999 * Author: wanabe (_ wanabe) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I wrote some patches for shared-root array. But I can't decide whether to commit them because they include the modification of public header `include/ruby/ruby.h`. To ruby core team (I'm not assuming anyone in particular): Can I modify `include/ruby/ruby.h` by the patches? The following is descriptions of the patches. `0001-Name-RArray-member-to-count-reference-of-shared-root.patch` names reference count of shared-root array. So far, `as.heap.aux.capa` is used as reference count but it is different from the reality, reference count. This is a follow up of r19824. `0002-Export-RARRAY_SHARED_ROOT_FLAG.patch` exports RARRAY_SHARED_ROOT_FLAG. I followed other flags as in RARRAY_EMBED_FLAG or RARRAY_TRANSIENT_FLAG. `0003-Fix-object-info-of-shared-root-array.patch` is not a refactor but feature request patch based on above ones. `rb_obj_info` outputs shared-root array info as same as normal array currently, but its capa is not a really "capa" as I said. ---Files-------------------------------- 0001-Name-RArray-member-to-count-reference-of-shared-root.patch (1.42 KB) 0002-Export-RARRAY_SHARED_ROOT_FLAG.patch (1.54 KB) 0003-Fix-object-info-of-shared-root-array.patch (1.04 KB) -- 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>