[#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:549] Re: optimize (Re: Assigne to special variable)
From:
matz@... (Yukihiro Matsumoto)
Date:
1997-09-26 09:13:24 UTC
List:
ruby-dev #549
まつもと ゆきひろです
In message "[ruby-dev:545] Re: optimize (Re: Assigne to special variable)"
on 97/09/26, "EGUCHI Osamu" <eguchi@shizuokanet.or.jp> writes:
|えぐち です。
|> うーん,えぐちさんってすごい人かも.
|
|とーりすがりのものです。
すごい人がとーりがかったわけですね.^^;;;
[546]のBignumのコードなんか見てると尊敬しちゃいます.私の苦
手分野なんでとくにそう思うのかも.
|私も Lisp でがしがし書ける人でないのであれですが、
|COMMON LISP THE LANGAGE (2nd Ed.)なんかを読むと
|言語設計の段階で強烈に最適化を意識して舞うよね。
|
|まつもとさんって、 hogehoge_p() とかするから lisper かと
|思ってました 。で ruby は CLOS の影響かと、、
お察しの通り若干lispがかってます.もっとも私が使うのはemacs
lispだけですけど.CLOSの仕様は昔感動しながら勉強した覚えがあ
りますが,使った事はないです.
| obj = obj + m --> obj += m
|
|もピープホールの一種じゃないかな、これだけでもエバるときに
|若干手数が減ると思うです?
結局 obj += m は obj = obj + m に戻して評価してますからねえ.
それほど効果は出ないかも.
|また、メソッドのテールリカージョンは可能だとおもいます。
できます? 昔から野郎と思ってできないでいるんですけど.アイ
ディアだけでも大歓迎です.
|もともとキャッシュしなくても hash(Hashにあらず) を
|クラスのメソッドの探索に使っているので、以上にクラス階層が
|深くならない限りミスキャッシュのランタイムコストは、これ以上
|気にしないでいいと思います。
closed hashなんで失敗検出時間も有限で済みますしね.
じゃあ,この件は忘れましょう.
|> いや,もっと大胆なことを考えています.今のrubyは部分式の評価
|> をrb_eval()の再帰呼出で行っていますが,これを非再帰化すると
|> 言うものです.ただ,そのためにソフトウェアスタックを使う必要
|> が出たりするとかえって遅くなるかも.まだ実装にかかれる程考え
|> がまとまっていません.
|
|#JavaVM に食べさせようとしてませんか? (^^)
さすがにそこまでは.
| 例外からの復帰がスタックと整合するか問題ですね。
| ソフトスタックもThread毎に必要でしょうし、
| イテレータもスタックに絡まってきそうですね。
|
|この辺の問題が、 setjmp() で一挙に解決してるんで
|「絶妙」だと思ったわけです。(あの volatile は尋常ぢゃない)
volatile多すぎですよね.変数をレジスタに置けないし,もっとも
やってる事が事だけにしょうがないのかも知れませんが.あの巨大
なrb_evalを適当に分割すれば良いのかなあ.
|逆に言うと、ここの default: に来る NODE をなくすとよいと、、
|(多分今は殆ど来ないと思う)
そうですね,なくすとちょっとだけ速くなります.
|> たとえば現在のrubyではwhileなどの単純ループやclass/module定
|> 義などでもsetjmpを使っています.この辺はパーザとの連係で減ら
|> せるのではないかと考えています.そのためにはrb_evalの非再帰
|> 化が必要そうですけど.
|
|ですね、このあいだの _setjmp() への変更で、なぜにあんなに
|スピードが変わるかわかったような気がします。
|x86 や sparc は setjmp() で数十バイトしか退去しませんが
|mips や amd29000 のようなレジスタマシンだと1Kバイト
|前後の退去が起こるので、setjmp() の多様はつらいかもしれません。
|
|時流としては、シリコンでのレジスタは増やしてもインストラクションは
|比較的少ない(と行っても32本ぐらい)のレジスタにしてそれを
|レジスタリネーミングで投機実行の先行実行にあてがうのがメインストリートに
|なってきたので setjmp() のコストが爆発することはないでしょう。
|(でも VLIW が流行ったらまずいかも)
|ruby のスレッドって10msでスケジューラ呼んでますよネ
|これにプライオリティエンコード付けるとメモリ保護無しですが、
|いっぱしのマルチタスク環境になりますね。
100msです.10msだとスケジューラが重すぎて,まともに動かない
と思います.で,プライオリティはやればできるけど,今は要らな
いかなあと思って放ってます.
|#その前に非同期IOを実装しないと、、
それにCコード実行中にはスイッチが起きないし….
|正規表現ってあれで独立した言語みたいなものだから手強いです。
ですねえ.私には歯が立ちそうにないです.
まつもと ゆきひろ /:|)