ansify 0.01.00 をリリースしました
今までバラバラに作ってた ANSI Common Lisp からもらってきたようなものを1つにまとめました。
具体的には
- NetInstaller 対応してたもの
- condition-restart
- symbol-macrolet
- typespec+
- GitHub あたりでこっそり作ってたもの
- GitHub - bowbow99/xyzzy.typecase: <discontinued> Common Lisp の typecase やらなんやら = typecase, etypecase, ctypecase
- GitHub - bowbow99/xyzzy.destructuring-bind: <discontinued> Common Lisp の destructuring-bind = destructuring-bind
- 今回実装したもの
- case 軍団: case, ecase, ccase
- print-unreadable-object
が全部入ってます。
- NetInstaller 用 packages.l
- 手動ダウンロード用 ansify-0.01.00.zip
使い方(開発者向け)
今まで公開してた condition-restart と symbol-macrolet は lisp パッケージからエクスポートしてましたがその方法だと問題ありなので、ansify では専用のパッケージをを使うようにしました。普通に export すると lisp パッケージのシンボルと衝突するので shadowing-import するようにしてあります。
数が多いんで必要なものを全部 shadowing-import する ansify::install という関数も用意しておきました。
(eval-when (:execute :compile-toplevel :load-toplevel) (require "ansify")) (defpackage :my-package ...) (in-package :my-package) (eval-when (:execute :compile-toplevel :load-toplevel) (ansify::install))
やってることは片っ端から shadowing-import なので、特定のオペレータのみ使いたいなどの場合は個別に shadowing-import したり defpackage の :shadowing-import-from に指定してもだいじょぶです。
(eval-when (:execute :compile-toplevel :load-toplevel) (require "ansify")) (defpackage :my-package (:use #:lisp #:editor) (:shadowing-import-from :ansify #:destructuring-bind #:etypecase ...))
取り込まれた拡張は deprecated になります。
- condition-restart
- symbol-macrolet
- typespec+
は deprecated になります。狙ったわけでもないのに ansify と同時にインストールしておいても問題は起きない*1んですが、ansify の方へ移行お願いします。しばらくはそのまま置いておきますがそのうち消えて無くなります。
condition-restart に含まれていた condition-restart-support.l(eval-region などから再起動を選択できるようにするもの)が ansify には含まれていません。無いと困るという人がいたら twitter か↓コメントか何かで連絡ください。
あと、condition-restart の再起動と ansify の再起動は互換性ないです。ansify::restart-case で用意した再起動は ansify::find-restart で探す必要があります(condition-restart:find-restart では見つけられないです)。