96 lines
3.4 KiB
Diff
96 lines
3.4 KiB
Diff
diff --git a/lambdabot-core.cabal b/lambdabot-core.cabal
|
|
index 861a28b..87175a3 100644
|
|
--- a/lambdabot-core.cabal
|
|
+++ b/lambdabot-core.cabal
|
|
@@ -19,7 +19,7 @@ homepage: https://wiki.haskell.org/Lambdabot
|
|
|
|
build-type: Simple
|
|
cabal-version: >= 1.10
|
|
-tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.4
|
|
+tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.4, GHC == 9.0.2
|
|
|
|
extra-source-files: AUTHORS.md
|
|
COMMENTARY.md
|
|
@@ -89,9 +89,8 @@ library
|
|
network-bsd >= 2.7 && < 2.9,
|
|
parsec >= 3,
|
|
prim-uniq >= 0.2 && < 0.4,
|
|
- random >= 1,
|
|
- random-fu >= 0.2.6.2,
|
|
- random-source >= 0.3,
|
|
+ random >= 1.2,
|
|
+ random-fu >= 0.3.0.0,
|
|
regex-tdfa >= 1.1 && < 1.4,
|
|
SafeSemaphore >= 0.9,
|
|
split >= 0.2,
|
|
diff --git a/src/Lambdabot/Bot.hs b/src/Lambdabot/Bot.hs
|
|
index 1b0de2e..833fb4c 100644
|
|
--- a/src/Lambdabot/Bot.hs
|
|
+++ b/src/Lambdabot/Bot.hs
|
|
@@ -1,6 +1,5 @@
|
|
{-# LANGUAGE GADTs #-}
|
|
{-# LANGUAGE ScopedTypeVariables #-}
|
|
-{-# LANGUAGE TemplateHaskell #-}
|
|
-- | The guts of lambdabot.
|
|
--
|
|
-- The LB/Lambdabot monad
|
|
@@ -37,7 +36,6 @@ import Control.Monad.Error
|
|
import Control.Monad.Reader
|
|
import Control.Monad.State
|
|
import qualified Data.Map as M
|
|
-import Data.Random.Source
|
|
import qualified Data.Set as S
|
|
|
|
------------------------------------------------------------------------
|
|
@@ -136,17 +134,3 @@ ircPrivmsg who msg = do
|
|
ircPrivmsg' :: Nick -> String -> LB ()
|
|
ircPrivmsg' who "" = ircPrivmsg' who " "
|
|
ircPrivmsg' who msg = send $ privmsg who msg
|
|
-
|
|
-------------------------------------------------------------------------
|
|
-
|
|
-monadRandom [d|
|
|
-
|
|
- instance MonadRandom LB where
|
|
- getRandomWord8 = liftIO getRandomWord8
|
|
- getRandomWord16 = liftIO getRandomWord16
|
|
- getRandomWord32 = liftIO getRandomWord32
|
|
- getRandomWord64 = liftIO getRandomWord64
|
|
- getRandomDouble = liftIO getRandomDouble
|
|
- getRandomNByteInteger n = liftIO (getRandomNByteInteger n)
|
|
-
|
|
- |]
|
|
diff --git a/src/Lambdabot/Util.hs b/src/Lambdabot/Util.hs
|
|
index effdf71..259699b 100644
|
|
--- a/src/Lambdabot/Util.hs
|
|
+++ b/src/Lambdabot/Util.hs
|
|
@@ -23,14 +23,15 @@ module Lambdabot.Util (
|
|
randomSuccessMsg
|
|
) where
|
|
|
|
+import Control.Concurrent.Lifted
|
|
import Control.Monad.Trans
|
|
+import Control.Monad.Trans.Control
|
|
import Data.Char
|
|
import Data.List
|
|
import Data.Random
|
|
-import Control.Concurrent.Lifted
|
|
-import Control.Monad.Trans.Control
|
|
import Lambdabot.Config
|
|
import Lambdabot.Config.Core
|
|
+import System.Random.Stateful (newIOGenM, newStdGen)
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
@@ -63,7 +64,9 @@ listToStr conj (item:items) =
|
|
|
|
-- | Pick a random element of the list.
|
|
random :: MonadIO m => [a] -> m a
|
|
-random = io . sample . randomElement
|
|
+random l = do
|
|
+ g <- newIOGenM =<< newStdGen
|
|
+ sampleFrom g (randomElement l)
|
|
|
|
------------------------------------------------------------------------
|
|
|