[ruby-dev:31831] trunk で現状セルフビルドができません

From: "きむらこういち" <hogemuta@...>
Date: 2007-09-23 16:54:54 UTC
List: ruby-dev #31831
木村です。

以下の修正が原因で、この修正が入った以降のruby を優先的に起動する環境に
おいて、trunk のセルフビルドができなくなっています。

Revision 13447 - (view) (download) (annotate) - [select for diffs]
Modified Sat Sep 15 08:04:10 2007 UTC (8 days, 8 hours ago) by nobu
File length: 5357 byte(s)
Diff to previous 13348

* encoding.c (rb_enc_associate_index, rb_enc_get_index): check if
  object is encoding capable.  [ruby-dev:31780]

* string.c (rb_str_subpat_set): check for if the argument is a String.

こんなエラーがでます
        C:\WINNT\system32\cmd.exe /C .\..\win32\rm.bat ruby.exe
        ruby ./../tool/insns2vm.rb --srcdir="./.."
c:/ruby/lib/ruby/1.9/erb.rb:412:in `initialize': wrong argument type
StringScanner (not encode capable) (TypeError)
        from c:/ruby/lib/ruby/1.9/erb.rb:412:in `new'
        from c:/ruby/lib/ruby/1.9/erb.rb:412:in `scan'
        from c:/ruby/lib/ruby/1.9/erb.rb:524:in `compile'
        from c:/ruby/lib/ruby/1.9/erb.rb:691:in `initialize'
        from E:/ruby-src/ruby-trunk-20070919/lib/vm/instruction.rb:675:in `new'
        from E:/ruby-src/ruby-trunk-20070919/lib/vm/instruction.rb:675:in
`generate'
        from E:/ruby-src/ruby-trunk-20070919/lib/vm/instruction.rb:1317:in
`block in generate'
        from E:/ruby-src/ruby-trunk-20070919/lib/vm/instruction.rb:1316:in
`each'
        from E:/ruby-src/ruby-trunk-20070919/lib/vm/instruction.rb:1316:in
`generate'
        from ./../tool/insns2vm.rb:14:in `<main>'
NMAKE : fatal error U1077: 'ruby' : リターン コード '0x1'

直接の原因は erb.rb の 412行目で渡しているのがStringオブジェクトではなく
StrincScannerのオブジェクトで、そのために上記の修正で行われているチェック
から漏れてしまうためです。

static int
enc_capable(VALUE obj)
{
    if (IMMEDIATE_P(obj)) return Qfalse;
    switch (BUILTIN_TYPE(obj)) {
      case T_STRING:
      case T_REGEXP:
      case T_FILE:
        return Qtrue;
      default:
        return Qfalse;
    }
}

StringScannerはStringの子孫でもないのでこのチェックではじかれるわけですが
どのようにすべきなのでしょうか?

数日前に自分のweb日記にも書きましたので、わたしの知らないところで
話が進んでいたらごめんなさい。

--
木村浩一
 I thought what I'd do was, I'd pretend I was one of those deaf-mutes
or shoud I?
 mail kbk at kt.rim.or.jp
 web  www.kt.rim.or.jp/~kbk/zakkicho/index.html

In This Thread

Prev Next