From: WATANABE Tetsuya Date: 2005-12-28T13:10:00+09:00 Subject: [ruby-dev:28143] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError) In message "[ruby-dev:28142] Re: ia64-hpux11.23/socket.sl: this executable file can't load extension libraries (LoadError)" on 05/12/28, Tanaka Akira さん writes: |よくわかっていないのですが、TestDrive の HP-UX マシンの |/usr/ccs/bin/as ではコンパイルできます。 | |td176> uname -a |HP-UX td176 B.11.23 U ia64 0391833941 unlimited-user license |td176> /usr/ccs/bin/as ia64.s ------------------------------version 情報 $ uname -srm HP-UX B.11.23 ia64 $ cc --version cc: HP aC++/ANSI C B3910B A.06.02 [May 11 2005] $ what /usr/ccs/bin/as /usr/ccs/bin/as: HP Itanium Assembler B.11.23 (HP-UX/itanium) ------------------------------ こちらは as がすこし古いかもしれません。コンパイラも ちょっと前のです。 |また、10行めというのは |それはそれとして、たぶんその行は削除してもいいと思うので、削 |除してアセンブルできるか試していただけませんか? 試しました。アセンブル可能でした。 ------------------------------HP as でアセンブル $ /usr/ccs/bin/as ia64.s -o ia64.o $ ll ia64.o ia64.s -rw-r--r-- 1 tetsu users 904 Dec 28 13:01 ia64.o -rw-r--r-- 1 tetsu users 764 Dec 28 12:54 ia64.s ------------------------------ |dl は x86 以外にはやさしくないので、個人的には、うまくいかな |い場合はコンパイルしないことにしています。 了解しました。 |まだちゃんと調べてはいないのですが、callcc で stack を save |するところでメモリが足りなくなっていて、おそらく |continuation が GC されてないんだと思います。 |参考: [ruby-talk:127491], [ruby-core:4293] | |もし予測が正しければそれは callcc が癌なので、generator.rb |を callcc じゃなくて thread で実装するのがいいのではないかと |思っています。 以下 HP as でアセンブル後に実施した make check のログです。 このとき使えるだけメモリを使って落ちます(約 1GB)。 ------------------------------make check のログ $ make check test succeeded ./miniruby ./runruby.rb --extout=.ext -- -C "./test" runner.rb --runner=console Loaded suite . Started ....................................../home/tetsu/src/ruby19.6/lib/generator.rb:131:in `callcc': failed to allocate memory (NoMemoryError) from /home/tetsu/src/ruby19.6/lib/generator.rb:131:in `next' from /home/tetsu/src/ruby19.6/lib/generator.rb:161:in `each' from /home/tetsu/src/ruby19.6/lib/generator.rb:339:in `test_each' ------------------------------