Entries from 2008-11-01 to 1 month

Operations on IEEE-754 representations

R6RS Bytevectors の Operations on IEEE-754 representations を実装。IEEE-754 は普段全く意識してなかった。これをきっかけに少しだけ勉強できたのが良かったな。 Bytevector から浮動小数を読み出したりとか。 (almost=? 3.14 (bytevector-ieee-single-r…

今日の復習

パタヘネ アドレッシング 10割 モンスターメソッド 4割 Extract override callなど 5割

今日の英語

今日の英語。porting from Ikarus to PLTを読む。 何が問題でどういう結論になったかを把握すること。可能な限り流し読みできるように試みる。 ふむ。問題となるケースは前半を読んで分かった。しかし読むのは正直しんどいな。 問題を分析しよう 読み飛ばし…

数値の read 実装完了

やっと数値 read の実装が完了。bison/re2c を使用することを決断した際にはもう少し楽だと思っていたが間違い。自分でパーサを書くにしろ、パーサジェネレータを書くにしろコード立ち上げのコストはあまり変わらないという印象。 ただし 漏れがあるかどうか…

polar

極座標形式の入力がうまくいかないと思ったらこんなミスを。makeFixnum はどう見ても間違い。 return Object::makeCompnum(Object::makeFixnum(r * cos(a)), Object::makeFlonum(r * sin(a)));

Gauche trunk の Flonum 対応

Lingr 経由。VM経由の Flonum 演算の計算途中に現れるテンポラリなFlonumをスタックに alloc するらしい。 以前からスタックに割り当てるというキーワードは聞いていたが、「ネイティブスタック?」「VMスタック?」そんなのできるのか?と思ったら、専用の…

今日の復習

Extract and override getter Introduce Delegator Breakout Method object 昨日と全く同じメニュー。全て10割。

bison/bison

KFCにてオフラインでコードを書いていたら shift/reduce conflict が起きる。よく分からない。いつもなら間違いなく Google 先生直行だが、オフラインなので無理。しょうがないので info bison 。読み進めると意外と面白い。君は前から近くにいたのだね。

ぱたへね

パタヘネを読み返し。 MIPSの命令長が全て32bitとか。I形式とかR形式とか見ていたら Mosh の命令も即値埋め込み型に早く対応しようと思った。 DLLの説明の部分で間接ジャンプ先書き換えの図を見ると、初回もそれ以降も外部ルーチンはダミーエントリ経由の ca…

今日の復習

Extract and override getter Introduce Delegator Breakout Method object 全て5割。

ぱたへね

パタヘネを読み返しています。今度はマインドマップを描いているので忘れないでしょう。それにしてもPC相対アドレッシングとか読んだ記憶がないな。どれだけ忘れっぽいんだか。

MOP (Metaobject Protocol) in One Day を逃した

なぜ開催に気付かなかったのか分析が必要。

動かないのは g++ -O3 最適化のバグのせいだったというオチ

昨日 bison と re2c で書いた数値パーサが OSX では動くが Ubuntu では動かないという現象に遭遇。(コード壊れた) ずっと調べていたところ bison が生成したコードの中の /* Discard the shifted token unless it is eof. */ if (yychar != YYEOF) yychar …

コード壊れた

OS Xで動いてた数値の read が一切動かない。しかも原因不明。 YYERROR_VERBOSE を define すると動くという謎挙動。

今日の復習

WEwLC 1章 ついに1章を1ヶ月ぶりに復習。10割。素晴らしい。覚えたよ。 WEwLC 9章 クラスをインスタンス化できない。10割。 WEwLC 25章 Definition Completionなど 10割。 調子がよい。

Outputz アドオンと Tab Mix Plus アドオンの相性問題解消など

Outputz アドオンを入れると、Tab Mix Plus の「検索を新しいタブで開く」が有効にならない不具合を修正しました。 また Wassr での「レス」のアウトプットが Outputz で記録されない不具合も修正しました。Firefox の 「アドオン」 - 「更新を確認」 から O…

2進数リテラルの read を実装

re2c と bison の協調動作の調整に時間がかかった。ひとつのプログラムで2種類の bison 由来のパーサを使うので yylex などのリネームが必要だったりとか。 (write #b11/10) (print #b11+10i) (print #b11-10i) (print #b11+i) (print #b11-i) (print #b+nan…

Lean on the compiler

今まさに Lean on the compiler している。と意識できるようになっただけでもWEwLC読んだ価値はあった。

今日のギター

Black Bird のイントロの後半の右手指使いだけを延々と練習。我流のスリーフィンガーを矯正中。うーどうしても中指がでしゃばるな。しばらく練習が必要。

今日の復習

WEwLC 20章 クラス大きすぎ 9割 WEwLC 25章 Extract Override call など 0割。 WEwLC 25章 Pull up Features 10割。

Outputz がはてなダイアリーの「その場編集機能」に対応しました

ユーザーの皆さんからご要望の多かった、はてなダイアリーの「その場編集機能」に Outputz アドオンが対応しました。 Firefox の アドオン - 更新を確認 から Outputz アドオンを更新する事で利用可能になります。 対応サービスのご要望などがありましたら、…

テスト

ちょっとテストです。

数値の read を実装

id:YasuyukiMiura さんがコミッタとして活躍を始めてくれました。僕は数値の read を早く実装し、テストを書きやすくしないと。 NUM2(2進数) の read を実装する。あれこれいじってみたが数値の reader を re2c/bison で外部に作った方が実装が楽そう。 こ…

Bignum と get-timeofday

Bignumが実装されたのでやっと get-timeofday が使えるようになった。うれしい。

Tiny CLOS on Mosh

IRCで話していたらやる気が出たので Tiny CLOS を動かしてみました。 (define (fib x) (if (= x 0) 1 (* x (fib (- x 1))))) (define-generic gfib) (add-method gfib (make-method (list) (lambda (call-next-method x) (if (= x 0) 1 (* x (gfib (- x 1)))…

今日の復習

WEwLC Pull up / Pull Down 2割。 WEwLC Characterization test 10割。 世界一分かりやすい株実践編 10割。次の復習は来年。

今日の英語 The art of metaobject protocol を少し読む

The art of metaobject protocol を Google Book search で少し読む。プレビューということもあり間が抜けてしまうので教材としてはつらいな。例の本が届くまでは別の題材を探す。

Outputzアドオン不具合修正中

Tab Mix Plus との相性問題をご指摘いただいた。 searchbar.handleSearchCommand を取りあってしまっているのでその辺りを修正。 きれいな修正方法はなさそう。問題が修正されたか確認後リリースします。

Numerical type predicates 実装完了

面白かった。

美しい

Numeric Tower を実装していて「この仕様は美しいな」と感じていたのだが、よく考えればそれは数学の美しさだった。Numeric Tower は数学の表層に過ぎないのは良く分かっているつもりだが、この整然とした美しさには特別なものを感じる。Tower とは言い得て…