Let's start Scheme

2011-06-01

Verion 0.1.0

とりあえずそんなバージョンでリリース。
単にこれから加える変更は0.1.0以降と決めていただけで、当初の目的であるR6RS準拠というところまで実は行っていない。自分用のアプリが書ければいいや、という風に思っているのでそこまで気にしなくてもいいだろうというのもあるが。
なんかの格言に、「どうにも行かなくなったらそれをバージョン1と呼べ」なんてのがあったけど(コンピュータージョークだったかな?)、そんな感じ。

とりあえず、0.1.0から0.2.0の間でやりたいなぁと思っていることとその優先順位。
  1. マルチスレッド
  2. ソケット
  3. FFI
  4. GUI
そこそこ実用的なことを書こうと思ったらこれくらいはいりそう。1.はsrfi-21準拠にする予定。srfi-21はsrfi-18の後継みたいなので。でも、Larcenyとかsrfi-18, 21はPOSIXを前提にしてるからサポートしないという姿勢もとってるし、変えるかもしんない。
ソケットは、YpsilonとMoshのAPIが一緒だった気がするので、それに合わせる予定。何があるか列挙しないと。
FFIはYpsilonから盗む。正直自分の頭で考えられるようなものじゃないくせに、あると非常に便利なので。あと、dlopen相当のものが必要になってくるはずなので、その辺も考える。
GUIは設計から考えないといけないんだよね。JavaのSwingみたいにしようかと思ったけど、あれってオブジェクト指向じゃないと厳しい気がする。ActionListenerとか。Qtのシグナルみたいな感じにするといいかな?

優先順位は上から高→低なんだけどどれも全部ほしいので頑張る。ただ、ソケットとマルチスレッドは実装の順番を入れ替えるかもしれない。
まずは、こういった足すことを前提にしたCから使えるユーザーオブジェクトの作成からかな。Schemeからは実は近いのがあるんだけど(いろいろおかしなことになってきてるけど、ばっちり使われてる)、Cからそれを使うのは結構厳しい。なのでCから使われることを前提にしたものがいる。構想はあるのでとりあえずやってみる感じ。ただ、同時実装に近いものになるだろうので、第一号はソケットかスレッドのどちらかになる。難易度の低そうな方とも言う。

上記ができたら、DBIとかの実装もできるだろうか?
仕事で使うツールとして今の玩具の状態を早く脱したい。

No comments:

Post a Comment