Merge pull request #202258 from ncfavier/lambdabot
haskellPackages: fix lambdabot
This commit is contained in:
commit
7af12d783b
@ -2363,13 +2363,6 @@ self: super: {
|
|||||||
# https://github.com/kuribas/mfsolve/issues/8
|
# https://github.com/kuribas/mfsolve/issues/8
|
||||||
mfsolve = dontCheck super.mfsolve;
|
mfsolve = dontCheck super.mfsolve;
|
||||||
|
|
||||||
# GHC 9 support https://github.com/lambdabot/lambdabot/pull/204
|
|
||||||
lambdabot-core = appendPatch ./patches/lambdabot-core-ghc9.patch (overrideCabal (drv: {
|
|
||||||
revision = null;
|
|
||||||
editedCabalFile = null;
|
|
||||||
}) super.lambdabot-core);
|
|
||||||
lambdabot-novelty-plugins = appendPatch ./patches/lambdabot-novelty-plugins-ghc9.patch super.lambdabot-novelty-plugins;
|
|
||||||
|
|
||||||
# Ships a custom cabal-doctest Setup.hs in the release tarball, but the actual
|
# Ships a custom cabal-doctest Setup.hs in the release tarball, but the actual
|
||||||
# test suite is commented out, so the required dependency is missing naturally.
|
# test suite is commented out, so the required dependency is missing naturally.
|
||||||
# We need to use a default Setup.hs instead. Current master doesn't exhibit
|
# We need to use a default Setup.hs instead. Current master doesn't exhibit
|
||||||
@ -2541,6 +2534,9 @@ self: super: {
|
|||||||
# https://github.com/phadej/crypt-sha512/issues/13
|
# https://github.com/phadej/crypt-sha512/issues/13
|
||||||
crypt-sha512 = dontCheck super.crypt-sha512;
|
crypt-sha512 = dontCheck super.crypt-sha512;
|
||||||
|
|
||||||
|
# Too strict upper bound on HTTP
|
||||||
|
oeis = doJailbreak super.oeis;
|
||||||
|
|
||||||
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super // (let
|
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super // (let
|
||||||
# We need to build purescript with these dependencies and thus also its reverse
|
# We need to build purescript with these dependencies and thus also its reverse
|
||||||
# dependencies to avoid version mismatches in their dependency closure.
|
# dependencies to avoid version mismatches in their dependency closure.
|
||||||
|
@ -1,95 +0,0 @@
|
|||||||
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)
|
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
|||||||
diff --git a/lambdabot-novelty-plugins.cabal b/lambdabot-novelty-plugins.cabal
|
|
||||||
index 69c8447..50a35f6 100644
|
|
||||||
--- a/lambdabot-novelty-plugins.cabal
|
|
||||||
+++ b/lambdabot-novelty-plugins.cabal
|
|
||||||
@@ -36,7 +36,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
|
|
||||||
|
|
||||||
source-repository head
|
|
||||||
type: git
|
|
||||||
@@ -71,7 +71,8 @@ library
|
|
||||||
lambdabot-core >= 5.3 && < 5.4,
|
|
||||||
misfortune >= 0.1,
|
|
||||||
process >= 1.1,
|
|
||||||
- random-fu >= 0.2.6.2,
|
|
||||||
+ random >= 1.2,
|
|
||||||
+ random-fu >= 0.3.0.0,
|
|
||||||
regex-tdfa >= 1.1,
|
|
||||||
|
|
||||||
-- runtime dependencies
|
|
||||||
diff --git a/src/Lambdabot/Plugin/Novelty/Numberwang.hs b/src/Lambdabot/Plugin/Novelty/Numberwang.hs
|
|
||||||
index ae41eb4..8321a14 100644
|
|
||||||
--- a/src/Lambdabot/Plugin/Novelty/Numberwang.hs
|
|
||||||
+++ b/src/Lambdabot/Plugin/Novelty/Numberwang.hs
|
|
||||||
@@ -7,7 +7,9 @@ import Control.Monad
|
|
||||||
import Data.Random
|
|
||||||
import Data.Random.Distribution.Poisson
|
|
||||||
import Lambdabot.Plugin
|
|
||||||
+import Lambdabot.Util
|
|
||||||
import Numeric
|
|
||||||
+import System.Random.Stateful (newIOGenM, newStdGen)
|
|
||||||
|
|
||||||
|
|
||||||
data NumberwangState = State
|
|
||||||
@@ -23,7 +25,9 @@ conDist = poisson (32 :: Double)
|
|
||||||
|
|
||||||
numberwangPlugin :: Module NumberwangState
|
|
||||||
numberwangPlugin = newModule
|
|
||||||
- { moduleDefState = sample (State <$> cmdDist <*> conDist)
|
|
||||||
+ { moduleDefState = do
|
|
||||||
+ g <- newIOGenM =<< newStdGen
|
|
||||||
+ sampleFrom g (State <$> cmdDist <*> conDist)
|
|
||||||
, moduleCmds = return
|
|
||||||
[ (command "numberwang")
|
|
||||||
{ help = say "@numberwang <number>: Determines if it is Numberwang."
|
|
||||||
@@ -61,7 +65,8 @@ checkNumberwang :: (MonadLBState m, LBState m ~ NumberwangState) =>
|
|
||||||
checkNumberwang cmd l = withState cmd $ \ n setN nDist -> do
|
|
||||||
if n <= l
|
|
||||||
then do
|
|
||||||
- setN =<< lb (sample nDist)
|
|
||||||
+ g <- newIOGenM =<< newStdGen
|
|
||||||
+ setN =<< sampleFrom g nDist
|
|
||||||
return True
|
|
||||||
else do
|
|
||||||
setN (n - l)
|
|
Loading…
Reference in New Issue
Block a user