Entries from 2008-10-01 to 1 month

今日の復習

WEwLC 2章 7割。 WEwLC 22章モンスターメソッド 7割。 WEwLC 17章 僕のアプリは構造なんて無い 7割。 7割 day。

Numeric Tower の実装を考える

まずは仕様の概要をつかむ。 Numeric Tower number(数) complex (複素数) real (実数) flonum rational (有理数) integer (整数) fixnum bignum 正の無限大,負の無限大,非数(NaN) 0.0と-0.0 exact/inexact 演算 例えば GNU MP を使うとして、使える範囲は …

イカポインタ

Ikarus Scheme のソースを読んでいるが ikptr というものがある。イカポインタですね.

論文読もうとやる気出したら

http://www.citeulike.org/tag/scheme で面白そうな論文を見つけて読もうと思ったら。有料だったorz...。

読み方あってる?

dynamic-wind だいなみっくわいんど valgrind ばるぐらいんど?ばるぐりんど?

Mosh 0.0.7 はビルドが速くなったよ

以前は psyntax.cpp と compiler.cpp が g++ をいじめて、ビルドが遅かったのだが。 0.0.7 からは g++ に優しくなりました。

Mosh 0.0.7 をリリースしました

Mosh 0.0.7 をリリースしました。 R6RS のUnicode, Bytevector, Sorting などが実装されました。 Mosh の起動速度や g++ でのコンパイル速度が大幅に向上しました。 また以前から -b オプションでサポートされていた R6RS モードがデフォルトとなり -b オプ…

お会いしたい人リスト更新

久々に更新した。結構お会いできていてるな。今日はなつたんさんにお会いできました。 ひげぽん/会ってお話してみたい人 - Mona OS developers Wiki

R6RS ライブラリの serialize/load

R6RS ライブラリの serialize/load を実装中。フレームワークは psyntax 側に用意されているのであれこれと読み漁る。 やっと動いたよ。これにより psyntax のS式変換フェーズをばっさり省略できるのでやっぱり速い。 いくつか考えるべき事があるのでメモ。 …

なぜ quote が分からなかったか?

SICP を読みながら Scheme インタプリタを書いていた頃。quote の仕様と実装方法が分からなくて困ったことがあった。そのときなぜ分からなかったか?というのが今になって思い出したので書いておく。 理由はデータとコードとS式の関係がもやもやとして分かっ…

某氏の名言

gdb で見つけられるようなバグはすぐとれる。

ギター

Bad to me は弾き語りできるように。最近は I Feel Fine のイントロを一発で弾けるかみたいなので遊んでいたり。弾き語りの次の課題は Real Love 。それにしてもネット上にあるコード進行表は嘘が多いな。自分は耳コピできるわけではないが、弾いてみたら「…

今日の復習

WEwLC 22章モンスターメソッド 4割。BOIは覚えた。 WEwLC 21章あちこち同じコードが。10割。BOI覚えたのであっという間にうまくいった。 WEwLC 20章クラス大きすぎ。7割。

Mosh trunk のコンパイル方法

先日メールでお問い合わせ頂いたり、id:tazant さんにも触ってもらっているようなので、Mosh trunk のコンパイル方法を書いておきます。Makefile.am の # when you release comment out start という行から # when you release comment out end までをコメン…

25. Dependency-Breaking Techniques - Adapt Parameter and Break Out Method Object- WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

Working Effectively With Legacy Codeの 25章 Dependency-Breaking Techniques からテクニック2つ。 マインドマップから再構成したまとめ 1.Adapt Parameter メソッドをテストしたいが引数を作れない(HttpServletxxxとか) インターフェースを作る。シンプ…

equal? は使わない

equal? は速くないのであまり使わないように。assq で良いところを無駄に assoc を使っているところがあり遅かった。

今日の復習

WEwLC 22章モンスターメソッド 1割。 WEwLC あちこち同じコード書いている 0割。 WEwLC クラス大きすぎもう大きくしたくない 0割。 新しめが多いので成績が悪い。BOIだけでもきっちり覚えよう。

24. We Feel Overwhelmed It Isn't Going to Get Any Better - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

