プロジェクトNirodha:スクリプトは速く小さくできるCommon Lispで!

いちおう断っておきますと、これは引退したいち趣味人のネタです。

私はいま49歳なんですが、20代で就職に失敗して、それならCommon Lisp処理系を書いてそれで生計を立てようと若さゆえの無謀な計画を立てたことがありました。結果として無理がたたり、大病して社会生活からセミ・リタイアせざるをえない身の上になりました。

で、最近はISLisp処理系なんかをいじったりしていたんですが、昔に書いたCommon Lispのコードをなんかまたいじりたいなと思って、ひねくりだしたのがこのプロジェクトNirodha(ニローダ)です。

現状では、広く普及したLisp OSはないので、WindowsやらLinuxなんかのOS環境内で今現在、数多くあるCommon Lisp処理系たちの中でサバイバルする道はみたいなことを考えて、手軽にCommon LispでUnixコマンドをかけたらいいなと思いました。で、実行ファイルサイズは小さく配布も手軽で、そこそこ速いと。

つまり、スクリプト言語としてCommon Lispを使いたいということです。これは故Erik Naggumさんがcomp.lang.lispで”PerlやPython, RubyなんかはLispの子孫やな”みたいなことをおっしゃっていたのを読んで、たしかにスクリプト言語としてCommon Lispを使えたらハッピーだなとずっと思っていたことからきています。

で、デザインとしては、C言語を核に据えます。Common LispはC言語へトランスレートできるのは、Kyoto Common LispやいまのGCL、ECLなんかですでに実証済です。で、たぶん実行速度もそこそこでるはずです。

適当に頭にあるアイデアは、
・SBCLにはたぶんないツリーシェイキング機能みたいなのは、Common Lispのライブラリ関数を1つずつC言語からコンパイルしたオブジェクトファイルにしといて選択的にリンクして実行ファイルを作ることで、実行ファイルのサイズを小さくする。

・規格に準拠することで、本気のアプリケーション開発に発展したときには、優秀な商用Common Lisp処理系へアップグレードできるようにする。

・できれば起動は速く。

で、次は私の勝手な自分へ科した麻雀での二翻縛りみたいなもんですが、昔、そうあるべきだと考えた、

・小さなLispコア(スペシャル・オペレータなど)をC言語で書いて、できる限りをCommon Lispで書く(で、それを自分のトランスレータでC言語へ落とす)

なぜか、若いころの私にはそれが正しく美しいものに思えたんですね。

このくらい遠大な計画にしとくと死ぬまでには楽しめるのじゃないかと思っています。(なんかCへの優秀なトランスレータが書けたら死ぬ気がする:-)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です