amritaアクセラレータ

基本機能が動いて、いくつかsampleがそのまま動く所まで来た。あとは従来の拡張機能の所を組みこんでいくだけだ。それが落ち着いたら、まだRubyで動いている所をもっとCに置きかえていけば、もっとスピードアップできるだろう。

すごく順調なんだけど、実は、ここ三日間、原因不明のバグに悩んでいた。「RubyのCプログラミングは簡単」なんてうっかり言ったからバチがあったたのだろうか(って何の罰?)。GC.disableすると発生しないから、GCの関連だってことはすぐわかったんだが、あちこちにvolatileをつけたり、いろいろやってどうしても発生場所が一定しないんで原因がわからず、すごく苦労しました。

でも、わかってみれば単純なことで、rb_gc_markをひとつ忘れていただけ、つまりREADME.EXT.jaに書いてあるようにちゃんとやってなかっただけで、その通りにやればちゃんと動きます。

ということで、せっかく教えてもらったdebianのpinもまだ試せてません。