[#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:591] Re: optimize (Re: Assigne to special variable)

From: "EGUCHI Osamu" <eguchi@...>
Date: 1997-09-30 06:00:17 UTC
List: ruby-dev #591
えぐち です。

----------
> 差出人 : Yukihiro Matsumoto <matz@netlab.co.jp>
> 件名 : [ruby-dev:586] Re: optimize (Re: Assigne to special variable)
> 
> まつもと ゆきひろです
> 
> In message "[ruby-dev:585] Re: optimize (Re: Assigne to special
variable)"
>     on 97/09/30, "EGUCHI Osamu" <eguchi@shizuokanet.or.jp> writes:
> 
> |えぐち です

> |parse.y と同じと考えてください。(ちょっとちがうかな、、)
> 
> そういうもんなんですね.gperfって使った事無いんですが,生成
> したものをparse.yに取り込めば良いもんなんでしょうか.
> 

#ついさっきまで、MANIFEST に parse.c が入ってると思ってました。

今回は、安直に parse.y で gperf の作った perse.h を
インクルードしました。

> 1.1で予約語が増えるので(break/next/redo/retry/true/false)そ
> れも取り込まないといけませんね.

じつは、これをやろうとして予約語表の *最後に* break を
追加しようとしてしまったオバカは私です。 ^^;

むしろ、parse.gperf に予約語表が切り出されていた方が
今後の改造も楽だとおもいます。(いかにもこじつけ>自分)

> |> それとキーワード判定ってそんなに重くないような気がするんです
> |> けど.重くなければ複雑になるだけですよね.
> |
> |ところが、yylex の実行時間の殆どは2分探査が占めてました。
> |で yylex は、全体のいくらかというと、、ベストテン圏内に登場することも
> |まずらしくないようです。(みぢかいスクリプトではあれですが、)
> 
> そうか,それは考えた方が良いかも.

標準的な ruby で書かれたアプリケーションのギプソンミックスが
しりたい今日このごろです。

いわゆるキラーアプリにチューニングするだけならどんなに楽だろ。
#それじゃつまんないというはなしもありますが、、

------
パッチを ftp に 1.0-970919-eguchi.patch.gz の名前で PUT します。

変更は、
	MANIFEST:	parse.gperf parse.h 追加
	Makefile.in:	parse.h: parse.gperf 追加
			--program-suffix,@srcdir@ != `pwd` 対応 ※
			maintener-clean: 追加
	bignum.c:	四則と比較の高速化 ※
	configure.in:	--program-suffix _setjmp 対応 ※
	eval.c:	alloc でハードスタック節約
	ext/extmk.rb:	@srcdir@ != `pwd` 対応 ※
	parse.gperf:	完全ハッシュ関数ソース 新規
	parse.y:	完全ハッシュ関数対応
			self/nil への代入対策 ※
	sample/fact.rb:
			非再帰化しスタック溢れを回避
です。

※は、以前のパッチと重複します。

eval.c の変更は、スタックのヘッドルームは増えますが、
ほんの少し遅くなります。
(プロファイラで測定できないぐらいの微差です。)

やってることは、、
PUSH_XXX() マクロでCのローカル変数で環境を作っていますが、
その case: に来ないでも CC はスタックフレームを生成するので
スタックを馬鹿食いしていましので、alloc() を適宜呼んで
環境リストを作る様にしただけです。(再帰してますから効きます)

これはfact.rb がらみでヘッドルーム増やそうとした痕跡です。
速度的には取り込まない方がいいとかも知れません。お任せします.

	えぐち

In This Thread

Prev Next