Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Matzにっき(2003-08-29)
[go: Go Back, main page]

«前の日記(2003-08-28) 最新 次の日記(2003-08-30)» 編集

Matzにっき

<< 2003/08/ 1 1. 1.8.0 preview7
2 1. Ruby 1.8.0
2. 花火
3. オブジェクト指向が難しいのか(予告)
3 1. 松江
2. 米子
3. ひらがなのなまえ
4 1. 来訪者
2. Ruby 1.8.0
5 1. 見積もり
2. 記者の眼
3. 1.8.0のバグ
6 1. 継承は悪か
7 1. 出張
2. オブジェクト指向の神髄
8 1. まつもとゆきひろを囲む会
2. アイデンティティ
3. 番号
9 1. Lightweight Language Saturday
2. また欠航
10 1. 帰宅
11 1. バグ
2. LL Saturday感想
12 1. 帰省
2. トリック×トリック
13 1. 秋芳洞
2. 今日のバグ
14 1. 買い物
2. Linux Magazine
15 1. でえと
2. 温泉
3. 原稿
4. irb
16 1. 帰宅
17 1. 出雲訪問
18 1. 技術の真髄
19 1. 送別会
20 1. 「技術の真髄」完了
21 1. Linux体験講座
2. 対話
22 1. 訪問者
2. 記憶のふしぎ
23 1. 休日
24 1. 松江
25 1. Mix-inと多重継承
2. アイデンティティ再び
26 1. 多重代入
27 1. 続々アイデンティティ
28 1. チケット
2. アイデンティティFAQ
29 1. local jumpの改善
30 1. 流しそうめん
31 1. 松江
2. 箱モデル
>>
Dr.Web 予測するアンチウイルス  Hiki も使った新サイト、10/18 リニューアルオープン!

2003-08-29 [長年日記]

_ [Ruby]local jumpの改善

ふと思い立ってeval.cの大改造。変更した点は以下のとおり

  • ブロック付きメソッド呼び出しのたびにBLOCKTAGオブジェクトを生成していたのを止めた
  • ブロック内からのreturnやbreakは妙なことをして伝達していたが、単純化
  • POP_TAGはreturn値をコピーしていたが、止めた。returnやbreakが直接設定する
  • ブロックのorphan判定を単純化。scopeがNOSTACKかどうかだけで判断する

試行錯誤でコーディングしているので、ここを直すとあちらが動かずなどということを繰り返しているうちに、 次第に全体像が頭に入ってきて、あるべき姿を理解できるようになった。こういうコーディングしているから、 いつまでたってもバグがなくならないんだろうなあ。

で、改造結果だが、構造はやや単純になったが、別に速くなったわけではないと思う。 しかし、なんだか達成感がある。

私がRubyをハックしているかたわらで、妻は手芸にいそしんでいた。夜中の3時まで。 お互いに夜更かしが過ぎます。

お名前:
E-mail:
コメント:
本日のリンク元
アンテナ
検索

RSS feed meter for http://www.rubyist.net/~matz/ Creative Commons License This work is licensed under a Creative Commons License.