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

From: "U.Nakamura" <usa / garbagecollect.jp>
Subject: [ruby-dev:36797] Re: ConverterNotFoundError while making Ruby in Windows(trunk)
Date: Mon, 20 Oct 2008 15:03:54 +0900
Message-ID: <20081020144347.7FAA.C613B076 / garbagecollect.jp>
> dbmじゃなくてその次のdigestのコンパイルというかMakefileの作成
> 準備中に起きています。

extconf.rb の中で出力しようとした際に出るようですね.

> 時間が足りなくていまいち原因が追いきれないのですが、miniruby
> でmkmfをrequireすると$stdout.external_encodingがASCII-8BITに
> 設定されるように見えるのが気になります。

同じく原因は追っていないのですが,extconf.rb の上で
-------------------------------------------------------------
p 999     #=> OK
puts 999  #=> OK  Fixnum は OK ?

p 999999999999999999999     #=> NG
puts 999999999999999999999  #=> NG  Bignum は NG

s = '99999999999999999999'
p s             #=> NG
puts s          #=> OK
puts s.inspect  #=> NG

puts '"99999999999999999999"' #=> OK

puts s.encoding.to_s          #=> OK  "US-ASCII"
puts s.inspect.encoding.to_s  #=> OK  "US-ASCII"
-------------------------------------------------------------
などと「謎」な状況になるようです.

...と書いたところで revision 19854 に上がったようなので
そちらでテストしてみたのですが,一部は改善したようであるものの,
まだ完全ではないようです.
上記と同じ例だと
-------------------------------------------------------------
p 999     #=> OK
puts 999  #=> OK  Fixnum は OK ?

p 999999999999999999999     #=> NG
puts 999999999999999999999  #=> NG  Bignum は NG

s = '99999999999999999999'
p s             #=> NG
puts s          #=> OK
puts s.inspect  #=> OK  改善?

puts '"99999999999999999999"' #=> OK

puts s.encoding.to_s          #=> OK  "ASCII-8BIT"  変更?
puts s.inspect.encoding.to_s  #=> OK  "ASCII-8BIT"  変更?
-------------------------------------------------------------
となります

ruby1.9 2008-10-20 on VineLinux-3.2 です.
-- 
永井 秀利  (nagai / ai.kyutech.ac.jp)
九州工業大学 大学院情報工学研究院 知能情報工学研究系