Working Effectively With Legacy Codeの 24章 We Feel Overwhelmed It Isn't Going to Get Any Better。 マインドマップから再構成したまとめ 参ったよ。全然良くならないんだ。 レガシーコードとの良いつきあい コミュニティへの参加 TDD 一番ひどいコード…

23. How Do I Know That I'm Not Breaking Anything? - WORKING EFFECTIVELY WITH LEGACY CODE (WEwLC)

Working Effectively With Legacy Codeの 23章 How Do I Know That I'm Not Breaking Anything?。 マインドマップから再構成したまとめ 何もこわしていないとなぜ分かるの? コードはとても壊れやすいことを認識せよ こわさない方法 Hyperaware Editing。訳…

半分冗談だけど

Faslでコードの埋め込みをやるならば、更に進めて VM の初期状態を埋め込むと起動がめっさ速くなるんじゃなかろうか。 レジスタ スタック 名前空間のハッシュテーブル くらいを埋め込めば良い気がするね。(細かな問題はあるでしょうが)

細かい修正

スタックトレース中に assert で死ぬバグ Mosh のデフォルトの起動モードを R6RS モードに変更(以前は R5RS 相当がデフォルトだった) -b オプションは廃止。 これは感慨深い。 やっとまともな速度で動くようになった。 ファイルオープン時のエラーを error…

末尾呼び出し最適化 その3

結論としては末尾呼び出しの最適化は以前からうまくいっていた。 ただスタックの自動伸長の実装がなかったので初期化時にスタックサイズが決められていて、その大きめのアロケーションのせいで起動が遅かった。 作業 stack自動伸長を実装する。 vm.scm で実…

今日の復習

WEwLC 11章どのメソッドテストすべき 0割。 WEwLC 7章変更が永遠に終わらない 10割。 WEwLC 3章 Sensing & Separation 7割。

末尾呼び出し最適化 その2

input 末尾かどうか? 末尾までに消費したスタック output FRAME の削除 SHIFT の挿入 準備 vm/compiler をいじれるように用意する(rev 560) コンパイル結果を見せる 必ず記録を残す(こまめにコミット) 分からない動作 列挙 pass3/$local-assign val は ta…

末尾呼び出し最適化

いまさら末尾呼び出し最適化を見直しているのですが Gauche で以下のコードがスタックオーバーフローにならない理由が分からなくて混乱。 (define (my-map1 f l) (if (null? l) l (cons (f (car l)) (my-map1 f (cdr l))))) (my-map1 (lambda (x) x) (vector…

Shibuya.lisp テクニカルトーク #1 ニコニコ動画にて動画公開

Shibuya.lisp テクニカルトーク #1 ニコニコ動画にて動画公開! 動画公開にあたりid:koguroさん、snmstsさん、yazuさん、id:g000001さんなど多くの人が尽力して下さいました。ありがとうございます。 特にid:koguro さんは動画の編集とアップロードを引き受け…

今日の復習

WEwLC 10章 クラスのメソッドテストできない 7割 WEwLC 20章 クラス大きすぎ。これ以上大きくしたくない 0割 WEwLC 18章 テストコード邪魔 10割

Thinkpad X60のバッテリがだめになっていく

手元にある Thinkpad X60 のバッテリ 3 つ。明らかに持続時間が短縮されていって悲しい。カフェなどの作業で支障が出ていて困る。 長時間バッテリ→1時間ほどしか持たない 標準バッテリ1 →1時間ほどしか持たない 標準バッテリ2 →全く使えない。X60 に装着する…

プール

週末にプールは久しぶり。昼間に行ったが平日の夜と違い空いていて気持ちよい。1レーンを1人でのびのび使う。人数が少なくお年寄りばかり。休憩時間終了後、プールにすぐに入るのは僕だけ。30秒から1分ほどプールを本当に独占できる。誰も泳いでいないプール…

Arc はどこへいくのか?

Arc Forum | Where are we going?Arc はリーダー(ポールグレアム)不在に見える。そのせいでユーザーは離れているよ。どうするの?的な話題。 ポールグレアムが「急ぐ必要は感じていない。Lispは50年ほげほげ」と答えている。 でもまあ一般的なオープンソー…