リモートREPLの問題
これは非常に簡単で#!read-macro=...
のようなのが送れない。問題も分かっていて、#!
から始まるリーダーマクロは値を返さないで次の値を読みにいく。マクロはリーダー内で解決される。スクリプトや通常のREPLなら特に問題ないんだけど、それ自体を送りたい場合にはあまり嬉しくない。解決方法はぱっと思いつくだけで以下:- リモートREPL用のリーダーを作る
- 面倒
- リモートREPL用ポートを作って、リードマクロを読ませる
- アドホックだけど、悪くない気がする
ライブラリ依存関係
Platoを使う最大の理由はREPLでリロードができるからなんだけど、ハンドラ(と呼んでいるライブラリ)が依存しているライブラリを変更した際に上手いことその変更を反映する方法がない。ハンドラであればリロードが可能なのだが、依存ライブラリだとロードパスの問題とかも出てきて嬉しくない。手動でload
を呼ぶとか、コード自体をリモートREPLに貼り付けるとか(上記の問題が出ることもあるが)方法がないこともないけど今一面倒。依存関係の子に当たる部分を親が解決できればなんとかなりそうなんだけど、現状の仕組みでは子が親を探すことができても親は子を知る術がない。突き詰めていくと
include
されたファイルの変更は追跡できないとかあるし。あるとよさそうなものとして、
- ライブラリファイルの変更を検知したらリロードする機構
- 依存関係の親が子を知る手段
No comments:
Post a Comment