っで、早速使ってみたのだが、まともに動かない。プロジェクトも1年近く更新がないし、バグ報告するよりは自分で直した方が早いという結論にいたりforkする。これ:ktakashi/r6rs-protobuf
とりあえず直したバグと機能追加
- /* */形式のコメントのサポート
- トップレベルのoptionで例外を投げない(無視する)
- ネストしたmessage/enumのサポート
- レコードコンストラクタの引数違いの修正
- generate-temporariesで作られた識別子からのシンボル生成
- 処理系によってはポータブルじゃないシンボルが作られるので
- (srfi :13)と(rnrs)でぶつかる束縛の修正
- レコード型名の使用
- Psyntax系の処理系だとマクロとして定義されている
- record-type-descriptorマクロを使用するようにする
- テストケースの修正
- 不正なimport文
- evalにdefine等を渡す
- テストケースの追加
- contrib/sagittarius/protoc-scmの追加
- 処理系毎のpretty-printの追加(Mosh、Sagittarius、Vicareのみ)
とりあえず、本家Googleのexampleにあるaddressbook.protoは動くようになった。一応開発者用MLに投げたので取り込まれる
個人的には(今のところ)関係ないのだが、
(protobuf private)
ライブラリだけはLGPLにしておいてほしかったなぁと思う。 Sagittarius用のライブラリを生成する際に、スタンドアローンでいけるオプションをつけたのだが、このライブラリがGPLv3なライセンスなので生成されるライブラリも(全部ひっくるめて一個のファイルにするので)必然的にGPLv3になってしまうという。個人的にProtobufを仕事用のスクリプト以外につかうことはないとは思うので(自分で何か作るならmsgpackとかあるし、自作のr6rs-msgpackはMIT互換の2項BSDライセンスなのでかなり自由だし)、どうでもいい話なのかもしれないが。
No comments:
Post a Comment