Yugui$B$G$9!#(B
$B4{$K$*CN$i$;$7$?$h$&$K!"(BRuby
1.9.1$B$N;EMM$O(B9$B7n(B25$BF|$GE`7k$5$l$^$9!#(B
$B$=$l0J9_!"(B
* Ruby$B%l%Y%k$N(BAPI$B$OJQ99IT2D(B
*
C$B%l%Y%k$N(BAPI$B$O(Bruby-core/ruby-dev$B$G$N;vA0AjCL$J$7$KJQ99IT2D(B
*
include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B
$B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B
*
$B8x3+$7$?$/$J$$$b$N$O(Binclude/ruby/*.h$B$+$i0\F0$5$;$F$/$@$5$$!#(B
$B$^$?!"(B10$B7n(B25$BF|$K$O(Bruby_1_9_1$B%V%i%s%A$r:n@.$7$F(B1.9.1
RC1$B$r%j%j!<%9$7$^(B
$B$9!#$=$l0J9_$O(B
* C$B%l%Y%k(BAPI$BJQ99IT2D(B
$B$=$l$+$i!"(B1.9.x$B$N(BC$B%l%Y%k(BAPI$B$O(B1.9.1$B$KBP$7$F%P%$%J%j8eJ}8_49@-$r;}$D$3$H$,(B
$B4|BT$5$l$^$9!#(B
$B0J>e%j%^%$%s%@$H!"(Birc$B$G$NAjCL$NJs9p$G$7$?!#(B
$B$H$$$&$3$H$r4U$_$F!"(B
*
node.h$B$r(Binclude/ruby/$B$+$i0\F0$5$;$?$$(B(ripper$B$O$J$s$H$+$9$k(B)$B$N$G$9$,!"(B
$B$3$N$X$s$N7hDj8"$OC/$K$"$k$N$G$7$g$&(B?
* ruby_io_t$B$OHs8x3+$K$7$J$$$H8e2y$7$^$;$s$+(B?
* oniguruma.h$B$OBg>fIW(B?
on 02.09.2008 08:29
on 02.09.2008 12:26
$B:XF#$H?=$7$^$9!#(B On Tue, 2 Sep 2008 15:23:30 +0900 "Yugui (Yuki Sonoda)" <yugui@yugui.jp> wrote: > * C$B%l%Y%k$N(BAPI$B$O(Bruby-core/ruby-dev$B$G$N;vA0AjCL$J$7$KJQ99IT2D(B > * include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B > $B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B $BA0!9$+$i5$$K$J$C$F$?$s$G$9$,!"(B NUM2DBL rb_cstr_to_dbl rb_str_to_dbl rb_num2dbl rb_dbl_cmp rb_dbl2big rb_big2dbl $B$H$$$&!V(Bdbl$B!W$NA0Nc$O$?$/$5$s$"$k$N$K!"$I$&$7$F(B DOUBLE2NUM $B$@$1!V(Bdouble$B!W$J$N$G$7$g$&$+!#(B1.9$B$+$iF~$C$?%^%/%m$N$h$&$G$9$,!"FCJL$JM}M3$,$J$$8B$j(B $BB7$($F$"$C$?J}$,!"N`?d$,8z$$$F%W%m%0%i%`$,=q$-$d$9$$$G$9!#(B Index: math.c =================================================================== --- math.c (revision 19065) +++ math.c (working copy) @@ -85,7 +85,7 @@ math_atan2(VALUE obj, VALUE y, VALUE x) { Need_Float2(y, x); - return DOUBLE2NUM(atan2(RFLOAT_VALUE(y), RFLOAT_VALUE(x))); + return DBL2NUM(atan2(RFLOAT_VALUE(y), RFLOAT_VALUE(x))); } @@ -101,7 +101,7 @@ math_cos(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(cos(RFLOAT_VALUE(x))); + return DBL2NUM(cos(RFLOAT_VALUE(x))); } /* @@ -117,7 +117,7 @@ { Need_Float(x); - return DOUBLE2NUM(sin(RFLOAT_VALUE(x))); + return DBL2NUM(sin(RFLOAT_VALUE(x))); } @@ -133,7 +133,7 @@ { Need_Float(x); - return DOUBLE2NUM(tan(RFLOAT_VALUE(x))); + return DBL2NUM(tan(RFLOAT_VALUE(x))); } /* @@ -152,7 +152,7 @@ errno = 0; d = acos(RFLOAT_VALUE(x)); domain_check(d, "acos"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } /* @@ -171,7 +171,7 @@ errno = 0; d = asin(RFLOAT_VALUE(x)); domain_check(d, "asin"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } /* @@ -185,7 +185,7 @@ math_atan(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(atan(RFLOAT_VALUE(x))); + return DBL2NUM(atan(RFLOAT_VALUE(x))); } #ifndef HAVE_COSH @@ -208,7 +208,7 @@ { Need_Float(x); - return DOUBLE2NUM(cosh(RFLOAT_VALUE(x))); + return DBL2NUM(cosh(RFLOAT_VALUE(x))); } #ifndef HAVE_SINH @@ -231,7 +231,7 @@ math_sinh(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(sinh(RFLOAT_VALUE(x))); + return DBL2NUM(sinh(RFLOAT_VALUE(x))); } #ifndef HAVE_TANH @@ -254,7 +254,7 @@ math_tanh(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(tanh(RFLOAT_VALUE(x))); + return DBL2NUM(tanh(RFLOAT_VALUE(x))); } /* @@ -273,7 +273,7 @@ errno = 0; d = acosh(RFLOAT_VALUE(x)); domain_check(d, "acosh"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } /* @@ -287,7 +287,7 @@ math_asinh(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(asinh(RFLOAT_VALUE(x))); + return DBL2NUM(asinh(RFLOAT_VALUE(x))); } /* @@ -307,7 +307,7 @@ d = atanh(RFLOAT_VALUE(x)); domain_check(d, "atanh"); infinity_check(x, d, "atanh"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } /* @@ -321,7 +321,7 @@ math_exp(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(exp(RFLOAT_VALUE(x))); + return DBL2NUM(exp(RFLOAT_VALUE(x))); } #if defined __CYGWIN__ @@ -359,7 +359,7 @@ } domain_check(d, "log"); infinity_check(x, d, "log"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } #ifndef log2 @@ -391,7 +391,7 @@ d = log2(RFLOAT_VALUE(x)); domain_check(d, "log2"); infinity_check(x, d, "log2"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } /* @@ -411,7 +411,7 @@ d = log10(RFLOAT_VALUE(x)); domain_check(d, "log10"); infinity_check(x, d, "log10"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } /* @@ -447,7 +447,7 @@ errno = 0; d = sqrt(RFLOAT_VALUE(x)); domain_check(d, "sqrt"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } /* @@ -486,7 +486,7 @@ math_cbrt(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(cbrt(RFLOAT_VALUE(x))); + return DBL2NUM(cbrt(RFLOAT_VALUE(x))); } /* @@ -510,7 +510,7 @@ Need_Float(x); d = frexp(RFLOAT_VALUE(x), &exp); - return rb_assoc_new(DOUBLE2NUM(d), INT2NUM(exp)); + return rb_assoc_new(DBL2NUM(d), INT2NUM(exp)); } /* @@ -527,7 +527,7 @@ math_ldexp(VALUE obj, VALUE x, VALUE n) { Need_Float(x); - return DOUBLE2NUM(ldexp(RFLOAT_VALUE(x), NUM2INT(n))); + return DBL2NUM(ldexp(RFLOAT_VALUE(x), NUM2INT(n))); } /* @@ -544,7 +544,7 @@ math_hypot(VALUE obj, VALUE x, VALUE y) { Need_Float2(x, y); - return DOUBLE2NUM(hypot(RFLOAT_VALUE(x), RFLOAT_VALUE(y))); + return DBL2NUM(hypot(RFLOAT_VALUE(x), RFLOAT_VALUE(y))); } /* @@ -558,7 +558,7 @@ math_erf(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(erf(RFLOAT_VALUE(x))); + return DBL2NUM(erf(RFLOAT_VALUE(x))); } /* @@ -572,7 +572,7 @@ math_erfc(VALUE obj, VALUE x) { Need_Float(x); - return DOUBLE2NUM(erfc(RFLOAT_VALUE(x))); + return DBL2NUM(erfc(RFLOAT_VALUE(x))); } /* @@ -624,7 +624,7 @@ errno = 0; d = tgamma(RFLOAT_VALUE(x)); domain_check(d, "gamma"); - return DOUBLE2NUM(d); + return DBL2NUM(d); } /* @@ -649,7 +649,7 @@ errno = 0; d = lgamma_r(RFLOAT_VALUE(x), &sign); domain_check(d, "lgamma"); - v = DOUBLE2NUM(d); + v = DBL2NUM(d); return rb_assoc_new(v, INT2FIX(sign)); } @@ -667,15 +667,15 @@ rb_mMath = rb_define_module("Math"); #ifdef M_PI - rb_define_const(rb_mMath, "PI", DOUBLE2NUM(M_PI)); + rb_define_const(rb_mMath, "PI", DBL2NUM(M_PI)); #else - rb_define_const(rb_mMath, "PI", DOUBLE2NUM(atan(1.0)*4.0)); + rb_define_const(rb_mMath, "PI", DBL2NUM(atan(1.0)*4.0)); #endif #ifdef M_E - rb_define_const(rb_mMath, "E", DOUBLE2NUM(M_E)); + rb_define_const(rb_mMath, "E", DBL2NUM(M_E)); #else - rb_define_const(rb_mMath, "E", DOUBLE2NUM(exp(1.0))); + rb_define_const(rb_mMath, "E", DBL2NUM(exp(1.0))); #endif rb_define_module_function(rb_mMath, "atan2", math_atan2, 2); Index: time.c =================================================================== --- time.c (revision 19065) +++ time.c (working copy) @@ -1016,7 +1016,7 @@ struct time_object *tobj; GetTimeval(time, tobj); - return DOUBLE2NUM((double)tobj->ts.tv_sec+(double)tobj->ts.tv_nsec/1e9); + return DBL2NUM((double)tobj->ts.tv_sec+(double)tobj->ts.tv_nsec/1e9); } /* @@ -1513,7 +1513,7 @@ f = (double)(unsigned_time_t)(tobj->ts.tv_sec - tobj2->ts.tv_sec); f += ((double)tobj->ts.tv_nsec - (double)tobj2->ts.tv_nsec)*1e-9; - return DOUBLE2NUM(f); + return DBL2NUM(f); } return time_add(tobj, time2, -1); } Index: include/ruby/ruby.h =================================================================== --- include/ruby/ruby.h (revision 19065) +++ include/ruby/ruby.h (working copy) @@ -568,7 +568,7 @@ double float_value; }; #define RFLOAT_VALUE(v) (RFLOAT(v)->float_value) -#define DOUBLE2NUM(dbl) rb_float_new(dbl) +#define DBL2NUM(dbl) rb_float_new(dbl) #define ELTS_SHARED FL_USER2 Index: insns.def =================================================================== --- insns.def (revision 19065) +++ insns.def (working copy) @@ -1319,7 +1319,7 @@ else if (HEAP_CLASS_OF(recv) == rb_cFloat && HEAP_CLASS_OF(obj) == rb_cFloat && BASIC_OP_UNREDEFINED_P(BOP_PLUS)) { - val = DOUBLE2NUM(RFLOAT_VALUE(recv) + RFLOAT_VALUE(obj)); + val = DBL2NUM(RFLOAT_VALUE(recv) + RFLOAT_VALUE(obj)); } #endif @@ -1420,7 +1420,7 @@ else if (HEAP_CLASS_OF(recv) == rb_cFloat && HEAP_CLASS_OF(obj) == rb_cFloat && BASIC_OP_UNREDEFINED_P(BOP_MULT)) { - val = DOUBLE2NUM(RFLOAT_VALUE(recv) * RFLOAT_VALUE(obj)); + val = DBL2NUM(RFLOAT_VALUE(recv) * RFLOAT_VALUE(obj)); } #endif else { @@ -1484,7 +1484,7 @@ else if (HEAP_CLASS_OF(recv) == rb_cFloat && HEAP_CLASS_OF(obj) == rb_cFloat && BASIC_OP_UNREDEFINED_P(BOP_DIV)) { - val = DOUBLE2NUM(RFLOAT_VALUE(recv) / RFLOAT_VALUE(obj)); + val = DBL2NUM(RFLOAT_VALUE(recv) / RFLOAT_VALUE(obj)); } #endif else { @@ -1564,7 +1564,7 @@ mod += y; div -= 1.0; } - val = DOUBLE2NUM(mod); + val = DBL2NUM(mod); } else { goto INSN_LABEL(normal_dispatch); Index: object.c =================================================================== --- object.c (revision 19065) +++ object.c (working copy) @@ -850,7 +850,7 @@ static VALUE nil_to_f(VALUE obj) { - return DOUBLE2NUM(0.0); + return DBL2NUM(0.0); } /* @@ -2230,16 +2230,16 @@ { switch (TYPE(val)) { case T_FIXNUM: - return DOUBLE2NUM((double)FIX2LONG(val)); + return DBL2NUM((double)FIX2LONG(val)); case T_FLOAT: return val; case T_BIGNUM: - return DOUBLE2NUM(rb_big2dbl(val)); + return DBL2NUM(rb_big2dbl(val)); case T_STRING: - return DOUBLE2NUM(rb_str_to_dbl(val, Qtrue)); + return DBL2NUM(rb_str_to_dbl(val, Qtrue)); case T_NIL: rb_raise(rb_eTypeError, "can't convert nil into Float"); Index: string.c =================================================================== --- string.c (revision 19065) +++ string.c (working copy) @@ -3763,7 +3763,7 @@ static VALUE rb_str_to_f(VALUE str) { - return DOUBLE2NUM(rb_str_to_dbl(str, Qfalse)); + return DBL2NUM(rb_str_to_dbl(str, Qfalse)); } Index: pack.c =================================================================== --- pack.c (revision 19065) +++ pack.c (working copy) @@ -1642,7 +1642,7 @@ float tmp; memcpy(&tmp, s, sizeof(float)); s += sizeof(float); - UNPACK_PUSH(DOUBLE2NUM((double)tmp)); + UNPACK_PUSH(DBL2NUM((double)tmp)); } PACK_ITEM_ADJUST(); break; @@ -1656,7 +1656,7 @@ memcpy(&tmp, s, sizeof(float)); s += sizeof(float); tmp = VTOHF(tmp,ftmp); - UNPACK_PUSH(DOUBLE2NUM((double)tmp)); + UNPACK_PUSH(DBL2NUM((double)tmp)); } PACK_ITEM_ADJUST(); break; @@ -1670,7 +1670,7 @@ memcpy(&tmp, s, sizeof(double)); s += sizeof(double); tmp = VTOHD(tmp,dtmp); - UNPACK_PUSH(DOUBLE2NUM(tmp)); + UNPACK_PUSH(DBL2NUM(tmp)); } PACK_ITEM_ADJUST(); break; @@ -1682,7 +1682,7 @@ double tmp; memcpy(&tmp, s, sizeof(double)); s += sizeof(double); - UNPACK_PUSH(DOUBLE2NUM(tmp)); + UNPACK_PUSH(DBL2NUM(tmp)); } PACK_ITEM_ADJUST(); break; @@ -1696,7 +1696,7 @@ memcpy(&tmp, s, sizeof(float)); s += sizeof(float); tmp = NTOHF(tmp,ftmp); - UNPACK_PUSH(DOUBLE2NUM((double)tmp)); + UNPACK_PUSH(DBL2NUM((double)tmp)); } PACK_ITEM_ADJUST(); break; @@ -1710,7 +1710,7 @@ memcpy(&tmp, s, sizeof(double)); s += sizeof(double); tmp = NTOHD(tmp,dtmp); - UNPACK_PUSH(DOUBLE2NUM(tmp)); + UNPACK_PUSH(DBL2NUM(tmp)); } PACK_ITEM_ADJUST(); break; Index: gc.c =================================================================== --- gc.c (revision 19065) +++ gc.c (working copy) @@ -2695,14 +2695,14 @@ for (i =0; i < objspace->profile.count; i++) { prof = rb_hash_new(); - rb_hash_aset(prof, ID2SYM(rb_intern("GC_TIME")), DOUBLE2NUM(objspace->profile.record[i].gc_time)); - rb_hash_aset(prof, ID2SYM(rb_intern("GC_INVOKE_TIME")), DOUBLE2NUM(objspace->profile.record[i].gc_invoke_time)); + rb_hash_aset(prof, ID2SYM(rb_intern("GC_TIME")), DBL2NUM(objspace->profile.record[i].gc_time)); + rb_hash_aset(prof, ID2SYM(rb_intern("GC_INVOKE_TIME")), DBL2NUM(objspace->profile.record[i].gc_invoke_time)); rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_USE_SIZE")), rb_uint2inum(objspace->profile.record[i].heap_use_size)); rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_TOTAL_SIZE")), rb_uint2inum(objspace->profile.record[i].heap_total_size)); rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_TOTAL_OBJECTS")), rb_uint2inum(objspace->profile.record[i].heap_total_objects)); #if GC_PROFILE_MORE_DETAIL - rb_hash_aset(prof, ID2SYM(rb_intern("GC_MARK_TIME")), DOUBLE2NUM(objspace->profile.record[i].gc_mark_time)); - rb_hash_aset(prof, ID2SYM(rb_intern("GC_SWEEP_TIME")), DOUBLE2NUM(objspace->profile.record[i].gc_sweep_time)); + rb_hash_aset(prof, ID2SYM(rb_intern("GC_MARK_TIME")), DBL2NUM(objspace->profile.record[i].gc_mark_time)); + rb_hash_aset(prof, ID2SYM(rb_intern("GC_SWEEP_TIME")), DBL2NUM(objspace->profile.record[i].gc_sweep_time)); rb_hash_aset(prof, ID2SYM(rb_intern("ALLOCATE_INCREASE")), rb_uint2inum(objspace->profile.record[i].allocate_increase)); rb_hash_aset(prof, ID2SYM(rb_intern("ALLOCATE_LIMIT")), rb_uint2inum(objspace->profile.record[i].allocate_limit)); rb_hash_aset(prof, ID2SYM(rb_intern("HEAP_USE_SLOTS")), rb_uint2inum(objspace->profile.record[i].heap_use_slots)); Index: parse.y =================================================================== --- parse.y (revision 19065) +++ parse.y (working copy) @@ -6919,7 +6919,7 @@ rb_warningS("Float %s out of range", tok()); errno = 0; } - set_yylval_literal(DOUBLE2NUM(d)); + set_yylval_literal(DBL2NUM(d)); return tFLOAT; } set_yylval_literal(rb_cstr_to_inum(tok(), 10, Qfalse)); Index: process.c =================================================================== --- process.c (revision 19065) +++ process.c (working copy) @@ -5049,10 +5049,10 @@ times(&buf); return rb_struct_new(rb_cProcessTms, - utime = DOUBLE2NUM(buf.tms_utime / hertz), - stime = DOUBLE2NUM(buf.tms_stime / hertz), - cutime = DOUBLE2NUM(buf.tms_cutime / hertz), - sctime = DOUBLE2NUM(buf.tms_cstime / hertz)); + utime = DBL2NUM(buf.tms_utime / hertz), + stime = DBL2NUM(buf.tms_stime / hertz), + cutime = DBL2NUM(buf.tms_cutime / hertz), + sctime = DBL2NUM(buf.tms_cstime / hertz)); #else rb_notimplement(); #endif Index: numeric.c =================================================================== --- numeric.c (revision 19065) +++ numeric.c (working copy) @@ -562,7 +562,7 @@ static VALUE flo_uminus(VALUE flt) { - return DOUBLE2NUM(-RFLOAT_VALUE(flt)); + return DBL2NUM(-RFLOAT_VALUE(flt)); } /* @@ -578,11 +578,11 @@ { switch (TYPE(y)) { case T_FIXNUM: - return DOUBLE2NUM(RFLOAT_VALUE(x) + (double)FIX2LONG(y)); + return DBL2NUM(RFLOAT_VALUE(x) + (double)FIX2LONG(y)); case T_BIGNUM: - return DOUBLE2NUM(RFLOAT_VALUE(x) + rb_big2dbl(y)); + return DBL2NUM(RFLOAT_VALUE(x) + rb_big2dbl(y)); case T_FLOAT: - return DOUBLE2NUM(RFLOAT_VALUE(x) + RFLOAT_VALUE(y)); + return DBL2NUM(RFLOAT_VALUE(x) + RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '+'); } @@ -601,11 +601,11 @@ { switch (TYPE(y)) { case T_FIXNUM: - return DOUBLE2NUM(RFLOAT_VALUE(x) - (double)FIX2LONG(y)); + return DBL2NUM(RFLOAT_VALUE(x) - (double)FIX2LONG(y)); case T_BIGNUM: - return DOUBLE2NUM(RFLOAT_VALUE(x) - rb_big2dbl(y)); + return DBL2NUM(RFLOAT_VALUE(x) - rb_big2dbl(y)); case T_FLOAT: - return DOUBLE2NUM(RFLOAT_VALUE(x) - RFLOAT_VALUE(y)); + return DBL2NUM(RFLOAT_VALUE(x) - RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '-'); } @@ -624,11 +624,11 @@ { switch (TYPE(y)) { case T_FIXNUM: - return DOUBLE2NUM(RFLOAT_VALUE(x) * (double)FIX2LONG(y)); + return DBL2NUM(RFLOAT_VALUE(x) * (double)FIX2LONG(y)); case T_BIGNUM: - return DOUBLE2NUM(RFLOAT_VALUE(x) * rb_big2dbl(y)); + return DBL2NUM(RFLOAT_VALUE(x) * rb_big2dbl(y)); case T_FLOAT: - return DOUBLE2NUM(RFLOAT_VALUE(x) * RFLOAT_VALUE(y)); + return DBL2NUM(RFLOAT_VALUE(x) * RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '*'); } @@ -651,12 +651,12 @@ switch (TYPE(y)) { case T_FIXNUM: f_y = FIX2LONG(y); - return DOUBLE2NUM(RFLOAT_VALUE(x) / (double)f_y); + return DBL2NUM(RFLOAT_VALUE(x) / (double)f_y); case T_BIGNUM: d = rb_big2dbl(y); - return DOUBLE2NUM(RFLOAT_VALUE(x) / d); + return DBL2NUM(RFLOAT_VALUE(x) / d); case T_FLOAT: - return DOUBLE2NUM(RFLOAT_VALUE(x) / RFLOAT_VALUE(y)); + return DBL2NUM(RFLOAT_VALUE(x) / RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '/'); } @@ -726,7 +726,7 @@ return rb_num_coerce_bin(x, y, '%'); } flodivmod(RFLOAT_VALUE(x), fy, 0, &mod); - return DOUBLE2NUM(mod); + return DBL2NUM(mod); } static VALUE @@ -773,7 +773,7 @@ } flodivmod(RFLOAT_VALUE(x), fy, &div, &mod); a = dbl2ival(div); - b = DOUBLE2NUM(mod); + b = DBL2NUM(mod); return rb_assoc_new(a, b); } @@ -790,11 +790,11 @@ { switch (TYPE(y)) { case T_FIXNUM: - return DOUBLE2NUM(pow(RFLOAT_VALUE(x), (double)FIX2LONG(y))); + return DBL2NUM(pow(RFLOAT_VALUE(x), (double)FIX2LONG(y))); case T_BIGNUM: - return DOUBLE2NUM(pow(RFLOAT_VALUE(x), rb_big2dbl(y))); + return DBL2NUM(pow(RFLOAT_VALUE(x), rb_big2dbl(y))); case T_FLOAT: - return DOUBLE2NUM(pow(RFLOAT_VALUE(x), RFLOAT_VALUE(y))); + return DBL2NUM(pow(RFLOAT_VALUE(x), RFLOAT_VALUE(y))); default: return rb_num_coerce_bin(x, y, rb_intern("**")); } @@ -1130,7 +1130,7 @@ flo_abs(VALUE flt) { double val = fabs(RFLOAT_VALUE(flt)); - return DOUBLE2NUM(val); + return DBL2NUM(val); } /* @@ -1312,7 +1312,7 @@ else number /= f; } - if (ndigits > 0) return DOUBLE2NUM(number); + if (ndigits > 0) return DBL2NUM(number); if (!FIXABLE(number)) { return rb_dbl2big(number); @@ -1501,7 +1501,7 @@ if (err>0.5) err=0.5; n = floor(n + err) + 1; for (i=0; i<n; i++) { - rb_yield(DOUBLE2NUM(i*unit+beg)); + rb_yield(DBL2NUM(i*unit+beg)); } } else { @@ -2106,7 +2106,7 @@ case T_BIGNUM: return rb_big_plus(y, x); case T_FLOAT: - return DOUBLE2NUM((double)FIX2LONG(x) + RFLOAT_VALUE(y)); + return DBL2NUM((double)FIX2LONG(x) + RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '+'); } @@ -2140,7 +2140,7 @@ x = rb_int2big(FIX2LONG(x)); return rb_big_minus(x, y); case T_FLOAT: - return DOUBLE2NUM((double)FIX2LONG(x) - RFLOAT_VALUE(y)); + return DBL2NUM((double)FIX2LONG(x) - RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '-'); } @@ -2199,7 +2199,7 @@ case T_BIGNUM: return rb_big_mul(y, x); case T_FLOAT: - return DOUBLE2NUM((double)FIX2LONG(x) * RFLOAT_VALUE(y)); + return DBL2NUM((double)FIX2LONG(x) * RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '*'); } @@ -2248,13 +2248,13 @@ fix_fdiv(VALUE x, VALUE y) { if (FIXNUM_P(y)) { - return DOUBLE2NUM((double)FIX2LONG(x) / (double)FIX2LONG(y)); + return DBL2NUM((double)FIX2LONG(x) / (double)FIX2LONG(y)); } switch (TYPE(y)) { case T_BIGNUM: - return DOUBLE2NUM((double)FIX2LONG(x) / rb_big2dbl(y)); + return DBL2NUM((double)FIX2LONG(x) / rb_big2dbl(y)); case T_FLOAT: - return DOUBLE2NUM((double)FIX2LONG(x) / RFLOAT_VALUE(y)); + return DBL2NUM((double)FIX2LONG(x) / RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, rb_intern("fdiv")); } @@ -2279,7 +2279,7 @@ if (op == '/') { div = (double)FIX2LONG(x) / RFLOAT_VALUE(y); - return DOUBLE2NUM(div); + return DBL2NUM(div); } else { if (RFLOAT_VALUE(y) == 0) rb_num_zerodiv(); @@ -2347,7 +2347,7 @@ double mod; flodivmod((double)FIX2LONG(x), RFLOAT_VALUE(y), 0, &mod); - return DOUBLE2NUM(mod); + return DBL2NUM(mod); } default: return rb_num_coerce_bin(x, y, '%'); @@ -2381,7 +2381,7 @@ flodivmod((double)FIX2LONG(x), RFLOAT_VALUE(y), &div, &mod); a = dbl2ival(div); - b = DOUBLE2NUM(mod); + b = DBL2NUM(mod); return rb_assoc_new(a, b); } default: @@ -2453,7 +2453,7 @@ if (b == 1) return x; if (a == 0) { if (b > 0) return INT2FIX(0); - return DOUBLE2NUM(1.0 / zero); + return DBL2NUM(1.0 / zero); } if (a == 1) return INT2FIX(1); if (a == -1) { @@ -2479,12 +2479,12 @@ x = rb_int2big(FIX2LONG(x)); return rb_big_pow(x, y); case T_FLOAT: - if (RFLOAT_VALUE(y) == 0.0) return DOUBLE2NUM(1.0); + if (RFLOAT_VALUE(y) == 0.0) return DBL2NUM(1.0); if (a == 0) { - return DOUBLE2NUM(RFLOAT_VALUE(y) < 0 ? (1.0 / zero) : 0.0); + return DBL2NUM(RFLOAT_VALUE(y) < 0 ? (1.0 / zero) : 0.0); } - if (a == 1) return DOUBLE2NUM(1.0); - return DOUBLE2NUM(pow((double)a, RFLOAT_VALUE(y))); + if (a == 1) return DBL2NUM(1.0); + return DBL2NUM(pow((double)a, RFLOAT_VALUE(y))); default: return rb_num_coerce_bin(x, y, rb_intern("**")); } @@ -2854,7 +2854,7 @@ val = (double)FIX2LONG(num); - return DOUBLE2NUM(val); + return DBL2NUM(val); } /* @@ -3245,9 +3245,9 @@ rb_define_const(rb_cFloat, "MAX_EXP", INT2FIX(DBL_MAX_EXP)); rb_define_const(rb_cFloat, "MIN_10_EXP", INT2FIX(DBL_MIN_10_EXP)); rb_define_const(rb_cFloat, "MAX_10_EXP", INT2FIX(DBL_MAX_10_EXP)); - rb_define_const(rb_cFloat, "MIN", DOUBLE2NUM(DBL_MIN)); - rb_define_const(rb_cFloat, "MAX", DOUBLE2NUM(DBL_MAX)); - rb_define_const(rb_cFloat, "EPSILON", DOUBLE2NUM(DBL_EPSILON)); + rb_define_const(rb_cFloat, "MIN", DBL2NUM(DBL_MIN)); + rb_define_const(rb_cFloat, "MAX", DBL2NUM(DBL_MAX)); + rb_define_const(rb_cFloat, "EPSILON", DBL2NUM(DBL_EPSILON)); rb_define_method(rb_cFloat, "to_s", flo_to_s, 0); rb_define_method(rb_cFloat, "coerce", flo_coerce, 1); Index: bignum.c =================================================================== --- bignum.c (revision 19065) +++ bignum.c (working copy) @@ -1237,7 +1237,7 @@ static VALUE rb_big_to_f(VALUE x) { - return DOUBLE2NUM(rb_big2dbl(x)); + return DBL2NUM(rb_big2dbl(x)); } /* @@ -1499,7 +1499,7 @@ return bignorm(bigadd(x, y, 1)); case T_FLOAT: - return DOUBLE2NUM(rb_big2dbl(x) + RFLOAT_VALUE(y)); + return DBL2NUM(rb_big2dbl(x) + RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '+'); @@ -1524,7 +1524,7 @@ return bignorm(bigadd(x, y, 0)); case T_FLOAT: - return DOUBLE2NUM(rb_big2dbl(x) - RFLOAT_VALUE(y)); + return DBL2NUM(rb_big2dbl(x) - RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '-'); @@ -1588,7 +1588,7 @@ break; case T_FLOAT: - return DOUBLE2NUM(rb_big2dbl(x) * RFLOAT_VALUE(y)); + return DBL2NUM(rb_big2dbl(x) * RFLOAT_VALUE(y)); default: return rb_num_coerce_bin(x, y, '*'); @@ -1817,7 +1817,7 @@ { double div = rb_big2dbl(x) / RFLOAT_VALUE(y); if (op == '/') { - return DOUBLE2NUM(div); + return DBL2NUM(div); } else { return rb_dbl2big(div); @@ -2010,7 +2010,7 @@ if (ey) y = big_shift(y, ey); bignum: bigdivrem(x, y, &z, 0); - return DOUBLE2NUM(ldexp(big2dbl(z), ex - ey)); + return DBL2NUM(ldexp(big2dbl(z), ex - ey)); } case T_FLOAT: if (isnan(RFLOAT_VALUE(y))) return y; @@ -2035,7 +2035,7 @@ default: return rb_num_coerce_bin(x, y, rb_intern("fdiv")); } - return DOUBLE2NUM(dx / dy); + return DBL2NUM(dx / dy); } static VALUE @@ -2148,7 +2148,7 @@ default: return rb_num_coerce_bin(x, y, rb_intern("**")); } - return DOUBLE2NUM(pow(rb_big2dbl(x), d)); + return DBL2NUM(pow(rb_big2dbl(x), d)); } static VALUE Index: marshal.c =================================================================== --- marshal.c (revision 19065) +++ marshal.c (working copy) @@ -1306,7 +1306,7 @@ d = strtod(ptr, &e); d = load_mantissa(d, e, RSTRING_LEN(str) - (e - ptr)); } - v = DOUBLE2NUM(d); + v = DBL2NUM(d); v = r_entry(v, arg); v = r_leave(v, arg); } Index: random.c =================================================================== --- random.c (revision 19065) +++ random.c (working copy) @@ -505,7 +505,7 @@ limit = (struct RBignum *)rb_big_minus((VALUE)limit, INT2FIX(1)); if (FIXNUM_P((VALUE)limit)) { if (FIX2LONG((VALUE)limit) == -1) - return DOUBLE2NUM(genrand_real(mt)); + return DBL2NUM(genrand_real(mt)); return LONG2NUM(limited_rand(mt, FIX2LONG((VALUE)limit))); } return limited_big_rand(mt, limit); @@ -522,7 +522,7 @@ } if (max == 0) { - return DOUBLE2NUM(genrand_real(mt)); + return DBL2NUM(genrand_real(mt)); } if (max < 0) max = -max; val = limited_rand(mt, max-1);
on 02.09.2008 15:12
$B@.@%$G$9!#(B Yugui (Yuki Sonoda) wrote: > * C$B%l%Y%k$N(BAPI$B$O(Bruby-core/ruby-dev$B$G$N;vA0AjCL$J$7$KJQ99IT2D(B > * include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B > $B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B > * $B8x3+$7$?$/$J$$$b$N$O(Binclude/ruby/*.h$B$+$i0\F0$5$;$F$/$@$5$$!#(B $B%3%_%C%?B&$K8~$1$F$N;vA0AjCL5AL3$O$h$$$H;W$&$N$G$9$,!"(B $B8x3+(B C API $B$H@k8@$7$F$7$^$&$N$OHyL/$+$b$7$l$^$;$s!#(B $BNc$($P(B oniguruma.h $B$O(B encoding.h $B$,0MB8$7$F$$$k$?$a$K$=$3$K$"$k$N$G$"$C$F!"(B $B3HD%%i%$%V%i%j$N3+H/<T$N$?$a$K$=$3$K$*$$$F$"$k$N$H$O>/!90c$$$^$9!#(B $B$=$7$F!"(BRuby $B$N(B encoding $B$^$o$j$r$$$8$k$?$a$K!"(B rb_encoding $B$N<BBN$G$"$k(B OnigEncoding $B$r$$$8$i$l$F$b:$$j$^$9!#(B $B$^$?JL$NNc$G$9$H!"(BRString $B9=B$BN$N%a%s%P$rD>@\$$$8$i$l$F$b:$$j$^$9!#(B $B$3$l$r$$$8$k;~$O(B RSTRING_PTR $B$d(B RSTRING_LEN $BEy$N%^%/%m$r;H$&$b$N$G$"$C$F!"(B RSTRING(str)->as.heap.len $BEy$OHs8x3+$@$H9M$($k$Y$-$G$7$g$&!#(B $B$D$^$k$H$3$m!"8x3+(B C API $B$N%j%9%H$H$$$&$+%I%-%e%a%s%H$H$$$&$+$,I,MW$H$$$&$+!"(B README.EXT $B$,$=$l$J5$$,$9$k$N$G!"3HD%%i%$%V%i%j$r:n$kJ}$O$=$N$h$&$K$4N10U$/$@$5$$!#(B
on 03.09.2008 10:03
$B!!$5$5$@$G$9!%(B NARUSE, Yui wrote: > $B%3%_%C%?B&$K8~$1$F$N;vA0AjCL5AL3$O$h$$$H;W$&$N$G$9$,!"(B > $B8x3+(B C API $B$H@k8@$7$F$7$^$&$N$OHyL/$+$b$7$l$^$;$s!#(B $B!!K\O@$H$O4X78$J$$$N$G$9$,!$(Binclude/ruby/node.h $B$C$F8x3+$7$?$^$^$K$7(B $B$^$9!)!!(Bnodedump $B$H$+:n$k?M$K$O87$7$$$+$b$7$l$^$;$s$,!$!V8e$GFbIt>u(B $BBV$rJQ99$9$k$+$b!W$H8@$C$F$$$k0J>e!$L5$/$7$F$7$^$C$?$[$&$,$$$$$N$G$O(B $B$J$$$G$7$g$&$+!%(B # include/ruby/signal.h $B$O!$L50UL#$J%3!<%I$7$+$J$+$C$?$N$G(B # $B>C$7$^$7$?!%(B
on 03.09.2008 10:04
$B!!$5$5$@$G$9!%(B Tadashi Saito wrote: > $B$H$$$&!V(Bdbl$B!W$NA0Nc$O$?$/$5$s$"$k$N$K!"$I$&$7$F(B > > DOUBLE2NUM > > $B$@$1!V(Bdouble$B!W$J$N$G$7$g$&$+!#(B1.9$B$+$iF~$C$?%^%/%m$N$h$&$G$9$,!"FCJL$JM}M3$,$J$$8B$j(B > $BB7$($F$"$C$?J}$,!"N`?d$,8z$$$F%W%m%0%i%`$,=q$-$d$9$$$G$9!#(B $B!!$?$7$+!$;d$,F~$l$?$h$&$J5$$,$7$^$9$,!$(Bdouble $B;H$&%W%m%0%i%`$J$s$F(B $B=q$$$F$3$H$,$J$+$C$?$s$G!$$3$s$J$U$&$K$7$?$s$@$H;W$$$^$9!%$H$/$K0U8+(B $B$O$"$j$^$;$s!%$^$D$b$H$5$s$N$4H=CG$K$*G$$;!%(B
on 03.09.2008 14:33
$B:XF#$H?=$7$^$9!#(B $B$^$:$O0l3HD%%i%$%V%i%j$N:n<T$H$7$F!VCf?H$r4]=P$7$K$7$J$$$G%$%s%?!<%U%'!<%9$r(B $B$O$C$-$j$5$;$k!W$H$$$&J}8~@-$K;?@.$G$"$k!"$H$$$&$3$H$r8@$C$F$*$-$?$$$G$9!#(B On Tue, 2 Sep 2008 22:06:55 +0900 "NARUSE, Yui" <naruse@airemix.jp> wrote: > $B@.@%$G$9!#(B > > Yugui (Yuki Sonoda) wrote: > > * C$B%l%Y%k$N(BAPI$B$O(Bruby-core/ruby-dev$B$G$N;vA0AjCL$J$7$KJQ99IT2D(B > > * include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B > > $B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B > > * $B8x3+$7$?$/$J$$$b$N$O(Binclude/ruby/*.h$B$+$i0\F0$5$;$F$/$@$5$$!#(B > > $B%3%_%C%?B&$K8~$1$F$N;vA0AjCL5AL3$O$h$$$H;W$&$N$G$9$,!"(B > $B8x3+(B C API $B$H@k8@$7$F$7$^$&$N$OHyL/$+$b$7$l$^$;$s!#(B $B$=$&$G$7$g$&$+!#<+J,$O!V(Binclude/ruby$B0J2<$O8x3+!W$H$$$&$N$,J,$+$j$d$9$/!"(B $BK>$^$7$$;Q$G$"$k$H46$8$^$9!#(B > $BNc$($P(B oniguruma.h $B$O(B encoding.h $B$,0MB8$7$F$$$k$?$a$K$=$3$K$"$k$N$G$"$C$F!"(B (snip) $B$3$A$i$O$h$/J,$+$C$F$J$$$N$G$9$,!"(B > $B$^$?JL$NNc$G$9$H!"(BRString $B9=B$BN$N%a%s%P$rD>@\$$$8$i$l$F$b:$$j$^$9!#(B > $B$3$l$r$$$8$k;~$O(B RSTRING_PTR $B$d(B RSTRING_LEN $BEy$N%^%/%m$r;H$&$b$N$G$"$C$F!"(B > RSTRING(str)->as.heap.len $BEy$OHs8x3+$@$H9M$($k$Y$-$G$7$g$&!#(B $B$J$i$P!"Hs8x3+>pJs$rJ];}$7$F$$$k(BRString$B<+BN$rHs8x3+$K$9$k$N$,6Z$G$O$J$$$G$7$g$&$+!#(B $B$^$@$^$@Hs8x3+$K$9$Y$-!&$G$-$kItJ,$,$"$j$^$9$,!"$H$j$"$($:;n:n$7$?%Q%C%A$rKvHx$K(B $BIU$1$^$9!#(B # $B$=$&$$$&$*OC$G$O$J$$(B? > yugui$B$5$s(B > $B$D$^$k$H$3$m!"8x3+(B C API $B$N%j%9%H$H$$$&$+%I%-%e%a%s%H$H$$$&$+$,I,MW$H$$$&$+!"(B > README.EXT $B$,$=$l$J5$$,$9$k$N$G!"3HD%%i%$%V%i%j$r:n$kJ}$O$=$N$h$&$K$4N10U$/$@$5$$!#(B $B3HD%%i%$%V%i%j$r0lEY$G$b:n$C$?$3$H$N$"$k?M4V$J$i$P!"(BREADME.EXT$B$,LVMeE*$J$b$N$G(B $B$J$$$3$H$O!"2P$r8+$k$h$jL@$i$+$G$7$g$&!#(B $B!V%$%s%9%H!<%k$5$l$?%X%C%@%U%!%$%k!a8x3+$5$l$?(BAPI$B!W$H$$$&$4$/Ev$?$jA0$N;v$,!"(BRuby $B$G$b<B8=$5$l$k$3$H$rK>$_$^$9!#$=$&$9$l$P!"(BAPI$B$N%j%9%H$O%X%C%@%U%!%$%k$r8+$l$P(B $BJ,$+$j$^$9!#J8;zDL$j!"%=!<%9$,%I%-%e%a%s%H$G$9!#(B Index: include/ruby/ruby.h =================================================================== --- include/ruby/ruby.h (revision 19086) +++ include/ruby/ruby.h (working copy) @@ -573,32 +573,14 @@ #define ELTS_SHARED FL_USER2 #define RSTRING_EMBED_LEN_MAX ((sizeof(VALUE)*3)/sizeof(char)-1) -struct RString { - struct RBasic basic; - union { - struct { - long len; - char *ptr; - union { - long capa; - VALUE shared; - } aux; - } heap; - char ary[RSTRING_EMBED_LEN_MAX + 1]; - } as; -}; #define RSTRING_NOEMBED FL_USER1 #define RSTRING_EMBED_LEN_MASK (FL_USER2|FL_USER3|FL_USER4|FL_USER5|FL_USER6) #define RSTRING_EMBED_LEN_SHIFT (FL_USHIFT+2) -#define RSTRING_LEN(str) \ - (!(RBASIC(str)->flags & RSTRING_NOEMBED) ? \ - (long)((RBASIC(str)->flags >> RSTRING_EMBED_LEN_SHIFT) & \ - (RSTRING_EMBED_LEN_MASK >> RSTRING_EMBED_LEN_SHIFT)) : \ - RSTRING(str)->as.heap.len) -#define RSTRING_PTR(str) \ - (!(RBASIC(str)->flags & RSTRING_NOEMBED) ? \ - RSTRING(str)->as.ary : \ - RSTRING(str)->as.heap.ptr) +long RSTRING_LEN(VALUE str); +char *RSTRING_PTR(VALUE str); +/* for compatibility */ +#define RSTRING_LEN(str) RSTRING_LEN(str) +#define RSTRING_PTR(str) RSTRING_PTR(str) #define RSTRING_END(str) (RSTRING_PTR(str)+RSTRING_LEN(str)) struct RArray { @@ -746,7 +728,6 @@ #define RCLASS(obj) (R_CAST(RClass)(obj)) #define RMODULE(obj) RCLASS(obj) #define RFLOAT(obj) (R_CAST(RFloat)(obj)) -#define RSTRING(obj) (R_CAST(RString)(obj)) #define RREGEXP(obj) (R_CAST(RRegexp)(obj)) #define RARRAY(obj) (R_CAST(RArray)(obj)) #define RHASH(obj) (R_CAST(RHash)(obj)) Index: string.c =================================================================== --- string.c (revision 19086) +++ string.c (working copy) @@ -14,6 +14,7 @@ #include "ruby/ruby.h" #include "ruby/re.h" #include "ruby/encoding.h" +#include "private.h" #define BEG(no) regs->beg[no] #define END(no) regs->end[no] @@ -106,6 +107,23 @@ }\ } while (0) +inline long +RSTRING_LEN(VALUE str) +{ + return !(RBASIC(str)->flags & RSTRING_NOEMBED) ? + (long)((RBASIC(str)->flags >> RSTRING_EMBED_LEN_SHIFT) & + (RSTRING_EMBED_LEN_MASK >> RSTRING_EMBED_LEN_SHIFT)) : + RSTRING(str)->as.heap.len; +} + +inline char * +RSTRING_PTR(VALUE str) +{ + return !(RBASIC(str)->flags & RSTRING_NOEMBED) ? + RSTRING(str)->as.ary : + RSTRING(str)->as.heap.ptr; +} + #define is_ascii_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT) #define is_broken_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN) Index: gc.c =================================================================== --- gc.c (revision 19086) +++ gc.c (working copy) @@ -20,6 +20,7 @@ #include "eval_intern.h" #include "vm_core.h" #include "gc.h" +#include "private.h" #include <stdio.h> #include <setjmp.h> #include <sys/types.h> Index: parse.y =================================================================== --- parse.y (revision 19086) +++ parse.y (working copy) @@ -21,6 +21,7 @@ #include "ruby/encoding.h" #include "id.h" #include "regenc.h" +#include "private.h" #include <stdio.h> #include <errno.h> #include <ctype.h>
on 04.09.2008 12:55
$B1sF#$G$9!#(B 2008/09/03 21:27 Tadashi Saito <shiba@mail2.accsnet.ne.jp>: >> $B$^$?JL$NNc$G$9$H!"(BRString $B9=B$BN$N%a%s%P$rD>@\$$$8$i$l$F$b:$$j$^$9!#(B >> $B$3$l$r$$$8$k;~$O(B RSTRING_PTR $B$d(B RSTRING_LEN $BEy$N%^%/%m$r;H$&$b$N$G$"$C$F!"(B >> RSTRING(str)->as.heap.len $BEy$OHs8x3+$@$H9M$($k$Y$-$G$7$g$&!#(B > > $B$J$i$P!"Hs8x3+>pJs$rJ];}$7$F$$$k(BRString$B<+BN$rHs8x3+$K$9$k$N$,6Z$G$O$J$$$G$7$g$&$+!#(B > $B$^$@$^$@Hs8x3+$K$9$Y$-!&$G$-$kItJ,$,$"$j$^$9$,!"$H$j$"$($:;n:n$7$?%Q%C%A$rKvHx$K(B > $BIU$1$^$9!#(B private.h $B$,$J$+$C$?$N$G$9$,!"(Bstruct RString $B$H(B RSTRING $B%^%/%m$NDj5A$@$1=q$$$?$b$N$G%3%s%Q%$%k$7$F$_$^$7$?!#(B $B$d$O$j!"4X?t$K$9$k$H%*!<%P!<%X%C%I$,H/@8$9$k$h$&$G$9!#(B # $B%Q%C%AA0(B $ time ./ruby.org -rstringio -e s = StringIO.new(" " * 100) i = 0 while i < 100000000 s.eof i += 1 end ' real 0m15.430s user 0m15.400s sys 0m0.020s # $B%Q%C%A8e(B $ time ./ruby.new -rstringio -e ' s = StringIO.new(" " * 100) i = 0 while i < 100000000 s.eof i += 1 end ' real 0m16.280s user 0m16.260s sys 0m0.010s $B$3$l$@$1$J$iL5;k$G$-$k%l%Y%k$+$b$7$l$^$;$s$,!"B>$N9=B$BN$^$G(B $BF1MM$K07$C$F$$$/$H!"L5;k$G$-$J$$%l%Y%k$K$J$k$+$b$7$l$^$;$s!#(B >> $B$D$^$k$H$3$m!"8x3+(B C API $B$N%j%9%H$H$$$&$+%I%-%e%a%s%H$H$$$&$+$,I,MW$H$$$&$+!"(B >> README.EXT $B$,$=$l$J5$$,$9$k$N$G!"3HD%%i%$%V%i%j$r:n$kJ}$O$=$N$h$&$K$4N10U$/$@$5$$!#(B > > $B3HD%%i%$%V%i%j$r0lEY$G$b:n$C$?$3$H$N$"$k?M4V$J$i$P!"(BREADME.EXT$B$,LVMeE*$J$b$N$G(B > $B$J$$$3$H$O!"2P$r8+$k$h$jL@$i$+$G$7$g$&!#(B README.EXT $B$r@0M}!&A}6/$7$F$$$/$N$,@5$7$$J}8~@-$@$H;W$$$^$9!#(B $B$=$N$?$a$K$b(B README.EXT $B$K=q$$$F$"$k$3$H$@$1$G$G$-$J$$$3$H$K(B $B5$$,$D$$$??M$O!"$=$N$?$S$K(B ML $B$G(B API $B$N8x3+$rMW5a$r$9$k$N$,(B $B$$$$$H;W$$$^$9!#(B > $B!V%$%s%9%H!<%k$5$l$?%X%C%@%U%!%$%k!a8x3+$5$l$?(BAPI$B!W$H$$$&$4$/Ev$?$jA0$N;v$,!"(B $B$=$l$C$FEv$?$jA0$J$s$G$7$g$&$+!#(B $B8D?ME*$K$O!V(Bundocumented $B$J5!G=$r;H$C$?$i$I$&$J$C$F$bJ86g$,(B $B8@$($J$$!W$H$$$&J}$,Ev$?$jA0$@$H;W$C$F$$$^$9!#(B
on 04.09.2008 14:06
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
In message "Re: [ruby-dev:36156] Re: [ANN] Ruby 1.9.1$B;EMME`7k(B"
on Thu, 4 Sep 2008 19:47:43 +0900, "Yusuke ENDOH" <mame@tsg.ne.jp>
writes:
|> $B!V%$%s%9%H!<%k$5$l$?%X%C%@%U%!%$%k!a8x3+$5$l$?(BAPI$B!W$H$$$&$4$/Ev$?$jA0$N;v$,!"(B
|
|$B$=$l$C$FEv$?$jA0$J$s$G$7$g$&$+!#(B
|$B8D?ME*$K$O!V(Bundocumented $B$J5!G=$r;H$C$?$i$I$&$J$C$F$bJ86g$,(B
|$B8@$($J$$!W$H$$$&J}$,Ev$?$jA0$@$H;W$C$F$$$^$9!#(B
$B8D?ME*$K$O1sF#$5$s$HF1MM$N463P$G$9!#$N$G!"%3%9%H$r$+$1$F$^$G(B
$B1#$90UL#$O$J$$$H;W$$$^$9!#(B
on 05.09.2008 13:40
$B:XF#$G$9!#(B On Thu, 4 Sep 2008 19:47:43 +0900 "Yusuke ENDOH" <mame@tsg.ne.jp> wrote: > private.h $B$,$J$+$C$?$N$G$9$,!"(Bstruct RString $B$H(B RSTRING > $B%^%/%m$NDj5A$@$1=q$$$?$b$N$G%3%s%Q%$%k$7$F$_$^$7$?!#(B $B$4$a$s$J$5$$!"IU$1K:$l$^$7$?!#$*$C$7$c$k$H$*$j$N$b$N$G$9!#(B private.h: #define RSTRING(obj) (R_CAST(RString)(obj)) struct RString { struct RBasic basic; union { struct { long len; char *ptr; union { long capa; VALUE shared; } aux; } heap; char ary[RSTRING_EMBED_LEN_MAX + 1]; } as; }; > $B$d$O$j!"4X?t$K$9$k$H%*!<%P!<%X%C%I$,H/@8$9$k$h$&$G$9!#(B $B$"$l!":GE,2=%*%W%7%g%sIU$1$F$^$9$+(B? $B<j85$G(B-O2$B$rIU$1$k$H!"0J2<$N$h$&$K$J$j$^$7$?!#(B $B?tCM$O!"(B5$B2sB,$C$F0lHVB.$+$C$?$b$N$G$9!#(B # $B%Q%C%AA0(B $ time ./ruby-trunk -rstringio -e ' s = StringIO.new(" " * 100) i = 0 while i < 100000000 s.eof i += 1 end' real 0m15.810s user 0m15.801s sys 0m0.020s # $B%Q%C%A8e(B $ time ./ruby-trunk -rstringio -e ' s = StringIO.new(" " * 100) i = 0 while i < 100000000 s.eof i += 1 end' real 0m15.781s user 0m15.777s sys 0m0.008s $B$H$$$&$3$H$G!"%$%s%i%$%s4X?tHG$NJ}$,$J$<$+B.$/$J$C$F$7$^$$$^$7$?!#(B $B<+J,$K$OM}M3$O$h$/J,$+$j$^$;$s$,!"$H$K$+$/1F6A$,(B($B>/$J$/$H$b<+J,$N4D6-$G$O(B)$B8m:9HO0OFb$K(B $B$H$I$^$k!"$H$@$1$O8@$($=$&$G$9!#(B > > $B3HD%%i%$%V%i%j$r0lEY$G$b:n$C$?$3$H$N$"$k?M4V$J$i$P!"(BREADME.EXT$B$,LVMeE*$J$b$N$G(B > > $B$J$$$3$H$O!"2P$r8+$k$h$jL@$i$+$G$7$g$&!#(B > > README.EXT $B$r@0M}!&A}6/$7$F$$$/$N$,@5$7$$J}8~@-$@$H;W$$$^$9!#(B $B<+J,$O(BREADME.EXT$B$O%A%e!<%H%j%"%k$K=`$:$k$b$N$G!"$9$Y$F$N(BAPI$B$r2r@b$9$k$H$$$&<q;]$,(B $B85$+$i$J$$$N$@$H;W$C$F$^$7$?!#(B $B$G$A$g$C$HJL$NOC$G$9$,!"8=>u$NOC$G$9$H(B $B!V(BREADME.EXT$B$K5-:\$5$l$F$$$k$b$N$,8x3+(BAPI$B$G$"$k!W(B $B"*!V:#$O40A4$G$O$J$$!W(B ($B30It%7%s%\%k$K$J$C$F$$$F$b5-:\$5$l$F$$$J$$$b$N$,$?$/$5$s(B) $B"*!V:#$O8x3+(BAPI$B$,$I$l$@$+$h$/J,$+$i$J$$!W(B $B"*!V;EMM$r(Bfreeze$B$9$kBP>](B(API)$B$,$h$/J,$+$C$F$J$$$N$G!":#$O(Bfreeze$B$7$h$&$,$J$$!W(B $B"*(B $B!V"-(B On Tue, 2 Sep 2008 15:23:30 +0900 "Yugui (Yuki Sonoda)" <yugui@yugui.jp> wrote: > * C$B%l%Y%k$N(BAPI$B$O(Bruby-core/ruby-dev$B$G$N;vA0AjCL$J$7$KJQ99IT2D(B > * include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B > $B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B > * $B8x3+$7$?$/$J$$$b$N$O(Binclude/ruby/*.h$B$+$i0\F0$5$;$F$/$@$5$$!#(B $B$H$$$&@k8@$O$=$b$=$b0UL#$r@.$5$J$$!W(B $B$H$J$k!"$H$$$&$3$H$G$h$m$7$$$N$G$7$g$&$+!#(B > $B$=$N$?$a$K$b(B README.EXT $B$K=q$$$F$"$k$3$H$@$1$G$G$-$J$$$3$H$K(B > $B5$$,$D$$$??M$O!"$=$N$?$S$K(B ML $B$G(B API $B$N8x3+$rMW5a$r$9$k$N$,(B > $B$$$$$H;W$$$^$9!#(B $B$3$l$O$^$?$=$N$&$A!"<+J,$,7P83$7$?$b$N$rJL%a!<%k$G=P$7$F$_$^$9!#(B > > $B!V%$%s%9%H!<%k$5$l$?%X%C%@%U%!%$%k!a8x3+$5$l$?(BAPI$B!W$H$$$&$4$/Ev$?$jA0$N;v$,!"(B > > $B$=$l$C$FEv$?$jA0$J$s$G$7$g$&$+!#(B $B$^$D$b$H$5$s$b0c$&$H$*$C$7$c$C$F$k$"$?$j!"$3$3$O<+J,$N8+<1$,69$+$C$?$@$1$J$s$@$H(B $B;W$$$^$9!#$9$_$^$;$s!#(B > $B8D?ME*$K$O!V(Bundocumented $B$J5!G=$r;H$C$?$i$I$&$J$C$F$bJ86g$,(B > $B8@$($J$$!W$H$$$&J}$,Ev$?$jA0$@$H;W$C$F$$$^$9!#(B $B<+J,$b$=$l$,Ev$?$jA0$G$"$C$FM_$7$$$H;W$$$^$9!#$7$+$78=>u$N(BRuby$B$K$9$0$=$l$rMW5a$9$k$N$O(B $BFq$7$$$H$b;W$$$^$9!#(B $B$H$$$&$+!"%j%j!<%9%^%M!<%8%c$G$"$k(Byugui$B$5$s$,!"$I$N$h$&$J0U?^$r;}$C$F(B > * include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B > $B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B $B$H$*$C$7$c$C$?$+$,5$$K$J$j$^$9!#<+J,$O!"%G!<%?9=B$$r1#JC$9$Y$-$@!"$H$$$&<gD%$KFI$a$?(B $B$N$G$9$,(B($B$=$l$H$b!"%*%V%8%'%/%HKd$a9~$_$N;EMM$H$+$^$G(BAPI$B$H@k8@$7$?$+$C$?(B?)$B!#(B
on 05.09.2008 14:58
$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B
In message "[ruby-dev:36166] Re: [ANN] Ruby 1.9.1$B;EMME`7k(B"
on Sep.05,2008 20:02:15, <shiba@mail2.accsnet.ne.jp> wrote:
> $B<+J,$O(BREADME.EXT$B$O%A%e!<%H%j%"%k$K=`$:$k$b$N$G!"$9$Y$F$N(BAPI$B$r2r@b$9$k$H$$$&<q;]$,(B
> $B85$+$i$J$$$N$@$H;W$C$F$^$7$?!#(B
README.EXT$B$,%A%e!<%H%j%"%k$K=`$:$kDxEY$NFbMF$K2a$.$J$$$N$OC1(B
$B$K%^%s%Q%o!<$NLdBj$G$"$j!"K\Mh$O;H$C$F$h$$(BAPI$B$OA4$F2r@b$5$l$k(B
$B$Y$-$@$H;W$$$^$9!#(B
# $B$,!"$=$l$rE:IU$N%F%-%9%H%U%!%$%k$K=q$$$F$$$/$^$^$G$$$$$N$+(B
# $B$I$&$+$O0l9M$NM>CO$"$j!#(B
>
> > * C$B%l%Y%k$N(BAPI$B$O(Bruby-core/ruby-dev$B$G$N;vA0AjCL$J$7$KJQ99IT2D(B
> > * include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B
> > $B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B
> > * $B8x3+$7$?$/$J$$$b$N$O(Binclude/ruby/*.h$B$+$i0\F0$5$;$F$/$@$5$$!#(B
>
> $B$H$$$&@k8@$O$=$b$=$b0UL#$r@.$5$J$$!W(B
>
> $B$H$J$k!"$H$$$&$3$H$G$h$m$7$$$N$G$7$g$&$+!#(B
*
9$B7n(B25$BF|0J9_!"(B1.9$B7ONsFb$G$O8x3+(BAPI$B$NJQ99$OG'$a$J$$!#(B
*
$B8x3+(BAPI$B$NDj5A$O8=;~E@$G$OB8:_$7$J$$$N$G!"(Binclude/ruby$B0J2<$K(B
$BB8:_$9$k$b$N$OA4$F8x3+$5$l$F$$$k$b$N$H4GPv$7$F>e=R$N@)8B$r(B
$B2]$9!#(B
* $B8N$K!"JQ99$7$?$$$b$N$O:#$N$&$A$KJQ99$9$k$+1#JC$9$k$+$;$h!#(B
$B$H$$$&$N$,@k8@$N<q;]$@$H;W$$$^$9!#(B
$B<B:]$K%$%s%9%H!<%k$5$l$A$c$&0J>e$O(B($B;H$C$FM_$7$/$J$$$+$I$&$+$K(B
$B4X$o$i$:(B)$B;H$o$l$A$c$&2DG=@-$,$"$k$o$1$G!"0BDjHG7ONsFb$G$N:#8e(B
$B$NJQ99$rG'$a$J$$$N$OEvA3$G$9$7!"$=$N$3$H$K5$$E$$$F$J$$?M$KE`(B
$B7kA0$KCm0U4-5/$rB%$9$N$b$^$?EvA3$N$3$H$G$7$g$&!#(B
$B$H$$$&$o$1$G!":#2s$N@k8@$H!"(Binclude/ruby$B$K$"$k$+$i%P%s%P%s;H(B
$B$C$F$$$$$+$I$&$+!"$H$$$&$N$O$^$?JLLdBj!"$H$$$&M}2r$,@5$7$$$N(B
$B$G$O$J$$$G$7$g$&$+!#(B
$B$J$*!":#$NOC$HA4A34X78$J$/!">/$J$/$H$b(BRString$B$*$h$S(BRArray$B$O8x(B
$B3+(BAPI$B$G$"$k$H;d$OM}2r$7$F$$$^$9!#(B
$B$H$$$&$N$O!"(BREADME.EXE.ja$B$K(B
$B9=B$BN$O!V(Bstruct
RXxxxx$B!W$H$$$&L>A0$G(Bruby.h$B$GDj5A$5$l$F$$$^(B
$B$9!%Nc$($PJ8;zNs$O!V(Bstruct
RString$B!W$G$9!%<B:]$K;H$&2DG=@-$,(B
$B$"$k$N$OJ8;zNs$HG[Ns$/$i$$$@$H;W$$$^$9!%(B
$B$H=q$$$F$"$k$?$a$G$9!#(B
$B$^$?0lJ}$G!"(B
Ruby$B$N9=B$BN$rD>@\%"%/%;%9$9$k;~$K5$$r$D$1$J$1$l$P$J$i$J$$$3(B
$B$H$O!$G[Ns$dJ8;zNs$N9=B$BN$NCf?H$O;2>H$9$k$@$1$G!$D>@\JQ99$7(B
$B$J$$$3$H$G$9!%D>@\JQ99$7$?>l9g!$%*%V%8%'%/%H$NFbMF$N@09g@-$,(B
$B$H$l$J$/$J$C$F!$;W$o$L%P%0$N860x$K$J$j$^$9!%(B
$B$H$b$"$k$h$&$K!"(Binclude/ruby$B$K$"$k$1$I;H$$J}$KCm0U4-5/$,I,MW(B
$B$J$b$N$K$D$$$F$O!"$=$s$J46$8$G$=$l$>$l@bL@$5$l$kI,MW$,$"$k$H(B
$B$b;W$$$^$9!#(B
$BNc$($P!"(B
include/ruby/onigiruma.h
ruby$B$,FbIt$G;HMQ$7$F$$$k@55,I=8=%(%s%8%s!V54<V!W$N%X%C%@!#(B
$B%f!<%6$,$3$N%X%C%@$rMxMQ$7$FD>@\(Bruby$B%*%V%8%'%/%H$NFbIt$r(B
$BA`:n$9$k$3$H$O$G$-$J$$!#(B
$B$H$+(B($B$3$l$,@5$7$$$N$+$I$&$+$OCN$j$^$;$s$,(B)$B!#(B
$B$=$l$G$O!#(B
on 07.09.2008 15:24
Yugui$B$G$9!#(B > $B$H$$$&$+!"%j%j!<%9%^%M!<%8%c$G$"$k(Byugui$B$5$s$,!"$I$N$h$&$J0U?^$r;}$C$F(B > >> * include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B >> $B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B > > $B$H$*$C$7$c$C$?$+$,5$$K$J$j$^$9!#<+J,$O!"%G!<%?9=B$$r1#JC$9$Y$-$@!"$H$$(B $B$&<gD%$KFI$a$?(B > $B$N$G$9$,(B($B$=$l$H$b!"%*%V%8%'%/%HKd$a9~$_$N;EMM$H$+$^$G(BAPI$B$H@k8@$7$?$+$C(B $B$?(B?)$B!#(B > $B$&!<$s!"$"$o$h$/$P%G!<%?9=B$$r1#$7$F$7$^$$$?$$$H$$$&;W$$$O$+$9$+$K$"$C$?(B $B$N$G$9$,!"$d$O$j%3%9%H$,3]$+$j$=$&$G$9$M!#(B $B:GDc8B$N%i%$%s$H$$$&0UL#$G8@$($P!"(B * rb_xxx$B4X?t$N%W%m%H%?%$%W$rJQ99$9$k$J(B * $B8x3+$r0U?^$7$F$$$k%^%/%m$+$i%"%/%;%9$9$k9=B$BN%a%s%P!<$N%*%U%;%C%H$r(B $BJQ99$9$k$J(B $B$G$9$+$M!#(B $B$J$+$`$i(B($B$&(B)$B$5$s$K!V%3%s%Q%$%i$,<j85$K$"$k$H$O8B$i$J$$$N$G3HD%%i%$%V%i%j(B $B8~$1$N%P%$%J%j8_49@-$O=EMW!W$H8@$o$l$F$=$j$cL`$b$@$H;W$C$?$N$,H/C<$G$9$N$G!#(B > On Tue, 2 Sep 2008 15:23:30 +0900 > "Yugui (Yuki Sonoda)" <yugui@yugui.jp> wrote: > >> * C$B%l%Y%k$N(BAPI$B$O(Bruby-core/ruby-dev$B$G$N;vA0AjCL$J$7$KJQ99IT2D(B >> * include/ruby/*.h$B$K$"$k$9$Y$F$N9=B$BN!"%G!<%?7?!"JQ?t!"4X?t!"%^%/%m(B >> $B$O(BC$B%l%Y%k(BAPI$B$H8+$J$7$^$9!#(B >> * $B8x3+$7$?$/$J$$$b$N$O(Binclude/ruby/*.h$B$+$i0\F0$5$;$F$/$@$5$$!#(B $B$7$F$_$k$H!"$3$l$O$A$g$C$HMpK=$9$.$?$+$b$7$l$J$$$N$G$9$1$l$I$b!#(B $B2~$a$F!"(B * AST$B$OHs8x3+$J$N$G$7$g(B? node.h$B$r0\F0$5$;$F$bNI$$$G$9$+(B? * include/ruby/*.h$B$r8+D>$7$F$/$@$5$$!#(B * $B9=B$BN(B($B;D$k$O(BRArray$B$+$J(B?)$B$X$NKd$a9~$_$O:#$N$&$A$K$d$C$F$7$^$&$+!"$^(B $B$?$O(B2.0$B$^$G1d$P$93P8g$r$7$F$/$@$5$$!#(B * $B1*oh$K;H$o$l$=$&$JL>A0$N4X?t$,$"$C$?$i!"0\F0$5$;$k$+2~L>$9$k$+!"$^$?(B $B$O(BREADME.EXT$B$K;H$&$J$H=q$$$F$/$@$5$$!#(B * $B8x3+$;$:$K:Q$^$;$i$l$k$b$N$O6KNO0\F0$9$k$h$&$K$7$F$/$@$5$$!#(B $B$H$$$&$3$H$G$h$m$7$/$*4j$$$7$^$9!#(B
on 16.09.2008 11:48
$B:XF#$H?=$7$^$9!#(B On Fri, 5 Sep 2008 21:52:13 +0900 "U.Nakamura" <usa@garbagecollect.jp> wrote: > README.EXT$B$,%A%e!<%H%j%"%k$K=`$:$kDxEY$NFbMF$K2a$.$J$$$N$OC1(B > $B$K%^%s%Q%o!<$NLdBj$G$"$j!"K\Mh$O;H$C$F$h$$(BAPI$B$OA4$F2r@b$5$l$k(B > $B$Y$-$@$H;W$$$^$9!#(B > # $B$,!"$=$l$rE:IU$N%F%-%9%H%U%!%$%k$K=q$$$F$$$/$^$^$G$$$$$N$+(B > # $B$I$&$+$O0l9M$NM>CO$"$j!#(B $B%3%a%s%HFb30$H$b$K!"<+J,$b$=$&;W$$$^$9!#(B > $B$H$$$&$o$1$G!":#2s$N@k8@$H!"(Binclude/ruby$B$K$"$k$+$i%P%s%P%s;H(B > $B$C$F$$$$$+$I$&$+!"$H$$$&$N$O$^$?JLLdBj!"$H$$$&M}2r$,@5$7$$$N(B > $B$G$O$J$$$G$7$g$&$+!#(B $BA0!9$+$i5?Ld$J$N$G$9$,!"(Binclude/ruby$B$K$"$C$F%P%s%P%s;H$&$Y$-$G$J$$4X?t(B($BEy(B)$B$H(B $B$$$&$N$O!"<B:]$I$l$G!"$=$l$i$O$I$&$$$&B8:_$J$N$G$7$g$&$+!#(B $BJ#?t$N(B.c$B$G6&MQ$7$?$$$+$i!"<BAu$NET9g>e30It$K=P$F$$$k$,!"Bh;0<T$N%i%$%V%i%j$+$i(B $B;H$o$l$k$3$H$rA[Dj$7$F$$$J$$!"$H$+$G$7$g$&$+!#(B API$B$H$5$l$k4X?t$NF0:n$r2r@O$7$F%I%-%e%a%s%H$rIU$1$k$N$O!":n$C$?$4K\?M0J30$G$b$G$-$^$9$,!"(B $B!V$3$l$O;H$o$J$$$GM_$7$$!W$H$$$&0U;V$O!"$5$9$,$KK\?M0J30$OC/$bJ,$+$i$J$$$H;W$$$^$9!#(B $B$=$l$r;H$C$F3HD%%i%$%V%i%j$r=q$$$F$$$F!"!V$b$H$b$H;H$&$Y$-$G$J$+$C$?!W$H8@$o$l$F;EMM$,(B $BJQ99$5$l$k!"$H$+$$$&;vBV$K$J$l$P!"$H$F$bHa$7$$$G$9!#(B > $B$J$*!":#$NOC$HA4A34X78$J$/!">/$J$/$H$b(BRString$B$*$h$S(BRArray$B$O8x(B > $B3+(BAPI$B$G$"$k$H;d$OM}2r$7$F$$$^$9!#(B > $B$H$$$&$N$O!"(BREADME.EXE.ja$B$K(B > > $B9=B$BN$O!V(Bstruct RXxxxx$B!W$H$$$&L>A0$G(Bruby.h$B$GDj5A$5$l$F$$$^(B > $B$9!%Nc$($PJ8;zNs$O!V(Bstruct RString$B!W$G$9!%<B:]$K;H$&2DG=@-$,(B > $B$"$k$N$OJ8;zNs$HG[Ns$/$i$$$@$H;W$$$^$9!%(B > > $B$H=q$$$F$"$k$?$a$G$9!#(B $B<+J,$O!"$3$3$O(Bobsolete$B$J5-=R$G$"$k$H9M$($F$$$^$7$?!#$H$$$&$N$b!"(BRSTRING_XXX$B$H$$$&(B $B%^%/%m$,B8:_$9$kA0$+$i>e5-J8=q$OB8:_$7!"$+$D$=$N;~Be$O9=B$BN$KD>@\?($k$7$+%a%s%P$K(B $B%"%/%;%9$9$kJ}K!$,(B($BI,MW(B)$B$J$+$C$?$?$a$G$9!#(B $B:#$O(BRSTRING_LEN$BEy$N%^%/%m$G$7$+!"(B($BKd$a9~$_!&HsKd$a9~$_%*%V%8%'%/%H$X(B)$B0l4S$7$?J}K!$G(B $B%"%/%;%9$G$-$J$$$N$G!">/$J$/$H$b%^%/%m$,Ds6!$5$l$F$$$kItJ,$N%a%s%P$K4X$7$F$O!"(B $BD>@\?($k$Y$-$G$J$$$H;W$C$F$$$^$9$,!"$I$&$G$7$g$&$+!#(B > $BNc$($P!"(B > > include/ruby/onigiruma.h > ruby$B$,FbIt$G;HMQ$7$F$$$k@55,I=8=%(%s%8%s!V54<V!W$N%X%C%@!#(B > $B%f!<%6$,$3$N%X%C%@$rMxMQ$7$FD>@\(Bruby$B%*%V%8%'%/%H$NFbIt$r(B > $BA`:n$9$k$3$H$O$G$-$J$$!#(B > > $B$H$+(B($B$3$l$,@5$7$$$N$+$I$&$+$OCN$j$^$;$s$,(B)$B!#(B $B$3$s$J46$8$G$I$3$+$K5-=R$7$F$"$l$P$H$F$b$"$j$,$?$$$G$9!#(B $B8=>u!"!V8x3+$7$F$"$k!W!V$J$$!W$@$1$N4p=`$G$7$+8+J,$1$k$3$H$,$G$-$:!"$I$l$r;H$C$F(B $B0BA4$J$N$+$^$C$?$/J,$+$i$J$$$N$G!#(B