[#34647] fork 不可能な環境での test_argv0_noarg — wanabe <s.wanabe@...>

ワナベと申します。

13 messages 2008/05/11
[#34667] Re: fork 不可能な環境での test_argv0_noarg — Yukihiro Matsumoto <matz@...> 2008/05/13

まつもと ゆきひろです

[#34742] Ruby 1.8.7-preview3 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.7-preview3 をリリースしました。

14 messages 2008/05/18
[#34744] Re: [ruby-list:44957] Ruby 1.8.7-preview3 has been released — Takahiro Kambe <taca@...> 2008/05/19

お疲れ様です。

[#34800] Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...>

木村です。

18 messages 2008/05/22
[#34801] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/22

こんにちは、なかむら(う)です。

[#34824] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/23

木村です。

[#34850] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/26

木村です。

[#34854] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/26

こんにちは、なかむら(う)です。

[#34889] Ruby 1.8.7-preview4 test-all failed in OpenSSL::TestSSL — Nobuhiro IMAI <nov@...>

いまいです。

10 messages 2008/05/29

[ruby-dev:34721] Re: fork 不可能な環境での test_argv0_noarg

From: Tanaka Akira <akr@...>
Date: 2008-05-15 12:40:56 UTC
List: ruby-dev #34721
In article <20080515210433.2577.C613B076@garbagecollect.jp>,
  "U.Nakamura" <usa@garbagecollect.jp> writes:

> 例えば system はあるけど systemable? はない、ということを確認
> する必要があるなら、その確認の過程でtypoが入る可能性は減るん
> じゃないかという気がします。

いちばん typo に気がつきやすい書き方はいきなり目的のメソッド
を呼んで、NotImplementedError を rescue することではないでしょ
うか。

begin
  Process.setrlimit(...)
rescue NotImplementedError
  ...
end

などとすれば、setrlimit に typo が入れば、NoMethodError にな
るので、(おそらく) アプリケーションは中断され、すぐに気がつ
くことができます。

もちろん、副作用の話がありますから、常にこのスタイルで書ける
わけではないでしょうが、setrlimit で制限できれば制限するが
setrlimit がなければ気にしないで続ける、といった状況ではいき
なり呼び出すことが可能です。

しかし、setrlimit がない環境でメソッドを定義されなくなると、
このスタイルが使えなくなります。あえて同じスタイルで書くとす
れば

begin
  Process.setrlimit(...)
rescue NoMethodError
  ...
end

というように NoMethodError を rescue することになりますが、
こうすると setrlimit に入り込む typo を防げなくなります。
setrlimit を typo すると、メソッドがないので NoMethodError
になり、setrlimit がないときの処理に進んでしまいます。

従って、環境依存なメソッドを定義しないようにすることには反対
します。

しかし、このスタイルが使えない状況でも一般的に判断できるのが
望ましいのは確かで、呼び出すと NotImplementedError になるが、
respond_to? には偽を返すメソッドを導入するというのを提案する
のはそういうわけです。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next