[#22195] IO::for_io and TCPServer#bind — GOTOU Yuuzou <gotoyuzo@...>

test_drb が IPv4 射影アドレスが有効な環境でないと動かないこ

16 messages 2003/12/09
[#22198] Re: IO::for_io and TCPServer#bind — matz@... (Yukihiro Matsumoto) 2003/12/09

まつもと ゆきひろです

[#22205] yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org>

StringIO の

24 messages 2003/12/10
[#22206] Re: yet another inconsistency about EOF between StringIO and IO — nobu.nakada@... 2003/12/10

なかだです。

[#22214] Re: yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org> 2003/12/10

In article <200312100725.hBA7P8Ac011112@sharui.nakada.kanuma.tochigi.jp>,

[#22222] Re: yet another inconsistency about EOF between StringIO and IO — nobu.nakada@... 2003/12/10

なかだです。

[#22234] Re: yet another inconsistency about EOF between StringIO and IO — Masahiro Sakai (酒井政裕) <sakai@...> 2003/12/11

さかいといいます。

[#22262] Re: yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org> 2003/12/13

In article <20031211.214041.71090239.sakai@tom.sfc.keio.ac.jp>,

[#22328] Re: yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org> 2003/12/23

In article <87k751dzyf.fsf@serein.a02.aist.go.jp>,

[#22331] Re: yet another inconsistency about EOF between StringIO and IO — matz@... (Yukihiro Matsumoto) 2003/12/23

まつもと ゆきひろです

[#22334] Re: yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org> 2003/12/23

In article <1072167374.096702.13473.nullmailer@picachu.netlab.jp>,

[#22343] Re: yet another inconsistency about EOF between StringIO and IO — matz@... (Yukihiro Matsumoto) 2003/12/23

まつもと ゆきひろです

[#22330] core dump with ungetc — Tanaka Akira <akr@...17n.org>

次のように ungetc を使うと core を吐く場合があります。

14 messages 2003/12/23
[#22332] Re: core dump with ungetc — nobu.nakada@... 2003/12/23

なかだです。

[#22366] `to_s': method `to_s' overridden (TypeError) — Tanaka Akira <akr@...17n.org>

そういえば、次の `to_s': method `to_s' overridden (TypeError) というの

12 messages 2003/12/24

[#22385] Tk.callback_break causes seg-fault or hang-up — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

19 messages 2003/12/24
[#22387] Re: Tk.callback_break causes seg-fault or hang-up — matz@... (Yukihiro Matsumoto) 2003/12/24

まつもと ゆきひろです

[#22393] Re: Tk.callback_break causes seg-fault or hang-up — Hidetoshi NAGAI <nagai@...> 2003/12/24

永井@知能.九工大です.

[#22395] Re: Tk.callback_break causes seg-fault or hang-up — matz@... (Yukihiro Matsumoto) 2003/12/24

まつもと ゆきひろです

[#22396] Re: Tk.callback_break causes seg-fault or hang-up — matz@... (Yukihiro Matsumoto) 2003/12/24

まつもと ゆきひろです

[#22397] Re: Tk.callback_break causes seg-fault or hang-up — Hidetoshi NAGAI <nagai@...> 2003/12/24

永井@知能.九工大です.

[#22418] ruby-1.8.1 build failed on HP-UX 11.11 — MIYAMUKO Katsuyuki <k-miyamuko@...>

みやむこです。

29 messages 2003/12/25
[#22419] Re: ruby-1.8.1 build failed on HP-UX 11.11 — matz@... (Yukihiro Matsumoto) 2003/12/25

まつもと ゆきひろです

[#22420] Re: ruby-1.8.1 build failed on HP-UX 11.11 — matz@... (Yukihiro Matsumoto) 2003/12/25

まつもと ゆきひろです

[#22424] Re: ruby-1.8.1 build failed on HP-UX 11.11 — MIYAMUKO Katsuyuki <k-miyamuko@...> 2003/12/25

みやむこです。

[#22491] Re: ruby-1.8.1 build failed on HP-UX 11.11 — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/01/05

みやむこです。

[ruby-dev:22440] Re: library linkage options by extmk.rb

From: siena@... (Siena. / SHINAGAWA, Norihide)
Date: 2003-12-27 04:16:10 UTC
List: ruby-dev #22440
Siena. です。

▼ nobu.nakada さん < [ruby-dev:22399]

》> (1) EXTFLAGS が引数無しの "-L" に展開され、main.o がリンクされない

》> "$(libdir)" が正しく展開されるように変更するのが本筋かと思いますが、
》> とりあえずの対症療法として $extpath から "$(libdir)" を削除しました。

》これは、makeまで$(libdir)のまま渡されて、makeによって展開される

はい、そうなるべきだと思っています。

》のが正しい姿でしょう。そう考えれば、mkmf.rbのString#quoteでシン
》グルクォートを使うようにすべきかも知れませんが、humanとmacosが

mkmf.rb:String#quote ではなく、mkmf.rb:libpathflag の方ですね。
ここをシングルクォートで囲むように変更して、ビルドが成功するのを
RUBYSHELL=sh.exe と RUBYSHELL=cmd.exe の両方で確認できました。


--- lib/mkmf.rb.org	Fri Dec 19 08:01:04 2003
+++ lib/mkmf.rb	Sat Dec 27 07:44:40 2003
@@ -236,5 +236,5 @@ end
 def libpathflag(libpath=$LIBPATH)
   libpath.map{|x|
-    (x == "$(topdir)" ? LIBPATHFLAG : LIBPATHFLAG+RPATHFLAG) % %["#{x}"]
+    (x == "$(topdir)" ? LIBPATHFLAG : LIBPATHFLAG+RPATHFLAG) % %['#{x}']
   }.join
 end


》できれば、OS/2 EMXでも引数を配列で渡せばシェルを通さないように
》したほうがいいんでしょうけどねぇ。

えぇと。process.c:rb_f_system() と missing/os2.c:do_spawn()、
ここを直しておかないといけませんね。TODO に加えておきます。

なるほど、ここでエラーになっていたとは。
何故 /bin/sh が絡むのか不思議だったのですが、ようやく分かりました(鈍)
シェル経由での実行になっていて、sh が $(...) を展開しようとしていると。
確かに、シェルを cmd.exe に変えて、変更前の extmk.rb, mkmf.rb で
RUBYSHELL=cmd.exe make とした場合には上記の問題は出ませんでした。


》> (2) $extlibs の重複除去のため、EXTLIBS の正しいリンク順が破壊される

》> ライブラリ a が b に依存する場合に、リンク時のコマンドでオプションの
》> 指定順は "-la -lb" とせねばならず、"-lb -la" とはできないようです。
》
》これはUnix系のldでは標準的な動作ですが、重複するライブラリを使
》うものはないだろうと思って手を抜いてしまいました。

なる ^^;  手元では片っ端から静的リンクしている関係で、厳しいようです。
その組合せの順序によって readline.a で undefined symbols になったり
ncurses.a や termcap.a で multiply defined になったりします。

》> 上記の変更のために、重複した時にこの逆転が起きてしまっています。
》> パッチでは、新規追加分を $extlibs の左側に追加するようにしました。
》
》入れ換えただけでは、逆にすでに$extlibsにあるものの順序が保証さ
》れないでしょう。真面目にやるならこんなとこ?

確かにそうですね。単純な場合しか考えていませんでした。

》def merge_libs(*libs)
》  libs.inject([]) do |l, r|
》    i = 0
》    (r & l).each do |c|
》      j = r.index(c)
》      l.insert(l.rindex(c), *r[i...j])
》      i = j + 1
》    end
》    l.concat(r[i..-1])
》  end
》end

これでも不十分で、次のようなテストが通りません。

  def test_reversal()
    array = merge_libs( %w[ a b c ], %w[ c d a ] )
    assert_in_order( array, "a", "b" )
    assert_in_order( array, "c", "d" )
    ## assume that a and c have no dependency
  end

で、もう少し考えて、挿入位置を常に先に進めるようにしてみました。
前に戻ってしまう場合には、直前の挿入位置に追加しています。
これで、x, y 両方の順序が保たれると思いますがいかがでしょうか。

def merge_libs( *libs )
  libs.inject( [] ){ |x,y|
    xy = x & y
    xn = yn = 0
    y.each_with_index do |v,yi|
      if( xy.include? v )
        xi = [ x.index( v ), xn ].max()
        x[ xi, 1 ] = y[ yn .. yi ]
        xn, yn = xi + ( yi - yn + 1 ), yi + 1
      end
    end
    x.concat( y[ yn .. -1 ] || [] )
  }
end

---
Siena. <mailto:siena@faculty.chiba-u.jp>

In This Thread