[#352] ruby 1.1a5 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

38 messages 1997/09/01
[#353] Re: ruby 1.1a5 released — keiju@... (石塚圭樹 ) 1997/09/01

[#354] Re: ruby 1.1a5 released — matz@... (Yukihiro Matsumoto) 1997/09/01

まつもと ゆきひろです

[#356] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/01

まつもと ゆきひろです

[#357] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/01

けいじゅ@日本ラショナルソフトウェアです.

[#359] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#363] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#374] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#376] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/02

けいじゅ@日本ラショナルソフトウェアです.

[#382] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/02

まつもと ゆきひろです

[#390] Re: methods [Re: ruby 1.1a5 released] — keiju@... (Keiju ISHITSUKA) 1997/09/03

けいじゅ@日本ラショナルソフトウェアです.

[#391] Re: methods [Re: ruby 1.1a5 released] — matz@... (Yukihiro Matsumoto) 1997/09/03

まつもと ゆきひろです

[#441] How to report a bug — takagi@... (TAKAGI Hiromitsu)

Bus error が出ました。

15 messages 1997/09/09

[#461] [Q] ruby-socket(mswin32) — Masaki Suketa <suke@...>

助田です

27 messages 1997/09/11
[#462] Re: [Q] ruby-socket(mswin32) — matz@... (Yukihiro Matsumoto) 1997/09/11

まつもと ゆきひろです

[#463] Re: [Q] ruby-socket(mswin32) — Masaki Suketa <suke@...> 1997/09/11

助田です

[#464] Re: [Q] ruby-socket(mswin32) — matz@... (Yukihiro Matsumoto) 1997/09/11

まつもと ゆきひろです

[#467] Re: [Q] ruby-socket(mswin32) — WATANABE Hirofumi <watanabe@...> 1997/09/11

わたなべです.

[#594] BUG?(marshal) — Masaki Suketa <suke@...>

以下のプログラムを実行した時に(3)と(4)で出力結果が違います。

17 messages 1997/09/30

[ruby-dev:563] Re: Tail recursion (Re: optimize (...))

From: matz@... (Yukihiro Matsumoto)
Date: 1997-09-29 02:11:20 UTC
List: ruby-dev #563
まつもと ゆきひろです

In message "[ruby-dev:558] Tail recursion (Re: optimize (...))"
    on 97/09/27, "EGUCHI Osamu" <eguchi@shizuokanet.or.jp> writes:

|えぐち です。

|> 結局 obj += m は obj = obj + m に戻して評価してますからねえ.
|> それほど効果は出ないかも.
|
|eval のトラバースがちょっと減るですね、

ええ,それがどれだけ重いかですね.そんなに重くないように思っ
ているのですが,nd_type()はビットマスクとかありますけど.

|> |また、メソッドのテールリカージョンは可能だとおもいます。

|可能なのはクラス#メソッドが一致でかつ特異メソッドがない場合です。
|これは eval の時までわからないです。
|逆に eval が手抜きできるわけですが、検査コストは大きいでしょうか?
|また、これをしてまで call/return のオーバーヘッドは大きいのか不明です。

ああ,すいません.テールリカージョンといえば普通はこっちです
よね.これに関しては全てのメソッドが動的結合して,本当にテー
ルリカージョンできるかコンパイル時に決定できない事情があるの
で,検査コストの方が大きいように感じていて,まじめに検討した
事がありません.

call/returnの主なコストはsetjmp/longjmpですから,ある程度は
重いにしても,こういうテールリカージョンを正当化する程には重
たくないような気がします.もっとも,fact(400)とかが実行でき
るようになることは嬉しいですけど.

私が検討した事のあるテールリカージョンは,最後のメソッド呼出
で呼出フレームを積まない方です.こちらは本来の意味ではテール
リカージョンではないんですが,Schemeの仕様ではこういうのもテー
ルリカージョンと呼んでいるようです.

こちらは正当的テールリカージョンよりも実現性が高いのですが,
今のままの実装では難しくて,rb_evalの非再帰化が必要だなあと
感じている所です.
                                まつもと ゆきひろ /:|)

In This Thread

Prev Next