個人的に再発明ブーム

なので、既にあるインターフェースライブラリをいろいろ作り直しています。今日はGMP, MPFR, MPCインターフェースを再発明しました。ただ私がGMPのインターフェースを作ると毎回毎回演算子が全部揃わないという難点が……。
http://panathenaia.halfmoon.jp/alang/ocaml/#4
元々は、http://ocamlplot.sourceforge.net/#gzにあるzlibとのインターフェースがLGPLということに気付いて、こんにゃろうと思ったのが始まりで。ご存知の通りzlibのライセンスはその名もzlibライセンスという超ゆるゆるのものです。言語間の橋渡しをしているだけの薄いラッパーごときがライセンスきつくするんじゃねえ、というところから始まって、in/out_channelだけでなくstringもバッファーに使いたいぞということは低層のinflate/deflateをO'Camlから使えるようにして(ry……という具合に延々と。
そういうわけですので、前々から置いてある分も含めて、私の作ったインターフェースライブラリは全部、元ライブラリのライセンスとBSDL*1のデュアルライセンスにします。都合のいい方で使ってください。そういうreadme.txtを付け足しました。

zlibの公式配布に含まれてるAdaのパッケージもLすら付かないGPLだったりするので、これもいつか書き直してやりたいのですが、それとは別にC→Adaの完璧なトランスレータを作る野望があって、それができたらzlib.hを変換して終了なので、でも実際にはいつまで経ってもできそうになくて、あうあう。

……こういう作業が目的化してるのはどうにかならないものか。

*1:別にNYSLでもなんでも良かったのですが気分的に……無理やり理由をつけるならOCurlがcurlのライセンスを踏襲していてそれがBSD風(sourceforgeではMITになってますが、私はMITライセンスとBSDLの違いをよくわかっておらず)だから。Lars Nilssonさんは実によくわかってる。あとGLCamlも(SDLLGPLを無視して)BSDLですし。LGPLのライブラリはダイナミックリンクすれば感染しなくてすむのに対し、ラッパーまでLGPLですと感染を逃れる術が無いのでこれはこれで有り。