かもめ日記

CurlバインディングをForkしてみた

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

0個のコメント

コメントを投稿

スパム対策の為に全てコメントは確認後に公開します、投稿したコメントはすぐには表示されませんので、しばらくお待ちください。



seagull(かもめ)
体はおっさん、頭脳は子供のサラリーマンエンジニア。
Atom feed / Twitter / タスクリスト / GIT リポジトリ / ギャラリ

follow seagull_kamome at http://twitter.com
タグ クラウド
トピック
最近の記事
RSS feed meter for http://www.mitsuki.no-ip.com/~seagull/diary/
あわせて読みたい