移行作業
blosxomにも飽きたので、移行します(http://quasiquote.org/log2/)。
`OpenBSD で scheme のアプリ開発' みたいなことをやってます。
仮想画面を切り替えたり Firefox でタブをツンツンしたりした瞬間に落ちる現象が 解決された模様。
ここらへんに経緯がある https://bugs.freedesktop.org/...(←ヲレヲレ署名)。
変更箇所からいって、
# cd XF4/xc/programs/Xserver/fb # make && make install
で十分かな。
OpenBSD の場合、セキュリティのため mmap のリターンページのアドレスをかき混ぜてるので、 書き込んだあとにうっかりそのまま読もうとして失敗とか、固有の(!)問題がいろいろとある。 gprolog とか clisp とかがまだ動かない。誰か、きちんと動く Common Lisp 処理系プリーズ。
http://mail-index.netbsd.org/...
via: http://sigsegv.s25.xrea.com/...
まじですか。試そうかなあ。でも重要度はかなり低いなあ。どうしよ。
もしこれが動けば、OpenBSD 上で動作していない機能は残り、
のみとなるわけだ。うはは。
参考: http://www.cse.unsw.edu.au/~dons/x31.html
mp3, vorbis プレイヤーとして、gqmpeg を愛用しているのだが、 vorbis でエンコードしたファイルの曲名がいつも '#' で埋められているのでおかしいなあ、と。
gqmpeg のソースを読んでみると、 ogginfo の出力をパイプで読んでいるだけのようだ。 そこで、
$ ogginfo foo.ogg
とすると、タイトルが '#' で埋められている。
で、vorbis ファイルを直接読んでみると、 やっぱり '#' で埋められてる。
vorbis のファイルは abcde エンコードしており、こいつは内部で oggenc を使っているので、 結局のところ vorbis-tools のロケールまわりに問題があるらしい。
ざっとコードを見るに、 文字コードの変換は share/utf8.c で行っているんだけど、 config.h をインクルードしてないのが原因だった。 share/iconvert.c も同じく。
というわけで、以下のファイルを ports/audio/vorbis-tools/patches 以下に投入。
patch-share_iconvert_c and patch-share_utf8_c
Citrus なしの OpenBSD の場合、環境変数 CHARSET を設定すべし(EUC-JP とか)。 Citrus 環境下では nl_langinfo(CODESET); されるのでロケールから自動設定される。
というわけで解決。
てか、config.h が無かったら、 utf8.c も iconvert.c も何もしないコードしか出力されないんだけど。 誰もテストしてないのかよ!なんだかなあ。
ところで、FreeBSD も NetBSD も対策をしてないようなので、 このパッチは有効みたい。未確認。
LL(1) で解決: ch3-03p2.g
expressions : expr ("="^ expr )* "\n" | "\n" ;
のようにすればよい。この場合、左辺を確定した後で右辺のマッチに入るので曖昧にならない。 ただし、この場合は、
1+1=3
も文法的に正しくなる。ので、木を評価するときに左辺をチェックする。 今回はそのまま出力するだけなので、上の式だと '3' を印字する。
そういえば、一部のパターンマッチの機構を持つ言語だと確かに上の文法もアリだ。 なるほどなるほど。