haskell-ja > Archives > 2009/08/08

2009/08/08 01:19:33 UTCsakai
#
windowsでiconvを使いたいときには GNU libiconv がよく使われてます。
2009/08/08 02:16:55 UTCnwn
#
教えてくれてありがとうございます > sakai さん
2009/08/08 06:02:07 UTCsakae
#
nwnさんのを試そうと思ったら iconvが入って無かった。入れようとして、挑戦中
#
c:\sakae\gsay>cabal.exe update
Downloading the latest package list from hackage.haskell.org
c:\sakae\gsay>cabal.exe install iconv
Resolving dependencies...
Downloading iconv-0.4.0.2...
Configuring iconv-0.4.0.2...
cabal.exe: Missing dependency on a foreign library:
* Missing header file: iconv.h
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal.exe: Error: some packages failed to install:
iconv-0.4.0.2 failed during the configure step. The exception was:
exit: ExitFailure 1
#
先は長そうです。とほほ。
2009/08/08 06:56:41 UTCnwn
#
libiconv 入れたらいける気もしますが、
#
convert を iconv を呼ぶ実装にするっていう方法もあります
2009/08/08 07:07:02 UTCnwn
#
こんな感じで http://hpaste.org/fastcgi/hpaste.fcgi/view?id=7973#a7997
2009/08/08 07:20:54 UTCsakae
#
iconv (GNU libiconv 1.13)を入れていざ実行しようとすると
#
*Main> :main
Loading package syb ... linking ... done.
Loading package base-3.0.3.1 ... linking ... done.
Loading package bytestring-0.9.1.4 ... linking ... done.
Loading package utf8-string-0.3.5 ... linking ... done.
Loading package iconv-0.4.0.2 ... linking ... <interactive>: C:\Program Files\Haskell\iconv-0.4.0.2\ghc-6.10.3\HSiconv-0.4.0.2.o: unknown symbol `_iconv_open'
: unable to load package `iconv-0.4.0.2'
#
おかしいなあ?
#
convert を iconv を呼ぶ実装にするっていう方法もあります こちらで試した方が早そうですね
2009/08/08 07:28:31 UTCsakae
#
*Main> :main
Loading package syb ... linking ... done.
Loading package base-3.0.3.1 ... linking ... done.
Loading package bytestring-0.9.1.4 ... linking ... done.
Loading package old-locale-1.0.0.1 ... linking ... done.
Loading package old-time-1.0.0.2 ... linking ... done.
Loading package filepath-1.1.0.2 ... linking ... done.
Loading package Win32-2.2.0.0 ... linking ... done.
Loading package directory-1.0.0.3 ... linking ... done.
Loading package process-1.0.1.1 ... linking ... done.
Loading package utf8-string-0.3.5 ... linking ... done.
*** Exception: no buffering
*Main>
2009/08/08 07:28:56 UTCnwn
#
はう
#
mapM_ (flip IO.hSetBuffering IO.NoBuffering) [inh,outh,errh] をコメントアウトしてみてください
#
ていうかこの例外初めて見た
2009/08/08 07:33:03 UTCsakae
#
Loading package utf8-string-0.3.5 ... linking ... done.
*** Exception: no buffering
2009/08/08 07:33:22 UTCnwn
#
うーむ、じゃあちゃんとバッファリングを決めてみましょう
2009/08/08 07:33:33 UTCsakae
#
iconvを入れた時、おかしくしちゃったかな?
2009/08/08 07:33:50 UTCnwn
#
そんなことはないと思われる
#
mapM_ (flip IO.hSetBuffering IO.LineBuffering) [inh,outh,errh] とかどうですか?
#
あ、対話環境から呼んでみたらこっちでも再現しました
#
コンパイルしてシェルから実行してみてください
2009/08/08 07:37:56 UTCsakae
#
動きました。
2009/08/08 07:38:02 UTCnwn
#
ktkr
2009/08/08 07:38:11 UTCsakae
#
日本語もOKです
2009/08/08 07:38:18 UTCnwn
#
よかったー
2009/08/08 07:38:41 UTCsakae
#
対話環境と差があるっていやですね。
2009/08/08 07:38:50 UTCnwn
#
それはしょうがないと思われる
#
stdin を NoBuffering にしないと補完とかしんどいと思うし
2009/08/08 07:40:21 UTCsakae
#
了解しました。これからコードを読んでみます。
2009/08/08 07:41:38 UTCnwn
#
Happy Haskelling!
2009/08/08 07:49:09 UTCnwn
#
no buffering だってぶーぶー言ってたのはこいつ: http://hackage.haskell.org/packages/archive/bytestring/0.9.1.4/doc/html/src/Data-ByteString.html#hGetLine
2009/08/08 07:54:51 UTCsakae
#
いつも、こういう深い所まで降りて行かれるのですか?
#
確かに一番勉強にはなりますが。。。
#
こういうIO周りが一番難しい!!
2009/08/08 07:59:23 UTCnwn
#
IO むずいですよね
#
今回はここではまってるんだろうなっていうのが何となくわかったのですぐ見つかりました
#
いつもいつもソース読むわけじゃないです
#
だいたいはドキュメントだけ読んで済ませます
2009/08/08 08:08:27 UTCsakae
#
そのドキュメントもたくさん有り過ぎて。。
#
rubyみたいに、逆引き出来るcookbookが欲しいです。
#
贅沢かな?
2009/08/08 08:09:45 UTCnwn
#
cookbook かー。普通に欲しいですね。
#
haskell wiki が役割的には近いかも
2009/08/08 08:11:02 UTCsakae
#
そうかも知れませんね。
2009/08/08 08:11:16 UTCnwn
#
まんまな名前の記事が: http://haskell.org/haskellwiki/Cookbook
#
こっちのほうがましかも: http://haskell.org/haskellwiki/Category:How_to
2009/08/08 08:12:50 UTCsakae
#
Oh! これは良い。
#
早速、bookmarkしました。
2009/08/08 08:14:31 UTCnwn
#
でも cookbook を作れるだけのコンセンサスが得られていないような気がする