Entries from 2008-03-01 to 1 month

IRC

うー。つながってもすぐ切れる。

XPath

XPath で分からなかったので質問したら id:amachang がとても丁寧に詳しく教えてくれた。 奥が深い><。

Kent Dybvig: Macro-Writer's Bill of Rights (Dan Friedman's 60th Birthday)

reddit.comで見つけた。 3imp を書いた Kent Dybvig によるマクロの最適化の話。 http://video.google.com/videoplay?docid=-6899972066795135270 Scheme処理系を書く人は見ると面白いかも。 内容は9割以上は理解できたけど英語が2割くらいだλ...(聴衆が笑…

東大でプログラミングし放題

という広告を思わずクリックしてしまった。(何か違うものを想像していたらしい)

2008/3/31 の comp.lang.scheme

特になし。

内蔵コンパイラテスト中 - Scheme VM を書く

ひたすら内蔵コンパイラのテスト。 テストすると大体 VM のバグが見つかる。 教訓のためにバグの原因を書いておこう。 組み込み手続き(C++で書いたもの)memq がバグっていた 組み込み手続き(C++で書いたもの)append が実は append! だった

2008/3/30 の comp.lang.scheme

scheme coding help... 元々は簡単なコードを書く方法の質問メールだった。 その後色々あって以下のような情報が手に入り勉強になる流れに。 数ある処理系の特性の一旦が垣間見えたり 処理系のどこに戸惑うか? 何を求めているか? 自分の処理系は今のところ…

コンパイラを内蔵した - Scheme VM を書く

VM on Gauche でコンパイルしたコンパイラを C++ 上の Object の配列にして VM on C++ に内蔵した。(compiler.cpp は 387KB) 簡単なコードならば Gauche の力を借りずにコンパイル → 実行 が出来るようになった。 この時点で VM on Gauche → VM on C++ 移…

コンパイラをコンパイルする仕組み作りなど - Scheme VM を書く

VM on Gauche でコンパイラが動くようになった。 次は VM on C++ でコンパイラが動くようにする作業になるが一回落ち着いて環境作りをする。登場人物が コンパイラ VM on Gauche(とそのテストセット) VM on C++ (とそのテストセット) free variables の…

SICPのビデオ講義だけど - 2008/3/29 の comp.lang.scheme

SICP video lectures - Subtitles Project http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ で公開されている Sussman の講義について問題があるので助けて欲しいとのこと。 問題:講義内容は great だが、Abelson とSussman のアクセ…

yasnippet for Scheme を書き始めよう

yasnippet の便利さを id:nishiohirokazu に教えてもらったので練習がてら書いてみる。 もっと複雑なものを書いてみようと思うのだけど、どういう場面で便利かが分からないのでまずは簡単なものから。 あとでまとめて本家に投稿しようと思います。こういうの…

今日はいつもより良い日かもと思う瞬間

iPod のシャッフルで「久しぶりに聞いたけどいい曲だなあ」の状態が続くとき。

デバッグ続き - Scheme VM を書く

ふぅ。最小の再現状況を作るべく、数百行の手続きから以下のコードに絞り込まれた。 こいつを VM で実行すると実行の順序がおかしくなる。これ以上はどうも削れないので(削ると再現しなくなる)、命令列を直接見て机上デバッグしよう。 (define (b iform) (…

Emacs で対応するカッコに移動

C-M-n と C-M-p で対応するカッコに移動。 今までこのキーを Gnome ワークスペースの切り替えに使っていて気づかなかった。

2008/3/28 の comp.lang.scheme

こういう面白い話題があると毎日読んで良かったなと思う。 GMP integration 僕は知らなかったが GMP という Arithmetic なライブラリ(Bignumとか)があってそれを採用している Scheme 処理系ってあったっけ?という質問。 Scheme は仕様で算術まわりが決ま…

デバッグ

先ほどまでがんばっていましたが解決しませんでした。 まあこんなことは良くあるよ。

2008/3/27 の comp.lang.scheme

scheme coding help... ファイルを読んであれこれするにはどうしたら良いの?という初心者の方の質問 Summer of Code 2008 LispNYC is an official Google Summer of Code 2008 mentoring organization and is now accepting proposals for anything involvi…

デバッグ難航 - Scheme VM を書く

コンパイラを VM on Gauche で動かしている。 特定のコードをコンパイルしようとするとコードが想定しない動きをして落ちてしまう。 原因をひたすら調べている。 おかしくなる手続きを特定 同じ引数で呼んでみる →落ちない pass1 の展開結果を見る →正常 コ…

デバッグとトイレ

さっきから原因不明のバグのデバッグをしている。 トイレに行ったら良いデバッグのアイデアが浮かんだ。 以前も「コーディングや設計で難所に出くわした時にすること」に書いたけど、散歩とかトイレとか重要。

やる夫イギリスへ

やる夫がイギリスに行く気になったそうです (リリカル☆Lisp 開発日記)Workshop on Scheme and Functional Programming か面白そうだなあ。

2008/3/25 の comp.lang.scheme

Advanced Interactive Shell 2つほど便利そうな Emacs Lisp について触れられているが今日は試す時間がない。 EmacsWiki: Par Edit ANN: scheme-complete.el - smart tab completion - comp.lang.scheme | Google グループ

コンパイラを自前のVMでコンパイルして実行したい - Scheme VM を書く

コンパイラが自前の VM on Gauche で動くように調整中。 動くようになったら VM on C++ でも動くようにする。 さらにそのあとコンパイラをプリコンパイルしたものを C++ のソースに埋めて VM on C++ がコンパイラを内蔵するようにする。 一応過去の経験から…

マクロの書き換え

自分の処理系では letrec-syntax が動くのはだいぶ先であるという事情により、Gauche のソースから持ってきた letrec-syntax なマクロをグローバルな伝統的マクロに書き換えるという作業をした。 macroexpand でカンニングしつつも結構時間かかった。 (letre…

カクヤス

Movitz

The Movitz system aspires to be an implementation of ANSI Common Lisp that targets the ubiquitous x86 PC architecture "on the metal". That is, running without any operating system or other form of software environment. Movitz is a developm…

ポートの仕様見落とし

入出力のどちらも受け付けるポートの存在を見落としていた。 設計に関わるぞ由々しき問題だ。

ロベールのC++入門講座がAmazonで在庫ありになった。

テストが通るようになってきた- Scheme VM を書く

がんがんテスト通しまくる。 すごく根深いバグが3件。 コンパイラフロントエンドがオフセットの決まっていない LOCAL_JMP の変換に失敗してた。 display closure の引数の積む順序が間違っていた free variable の積む順序が間違っていた 実装したインストラ…

ソフトウェア開発者採用ガイドを読んだ

「ソフトウェア開発者採用ガイド」を献本いただきました。ありがとうございます。 この本にはJoel on Softwareの作者のJoel 氏による、できる開発者を採用するためのノウハウが書かれている。 実際に彼の会社 Fog Creak でいかに良い人材を取るかを追求し続…

2008/3/24,24 の comp.lang.scheme

特に面白い話題なし。