Gaucheでファイル入出力だけを禁止する方法。めもめも。
Chickenだとeggs:sandboxなんてものあるのな。
てか変なコードの実行が心配だったら、それだけじゃなくて、
OSの保護機構を使うとか仮想化するとか新しいテスト専用マシンを作るとか、
これらを同時に使って対策するとかしたほうがいいような。
ソフトウェアでなんとかするにしても、chroot(8)なりjail(8)なりqemuなりknoppixなり、
これって結局面倒臭さと安全性の度合とのトレードオフなのだけど、いろいろあるよね。
そういえばquack。
手元のものは古かったので、
ダウンロードしてChangeLog読んだ。
;; * Pretty-lambda fontification. (GNU Emacs 21 only.)
おお。EmacsWiki:PrettyLambdaが入ってる。
スクリーンショット再掲。
実はしばらく使っていたのだけど、lambda→λは慣れると平気。
むしろエディタ上で無駄なスペースが圧縮されてよい感じ。
半端なところからコピペしたらソースコードが壊れる問題は直っているのかしら。
この問題がなかったら常用できるのにな。
以前の書き込み。
え、2003-01-03の時点でもう入ってる?
;; Version 0.17 (2003-01-03)
;; * Pretty-lambda is supported well under GNU Emacs 21, when using PLT
;; Style fontification. Enable via the Options menu. (Based on
;; approach by Stefan Monnier; suggested by Ray Racine.)
ソース読んでないだけだったorz
そういえばscheme48のインタプリタはエラーで中断/再開できるのだった。
goshでもできたっけ?
あー、それにslimeでごにょごにょしようとするなら、
インタプリタ側でtcp/ipのportを開いて待ってやらないといけないのか。
swank-scheme48以下のschemeコードを流し読んでみたけど、げー。けっこう複雑ね。
セッション管理もreplも全部自前だし。全コードで4000行越えてるし。
もはやslimeとは別物感あり。
slimeをひさびさにcvs updateしてみた。
- swank-scheme48/: New backend.
キタ━━━━(゜∀゜)━━━━ッ!!
いや、まてよ。
ということはこいつをいじればgoshなりcsiなりもslimeで動かせるのかな?
quack以外の選択肢が突如浮かび上がってきた予感。
ChickenでもGaucheのguessを使えるようにしてみた: (files:guess-jp.egg)
必要なもの
chicken-2.0 on OpenBSD-currentで動作確認。
大抵の環境で動くでしょう。
インストール
# chicken-setup guess-jp.egg
使いかた
$ echo '(require-extension guess-jp)(display (guess-jp "ほげ"))(newline)' | \
gauche-cesconv --to-code EUC-JP > euc.scm
$ csi -quiet -batch euc.scm
EUC-JP
$ gauche-cesconv --to-code UTF-8 euc.scm > utf8.scm
$ csi -quiet -batch utf8.scm
UTF-8
自分で書いたのはインストールのためのコードも含めて20行程度。
chickenのEasy FFIとオートビルドの連携はなかなか興味深い。
作ってから
eggs:charconvなるものがあることを知ったorz