[#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:38977] define === for some classes

From: SASADA Koichi <ko1@...>
Date: 2009-08-01 13:16:42 UTC
List: ruby-dev #38977
 ささだです。

提案:
 いくつかのクラス、例えば Fixnum や Bignum、Symbol や String などに ===
を定義してもいいでしょうか。

理由:
 case/when の最適化のために、現在、可能なら === を呼び出さないようにし
ています。例えば、when でひっかける条件が全部シンボルやら数値やら、の時
です。

 ただ、シンボルやら数値やらに === が定義されていると、その === を呼ばな
いといけないところ、現在は呼ばないような実装になっています。つまり、===
の定義を真面目に見張っていないわけです。

 opt_plus みたいに、「再定義」のチェックフレームワークを利用すればすぐ
に解決出来るな、と思ったんですが、「再定義」チェックフレームワークは「再
定義」をチェックするんで、「定義」はチェックできないということに気付きま
した。「定義」をチェックしようとすると、基底クラスやモジュールの include
なんかもチェックしないといけなくなってしまうので、うまくやる方法が思いつ
きませんでした(いずれは、こういうフレームワークも用意しようと思ってるん
ですが (*1))。

 ということで、Fixnum#=== や Symbol#=== を最初から定義しておくことは許
されるでしょうか。そうすると、既存の「再定義」チェックフレームワークをそ
のまま利用することが出来ます。

 具体的にどう定義するかというと、Fixnum#== や Symbol#== と同じ定義にな
ります。現状の Object#=== が、self.== を呼ぶので、Object#=== などを
(再)定義しない限り、動作は同じになります。

 ただ、Fixnum#=== などを定義してしまうので、Integer#=== などを定義して
も、その定義が Fixnum では使われない、という副作用も出てきます。

# デフォルトの Object#=== が rb_funcall() 経由でメソッドを呼ぶので、
# それが省略されるとちょびっとだけ Fixnum#=== なんかが速くなるかも。

 さて、どうでしょう。オブジェクト指向的には美しくないような気もします
が...。

*1: これは、脱最適化をするとかまで実装が進めば必要だなぁ、作らないと
なぁ、と思っていたんですが、結構おおがかりになりそうだな、とも思っています。

-- 
// SASADA Koichi at atdot dot net

In This Thread

Prev Next