Computer >
Programming
投稿日:2008年2月 2日 14:30
この記事のタグ一覧:Haskell
先日使ってみた Haskell の Curl バインディングですが。
いい加減出来の悪さに嫌になって、パッチ送ってもシカトされてるのでサクッとForkしました。
入手はGITリポジトリから。
一番大きい変更点は、setopt の引数に data で定義した型を使うのをやめて、全部 Curl -> IO Curl
な関数にした事と、getInfo も全部独立関数にしていちいちパターンマッチ使わなくても目的の型で
返してくれるようにした事。
ハンドルを後ろに追加してるから、setXXX YYY hってのもできるし、
mapM_ ($ h) [setXXX xxx, setYYY yyy] ってな感じにオリジナルのsetoptsと同じ事もできる。
ってか、値も関数も同じなんだから最初からこうデザインしろっての。
setopt系の戻り値が IO CurlCode でなく IO Curl なのはモナド結合でつなげるようにするため。 setopt なんて基本的に失敗しないものだから、エラーコード戻してもらってもあまり嬉しくないからね。 今のところ失敗は無視してるけど、その内例外投げるようにしよう。
無論、エラー検出が重要なヤツはErrorモナド使うようにしなくてはいけないけど。
んで、これ使ってnicovideo-dl コンパイル しなおしたら、実行ファイルのサイズが1/3くらいになって吹いた。(注:strip後のサイズで比較)
今後の作業
Trackback URL: http://www.mitsuki.no-ip.com/mt4/mt-tb.cgi/591
スパム対策の為に全てコメントは確認後に公開します、投稿したコメントはすぐには表示されませんので、しばらくお待ちください。