[#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
まつもと ゆきひろです
[#355] methods [Re: ruby 1.1a5 released]
— keiju@... (石塚圭樹 )
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
まつもと ゆきひろです
[#405] nesting [methods [Re: ruby 1.1a5 released]]
— keiju@... (石塚圭樹 )
1997/09/04
けいじゅ@日本ラショナルソフトウェアです.
[#406] Re: nesting [methods [Re: ruby 1.1a5 released]]
— matz@... (Yukihiro Matsumoto)
1997/09/04
まつもと ゆきひろです
[#411] Re: nesting [methods [Re: ruby 1.1a5 released]]
— keiju@... (石塚圭樹 )
1997/09/04
けいじゅ@日本ラショナルソフトウェアです.
[#358] defined? — keiju@...
けいじゅ@日本ラショナルソフトウェアです.
7 messages
1997/09/01
[#389] ruby 1.1a6 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
6 messages
1997/09/03
[#417] [BUG] *methods — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
6 messages
1997/09/04
[#418] building ext modules — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
7 messages
1997/09/05
[#431] [Q] socket on ruby(mswin32) — Masaki Suketa <suke@...>
助田です。
9 messages
1997/09/09
[#441] How to report a bug — takagi@... (TAKAGI Hiromitsu)
Bus error が出ました。
15 messages
1997/09/09
[#447] Re: How to report a bug
— matz@... (Yukihiro Matsumoto)
1997/09/10
まつもと ゆきひろです
[#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
わたなべです.
[#468] Re: [Q] ruby-socket(mswin32)
— matz@... (Yukihiro Matsumoto)
1997/09/11
まつもと ゆきひろです
[#469] Re: [Q] ruby-socket(mswin32)
— WATANABE Hirofumi <watanabe@...>
1997/09/11
わたなべです.
[#475] Re: [Q] ruby-socket(mswin32)
— WATANABE Hirofumi <watanabe@...>
1997/09/11
わたなべです.
[#476] Re: [Q] ruby-socket(mswin32)
— Masaki Suketa <suke@...>
1997/09/12
助田です。まとめてレスします。(ちょっと長いです)
[#477] Re: [Q] ruby-socket(mswin32)
— WATANABE Hirofumi <watanabe@...>
1997/09/12
わたなべです.
[#489] [BUG] thread? — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
5 messages
1997/09/16
[#499] parser bug — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
8 messages
1997/09/18
[#501] MethodIndex — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
5 messages
1997/09/18
[#522] Re: Assigne to special variable — "EGUCHI Osamu" <eguchi@...>
えぐち です。
12 messages
1997/09/24
[#571] dbmtest.rb — Masaki Suketa <suke@...>
いまだ ruby(Perl?) のソースコード追っかけてる時間の方が長い
11 messages
1997/09/30
[#572] Re: dbmtest.rb
— WATANABE Hirofumi <watanabe@...>
1997/09/30
わたなべです.
[#573] Re: dbmtest.rb
— matz@... (Yukihiro Matsumoto)
1997/09/30
まつもと ゆきひろです
[#585] Re: optimize (Re: Assigne to special variable) — "EGUCHI Osamu" <eguchi@...>
えぐち です
4 messages
1997/09/30
[#594] BUG?(marshal) — Masaki Suketa <suke@...>
以下のプログラムを実行した時に(3)と(4)で出力結果が違います。
17 messages
1997/09/30
[#595] Re: BUG?(marshal)
— matz@... (Yukihiro Matsumoto)
1997/09/30
まつもと ゆきひろです
[#596] Re: BUG?(marshal)
— WATANABE Hirofumi <watanabe@...>
1997/09/30
わたなべです.
[#601] Re: BUG?(marshal)
— Masaki Suketa <suke@...>
1997/10/01
助田です。
[#602] Re: BUG?(marshal)
— matz@... (Yukihiro Matsumoto)
1997/10/01
まつもと ゆきひろです
[ruby-dev:570] Re: Tail recursion (Re: optimize (...))
From:
"EGUCHI Osamu" <eguchi@...>
Date:
1997-09-29 23:30:07 UTC
List:
ruby-dev #570
えぐち です。
----------
> 差出人 : Yukihiro Matsumoto <matz@netlab.co.jp>
> 件名 : [ruby-dev:566] Re: [563] Tail recursion (Re: optimize (...))
>
> まつもと ゆきひろです
>
> In message "[ruby-dev:565] Re:[563] Tail recursion (Re: optimize (...))"
> on 97/09/29, "EGUCHI Osamu" <eguchi@shizuokanet.or.jp> writes:
>
> |えぐち です。
>
> |いまフレーム・ブロック・スコープなど環境をハードウェアスタックに
> |つんでいますが、これを動的な配列なり、リストなりに置くようにする
> |事で fact な問題は緩和されそうです。
>
> ええ,それはそうなんですけど,やっぱりハードウェアスタックは
> 速いので,なかなか迷うところです.以前,ソフトウェアスタック
> 化を実装してみたところ,かなり遅くなりましたし.
>
> # ずいぶん前なので数値を忘れてしまったのですが.
このへんのバランスからして今の rb_eval() は
かなりの完成度にあると思うです。
> |しかし真剣に rb_eval() を非再帰構造にするとなると、
> |break/redo/next 3兄弟が制御構造 *ではなく* 関数であることや、
> |例外・イテレータとの折り合いを付けるために、字句・構文・評価で
> |情報の受け渡しを密接に行わなければならないのでかなり厄介です。
>
> この辺を考えて1.1ではbreak/next/redo/retryは制御構造になって
> ます.でも,問題はそれだけではありませんものね.
でもかなり parse で出来ることが増えます。
欠点としては、Obfuscated ruby code contest で
break = next + redo / retry
が選外になることがあげられます。 (^^)
> |私のイメージでは、rb_eval() を非再帰化するというと、
> |構文木を今の異種リストから機械語の様なバイトコードに変更する
> |と言うことのように思えるのですが、違いますか?
>
> そこまでは考えていないんですけど,
>
> case NODE_WHILE:
> while (eval(node->cond)) {
> eval(node->body);
> }
>
> のようになっているものを
>
> case NODE_JUMPIF:
> if (RTEST(result)) {
> node = node->jump;
> goto again;
> }
> break;
>
> のようなものによって展開できたら良いなあ,と考えているのです.
この方法でのパーサは、 break, next, redo などの行き先も
(たぶん2パスで)生成することが必要になりますね。
rb_eval() がその分実行時のダイナミックなフロー制御から開放され
かなりループなどの実行が速くなりそうです。
えぐち