2008-01-01から1年間の記事一覧

ファイルの右クリックメニューに好きなコマンドを追加する方法

win

[ファイル名を指定して実行]で、regedit を実行 [マイコンピュータ] -> [HKEY_CLASSES_ROOT] -> [*] -> [shell] を右クリックし、新しいキーを作る。名前は何でもよい。 新しく作ったキーが選択された状態で、今度は右側ペインの(規定)というところをダブル…

Scheme どう書く?的

整列済みの number のリストがある。'(1 3 4 5 6 12 13 15)このようなリストで数が連続している部分は '(1 2 3) -> '(1 . 3) のように両端のみを書くような記法を導入する。最初の例のリストであれば以下のようになる。'(1 (3 . 6) (12 . 13) 15)このような…

moccur-grep-findをちょっと便利に

higeponさんのid:higepon:20080717:1216264518を見て、そういえば自分も moccur-grep-findの拡張子の指定のところで困ってたな〜と思い出した。 いい機会なので自分も少し設定をごにょごにょしてみることに。 せっかくなので、id:higepon さんとは別のアプロ…

moccur-grep-find のファイルマスクは正規表現だった

ずっと使ってて今日はじめて気づいたんだけど、 moccur-grep-find のファイルマスクは正規表現を指定するらしい。 例えば、拡張子が cpp か hpp のファイルからgrep-findしたいという時は、 Input Regexp and FileMask: xxxx \.cpp$\|\.hpp$ といった感じで…

Redmineかなり快適

いやぁー。Redmine、かなり快適だ。 コミットログに、 あんなところや、こんなところを直した。(fixes #12) というふうに、"fixes #チケット番号" のように書いておくと、 勝手にそのチケットがクローズされます。 ただし、管理 -> 設定 -> リポジトリ のと…

プロジェクト管理用アプリをRedMine0.7.2に変更。

インストールは/doc/INSTALLに書いてあるとおり。 思ったよりもサクサク動いてかなり快適。 実は最初インストールにてこずって結構はまったので忘れないようにメモ。 サーバのRubyがなぜか1.7が入っていたのでまず1.8.7にアップグレード。 RedMine0.7.2がRai…

Diredモードでファイルの作成

Diredモードで dired-create-directoryはあるのになんで dired-create-file はないのかなぁーと不思議に思ってた。あそっか、shell-command で tocuh 'filename'としてやれば済む話だからか、と納得。 それで shell-command で試してみたら、mcompleteの補完…

amazonでコンパイラ関連の本をいくつか購入。

『コンパイラの構成と最適化』はずっと欲しくてしょうがなかったんだけど、 価格があれなんでずっと我慢してた。けどやっぱり最適化のところが読みたくて、 ついにえいやっと買ってしまった・・・。結局買ってしまうんならもっと早く 手に入れるべきだったと…

3imp ((lambda(x) x) 9) が実行される様子

3impの3章に出ているスタックベースのSchemeVMで ((lambda(x) x) 9)がどのように実行されるのかみてみた。コンパイル結果は以下のようになった。 ======================================================================== ((lambda (x) x) 9) => (frame (…

CUnit2.1.0 libcunit.so.1が見つからない

そろそろテストも書かないといかんなー、というわけで CUnit2.1.0を導入。 早速今作っているSchemeVM用のテストを書いてみた。 gcc -o vmtest vmtest.o -L/usr/local/lib -lcunitとして、できあがったものを実行してみると、エラーがでる。 libcunit.so.1: c…

3imp で (+ 3 4)を実行してみる

vmで各レジスタやスタックの中身をデバッグプリントするようにしたので入力されたコードが実行される様子がわかりやすくなった。例えば以下のコードは (run '(+ - * / cons car cdr a) (list + - * / cons car cdr 1) '(+ 3 4))このように表示される。(日本…

manコマンドでCライブラリ

Ubuntu 7.04で man fprintf などで、エントリーがない、と言われてしまうことに今更ながら気づいた。 sudo apt-get install manpages-devとして、表示されるようになった。

3impでプリミティブ関数

3impで紹介されているスタックベースのScheme処理系は、そのままではプリミティブ関数が実行できないのでちょっと細工してみた。まずはcompileを以下のように変更し、applyインストラクションに手続きに適用する引数の数を指定する。 . . 略 . [else (let lo…

3impのスタック機械

コンパイルしてできた命令列のリストを脳内でVMに渡してシミュレートする、という事をやってたんだけど、これじゃああまりにもあんまりなんで実行中のスタックや各レジスタの状態が一目でわかるようにVM関数のなかにデバッグprintをはさんでみた。まずは各レ…

Scheme処理系の作成

SICP -> 『プログラミング言語処理系』 -> ドラゴンブック と読み進んで、今、Scheme(R5RS)のサブセットの処理系をCで実装しています。 抽象構文木(AST)をたどりながら逐次実行していく、というSICPの4章に出てきたものをそのままCで実装しました、というよ…

 anything.el

emacs に anthing.elを導入しました。すごく便利で重宝してるんですが、(setq frame-title-format "%f")としてウィンドウバーにファイルのパスを表示してたのが、anyting.elを導入後からうまく表示されなくなってしまいました。う〜ん、これなんとかなんない…