まつもと ゆきひろです

In message "[ruby-dev:19258] Re: [ruby-cvs] ruby: * node.h (struct RNode): Change argc from int to long.  Otherwize"
    on 03/01/01, "Akinori MUSHA" <knu / iDaemons.org> writes:

|>     * node.h (struct RNode): Change argc from int to long.  Otherwize
|>       NEW_CFUNC() sets argc to a wrong value on platforms where
|>       sizeof(int) != sizeof(long) and the byte order is big-endian.
|>       This fixes breakage on FreeBSD/sparc64.
|>   
|>   Revision    Changes    Path
|>   1.39        +3   -3    ruby/node.h
|>     http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/node.h?cvsroot=src&r1=1.38&r2=1.39
|
| これですが、 rev 1.12 (ruby 1.4.5 の前)で int -> long になって
|以来ずっと long だったが、 1.7 の途中、 rev 1.31 で int に戻った
|ようです。
|
|http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/node.h#rev1.31
|
|ChangeLog を見ても理由が見あたらないのですが、意図は何だったか
|心当たりはありませんか?

うーん、使う側でargcがintだから型を合わせた程度の意図しかな
いのではないかと推測します。自分でやっといて「推測します」っ
てのも情けない話ではあるのですが。longだから困ることがあるわ
けではないと思うので、戻すべきでしょう。