mattnさんが前の記事にコードで回答してくれた
mattn/libcallex-vim · GitHub
こんなリポジトリが作られたので十中八九僕のlibcall()の記事についてだろうと思い、見たら色々驚かされた。
まず引数の受け渡しにJSONを使っていること。この発想はなかった。
ちなみにsyslib.vimとかvimprocでは0xFFを引数の区切りとしたバイト列でやっている。
あとJavaScriptみたいにg:libcallexを名前空間として、関数を追加してるところ。
Vimスクリプトでこんなの見たことなかったので。
あと何よりさらっとインラインアセンブラが使われててふいた。
しかもそれにちゃんと理由があって、アセンブラを使うことによって引数が1個でもn個でも
pushしてcallするという非常に簡潔なコードになっているということ。
前の記事で言ったみたいに何通りも呼び出しのためのコードを書かずに済んでる。libcallex.cxxはわずか59行。
そして何よりtwitterでもlingr*1でも何も言わずに無言でコードだけをgithubに晒すという行動にかなり痺れた。
これぞハッカーって感じがする。
id:mattn++++++*2