原です。

Rational を作ってみたんですが、楽しく書けました。

  http://raa.ruby-lang.org/list.rhtml?name=rational

Ruby の拡張ライブラリってほんとに手軽ですね。

分からない所があるので質問させてください。


(1) 関数内で ALLOCA_N でメモリ領域を確保しましたが、これ、
自分で解放しなくてもいいのでしょうか?


(2) 2つの long の積を返したくて、nummeric.c の見よう見まねで

  c = a * b;
  r = LONG2FIX(c);
  if (FIX2LONG(r) != c || c/a != b) {
    r = rb_big_mul(rb_int2big(a), rb_int2big(b));
  };
  return r;

としましたが、このコードって大丈夫ですか?もっとコストの低い
方法はないでしょうか。


(3) 関数をやたらに static にしてますけど、拡張ライブラリなら
それでいいですよね?組み込みにするとしたら、どんな基準で 
static をとるのでしょうか。まつもとさんが決める?


(4) 便利なマクロ、関数があれば教えてください。