Gauche:DragonFlyBSD

Gauche:DragonFlyBSD

DragonFly BSDって?

FreeBSD 4.8からforkしたBSDファミリーのOS。SMPサポートや並列性の向上、カーネルサブシステムのデザインにおいて、FreeBSDとは違うアプローチを採っているのが特徴。

http://www.dragonflybsd.org/

Gauche 0.8.10 on DragonFly BSD 1.10.0

(2007/08/08 21:29:04 PDT): 1.10.0が出たのを機に、久しぶりにいじってみる。やはりビルド中にgoshがcoreを吐いて落ちる。こりゃ、落ちるところもたぶん同じだなぁ。Boehm-gcを追ってみなきゃ。

Gauche CVS HEAD

(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のメーリングリストにはパッチを投げてあるので、いずれ直るんじゃないかと思います。

gethostbyaddr_r問題(DragonFly BSD 1.8.0_REL)

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付けでパッチが取り込まれました。素晴らしい!!

Gauche-0.8.9 on DragonFly BSD 1.8.0-REL

(2007/03/04 18:29:19 PST): 素のGauche-0.8.9だと、DragonFly BSD上でpthreadサポートを有効にしてビルドできません。ただし、pkgsrcに含まれている lang/gauche には、pthreadをサポートするためのパッチが含まれていますので、pkgsrcから入れればいいでしょう。Kahuaも動きます。

More ...