Try to reinstall HTTP package also. I think your HTTP package is still linked with old broken network package. HTTP depends on network. And network is a binding for network API of OS. These API is for C-language. When ghc builds such binding packages, It runs gcc for some purpose. gcc thinks you need 64bit binary (from SL, I believe.) and works for 64bit environment. But ghc on Mac can only build 32bit binaries. So it causes the problem. You can check if network package was correctly built by running this. This takes a host name, and gets the root document of the host via HTTP using a socket. Build and try `./this_program haskell.org` import Network.Socket import System.IO import System.Environment getAddr :: HostName -> IO AddrInfo getAddr host = head `fmap` (getAddrInfo (Just defaultHints { addrSocketType = Stream }) (Just host) (Just "http")) connected :: HostName -> IO Socket connected host = do addrinfo <- getAddr host sock <- socket (addrFamily addrinfo) (addrSocketType addrinfo) (addrProtocol addrinfo) connect sock (addrAddress addrinfo) return sock httpGet :: HostName -> IO String httpGet host = do h <- flip socketToHandle ReadWriteMode =<< connected host hSetBuffering h NoBuffering hPutStr h "GET / HTTP/1.0\r\n\r\n" hGetContents h main = fmap head getArgs >>= httpGet >>= putStr I should have mentioned them in my last mail. Sorry. By the way, ghc-6.12 on Mac still can not build 64bit binaries. So upgrading ghc won't solve it. --nwn On Mon, Feb 8, 2010 at 12:50 AM, Chris Eidhof <chris@eidhof.nl> wrote:
Thanks. Unfortunately, it didn't help. The thing that frustrates me is that it's quite hard to debug. I guess I'll upgrade my GHC to 6.12, hopefully that'll solve it.
-chris
On 7 feb 2010, at 16:07, Yusaku Hashimoto wrote:
Hello,
On Sat, Feb 6, 2010 at 2:51 AM, Chris Eidhof <chris@eidhof.nl> wrote:
Approach 3: I used the simpleHTTP function from the HTTP package. This crashed, after I dug a little deeper into the code, it threw an error on calling the parseURI function (openFile: no such file exists). I installed the latest network package and upgraded my HTTP package, and the parseURI error went away. I felt like I was almost there, and tried the following:
simpleHTTP (getRequest "http://haskell.org")
This failed with just the text "Bus error". I searched the HTTPBis git repository, but couldn't find the text "Bus error". I don't have a clue of how to fix this.
Try reinstall network package with `cabal install --reinstall --hsc2hs-options="--cflag=-m32 --lflag=-m32"`.
See also: http://hackage.haskell.org/trac/ghc/ticket/3681
Hope this helps. --nwn