is a bit big so I attach the proposal but basically same as my previous proposals. I'd like to make strct RStruct opaque. The benefit is that by hiding its const VALUE* ptr part we can optimize GC pressure. That GC tweaks are not included in the attached patch because I prefer compatibility here. But this patch does make things easier.
* include/ruby/ruby.h (struct RStruct): no longer.
* internal.h (struct RStruct): moved here.
* struct.c (rb_struct_ptr): a compensation function for the lack
of RSTRUCT_PTR. But now that we have RSTRUCT_GET/SET, that must
not be used anyway. I mark this deprecated. Dont use it.