[#64517] Fw: Re: Ruby and Rails to become Apache Incubator Project — Tetsuya Kitahata <kitahata@99.alumni.u-tokyo.ac.jp>

What do you think? >> Ruby developers

13 messages 2014/08/23

[#64615] [ruby-trunk - Feature #10181] [Open] New method File.openat() — oss-ruby-lang@...

Issue #10181 has been reported by Technorama Ltd..

10 messages 2014/08/28
[#64616] Re: [ruby-trunk - Feature #10181] [Open] New method File.openat() — Eric Wong <normalperson@...> 2014/08/28

I like this feature.

[#64671] Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...>

Why this fix solve your problem?

9 messages 2014/08/30
[#64672] Re: Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...> 2014/08/30

(2014/08/30 8:50), SASADA Koichi wrote:

[ruby-core:64181] [ruby-trunk - Feature #9894] [RFC] README.EXT: document rb_gc_register_mark_object

From: ko1@...
Date: 2014-08-04 00:58:34 UTC
List: ruby-core #64181
Issue #9894 has been updated by Koichi Sasada.


 (2014/08/04 7:48), Eric Wong wrote:
 > 
 > --- a/gc.c
 > +++ b/gc.c
 > @@ -5154,13 +5154,15 @@ rb_gc_register_mark_object(VALUE obj)
 >  void
 >  rb_gc_register_address(VALUE *addr)
 >  {
 > -    rb_objspace_t *objspace = &rb_objspace;
 > -    struct gc_list *tmp;
 > -
 > -    tmp = ALLOC(struct gc_list);
 > -    tmp->next = global_list;
 > -    tmp->varptr = addr;
 > -    global_list = tmp;
 > +    if (OBJ_FROZEN(*addr)) {
 > +	rb_gc_register_mark_object(*addr);
 > +    } else {
 > +	rb_objspace_t *objspace = &rb_objspace;
 > +	struct gc_list *tmp = ALLOC(struct gc_list);
 > +	tmp->next = global_list;
 > +	tmp->varptr = addr;
 > +	global_list = tmp;
 > +    }
 >  }
 >  
 >  void
 
 This patch does not work. You should not use
 rb_gc_register_mark_object() because *addr is mutable.
 
 -- 
 // SASADA Koichi at atdot dot net

----------------------------------------
Feature #9894: [RFC] README.EXT: document rb_gc_register_mark_object
https://bugs.ruby-lang.org/issues/9894#change-48185

* 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/

In This Thread

Prev Next