ruby

記念カキコ

% ruby -v ruby 2.0.0dev (2011-10-19 trunk 33483) [powerpc-aix5.3.0.0] コンパイルできるってだけですが。

結局

何もできていないのでごめんなさいメールを出すにいたってしまった。これはひどい。いないのと一緒。とりあえず、Fiberが落ちます。あとcoreを履くようなシグナルを受けたあとにメッセージ出力する所でハングするのをどうにかしたい。落ちたのかハングなのか…

進言

ぽーるさんからメールがあった。いちばん面倒なところを残してある。こまったこまった。

 TODO:backport

1.9.3に、r32333とr32511とr32518をいれる。1.9.2に、r32333とr32518をいれる。[追記]1.9.3のはやってみた。何か勘違いしていないといいんだけど。

r32511

非常に迷惑なタイミングでコミットしてしまったきがする。1.9.3に入れてもいいのか聞いてみないと。1.9.2にいれて欲しいのもあったり、まだ入れていないのがあったり、ちょっとまとめないと。

TODO

AIXでBug#1813をなおす。

r32333

memory不足で死亡するのは前の時に仕込んだ仕掛けだった。-qinfo=porを使うことで、configure中のstdcall、cdecl、fastcallのチェックをできるようにした。ずいぶん前にオプションを調べたあと、どこに仕込むか悩んで忘れていたのを思い出して、入れるところ…

近況

#3971のために久しぶりにxlcでコンパイルしたら、またminirubyがメモリ不足ですぐ死亡する。先日のとちょっと似てる。gccではコンパイル終わるけど、現状ハングするテストが3つ。もっとこっちに時間を割きたいと思っているだけで、仕事と家族の相手をこなす…

abort()いれっぱなしにするとか

教訓:svn diffしたら中身を確認する。 自分の案が通ると嬉しいですな。まだまだやらなきゃいけないことあるのでがんばらないと。

/usr/bin/asがおちるとか。

どうもbullfreewareとかperzlとかにあるgccもってきてもコンパイルに成功しない。ruby側のソースがどうこういう問題じゃない落ちかたをgccがする。とおもってibmのサイトにあるgcc(ちょっと古い)でやったら、やっぱりだめだ。とするとTLの問題か。1.9.2のチ…

IBMが配っているopensslに、

いくつか関数が入っていない。 linux % nm -D /usr/lib/libcrypto.so.0.9.8|grep EC_get_builtin_curves 00000000000a98f0 T EC_get_builtin_curves AIX # dump -Tv /usr/lib/libcrypto.a |grep EC_get_builtin_curves -r opensslがうごかない。

やっぱり

拡張ライブラリを作るときにオプションのlibpathに追加するしかない気がするのでそういう方向にしよう。

rvm勉強中

"-C"であたまに -- がついていないオプションを付けるにはどうすればいいのか。

久しぶりに時間取れた。

一個AIXの問題が上がっているの発見。のろくてすみません。…これか。とりあえずconfigureにwarnflags=-qinfo=por で回避できる。が、ほかのどうでもいいのまでコメントしてくれちゃうのが結構うっとーしー。というか意味がわからない。こっちを調べてから報…

ぐぐってみると、

OSXでREUSEPORT使わないと困った事例みたいのがあった。OSXで上のコマンドとか make test-all TESTS='socket/test_socket.rb -n test_accept_loop'とか動くのかな。持っていないので調べようがない。でもテストハングったら誰か文句言うだろうしな。関係ない…

:REUSEPORT

そんなものはLinuxにはない模様。Lucidだとコメントアウトされている。/usr/include/asm-x86_64/socket.hより /* To add :#define SO_REUSEPORT 15 */ さてどうするか。

Errno::EADDRINUSEは

ip_sockets_port0で:REUSEPORTもつけてあげるとおきなくなった。 % ruby -d -v -rsocket -e 'Socket.tcp_server_sockets(0).each{|s| p s.local_address}' ruby 1.9.3dev (2010-09-21 trunk 29309) [powerpc-aix5.3.0.0] #<Addrinfo: 0.0.0.0:48945 TCP> #<Addrinfo: [::]:48945 TCP></addrinfo:></addrinfo:>

どうも

AIXではipv4とipv6で同じポートに同時にソケットが開けないっぽい。で Exception `Errno::EADDRINUSE' at /somewhere/r19.gccs/lib/ruby/1.9.1/socket.rb:293 - Address already in use - bind(2)になるみたいだ。さてどうしたものか。ていうかどうなってん…

[Bug #3708]

どうもarrayが共有中におきるみたいです。1.8でもおきました。 % ruby -v -e "o=[0,1,2,3,4,5][1,4];p o;p o.permutation.to_a" ruby 1.9.3dev (2010-08-12 trunk 28970) [powerpc-aix5.3.0.0] [1, 2, 3, 4] [[0, 1, 2, 3], [0, 1, 3, 2], [0, 2, 1, 3], [0,…

いったい何が起きているのか。

ruby -v -rsocket -e 'Socket.tcp_server_sockets(0).each{|s| p s.local_address}' が無返答。-dつけると、延々 Exception `Errno::EADDRINUSE' at /somewhere/r19.gccs/lib/ruby/1.9.1/socket.rb:293 - Address already in use - bind(2)がでる。Ctrl-Cで…

warning

gcc -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -I. -I.ext/include/i686-linux -I../ruby_1_9_2/include -I../ruby_1_9_2 -DRUBY_EXPORT -o proces…

make test-all TESTS='openssl/test_ssl.rb -n test_client_auth'

がとまっちゃう。IOのあと処理とかがはしっているんだけど、ぜんぜん追い切れない。もうちょっと簡単に再現したい。

get_stack() for aix

AIXにしか影響ないパッチなのでとりあえずコミットした。毎度緊張する。慣れるほど貢献していないだけ。本当はmaxdataを最後に大きめに設定するのも入れたいんだが、いつか64bitとか考えたときの足かせにしかならないと考えたら入れられなくなった。いったい…

パッチはできた。

ruby -e 'Thread.new{}'が落ちなくなった。とりあえず寝る。

みつけた

pthread_getthrds_np()だ。pthread_attr_getstackaddr()がいつでも0を返すってどういう罠なんだ。しかし、5.1からはありそうだけど、いつからあるか調べられないのでやっぱりconfigureに探してもらうべきだろうな。それかEOSなバージョンは気にしないでいい…

stack addrがもってこれない。

coreにはあたいがあるのは知っているんだけど、どうやってこれ実行時にもってくるんだろ。

覚書

どうもget_stack()がうごかせないらしい。きびしくなってきた。

昨日の

r27789からということがわかった。make testを5/14からやっていなかったのか。かみさんが入院したあとだな。

make testが途中でハングする。

いつからだ。数日もどしてもだめだ。そんなにあいたっけなあ。ていうかなんでこんな時間に起きているんだろう。ここまでおかしいのはおかしい。なにか環境がおかしくなったな。いや、他のマシンでもおきる。自動化でもして、こまめにやらないとさがすのたい…

xlc

trunkとruby_1_9_2のext/dl/cfunc.cがxlcでコンパイルできない。r27944がおきにめさない。TODOリスト入りにするか、gccで。ってことにするか。