Search code examples
haskellfunctional-programmingcabal

cabal -threaded options not working


I am trying out Haskell and Cabal. I created a project with this config file.

executable dictionary
  main-is:             Main.hs
  -- other-modules:       
  -- other-extensions:    
  ghc-options: -threaded -rtsopts

  build-depends:       base >=4.9 && <4.10, http-streams, io-streams, bytestring, HsOpenSSL
  -- hs-source-dirs:      
  default-language:    Haskell2010

I am trying to send a get request.

main :: IO ()
main = withOpenSSL $ do
    putStrLn "Type in a word"
    word <- getLine
    let word1 = filter isAlphaNum $ (words word) !! 0
    putStrLn word1
    ctx <- baselineContextSSL
    c <- openConnectionSSL ctx url 443

    let q = buildRequest1 $ do
                http GET $ (C.pack $ "/api/v1/entries/en/" ++ word1)
                setAccept (C.pack "text/html")
                setHeader (C.pack "app_id") app_id
                setHeader (C.pack "app_key") apli_id

    sendRequest c q emptyBody

    receiveResponse c (\p i -> do
        S.putStrLn $ getStatusMessage p
        xm <- Streams.read i
        case xm of
            Just x    -> S.putStr x
            Nothing   -> putStrLn "")
    closeConnection c

I try to run cabal run but the results still:

Type in a word
go
go
dictionary: user error (RTS doesn't support multiple OS threads (use ghc -threaded when linking))

I'm using macOS X siera


Solution

  • Oh, I just have to run:

    cabal clean
    

    and

    cabal run
    

    again to compile with the new flag.