Posted 2020-04-05 21:25:09 GMT
CLでSRFI、今回移植したのは、SRFI 172: Two Safer Subsets of R7RSです。
srfi-172の概要ですが、サンドボックス環境の構築を目的としたサブセットの提案で、副作用手続きあり版(srfi 172)
となし版(srfi 172 functional)
の2つがあります。
(srfi 172 functional)
はざっくりいうと!
手続きが含まれていないものという感じです。
Common Lispへの移植の際に参照実装には存在するstring->symbol
が仕様の方には見当たらず、symbol->string
と対にならないので報告してみたところ、シンボルがGCされない処理系を考慮して入れていないので、参照実装のミスとのことでした。
安全指向のサンドボックスなので、GCを狙った攻撃等に配慮しているということなのでしょう。
これまで移植したsrfiをベースにまとめてみましたが、100番台以降に改善版が提案されているような古いsrfiが多いので、そのうち新しいsrfiに置き換えたいところ。
Ultralispに登録してみたので、
(ql-dist:install-dist "http://dist.ultralisp.org/")
してあれば、
(ql:quickload :srfi-172)
でインストール可能です。
最近のsrfiはgithubにコードや仕様が置かれていますが、githubのイシューを登録するのか、srfiのメーリングリストにイシューを投げるのか若干謎でした。
結局今回は両方に登録しましたが……。
■
HTML generated by 3bmd in LispWorks 7.0.0