[prime-dev: 280] Re: PRIME 0.7.a + prime-el 1.4.0 の不具合

Back to archive index

Hiroyuki Komatsu komat****@taiya*****
2004年 3月 3日 (水) 03:44:52 JST


小松です。
 
> At Tue, 02 Mar 2004 09:47:59 +0900,
> T Mishima wrote:
> > >   <http://www9.big.jp/~t-34/tdiary/?date=20040301#p01>
> > を書いたひとです.責任を取ってとりあえず中間報告させていただきます.
> 
> みしまさん、詳細なレポートありがとうございます。原因が分かりましたので
> 報告させていただきます。
> 
> エラーの理由は、Ruby1.8 で追加された仕様を PRIME が使用していたため
> でした。具体的には Array.new([0,1,2]) という入力を Ruby1.6 では受け
> 付けない点でした。
> 
> | % irb1.8
> | irb(main):001:0> Array.new([0,1,2])
> | => [0, 1, 2]
> | irb(main):002:0> 
> 
> | % irb1.6
> | irb(main):001:0> Array.new([0,1,2])
> | TypeError: failed to convert Array into Integer
> |         from (irb):1:in `initialize'
> |         from (irb):1:in `new'
> |         from (irb):1
> 
> これから直します。

直して 0.7.a.1 をリリースしました。
<http://prime.sourceforge.jp/src/prime-0.7.a.1.tar.gz>

-- 
                                                            小松弘幸
                                                -----------------------
                                                   http://taiyaki.org/

FYI: lib/taiyaki.rb で以下のようにして直しました。

### Considering under compatibility with Ruby1.6
begin
  Array.new([])
rescue TypeError
  class Array
    alias original_initialize initialize

    def initialize(value = 0)
      if value.kind_of?(Array) then
        original_initialize(value.length)
        self.length.times {|i|
          self[i] = value[i]
        }
      else
        original_initialize(value)
      end
    end
  end
end




Prime-dev メーリングリストの案内
Back to archive index