[#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:64693] Re: Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object

From: Eric Wong <normalperson@...>
Date: 2014-08-31 18:54:03 UTC
List: ruby-core #64693
SASADA Koichi <ko1@atdot.net> wrote:
> (2014/08/31 0:18), Eric Wong wrote:
> > Oops, forgot, I got backtraces on a clean build tree:
> > 
> > 	http://80x24.org/r35240/rb-dump.txt
> > 	http://80x24.org/r35240/gdb-bt.txt
> > 
> > I ran "make check -j8 TESTS=-j8" in loop for a while.
> 
> It is mysterious. All dynamic symbol should have fstr...

I'm testing the following, will report back in several hours.

--- a/symbol.c
+++ b/symbol.c
@@ -423,6 +423,7 @@ dsymbol_alloc(const VALUE klass, const VALUE str, rb_encoding * const enc)
 
     rb_enc_associate(dsym, enc);
     OBJ_FREEZE(dsym);
+    if (!str) rb_bug("dsymbol_alloc: no str");
     RB_OBJ_WRITE(dsym, &RSYMBOL(dsym)->fstr, str);
     RSYMBOL(dsym)->type = type;
 
@@ -866,9 +867,7 @@ symbols_i(st_data_t key, st_data_t value, st_data_t arg)
     VALUE sym = ID2SYM((ID)value);
 
     if (DYNAMIC_SYM_P(sym) && !SYMBOL_PINNED_P(sym) && rb_objspace_garbage_object_p(sym)) {
-	RSYMBOL(sym)->fstr = 0;
-	unregister_sym_id(sym);
-	return ST_DELETE;
+	return ST_CONTINUE;
     }
     else {
 	rb_ary_push(ary, sym);
-- 
EW

In This Thread