FreeBSD 4.8からforkしたBSDファミリーのOS。SMPサポートや並列性の向上、カーネルサブシステムのデザインにおいて、FreeBSDとは違うアプローチを採っているのが特徴。
び(2007/08/08 21:29:04 PDT): 1.10.0が出たのを機に、久しぶりにいじってみる。やはりビルド中にgoshがcoreを吐いて落ちる。こりゃ、落ちるところもたぶん同じだなぁ。Boehm-gcを追ってみなきゃ。
び(2007/04/19 23:32:20 PDT): inet_pton(3)の修正がcurrentに取り込まれた(stableは未確認)。でも相変わらずビルド中にcore dumpする。どこかで時間を取って真面目に追いかけんとダメか。Boehm-gcの中は、NetBSD pthread対応の時、その人外魔境ぶりに閉口した経験があるので、あまり踏み込みたくないんだけどなぁ...
び(2007/04/18 18:33:49 PDT): どうやらDragonFly BSDのcurrent自体がけっこういろいろと変更が入ってて不安定な様子。リリース版である1.8.1ではinet_pton(3)の問題以外は大丈夫。まぁcurrentの宿命なので仕方ない。落ち着くまではしばらく様子見。
び(2007/04/16 22:34:06 PDT): うーん。shiroさんやenamiさんにLingrでいろいろ教えてもらいながら追ってみたのだけど、ちょっと手に負えない雰囲気。たぶんgcがらみじゃないかなぁ。gcに下りてmake checkすると、毎回違った場所でエラー(SEGVだったりABORTだったり)が起こる。仕方がないので気長に追うことにする。
び(2007/04/16 02:27:31 PDT): 4/14付けでDragonFly BSD currentのbinutilsが更新されたのですが、たぶんこれ以降、Gaucheがビルドできなくなっているようです。とはいえ、まだきちんと追えていないので、原因が何かは分かっていないのですが... ビルド中にgoshがcore dumpしてしまいます。どうもScm_Defineの中でhash-table関係のAPIを呼んだところでSEGV喰らっているようです。
び(2007/03/24 06:42:40 PDT): 2007-03-23にサポートパッチが取り込まれました。嬉しい!!
び(2007/03/24 21:24:41 PDT): 2007-03-22にGaucheにCで書き直されたinet-string->addressは、現状のDragonFly BSDでは不正なアドレス文字列を弾くことができません。これは、DragonFly BSDに含まれている inet_pton(3) 実装が古く、バグがあるからです。
すでにFreeBSDやNetBSDではこの問題は直っています。LingrのGauche部屋でenamiさんに教えていただきました。DragonFly BSDのメーリングリストにはパッチを投げてあるので、いずれ直るんじゃないかと思います。
ext/net/test.scmの中の、gethostbyaddrのテストが失敗します。sys-gethostbyaddr "127.0.0.1" |AF_INET|)が#fを返してしまうためです。ただ、REPLで同じ式を評価していても、値が返ってくることもあります。DragonFly BSDのリゾルバの動作がちょっと違うのかも。
び(2007/03/04 23:04:23 PST): どうやら、gethostbyaddr_r()を誤検出しちゃっているらしい。もっと正確に言うと、確かにlibc.soの中にgethostbyaddr_r()という関数は含まれているのだけど、使っちゃいけないんだと。
び(2007/03/24 21:19:45 PDT): 2007-03-24付けでパッチが取り込まれました。素晴らしい!!
び(2007/03/04 18:29:19 PST): 素のGauche-0.8.9だと、DragonFly BSD上でpthreadサポートを有効にしてビルドできません。ただし、pkgsrcに含まれている lang/gauche には、pthreadをサポートするためのパッチが含まれていますので、pkgsrcから入れればいいでしょう。Kahuaも動きます。