2009-02-24

salのマクロ

一応実装した。

<defmacro pattern="(xxx|yyy)_(a[0-9]|)(b[0-9]|)(c[0-9]|)" result=(
  (_2 ? (foos[_1].a = _2) : 0), 
  (_3 ? (foos[_1].b = _3) : 0), 
  (_4 ? (foos[_1].c = _4) : 0),
  STNIdent("foo_" + _1 + "_" + foos[_1].a + foos[_1].b + foos[_1].c))>

と、書くと、
:xxx_a1b3c4 は識別子 foo_xxx_a1b3c4 へ置換され、マクロ変数に必要な情報が記録される。以降順番に、
:xxx_ => foo_xxx_a1b3c4
:xxx_b9 => foo_xxx_a1b9c4
:xxx_a2 => foo_xxx_a2b9c4
:yyy_a2b5c8 => foo_yyy_a2b5c8
:yyy_a3c7 => foo_yyy_a3b5c7
:xxx_ => foo_xxx_a2b9c4
=>の左側のマクロ展開指定が右側の識別子へ置換される。
識別子以外にも、いろいろな構文要素へ置換することも可能。
マクロ変数はJavaScriptのオブジェクトみたいな感じ。

2009-02-23

Meadow3へ移行

普段使用するPCはすべてMeadow3へ移行した。ImageMagickが併存できるのか分からなかったので、移行前にImageMagickをアンインストールした。無くても動きはするので。

fakecygptyのおかげでsshがまともに使えるようになったのが嬉しい。fakecygptyはリポジトリからもらってきてgcc fakecygpty.c -o fakecygpty.exeしてstrip。

trampがちゃんと動くようになったのは良いけど、scp、ssh経由はかなり遅い。つながるのに10秒、ディレクトリを移動するのに1~2秒かかる。

なんとなくhowmを使い始めてみた。Hitori Otegaru Wiki Modokiっていい名前だよね。

おお、ses-modeでスプレッドシートが使える。……別に今必要ないけど。

pcl-cvsの*cvs-commit*バッファが*cvs*バッファとして使われてしまう問題も解消されたのが嬉しい。

2009-02-20

ようやくマクロ

やっぱりマクロが欲しいのです。昨日最低限やりたいことがシンプルにまとまったので、詳しく考え中。

字句レベルで展開する方がマクロを組むときに楽そうだけど、lexと戯れるのが嫌なので、構文木レベルで展開することにする。どうせマクロ組むのは私だけなんだし。あと、一部の用途でマクロ式の構文解析を既存の構文と共用できなそうなので(共用にすると字句を展開しようとしても、すでに先の文字を読んでしまっている可能性がありそう)。

2009-02-19

雨天

今日は午前中雨だったのでバス出勤にした。すっかりひ弱になってしまって……。

それにしても今週は寒い日が続きますね。

2009-02-18

ks

ksの方は一応予定日なので、準備の方はしておいた。今後は使える状態を維持しつつ、少しずつ変えていく。

2009-02-18

追記2009-02-19:recompileのカレントディレクトリ復元

rayfill氏よりM-x recompileで前回compileしたときのディレクトリでmakeしてくれるよー、とツッコミをいただきました。ありがとうございます。

手元で確認したところ、Meadow2ではダメでしたが、Meadow3ではちゃんとcompileしたときのディレクトリでmakeしてくれました。compile-commandは元のディレクトリからじゃないと意味がないんだから、普通復元するだろJKって感じですよね。こりゃ、他のマシンもMeadow3へ移行すべきかな。compile.elだけなんとかするって手もあるけど、他にも色々あるしね。