2006-08-01から1ヶ月間の記事一覧

これは気になる。

青木日記 2005-02-25

:: と 0.0.0.0

IPv6のsocketからbindするとIPv4のsocketもbindできるんですが、IPv4を先にバインドしちゃうとIPv6でバインドするときに、 bind: Address already in use になってしまう。AIXではそういうもんなんだろうか。なんかsetsockoptすればいいんだろうか。と思って…

extconf.rb(4)

getnameinfoの動きが他のOSとちがう。getaddrinfoでアドレスをNULL、サービスを54321、passiveで呼び出したときに返ってくるAF_INET6のデータでgetaddrinfoすると Hostname and service name not provided or found になってしまう。今日はここまで。

extconf.rb(3)

aixのipv6のtypeはとりあえずunknown。何か特別なことをしているならここで場合わけが必要かもしれない。ていうか多分必要はない。Linuxでもunknownになった。(1.8:53行目付近)

Logging::postpone in mkmf.rb

こういう言い方でいいのだろうか。。。 Logging::postponeを呼んだ関数(ここで見ていたのはchecking_for)に渡されたブロックやそのあとLoggingを使ってログされたもの(チェックに使ったソースとか)は、Logging::postponeに渡されたブロックのあとにログされ…

どんどん横道へ。

mkmr.rbにあったコード f = caller[0][/in `(.*)'$/, 1]callerはcallerを呼んだ関数を呼び出した関数の情報を配列でかえす。こんな感じ。 $ cat -n caller.rb 1 def current_method 2 p caller 3 end 4 5 def some_method 6 current_method 7 end 8 9 some_m…

extconf.rb(2)

cygwinでなければ、--enable-ipv6がデフォルトになる。…しかし、先は長そうだ。mkmfも勉強しないと。

はじめに。

--disable-ipv6を指定しなくてもいいようにしたい。調査の結果避けようがないなんてことになるのかもしれない。そんなことないか。じぶんなりの結論出るまで続けられるだろうか。気長に頑張ろう。すごい人が出てきて、ちゃっちゃと片付けてしまうかもしれな…

extconf.rb(1)

アタマのほうのtest_func変数はそれがないと、create_makefileが呼ばれないというしるし(?)の関数を入れてある。-lnslが必要かどうかのチェック(have_library)にt_openが指定してあるけど、実際には使われていない。ちなみに、AIXではt_openはlibxti.aにある…

おおおお!

よかった。返事もらえた。1.8.5リリース後に対応いただける。じぶんのパッチを消したいのが最大の希望だったんですけどね。1.9へのごみも消してもらえたようだ。考えてみると大分迷惑かけているなぁ。

というわけでリンク

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/29249

remove_destination

どうもスルーされてしまったようだ。私の書いた恥ずかしいコード(?)を駆逐できるので、いつかもう一度メールしてみよう。 #いらない改行が入ってしまうかも。ていうかメールのアーカイブへのリンクでいいんじゃないか。

やはりパッチは添付で送ることにした。

長い行がメーラによって改行になって、適用する人が面倒くさくなるから。

この素人め!>オレ

場当たりなクイックハックをやはりちゃんと指摘していただけた。申し訳ないやらありがたいやら。一応じぶんでちゃんとしりをぬぐった(つもり)けど、謝ってばかりで恥ずかしい。100%自分が悪いんですが。がんばらんと。3時になってしまった。あと3時間しか寝…

書き忘れたこと。

古いAIXの環境を考慮して、dlopenとか使わない方向にしてあります。というわけで現状の差異。なんと言ってもこれでやっとスタート地点。

.cvsrc

素人丸出しだ。というわけでこんな設定をしておいた。必要に応じて増やしていこう。 diff -u cvs -z4 -q

Win32への迷惑行為

今回のインストール前のclean upで Windowsでは非常に不都合のある内容 ってのはどういうことだったんだろうか。あ、-rオプションかな。今後迷惑かけないようにもっと注意しないと。

採用していただけた。

install前のclean upでWin32に迷惑かけてしまいました(対応パッチを出してみました)が、とりあえず昨日までのパッチを採用してもらえました。CVSに名前が入ったのには超感動。他にも使っている方がいらっしゃって課題も増えて大変幸せ。とりあえず、古いAIX…

AIX4.3.3で。

どうもgetaddrinfoなどの行儀がよくないようだ。druby://:0 とかで、serviceが0なときに怒られます。かえされたstruct addrinfoにprotocolとかセットされていないみたい。どうも他にもそういうプラットフォームがあるらしい。というわけで、4.3.3用にパッチ…

--enable-sharedについて

今回のconfigure.inとcommon.mkへの修正では、--enable-sharedをつけなくてもコンパイルできるようにしてみました。staticのlibrubyを拡張モジュールにそれぞれリンクしたのか、というとそうではなく、rubyをリンクするときに、-bE:ruby.imp をつけて、libru…

増えたこと。

そもそもAIX4.3.3でGCC4.1.1を使ってテストすることに意味があるのでしょうか。それはそれとして、とりあえずrubyのコンパイルはVisualAgeC++でもgccでもうまくいったけど、ext/socketがどうもうまく動かないようだ。コンパイルはとりあえず--disable-ipv6つ…

続きを読む記法のテスト中

私はテスト中。

lvがないと生きていけない自分に気づきました。

こんなクイックハックで。boolean_tがかぶるのとAIXでのShift_JISを登録。AIX4.3.3でGCC4.1.1を使ったときの場合。

gccのコンパイル

VisualAgeC++6で失敗したので、Welcome to Bull AIX freeware siteからとってきたGCCでGCC4.1.1をコンパイルした。

何でこんなことを書くか。

知らない人からpatchをもらったときに試す環境がなかったら何を根拠にその成果を信用すればいいのでしょうか。わかりません。最終的なパッチに至った流れをここに書いておいて、いつかパッチに採用してもらうよう説得が必要なときのための準備になるといいな…

説明不足。

config.hが標準ヘッダの間にインクルードされるとなぜコンパイルに失敗するか。 もうすこし具体的なことを書くと、こんな感じで再現できます。 $ cat test.c #include #include "ruby.h" #include int i;$ xlc -c test.cstdio.hに入るときに_LARGE_FILESが定…

AIX4.3.3でGCC4.1.1のコンパイル中。

むーん。えらい時間かかってる。非力すぎ。準備したマシンにはVisualAgeC++のVer.6をいれてみた。AIXでGCCをコンパイルするには ulimit -m unlimited ulimit -d unlimited (追記してみた) export CONFIG_SHELL=/bin/bash をやっておくと吉。

ほんの短い期間の作業ログになると思います。

仕事で使っているAIXというOS上でrubyというスクリプト言語を使い始めたのですが、ちょっとコンパイルに手がかかりました。でもたいした手間ではありませんでした。ちょっと調べれば他に同じ苦労した人はいっぱい多少いて、その恩恵にあずかればよかったので…

気づいたこと

configure.inとcommon.mkに手を入れました。これで--enable-sharedがあってもなくてもよくなったし、--without-gccでgccとccの切り替えができるし、リンカへのオプションもそれぞれで対応したので…ということで色々やりました。大分コンパイルが楽になりまし…

報告済みの件について

採用された形跡はありませんが、もうひとつ報告しました。 簡単に言うと、 config.hはすべての標準ヘッダあるいはそれらをインクルードしているヘッダの前にインクルードしてほしい。 ということでした。_ALL_SOURCEがredefinedだ、といわれることがなくなる…