Entries from 2007-03-01 to 1 month
使われていないクラス・メソッド・変数を簡単に列挙したいな。 何か良い方法ないだろうか。
BNF を見ながら Parser を丁寧に書いて気づく。 これは機械にもやらせることができると。 Parser Generator 系のツールが存在する理由が深く・良く分かった。 ちょっと前までは、Parser だってコーディングする人の個性が出るじゃん!とか思ってたけどそれは…
読み終わった 基本的に宗教にはあまり興味がないのだけど、面白かったしいろいろ考えさせられた。 優秀なユダヤ人とお話してみたい。 そういえば coLinux の中の人はイスラエル人でしたね。 ユダヤ製国家日本―日本・ユダヤ封印の近現代史 ユダヤ5000年の知恵…
Scheme の read はオブジェクトの外部表現を読み込んで返す。 例えば (eval (read port) (scheme-report-environment 5)) こんな感じで使う。 read で返されたS式を eval して使う。 read は port から1文字ずつデータを読んでS式としてデータ1つ分を返すの…
同じライトを2つ購入。奥さんと自分用。 これを点けていて、車に轢かれる確率が少しでも下がるならば安い買いもの。 AMERICAN EAGLE(アメリカン イーグル) 3ファンクションテールライト レッドLED 86270posted with amazlet on 07.03.31AMERICAN EAGLE(アメ…
壊れたPCたちからデータを救い出すべく[rakuten:goodwill:10029512:detail] を仕事帰りにビックカメラで購入。 S-ATA と IDE の両方に対応した HDD ケースを買おうとするとかなり高くなってしまうのだけどケーブルだけだと意外に安い。 ドライバのインストー…
R5RS の 7. Formal syntax and semantics を熟読。正直に言えば BNF をまじめに読んだのは初めてかもしれない。 7.1.1. Lexical structure 7.1.2. External representations 今さらながら、read / write と外部表現の関係が分かった。 インタプリタ実装も終…
教科書どおりにまずやってみる。ってのは大事だよね。
いま作っている scheme インタプリタのビルド時間 X60 Core2 Duo => make 8.54s user 1.28s system 91% cpu 10.704 total X40 Pentium M => make 13.84s user 1.86s system 78% cpu 20.0808 total 2倍くらい速い。これで開発効率もあがるよね。(頭の処理能…
インストール GUIでインストールを淡々と進める。 パーティションは手動で以下のように切る。 /boot 100MB EXT3 プライマリパーティション swap 2GB プライマリパーティション /home 40GB ReiserFS プライマリパーティション / 残り約35GB ReiserFS プライマ…
これでやっといろいろ作業ができる。 見た目もクールで満足な買いもの。Vistaでもきちんと動いたよ。DVSM-XL1218IU2posted with amazlet on 07.03.24バッファロー (2006/12/31)売り上げランキング: 5087Amazon.co.jp で詳細を見る
家のデスクトップマシンが3台が全滅気味で困ってます。 Windows マシンが奥さんのノートだけなので何かと迷惑をかけていてどうにかしないとな。
Core2 Duo T7200 + メモリ2GB Windows Vista →Ubuntu これでコンパイルが超速くなって開発速度があがるはず(セットアップに時間がかかるけど)
slib を使えるようにあれこれやっていますが、進捗報告。 それにしても slib を動かそうとすると、自然とインタプリタの品質が高まっていく。 自前のインタプリタ実装がいかに甘いかがいろいろなタイミングで分かる。 解決済みの問題 case のサポートを忘れ…
On Lispで、マッチングを勉強しようと思ったら acond2 にあたった。 ので勉強しますよ。 aif まずは、間違いバージョンから。 (define-syntax aif (syntax-rules () ((_ a b c ...) (let ((it a)) (if it b c ...))))) (aif 3 (display it) (display "not 3"…
訳者の野田開さんから On Lisp の献本を頂きました。ありがとうございます! 出版おめでとうございます。 Lispの諸先輩方に勧められて、過去何度か通読を試み、最近また個人的にブームな On Lisp ですが、これは本当に良い本なんですよ。 まだ完全には理解で…
Template.scm の load OK。 require.scm がロードされたものの provided? などは処理系が用意すべきものっぽいので対応する。→いやいや間違い 追記 (define s (lambda args (cond ((null? args) (display "null"))))) こんなのが動いていない。
原宿の Laforet の全フロアを制覇。 1年くらい前にあった、あの店はいずこ。 1年間にLaforet の全フロアを制覇するプログラマの数 ≒ 1年間に Schemeインタプリタで Continuation を実装するプログラマの数
Macro のコードに分かりやすいように TRACE を仕込んであれこれデバッグ。 R5RS に載っている case のマクロが動くように。 ついでに cond マクロも動いてコード削減。 let* マクロが動かない理由に気づきつつも、まずは SLIB を試したい年頃。
SLIB の Template.scm をごにょごにょして動かしてみようと画策。 → case syntax が動いてないことに気づく → R5RS に case syntax のマクロが載っているのでうごかしてみる → マクロの実装がやっぱりまずくてうごかない 今ココ。 きちんとしたパターンマッ…
GC がまともに動くようになった。(落ちなくなったの意)
むずかし。
今日の夕食は家で天ぷらだった。 超うまい。
-O3 などでコンパイルしたときに GC のテストが通らない理由を調べた。 解放してはいけないものを sweep しているというわけではなかった 最適化による未使用変数の削除 global 変数への NULL 代入をなかったことにされる などなど。 GC 側に問題があるわけ…
コメントでアドバイス頂いた中で、一番効果がありそうな 4byte align を試してみました。 当社比で 3倍 程速くなりました。素晴らしい。 続いて一時変数を使うなど小手先の手動最適化で 更に1.2倍くらい高速化。
Emacsの正規表現で空白にマッチするのはなんだっけ?とかいつも時間を無駄にするので、以下のページの中身を ChangeLog にコピペした。 GNU Emacs Manual - Regexps
00:07 >higepon< どうも Scheme 処理系なんて簡単でしょという空気を感じるが難しいよ! 略 00:08 <xxxxx> Scheme 処理系の95% は簡単なんですよ 00:08 <xxxxx> 5%詰めるのが大変なんすよ</xxxxx></xxxxx>
コメントをくれようとしていたのだけど、awayだった。うわあわあああああ。
自前 GC の実装中で悩み中。 以前作ったモノはあまりに遅かったので捨てて書き直したんだけど、やっぱり heap の mark が遅い。 前回の経験を踏まえて 文字列など、ポインタを領域中に絶対含まない場合は alloc 時に指定し走査の対象とならない という工夫を…