[#21225] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

14 messages 2003/08/22
[#21227] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — nobu.nakada@... 2003/08/22

なかだです。

[#21228] Re: [ruby-cvs] ruby: * enum.c (inject_i): use rb_yield_values. — matz@... (Yukihiro Matsumoto) 2003/08/22

まつもと ゆきひろです

[#21281] 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

16 messages 2003/08/29
[#21285] Re: 大量メモリ消費攻撃に対する対応 — matz@... (Yukihiro Matsumoto) 2003/08/29

まつもと ゆきひろです

[#21288] Re: 大量メモリ消費攻撃に対する対応 — Hidetoshi NAGAI <nagai@...> 2003/08/29

永井@知能.九工大です.

[#21306] Re: 大量メモリ消費攻撃に対する対応 — matz@... (Yukihiro Matsumoto) 2003/09/03

まつもと ゆきひろです

[ruby-dev:21120] Re: Rational 公開しました。

From: Shin-ichiro HARA <sinara@...>
Date: 2003-08-04 07:43:05 UTC
List: ruby-dev #21120
原です。

In [ruby-dev:21059]

>青木です。

>中身については語れないので表面的なところを見ました。

おお!ありがとうございます。もったいない事です。_o_


>= コーディングスタイル
>
>標準添付を狙うなら ruby コアにそろえたほうがよいでしょう。

「標準添付」じゃなくて「組み込み」です。大丈夫でしょうか。(^^;
どっちにしろそうなると、まつもとさんが書き換えてしまう事が予想
されるのですが、なるだけ本体に揃えます。


>  * #include <ctype.h>

あ、これが必要だと ruby.h に書いてありますね。なんで今まで動いて
いたのだろう。


>  * gcc -Wall でチェックすべきです。

はい。

>  * これは気分的なもんですけど、extconf.rb は mode 644 のが
>    よいかと。

はい。

>  * depend がないと Windows で困ったような気がします。

がんばります。


>= セマンティクス
>
>  * rb_rat_raw() など、オブジェクトを生成するところで
>
>      rat = Data_Make_Struct(rb_cRational, struct RRational,
>                             rb_rat_mark, rb_rat_finalizer, r);
>
>    というのがありますが、rb_cRational 直打ちにするのではなく
>    引数の klass を使うべきです。でないと

なーるほど。第1引数が何のために有るのかやっと分かりました。(^^;

ところで気が付いたのですが、 Bignum, Array などは、演算子
では継承を想定してませんね。まあ、Bignum は new が無いので、
継承はしないでしょうが、Array では、

  class Foo < Array
  end
  p Foo.new.class #=> Foo
  p (Foo.new + Foo.new).class #=> Array

となるんですね。基本的に組み込みクラスは継承は考えられてないので
しょうかね。


>  * 1.8 では文字列引数のチェックは
>
>        Check_Type(s,T_STRING);
>        ptr = STR2CSTR(s);
>
>    ではなく
>
>        StringValue(var);
>
>    を使います。

了解。

>  * これはよく見てないんですが、
>    おそらく taint の伝播が必要です。 (see % refe -e OBJ_INFECT)

数値クラスに関する taint 性はどうなってましたっけ?
今の所あまり考慮されてないみたい。

  c = (2**30).to_s
  c.taint
  p c.to_i.tainted? #=> false
  p Integer(c).tainted? #=> false


>  * 拡張ライブラリで定義したオブジェクトはデフォルトでは
>    マーシャライズできません。Rational の性格を考えると
>    対応したほうがよいでしょう。

します。ただいま研究中です。


In This Thread