2013-03-14 54 views
0

我剛安裝了最新的haskell平臺,無法在Control.Concurrent中找到forkFinally,我有forkIO,並且能夠直接從hackage中竊取代碼,它可以工作罰款:當前haskell平臺丟失fork最後

forkFinally :: Exception e => IO a -> (Either e a -> IO()) -> IO ThreadId 
forkFinally action and_then = 
    mask $ \restore -> 
    forkIO $ try (restore action) >>= and_then 

任何人有任何提示或線索這裏發生了什麼? Hackage和我所有的搜索似乎都表明fork最終應該是平臺自帶的默認Control.Concurrent模塊的標準部分...

回答

4

最新版本的base是4.6.0.1;目前的Haskell平臺(2012.4.0.0)帶有base-4.5.1.0。 forkFinally在base-4.6.0.0中是新的。

Link to Control.Concurrent.forkFinally in base-4.6.0.0.

Link to Control.Concurrent in base-4.5.1.0.如果你搜索的頁面,你會發現,forkFinally不存在。

+0

啊,謝謝!我推測最新的haskell平臺也會有最新的庫(或者至少比這更近,它看起來像fork最後幾個月前去過..) – 2013-03-14 21:30:26

+1

對於帶有GHC(例如base)的庫,Haskell平臺使用GHC自帶的版本。它不會自動使用GHC的最新版本 - 它使用已經出現一段時間(幾個月)的最新版本的GHC,並且證明它本身不包含任何令人討厭的錯誤。 (免責聲明:這是我的印象,我不是Haskell平臺維護者,我不爲他們代言等) – dave4420 2013-03-14 21:50:53