[#39052] Fwd: [redmine4ruby-lang:253] [Bug #1914] ruby-1.9.1-p243 failed to build from source on aix 5.3 with gcc 4.2.0 — Yugui <yugui@...>

Redmine管理用プロジェクトに報告されてしまったので転送します。

12 messages 2009/08/09
[#39264] Re: Fwd: [redmine4ruby-lang:253] [Bug #1914] ruby-1.9.1-p243 failed to build from source on aix 5.3 with gcc 4.2.0 — Yutaka Kanemoto <kinpoco@...> 2009/09/08

金本と申します。

[#39107] [Bug #1952] cannot stop with Ctrl+C — Usaku NAKAMURA <redmine@...>

Bug #1952: cannot stop with Ctrl+C

14 messages 2009/08/18

[#39167] [Bug #2000] Change the license to "GPLv2+ or Ruby's original". — Mamoru Tasaka <redmine@...>

Bug #2000: Change the license to "GPLv2+ or Ruby's original".

11 messages 2009/08/26

[#39193] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Tanaka Akira <akr@...>

In article <200908281827.n7SIRbaX003476@ci.ruby-lang.org>,

16 messages 2009/08/29
[#39194] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Nobuyoshi Nakada <nobu@...> 2009/08/29

なかだです。

[#39195] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Tanaka Akira <akr@...> 2009/08/29

In article <4a988633.9553f10a.4496.483e@mx.google.com>,

[#39196] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Nobuyoshi Nakada <nobu@...> 2009/08/29

なかだです。

[#39197] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Tanaka Akira <akr@...> 2009/08/29

In article <4a989f76.1602be0a.3de4.1131@mx.google.com>,

[#39198] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Yukihiro Matsumoto <matz@...> 2009/08/29

まつもと ゆきひろです

[#39206] Re: [ruby-cvs:31917] Ruby:r24699 (trunk): * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition. — Nobuyoshi Nakada <nobu@...> 2009/08/31

なかだです。

[ruby-dev:39020] [Bug #1503] -Kuをつけた時、/[#{s}]/n と Regexp.new("[#{s}]",nil,"n") で実行結果が異なる

From: Yui NARUSE <redmine@...>
Date: 2009-08-05 03:30:42 UTC
List: ruby-dev #39020
チケット #1503 が更新されました。 (by Yui NARUSE)


/.../nは、内側の文字列をASCII-8BITとしてみなして正規表現にするリテラルではなく、
ASCII-8BITな正規表現を作るためのリテラルなのが根本的な理由です。

よって、そもそもの動機として、/あ/nといった書き方はやめさせたいと思っています。
理由は、その正規表現が書かれたソースコードのencodingが変換された場合に、
生成される正規表現が意図せずして変わる可能性があるからです。
また、先述のASCII-8BITな正規表現リテラルという趣旨にたいして、
素の文字を書かれるのはこれに反します。

次に/#{"foo"}/のように埋め込むものがリテラルの場合、
このコードはパーサレベルで/foo/のように、1つのリテラルに置き換えられています。
つまり、実行時にこの2つは区別することができないので、引きずられてエラーが出ます。
もっとも、たとえ区別できたとしてもこのような方法で回避できるような、
いかにもバッドノウハウ的な挙動は許さないでしょう。

さて、やっと本題です。
/#{s}/nと2番目の違いは埋め込むものがリテラルか変数かの違いです。
この違いが影響することも、結局は埋め込み式であってもリテラルの生成なので本意ではありません。
ただ、エラーメッセージは微妙に先の場合とは変えてあります。
あわせて、「invalid multibyte character (ArgumentError)」というメッセージも、
RegexpError: /.../n has a non escaped non ASCII character in non ASCII-8BIT script
に変えています。
----------------------------------------
http://redmine.ruby-lang.org/issues/show/1503

----------------------------------------
http://redmine.ruby-lang.org

In This Thread