[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 をリリースしました。

14 messages 2007/03/12

[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

13 messages 2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[#30587] Re: help: lib/shell for ruby 1.9 — keiju@... (石塚圭樹) 2007/03/15

けいじゅ@いしつかです.

[#30588] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[ruby-dev:30652] Re: YARVでのalias名の取得方法

From: Yukihiro Matsumoto <matz@...>
Date: 2007-03-20 08:14:11 UTC
List: ruby-dev #30652
まつもと ゆきひろです

In message "Re: [ruby-dev:30651] Re: YARVでのalias名の取得方法"
    on Tue, 20 Mar 2007 16:58:17 +0900, SASADA Koichi <ko1@atdot.net> writes:

|Yukihiro Matsumoto wrote:
|> あるのかないのかよくわかりませんが、「できるけど今はない」と
|> いう意味だと解釈しました。
|
| いえ、「今はあります」。だけど、出来れば削りたいところです。

なるほど。

|> でも、__callee__がないとエラー時に
|> どのメソッドを呼んだのか分からなくないですか。あ、YARVはエラー
|> 時にはいつも__method__相当を表示しているのか...そうか。
|
| エラー時に、というのはスタックトレースの話でしたっけ。これは、どういう
|ものであるべきでしょうか。

今調べたらcalleeが使われていたのは

  * rb_notimplement()
  * rb_secure()
  * rb_check_safe_obj()
  * specific_eval()
  * rb_f_callee_name()

ですね。最初の3つはエラーが起きた関数名を得るのに使っていま
す。alias名でないと困るかというとRubyで定義されたものに限っ
ては問題ではないかもしれませんね。Cで定義されたものをaliasを
使ってボディを使いまわすとかするとエラーメッセージがわかりに
くくなるかもしれません。が、妥協可能でしょう。

4番目は引数の数チェックです。これは呼び出したメソッド名でな
いとまずいのですが、YARVでは実際のメソッド呼び出し前に引数の
チェックは終わっているような気がしますので、そうであれば問題
ありません。

最後のは今回のですが、他で問題なければ__callee__はなくすので
も良いかもしれません。

|でしょうか。でも、define_method も普通のメソッドも同じ挙動にしろといわれ
|るんでしょうね。どうやって実装すればいいんだろ。

やるなら、同じ挙動にするんでしょうね。上での考察がありますか
ら、やらないという選択肢がないとは言いません。

                                まつもと ゆきひろ /:|)

In This Thread

Prev Next