[#62904] [ruby-trunk - Feature #9894] [Open] [RFC] README.EXT: document rb_gc_register_mark_object — normalperson@...
Issue #9894 has been reported by Eric Wong.
3 messages
2014/06/02
[#63321] [ANN] ElixirConf 2014 - Don't Miss Jos辿 Valim and Dave Thomas — Jim Freeze <jimfreeze@...>
Just a few more weeks until ElixirConf 2014!
6 messages
2014/06/24
[ruby-core:63076] [ruby-trunk - Feature #9894] [RFC] README.EXT: document rb_gc_register_mark_object
From:
normalperson@...
Date:
2014-06-10 19:40:27 UTC
List:
ruby-core #63076
Issue #9894 has been updated by Eric Wong.
SASADA Koichi <ko1@atdot.net> wrote:
> (2014/05/31 4:56), Eric Wong wrote:
> > +void rb_gc_register_mark_object(VALUE val)
> > +
> > + Tells GC to protect the object referenced by val. This requires less
> > + memory to track than rb_global_variable, but may only be used if the C
> > + variable never changes.
> > +
>
> How about that?
>
> > Tells GC to protect the object referenced by val.
>
> Another things are implementation details.
>
> And I'm not sure the following sentence is needed.
>
> > but may only be used if the C
> > variable never changes.
>
> I think it may assume global variables. But this API is independent from
> C's global variables. I think this comment may be for
> `rb_global_variable' users, but it is different API.
I think it is important to tell users how it is different from
rb_global_variable and when it is OK or not OK to use. So I think
the implementation details/difference from rb_global_variable is
important to prevent misuse.
May we consider this part of the supported C API?
> PS.
> For our MVM development, we can not support "rb_global_variable()". So I
> want to make it obsolete.
> This is why I introduce rb_gc_register_mark_object(). But not yet.
Is MVM still happening? I haven't heard about it in a long time.
If so, we should move fstring and symbol table into the vm struct.
----------------------------------------
Feature #9894: [RFC] README.EXT: document rb_gc_register_mark_object
https://bugs.ruby-lang.org/issues/9894#change-47152
* Author: Eric Wong
* Status: Closed
* Priority: Normal
* Assignee:
* Category:
* Target version:
----------------------------------------
Any comment on officially supporting this as part of the C API?
diff --git a/README.EXT b/README.EXT
index d66d6c5..dded850 100644
--- a/README.EXT
+++ b/README.EXT
@@ -1176,6 +1176,12 @@ void rb_global_variable(VALUE *var)
Tells GC to protect these variables.
+void rb_gc_register_mark_object(VALUE val)
+
+ Tells GC to protect the object referenced by val. This requires less
+ memory to track than rb_global_variable, but may only be used if the C
+ variable never changes.
+
== Constant Definition
void rb_define_const(VALUE klass, const char *name, VALUE val) ::
--
Eric Wong
--
https://bugs.ruby-lang.org/