From c796651f83cbd833bd25f7b573b9c95d4b32ef40 Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Mon, 9 Dec 2024 10:17:13 -0500 Subject: [PATCH 1/2] Add a tcSmtFile REPL option `tcSmtFile` is to `tcSolver` as `smtFile` is to `prover`. The `tcSmtFile` option allows users to record typechecker-related SMT solver interactions to a file. This requires using a more recent `simple-smt` version to bring in the changes from https://github.com/yav/simple-smt/pull/25 and https://github.com/yav/simple-smt/pull/27, which are needed to plumb the relevant information down to the `simple-smt` API. Fixes #1782. --- CHANGES.md | 3 ++ cryptol.cabal | 2 +- src/Cryptol/REPL/Monad.hs | 11 ++++++++ src/Cryptol/TypeCheck/InferTypes.hs | 6 +++- src/Cryptol/TypeCheck/Solver/SMT.hs | 43 +++++++++++++++++++++++------ 5 files changed, 55 insertions(+), 10 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d752c6146..3d894fbc2 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -21,6 +21,9 @@ invoked as `:dumptests - ` allowing for easier experimentation and testing. +* Add a REPL option `tcSmtFile` that allows writing typechecker-related SMT + solver interactions to a file. + # 3.2.0 -- 2024-08-20 ## Language changes diff --git a/cryptol.cabal b/cryptol.cabal index 872e8664e..886a8741e 100644 --- a/cryptol.cabal +++ b/cryptol.cabal @@ -75,7 +75,7 @@ library pretty-show, process >= 1.2, sbv >= 9.1 && < 10.11, - simple-smt >= 0.9.7, + simple-smt >= 0.9.8, stm >= 2.4, strict, text >= 1.1, diff --git a/src/Cryptol/REPL/Monad.hs b/src/Cryptol/REPL/Monad.hs index 47900b1ac..e76350492 100644 --- a/src/Cryptol/REPL/Monad.hs +++ b/src/Cryptol/REPL/Monad.hs @@ -972,6 +972,17 @@ userOptions = mkOptionMap setModuleEnv me { M.meMonoBinds = b } _ -> return () + , OptionDescr "tcSmtFile" ["tc-smt-file"] (EnvString "-") noCheck + (unlines + [ "The file to record SMT solver interactions in the type checker (for debugging or offline proving)." + , "Use \"-\" for stdout." ]) $ + \case EnvString fileName -> do let mfile = if fileName == "-" then Nothing else Just fileName + modifyRW_ (\rw -> rw { eTCConfig = (eTCConfig rw) + { T.solverSmtFile = mfile + }}) + resetTCSolver + _ -> return () + , OptionDescr "tcSolver" ["tc-solver"] (EnvProg "z3" [ "-smt2", "-in" ]) noCheck -- TODO: check for the program in the path "The solver that will be used by the type checker." $ diff --git a/src/Cryptol/TypeCheck/InferTypes.hs b/src/Cryptol/TypeCheck/InferTypes.hs index 0b8199f16..171d4f431 100644 --- a/src/Cryptol/TypeCheck/InferTypes.hs +++ b/src/Cryptol/TypeCheck/InferTypes.hs @@ -45,6 +45,9 @@ data SolverConfig = SolverConfig , solverVerbose :: Int -- ^ How verbose to be when type-checking , solverPreludePath :: [FilePath] -- ^ Look for the solver prelude in these locations. + , solverSmtFile :: Maybe FilePath + -- ^ The optional file to record SMT solver interactions in the type + -- checker. If 'Nothing', this will print to @stdout@ instead. } deriving (Show, Generic, NFData) @@ -58,6 +61,7 @@ defaultSolverConfig searchPath = , solverArgs = [ "-smt2", "-in" ] , solverVerbose = 0 , solverPreludePath = searchPath + , solverSmtFile = Nothing } -- | The types of variables in the environment. @@ -389,7 +393,7 @@ instance PP (WithNames DelayedCt) where ppPrec _ (WithNames d names) = sig $$ hang "we need to show that" - 2 (vcat ( vars ++ asmps ++ + 2 (vcat ( vars ++ asmps ++ [ hang "the following constraints hold:" 2 (vcat $ bullets diff --git a/src/Cryptol/TypeCheck/Solver/SMT.hs b/src/Cryptol/TypeCheck/Solver/SMT.hs index 7cba94637..d8f67ae9b 100644 --- a/src/Cryptol/TypeCheck/Solver/SMT.hs +++ b/src/Cryptol/TypeCheck/Solver/SMT.hs @@ -41,12 +41,13 @@ import qualified SimpleSMT as SMT import Data.Map ( Map ) import qualified Data.Map as Map import qualified Data.Set as Set -import Data.Maybe(catMaybes) +import Data.Maybe(catMaybes,isJust) import Data.List(partition) import Control.Exception import Control.Monad(msum,zipWithM,void) import Data.Char(isSpace) import Text.Read(readMaybe) +import System.IO(IOMode(..), hClose, openFile) import qualified System.IO.Strict as StrictIO import System.FilePath(()) import System.Directory(doesFileExist) @@ -80,12 +81,38 @@ setupSolver s cfg = do -- | Start a fresh solver instance startSolver :: IO () -> SolverConfig -> IO Solver startSolver onExit sCfg = - do logger <- if (solverVerbose sCfg) > 0 then SMT.newLogger 0 - - else return quietLogger - let smtDbg = if (solverVerbose sCfg) > 1 then Just logger else Nothing - solver <- SMT.newSolverNotify - (solverPath sCfg) (solverArgs sCfg) smtDbg (Just (const onExit)) + do let smtFileEnabled = isJust (solverSmtFile sCfg) + (logger, mbLoggerCloseHdl) <- + -- There are two scenarios under which we want to explicitly log SMT + -- solver interactions: + -- + -- 1. The user wants to debug-print interactions with the `tcDebug` + -- option + -- 2. The user wants to write interactions to the `tcSmtFile` option + -- + -- We enable logging if either one is true. + if (solverVerbose sCfg) > 0 || smtFileEnabled + then case solverSmtFile sCfg of + Nothing -> + do logger <- SMT.newLogger 0 + pure (logger, Nothing) + Just file -> + do loggerHdl <- openFile file WriteMode + logger <- SMT.newLoggerWithHandle loggerHdl 0 + pure (logger, Just (hClose loggerHdl)) + else pure (quietLogger, Nothing) + let smtDbg = if (solverVerbose sCfg) > 1 || smtFileEnabled + then Just logger + else Nothing + solver <- SMT.newSolverWithConfig + (SMT.defaultConfig (solverPath sCfg) (solverArgs sCfg)) + { SMT.solverOnExit = + Just $ \_exitCode -> + do onExit + sequence_ mbLoggerCloseHdl + , SMT.solverLogger = + maybe SMT.noSolverLogger SMT.smtSolverLogger smtDbg + } let sol = Solver solver logger setupSolver sol sCfg return sol @@ -150,7 +177,7 @@ loadString s str = go (dropComments str) debugBlock :: Solver -> String -> IO a -> IO a debugBlock s@Solver { .. } name m = - do debugLog s name + do debugLog s (";;; " ++ name) SMT.logTab logger a <- m SMT.logUntab logger From 670cc5601e2b8b1a0c5fb64aaff69a05ea1ae7e1 Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Fri, 13 Dec 2024 18:27:59 -0500 Subject: [PATCH 2/2] CI: Regenerate cabal.GHC-*.config files --- cabal.GHC-9.4.8.config | 138 ++++++++++++++++++++--------------------- cabal.GHC-9.6.5.config | 136 ++++++++++++++++++++-------------------- cabal.GHC-9.8.2.config | 136 ++++++++++++++++++++-------------------- 3 files changed, 202 insertions(+), 208 deletions(-) diff --git a/cabal.GHC-9.4.8.config b/cabal.GHC-9.4.8.config index 9e81fe35b..abd42ca69 100644 --- a/cabal.GHC-9.4.8.config +++ b/cabal.GHC-9.4.8.config @@ -10,14 +10,14 @@ constraints: any.BoundedChan ==1.0.3.0, MemoTrie -examples, any.OneTuple ==0.4.2, any.Only ==0.1, - any.QuickCheck ==2.14.3, + any.QuickCheck ==2.15.0.1, QuickCheck -old-random +templatehaskell, any.StateVar ==1.2.2, any.adjunctions ==4.4.2, - any.aeson ==2.2.2.0, + any.aeson ==2.2.3.0, aeson +ordered-keymap, any.alex ==3.5.1.0, - any.ansi-terminal ==1.1.1, + any.ansi-terminal ==1.1.2, ansi-terminal -example, any.ansi-terminal-types ==1.1, any.ansi-wl-pprint ==1.0.2, @@ -34,11 +34,11 @@ constraints: any.BoundedChan ==1.0.3.0, async -bench, any.attoparsec ==0.14.4, attoparsec -developer, - any.auto-update ==0.2.0, + any.auto-update ==0.2.4, any.base ==4.17.2.1, any.base-compat ==0.12.3, any.base-compat-batteries ==0.12.3, - any.base-orphans ==0.9.2, + any.base-orphans ==0.9.3, any.base16-bytestring ==1.0.2.0, any.base64-bytestring ==1.2.1.0, any.basement ==0.0.16, @@ -59,10 +59,9 @@ constraints: any.BoundedChan ==1.0.3.0, any.bv-sized ==1.0.5, any.byteorder ==1.0.4, any.bytestring ==0.11.5.3, - any.cabal-doctest ==1.0.9, any.call-stack ==0.4.0, any.case-insensitive ==1.2.1.0, - any.cassava ==0.5.3.1, + any.cassava ==0.5.3.2, any.cborg ==0.2.10.0, cborg +optimize-gmp, any.cereal ==0.5.8.3, @@ -74,7 +73,7 @@ constraints: any.BoundedChan ==1.0.3.0, clock -llvm, any.code-page ==0.2.1, any.colour ==2.3.6, - any.comonad ==5.0.8, + any.comonad ==5.0.9, comonad +containers +distributive +indexed-traversable, any.concurrent-extra ==0.7.0.12, any.config-value ==0.8.3, @@ -83,27 +82,27 @@ constraints: any.BoundedChan ==1.0.3.0, any.contravariant ==1.5.5, contravariant +semigroups +statevar +tagged, any.cookie ==0.5.0, - any.criterion ==1.6.3.0, + any.criterion ==1.6.4.0, criterion -embed-data-files -fast, - any.criterion-measurement ==0.2.2.0, + any.criterion-measurement ==0.2.3.0, criterion-measurement -fast, - any.crypto-token ==0.1.1, + any.crypto-token ==0.1.2, any.cryptohash-md5 ==0.11.101.0, any.cryptohash-sha1 ==0.11.101.0, cryptol +ffi +relocatable -static, cryptol-remote-api -notthreaded -static, cryptol-test-runner -static, - any.crypton ==1.0.0, + any.crypton ==1.0.1, crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes, - any.crypton-x509 ==1.7.6, + any.crypton-x509 ==1.7.7, any.crypton-x509-store ==1.6.9, - any.crypton-x509-validation ==1.6.12, - any.data-default-class ==0.1.2.0, - any.data-fix ==0.3.3, + any.crypton-x509-validation ==1.6.13, + any.data-default ==0.8.0.0, + any.data-default-class ==0.2.0.0, + any.data-fix ==0.3.4, any.deepseq ==1.4.8.0, any.dense-linear-algebra ==0.1.0.0, - any.deriving-compat ==0.6.6, - deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11, + any.deriving-compat ==0.6.7, any.directory ==1.3.7.1, any.distributive ==0.6.2.1, distributive +semigroups +tagged, @@ -115,13 +114,13 @@ constraints: any.BoundedChan ==1.0.3.0, any.exact-pi ==0.5.0.2, any.exceptions ==0.10.5, any.extensible-exceptions ==0.1.1.4, - any.extra ==1.7.16, - any.fast-logger ==3.2.3, + any.extra ==1.8, + any.fast-logger ==3.2.5, any.file-embed ==0.0.16.0, any.filelock ==0.1.1.7, any.filepath ==1.4.2.2, any.fingertree ==0.1.5.0, - any.foldable1-classes-compat ==0.1, + any.foldable1-classes-compat ==0.1.1, foldable1-classes-compat +tagged, any.free ==5.2, any.generically ==0.1.1, @@ -129,23 +128,24 @@ constraints: any.BoundedChan ==1.0.3.0, any.ghc-boot-th ==9.4.8, any.ghc-prim ==0.9.1, any.gitrev ==1.3.1, - any.half ==0.3.1, - any.happy ==1.20.1.1, - any.hashable ==1.4.4.0, - hashable +integer-gmp -random-initial-seed, - any.hashtables ==1.3.1, + any.half ==0.3.2, + any.happy ==2.1.3, + any.happy-lib ==2.1.3, + any.hashable ==1.4.7.0, + hashable -arch-native +integer-gmp -random-initial-seed, + any.hashtables ==1.4.1, hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks, any.haskeline ==0.8.2, - any.haskell-lexer ==1.1.1, + any.haskell-lexer ==1.1.2, any.hgmp ==0.1.2.1, any.hostname ==1.0, any.hourglass ==0.2.12, any.hsc2hs ==0.68.10, hsc2hs -in-ghc-tree, any.http-date ==0.0.11, - any.http-semantics ==0.0.0, + any.http-semantics ==0.3.0, any.http-types ==0.12.4, - any.http2 ==5.2.1, + any.http2 ==5.3.9, http2 -devel -h2spec, any.ieee754 ==0.8.0, any.indexed-traversable ==0.1.4, @@ -156,10 +156,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.integer-logarithms ==1.0.3.1, integer-logarithms -check-bounds +integer-gmp, any.integer-roots ==1.0.2.0, - any.invariant ==0.6.3, + any.invariant ==0.6.4, any.io-streams ==1.5.2.2, io-streams +network -nointeractivetests +zlib, - any.iproute ==1.7.12, + any.iproute ==1.7.15, any.js-chart ==2.9.4.1, any.kan-extensions ==5.2.6, any.language-c99 ==0.2.0, @@ -167,13 +167,13 @@ constraints: any.BoundedChan ==1.0.3.0, any.language-c99-util ==0.2.0, any.lens ==5.2.3, lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy, - any.libBF ==0.6.7, + any.libBF ==0.6.8, libBF -system-libbf, any.libffi ==0.2.1, libffi +ghc-bundled-libffi, any.math-functions ==0.3.4.4, math-functions +system-erf +system-expm1, - any.megaparsec ==9.6.1, + any.megaparsec ==9.7.0, megaparsec -dev, any.memory ==0.18.0, memory +support_bytestring +support_deepseq, @@ -181,13 +181,14 @@ constraints: any.BoundedChan ==1.0.3.0, any.mod ==0.2.0.1, mod +semirings +vector, any.monad-control ==1.0.3.1, - any.monadLib ==3.10.1, + any.monadLib ==3.10.3, any.mtl ==2.2.2, - any.mwc-random ==0.15.0.2, + any.mwc-random ==0.15.1.0, + mwc-random -benchpapi, any.network ==3.1.4.0, network -devel, any.network-byte-order ==0.1.7, - any.network-control ==0.1.0, + any.network-control ==0.1.3, any.network-info ==0.2.1, any.network-uri ==2.6.4.2, any.newtype-generics ==0.6.2, @@ -197,10 +198,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.optparse-applicative ==0.18.1.0, optparse-applicative +process, any.ordered-containers ==0.2.4, - any.os-string ==2.0.2.2, + any.os-string ==2.0.7, any.panic ==0.4.0.1, any.parallel ==3.2.2.0, - any.parameterized-utils ==2.1.8.0, + any.parameterized-utils ==2.1.9.0, parameterized-utils +unsafe-operations, any.parsec ==3.1.16.1, any.parser-combinators ==1.3.0, @@ -216,11 +217,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.process ==1.6.18.0, any.profunctors ==5.6.2, any.psqueues ==0.2.8.0, - any.quickcheck-instances ==0.3.30, - quickcheck-instances -bytestring-builder, + any.quickcheck-instances ==0.3.32, any.random ==1.2.1.2, any.recv ==0.1.0, - any.reflection ==2.1.8, + any.reflection ==2.1.9, reflection -slow +template-haskell, any.regex-base ==0.94.0.2, any.regex-compat ==0.95.2.1, @@ -242,29 +242,29 @@ constraints: any.BoundedChan ==1.0.3.0, semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers, any.semigroups ==0.20, semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers, - any.semirings ==0.6, + any.semirings ==0.7, semirings +containers +unordered-containers, any.serialise ==0.2.6.1, serialise +newtime15, - any.silently ==1.2.5.3, + any.silently ==1.2.5.4, any.simple-get-opt ==0.4, any.simple-sendfile ==0.2.32, simple-sendfile +allow-bsd -fallback, - any.simple-smt ==0.9.7, + any.simple-smt ==0.9.8, any.splitmix ==0.1.0.5, splitmix -optimised-mixer, any.statistics ==0.16.2.1, any.stm ==2.5.1.0, any.streaming-commons ==0.2.2.6, streaming-commons -use-bytestring-builder, - any.strict ==0.5, + any.strict ==0.5.1, any.syb ==0.7.2.4, - any.tagged ==0.8.8, + any.tagged ==0.8.9, tagged +deepseq +transformers, - any.tasty ==1.5, + any.tasty ==1.5.2, tasty +unix, - any.tasty-hunit ==0.10.1, - any.tasty-quickcheck ==0.10.3, + any.tasty-hunit ==0.10.2, + any.tasty-quickcheck ==0.11, any.template-haskell ==2.19.0.0, any.temporary ==1.3, any.terminfo ==0.4.1.5, @@ -277,17 +277,17 @@ constraints: any.BoundedChan ==1.0.3.0, any.text-short ==0.1.6, text-short -asserts, any.tf-random ==0.5, - any.th-abstraction ==0.6.0.0, - any.th-compat ==0.1.5, - any.th-lift ==0.8.4, + any.th-abstraction ==0.7.1.0, + any.th-compat ==0.1.6, + any.th-lift ==0.8.6, any.th-lift-instances ==0.1.20, any.these ==1.2.1, any.time ==1.12.2, any.time-compat ==1.9.7, - any.time-manager ==0.1.0, - any.tls ==2.0.5, + any.time-manager ==0.2.1, + any.tls ==2.1.5, tls -devel, - any.tls-session-manager ==0.0.5, + any.tls-session-manager ==0.0.7, any.transformers ==0.5.6.2, any.transformers-base ==0.4.6, transformers-base +orphaninstances, @@ -296,42 +296,40 @@ constraints: any.BoundedChan ==1.0.3.0, any.unbounded-delays ==0.1.1.1, any.uniplate ==1.6.13, any.unix ==2.7.3, - any.unix-compat ==0.7.1, - unix-compat -old-time, - any.unix-time ==0.4.12, + any.unix-compat ==0.7.3, + any.unix-time ==0.4.16, any.unliftio ==0.2.25.0, any.unliftio-core ==0.2.1.0, any.unordered-containers ==0.2.20, unordered-containers -debug, any.utf8-string ==1.0.2, - any.uuid ==1.3.15, - any.uuid-types ==1.0.5.1, + any.uuid ==1.3.16, + any.uuid-types ==1.0.6, any.vault ==0.3.1.5, vault +useghc, - any.vector ==0.13.1.0, + any.vector ==0.13.2.0, vector +boundschecks -internalchecks -unsafechecks -wall, - any.vector-algorithms ==0.9.0.1, + any.vector-algorithms ==0.9.0.3, vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks, any.vector-binary-instances ==0.2.5.2, any.vector-stream ==0.1.0.1, any.vector-th-unbox ==0.2.2, - any.versions ==6.0.6, + any.versions ==6.0.7, any.void ==0.7.3, void -safe, any.wai ==3.2.4, - any.wai-extra ==3.1.15, + any.wai-extra ==3.1.17, wai-extra -build-example, - any.wai-logger ==2.4.0, - any.warp ==3.4.1, + any.wai-logger ==2.5.0, + any.warp ==3.4.7, warp +allow-sendfilefd -network-bytestring -warp-debug +x509, - any.warp-tls ==3.4.5, - any.what4 ==1.6, + any.warp-tls ==3.4.12, + any.what4 ==1.6.2, what4 -drealtestdisable -solvertests -stptestdisable, any.witherable ==0.5, any.word8 ==0.1.3, any.xml ==1.3.14, any.zenc ==0.1.2, any.zlib ==0.7.1.0, - zlib +non-blocking-ffi, any.zlib-bindings ==0.1.1.5 -index-state: hackage.haskell.org 2024-05-20T12:40:45Z +index-state: hackage.haskell.org 2024-12-13T22:36:39Z diff --git a/cabal.GHC-9.6.5.config b/cabal.GHC-9.6.5.config index 21d314ae2..e30cbbfd3 100644 --- a/cabal.GHC-9.6.5.config +++ b/cabal.GHC-9.6.5.config @@ -10,14 +10,14 @@ constraints: any.BoundedChan ==1.0.3.0, MemoTrie -examples, any.OneTuple ==0.4.2, any.Only ==0.1, - any.QuickCheck ==2.14.3, + any.QuickCheck ==2.15.0.1, QuickCheck -old-random +templatehaskell, any.StateVar ==1.2.2, any.adjunctions ==4.4.2, - any.aeson ==2.2.2.0, + any.aeson ==2.2.3.0, aeson +ordered-keymap, any.alex ==3.5.1.0, - any.ansi-terminal ==1.1.1, + any.ansi-terminal ==1.1.2, ansi-terminal -example, any.ansi-terminal-types ==1.1, any.ansi-wl-pprint ==1.0.2, @@ -34,11 +34,11 @@ constraints: any.BoundedChan ==1.0.3.0, async -bench, any.attoparsec ==0.14.4, attoparsec -developer, - any.auto-update ==0.2.0, + any.auto-update ==0.2.4, any.base ==4.18.2.1, any.base-compat ==0.12.3, any.base-compat-batteries ==0.12.3, - any.base-orphans ==0.9.2, + any.base-orphans ==0.9.3, any.base16-bytestring ==1.0.2.0, any.base64-bytestring ==1.2.1.0, any.basement ==0.0.16, @@ -59,10 +59,9 @@ constraints: any.BoundedChan ==1.0.3.0, any.bv-sized ==1.0.5, any.byteorder ==1.0.4, any.bytestring ==0.11.5.3, - any.cabal-doctest ==1.0.9, any.call-stack ==0.4.0, any.case-insensitive ==1.2.1.0, - any.cassava ==0.5.3.1, + any.cassava ==0.5.3.2, any.cborg ==0.2.10.0, cborg +optimize-gmp, any.cereal ==0.5.8.3, @@ -74,7 +73,7 @@ constraints: any.BoundedChan ==1.0.3.0, clock -llvm, any.code-page ==0.2.1, any.colour ==2.3.6, - any.comonad ==5.0.8, + any.comonad ==5.0.9, comonad +containers +distributive +indexed-traversable, any.concurrent-extra ==0.7.0.12, any.config-value ==0.8.3, @@ -83,27 +82,27 @@ constraints: any.BoundedChan ==1.0.3.0, any.contravariant ==1.5.5, contravariant +semigroups +statevar +tagged, any.cookie ==0.5.0, - any.criterion ==1.6.3.0, + any.criterion ==1.6.4.0, criterion -embed-data-files -fast, - any.criterion-measurement ==0.2.2.0, + any.criterion-measurement ==0.2.3.0, criterion-measurement -fast, - any.crypto-token ==0.1.1, + any.crypto-token ==0.1.2, any.cryptohash-md5 ==0.11.101.0, any.cryptohash-sha1 ==0.11.101.0, cryptol +ffi +relocatable -static, cryptol-remote-api -notthreaded -static, cryptol-test-runner -static, - any.crypton ==1.0.0, + any.crypton ==1.0.1, crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes, - any.crypton-x509 ==1.7.6, + any.crypton-x509 ==1.7.7, any.crypton-x509-store ==1.6.9, - any.crypton-x509-validation ==1.6.12, - any.data-default-class ==0.1.2.0, - any.data-fix ==0.3.3, + any.crypton-x509-validation ==1.6.13, + any.data-default ==0.8.0.0, + any.data-default-class ==0.2.0.0, + any.data-fix ==0.3.4, any.deepseq ==1.4.8.1, any.dense-linear-algebra ==0.1.0.0, - any.deriving-compat ==0.6.6, - deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11, + any.deriving-compat ==0.6.7, any.directory ==1.3.8.4, any.distributive ==0.6.2.1, distributive +semigroups +tagged, @@ -115,8 +114,8 @@ constraints: any.BoundedChan ==1.0.3.0, any.exact-pi ==0.5.0.2, any.exceptions ==0.10.7, any.extensible-exceptions ==0.1.1.4, - any.extra ==1.7.16, - any.fast-logger ==3.2.3, + any.extra ==1.8, + any.fast-logger ==3.2.5, any.file-embed ==0.0.16.0, any.filelock ==0.1.1.7, any.filepath ==1.4.300.1, @@ -127,23 +126,24 @@ constraints: any.BoundedChan ==1.0.3.0, any.ghc-boot-th ==9.6.5, any.ghc-prim ==0.10.0, any.gitrev ==1.3.1, - any.half ==0.3.1, - any.happy ==1.20.1.1, - any.hashable ==1.4.4.0, - hashable +integer-gmp -random-initial-seed, - any.hashtables ==1.3.1, + any.half ==0.3.2, + any.happy ==2.1.3, + any.happy-lib ==2.1.3, + any.hashable ==1.4.7.0, + hashable -arch-native +integer-gmp -random-initial-seed, + any.hashtables ==1.4.1, hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks, any.haskeline ==0.8.2.1, - any.haskell-lexer ==1.1.1, + any.haskell-lexer ==1.1.2, any.hgmp ==0.1.2.1, any.hostname ==1.0, any.hourglass ==0.2.12, any.hsc2hs ==0.68.10, hsc2hs -in-ghc-tree, any.http-date ==0.0.11, - any.http-semantics ==0.0.0, + any.http-semantics ==0.3.0, any.http-types ==0.12.4, - any.http2 ==5.2.1, + any.http2 ==5.3.9, http2 -devel -h2spec, any.ieee754 ==0.8.0, any.indexed-traversable ==0.1.4, @@ -154,10 +154,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.integer-logarithms ==1.0.3.1, integer-logarithms -check-bounds +integer-gmp, any.integer-roots ==1.0.2.0, - any.invariant ==0.6.3, + any.invariant ==0.6.4, any.io-streams ==1.5.2.2, io-streams +network -nointeractivetests +zlib, - any.iproute ==1.7.12, + any.iproute ==1.7.15, any.js-chart ==2.9.4.1, any.kan-extensions ==5.2.6, any.language-c99 ==0.2.0, @@ -165,13 +165,13 @@ constraints: any.BoundedChan ==1.0.3.0, any.language-c99-util ==0.2.0, any.lens ==5.2.3, lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy, - any.libBF ==0.6.7, + any.libBF ==0.6.8, libBF -system-libbf, any.libffi ==0.2.1, libffi +ghc-bundled-libffi, any.math-functions ==0.3.4.4, math-functions +system-erf +system-expm1, - any.megaparsec ==9.6.1, + any.megaparsec ==9.7.0, megaparsec -dev, any.memory ==0.18.0, memory +support_bytestring +support_deepseq, @@ -179,13 +179,14 @@ constraints: any.BoundedChan ==1.0.3.0, any.mod ==0.2.0.1, mod +semirings +vector, any.monad-control ==1.0.3.1, - any.monadLib ==3.10.1, + any.monadLib ==3.10.3, any.mtl ==2.3.1, - any.mwc-random ==0.15.0.2, + any.mwc-random ==0.15.1.0, + mwc-random -benchpapi, any.network ==3.1.4.0, network -devel, any.network-byte-order ==0.1.7, - any.network-control ==0.1.0, + any.network-control ==0.1.3, any.network-info ==0.2.1, any.network-uri ==2.6.4.2, any.newtype-generics ==0.6.2, @@ -195,10 +196,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.optparse-applicative ==0.18.1.0, optparse-applicative +process, any.ordered-containers ==0.2.4, - any.os-string ==2.0.2.2, + any.os-string ==2.0.7, any.panic ==0.4.0.1, any.parallel ==3.2.2.0, - any.parameterized-utils ==2.1.8.0, + any.parameterized-utils ==2.1.9.0, parameterized-utils +unsafe-operations, any.parsec ==3.1.16.1, any.parser-combinators ==1.3.0, @@ -214,11 +215,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.process ==1.6.19.0, any.profunctors ==5.6.2, any.psqueues ==0.2.8.0, - any.quickcheck-instances ==0.3.30, - quickcheck-instances -bytestring-builder, + any.quickcheck-instances ==0.3.32, any.random ==1.2.1.2, any.recv ==0.1.0, - any.reflection ==2.1.8, + any.reflection ==2.1.9, reflection -slow +template-haskell, any.regex-base ==0.94.0.2, any.regex-compat ==0.95.2.1, @@ -240,29 +240,29 @@ constraints: any.BoundedChan ==1.0.3.0, semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers, any.semigroups ==0.20, semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers, - any.semirings ==0.6, + any.semirings ==0.7, semirings +containers +unordered-containers, any.serialise ==0.2.6.1, serialise +newtime15, - any.silently ==1.2.5.3, + any.silently ==1.2.5.4, any.simple-get-opt ==0.4, any.simple-sendfile ==0.2.32, simple-sendfile +allow-bsd -fallback, - any.simple-smt ==0.9.7, + any.simple-smt ==0.9.8, any.splitmix ==0.1.0.5, splitmix -optimised-mixer, any.statistics ==0.16.2.1, any.stm ==2.5.1.0, any.streaming-commons ==0.2.2.6, streaming-commons -use-bytestring-builder, - any.strict ==0.5, + any.strict ==0.5.1, any.syb ==0.7.2.4, - any.tagged ==0.8.8, + any.tagged ==0.8.9, tagged +deepseq +transformers, - any.tasty ==1.5, + any.tasty ==1.5.2, tasty +unix, - any.tasty-hunit ==0.10.1, - any.tasty-quickcheck ==0.10.3, + any.tasty-hunit ==0.10.2, + any.tasty-quickcheck ==0.11, any.template-haskell ==2.20.0.0, any.temporary ==1.3, any.terminfo ==0.4.1.6, @@ -275,17 +275,17 @@ constraints: any.BoundedChan ==1.0.3.0, any.text-short ==0.1.6, text-short -asserts, any.tf-random ==0.5, - any.th-abstraction ==0.6.0.0, - any.th-compat ==0.1.5, - any.th-lift ==0.8.4, + any.th-abstraction ==0.7.1.0, + any.th-compat ==0.1.6, + any.th-lift ==0.8.6, any.th-lift-instances ==0.1.20, any.these ==1.2.1, any.time ==1.12.2, any.time-compat ==1.9.7, - any.time-manager ==0.1.0, - any.tls ==2.0.5, + any.time-manager ==0.2.1, + any.tls ==2.1.5, tls -devel, - any.tls-session-manager ==0.0.5, + any.tls-session-manager ==0.0.7, any.transformers ==0.6.1.0, any.transformers-base ==0.4.6, transformers-base +orphaninstances, @@ -294,42 +294,40 @@ constraints: any.BoundedChan ==1.0.3.0, any.unbounded-delays ==0.1.1.1, any.uniplate ==1.6.13, any.unix ==2.8.4.0, - any.unix-compat ==0.7.1, - unix-compat -old-time, - any.unix-time ==0.4.12, + any.unix-compat ==0.7.3, + any.unix-time ==0.4.16, any.unliftio ==0.2.25.0, any.unliftio-core ==0.2.1.0, any.unordered-containers ==0.2.20, unordered-containers -debug, any.utf8-string ==1.0.2, - any.uuid ==1.3.15, - any.uuid-types ==1.0.5.1, + any.uuid ==1.3.16, + any.uuid-types ==1.0.6, any.vault ==0.3.1.5, vault +useghc, - any.vector ==0.13.1.0, + any.vector ==0.13.2.0, vector +boundschecks -internalchecks -unsafechecks -wall, - any.vector-algorithms ==0.9.0.1, + any.vector-algorithms ==0.9.0.3, vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks, any.vector-binary-instances ==0.2.5.2, any.vector-stream ==0.1.0.1, any.vector-th-unbox ==0.2.2, - any.versions ==6.0.6, + any.versions ==6.0.7, any.void ==0.7.3, void -safe, any.wai ==3.2.4, - any.wai-extra ==3.1.15, + any.wai-extra ==3.1.17, wai-extra -build-example, - any.wai-logger ==2.4.0, - any.warp ==3.4.1, + any.wai-logger ==2.5.0, + any.warp ==3.4.7, warp +allow-sendfilefd -network-bytestring -warp-debug +x509, - any.warp-tls ==3.4.5, - any.what4 ==1.6, + any.warp-tls ==3.4.12, + any.what4 ==1.6.2, what4 -drealtestdisable -solvertests -stptestdisable, any.witherable ==0.5, any.word8 ==0.1.3, any.xml ==1.3.14, any.zenc ==0.1.2, any.zlib ==0.7.1.0, - zlib +non-blocking-ffi, any.zlib-bindings ==0.1.1.5 -index-state: hackage.haskell.org 2024-05-20T12:40:45Z +index-state: hackage.haskell.org 2024-12-13T22:36:39Z diff --git a/cabal.GHC-9.8.2.config b/cabal.GHC-9.8.2.config index 50585c685..86d889a51 100644 --- a/cabal.GHC-9.8.2.config +++ b/cabal.GHC-9.8.2.config @@ -10,14 +10,14 @@ constraints: any.BoundedChan ==1.0.3.0, MemoTrie -examples, any.OneTuple ==0.4.2, any.Only ==0.1, - any.QuickCheck ==2.14.3, + any.QuickCheck ==2.15.0.1, QuickCheck -old-random +templatehaskell, any.StateVar ==1.2.2, any.adjunctions ==4.4.2, - any.aeson ==2.2.2.0, + any.aeson ==2.2.3.0, aeson +ordered-keymap, any.alex ==3.5.1.0, - any.ansi-terminal ==1.1.1, + any.ansi-terminal ==1.1.2, ansi-terminal -example, any.ansi-terminal-types ==1.1, any.ansi-wl-pprint ==1.0.2, @@ -34,11 +34,11 @@ constraints: any.BoundedChan ==1.0.3.0, async -bench, any.attoparsec ==0.14.4, attoparsec -developer, - any.auto-update ==0.2.0, + any.auto-update ==0.2.4, any.base ==4.19.1.0, any.base-compat ==0.12.3, any.base-compat-batteries ==0.12.3, - any.base-orphans ==0.9.2, + any.base-orphans ==0.9.3, any.base16-bytestring ==1.0.2.0, any.base64-bytestring ==1.2.1.0, any.basement ==0.0.16, @@ -59,10 +59,9 @@ constraints: any.BoundedChan ==1.0.3.0, any.bv-sized ==1.0.5, any.byteorder ==1.0.4, any.bytestring ==0.12.1.0, - any.cabal-doctest ==1.0.9, any.call-stack ==0.4.0, any.case-insensitive ==1.2.1.0, - any.cassava ==0.5.3.1, + any.cassava ==0.5.3.2, any.cborg ==0.2.10.0, cborg +optimize-gmp, any.cereal ==0.5.8.3, @@ -74,7 +73,7 @@ constraints: any.BoundedChan ==1.0.3.0, clock -llvm, any.code-page ==0.2.1, any.colour ==2.3.6, - any.comonad ==5.0.8, + any.comonad ==5.0.9, comonad +containers +distributive +indexed-traversable, any.concurrent-extra ==0.7.0.12, any.config-value ==0.8.3, @@ -83,27 +82,27 @@ constraints: any.BoundedChan ==1.0.3.0, any.contravariant ==1.5.5, contravariant +semigroups +statevar +tagged, any.cookie ==0.5.0, - any.criterion ==1.6.3.0, + any.criterion ==1.6.4.0, criterion -embed-data-files -fast, - any.criterion-measurement ==0.2.2.0, + any.criterion-measurement ==0.2.3.0, criterion-measurement -fast, - any.crypto-token ==0.1.1, + any.crypto-token ==0.1.2, any.cryptohash-md5 ==0.11.101.0, any.cryptohash-sha1 ==0.11.101.0, cryptol +ffi +relocatable -static, cryptol-remote-api -notthreaded -static, cryptol-test-runner -static, - any.crypton ==1.0.0, + any.crypton ==1.0.1, crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes, - any.crypton-x509 ==1.7.6, + any.crypton-x509 ==1.7.7, any.crypton-x509-store ==1.6.9, - any.crypton-x509-validation ==1.6.12, - any.data-default-class ==0.1.2.0, - any.data-fix ==0.3.3, + any.crypton-x509-validation ==1.6.13, + any.data-default ==0.8.0.0, + any.data-default-class ==0.2.0.0, + any.data-fix ==0.3.4, any.deepseq ==1.5.0.0, any.dense-linear-algebra ==0.1.0.0, - any.deriving-compat ==0.6.6, - deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11, + any.deriving-compat ==0.6.7, any.directory ==1.3.8.1, any.distributive ==0.6.2.1, distributive +semigroups +tagged, @@ -115,8 +114,8 @@ constraints: any.BoundedChan ==1.0.3.0, any.exact-pi ==0.5.0.2, any.exceptions ==0.10.7, any.extensible-exceptions ==0.1.1.4, - any.extra ==1.7.16, - any.fast-logger ==3.2.3, + any.extra ==1.8, + any.fast-logger ==3.2.5, any.file-embed ==0.0.16.0, any.filelock ==0.1.1.7, any.filepath ==1.4.200.1, @@ -127,23 +126,24 @@ constraints: any.BoundedChan ==1.0.3.0, any.ghc-boot-th ==9.8.2, any.ghc-prim ==0.11.0, any.gitrev ==1.3.1, - any.half ==0.3.1, - any.happy ==1.20.1.1, - any.hashable ==1.4.4.0, - hashable +integer-gmp -random-initial-seed, - any.hashtables ==1.3.1, + any.half ==0.3.2, + any.happy ==2.1.3, + any.happy-lib ==2.1.3, + any.hashable ==1.4.7.0, + hashable -arch-native +integer-gmp -random-initial-seed, + any.hashtables ==1.4.1, hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks, any.haskeline ==0.8.2.1, - any.haskell-lexer ==1.1.1, + any.haskell-lexer ==1.1.2, any.hgmp ==0.1.2.1, any.hostname ==1.0, any.hourglass ==0.2.12, any.hsc2hs ==0.68.10, hsc2hs -in-ghc-tree, any.http-date ==0.0.11, - any.http-semantics ==0.0.0, + any.http-semantics ==0.3.0, any.http-types ==0.12.4, - any.http2 ==5.2.1, + any.http2 ==5.3.9, http2 -devel -h2spec, any.ieee754 ==0.8.0, any.indexed-traversable ==0.1.4, @@ -154,10 +154,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.integer-logarithms ==1.0.3.1, integer-logarithms -check-bounds +integer-gmp, any.integer-roots ==1.0.2.0, - any.invariant ==0.6.3, + any.invariant ==0.6.4, any.io-streams ==1.5.2.2, io-streams +network -nointeractivetests +zlib, - any.iproute ==1.7.12, + any.iproute ==1.7.15, any.js-chart ==2.9.4.1, any.kan-extensions ==5.2.6, any.language-c99 ==0.2.0, @@ -165,13 +165,13 @@ constraints: any.BoundedChan ==1.0.3.0, any.language-c99-util ==0.2.0, any.lens ==5.2.3, lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy, - any.libBF ==0.6.7, + any.libBF ==0.6.8, libBF -system-libbf, any.libffi ==0.2.1, libffi +ghc-bundled-libffi, any.math-functions ==0.3.4.4, math-functions +system-erf +system-expm1, - any.megaparsec ==9.6.1, + any.megaparsec ==9.7.0, megaparsec -dev, any.memory ==0.18.0, memory +support_bytestring +support_deepseq, @@ -179,13 +179,14 @@ constraints: any.BoundedChan ==1.0.3.0, any.mod ==0.2.0.1, mod +semirings +vector, any.monad-control ==1.0.3.1, - any.monadLib ==3.10.1, + any.monadLib ==3.10.3, any.mtl ==2.3.1, - any.mwc-random ==0.15.0.2, + any.mwc-random ==0.15.1.0, + mwc-random -benchpapi, any.network ==3.1.4.0, network -devel, any.network-byte-order ==0.1.7, - any.network-control ==0.1.0, + any.network-control ==0.1.3, any.network-info ==0.2.1, any.network-uri ==2.6.4.2, any.newtype-generics ==0.6.2, @@ -195,10 +196,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.optparse-applicative ==0.18.1.0, optparse-applicative +process, any.ordered-containers ==0.2.4, - any.os-string ==2.0.2.2, + any.os-string ==2.0.7, any.panic ==0.4.0.1, any.parallel ==3.2.2.0, - any.parameterized-utils ==2.1.8.0, + any.parameterized-utils ==2.1.9.0, parameterized-utils +unsafe-operations, any.parsec ==3.1.17.0, any.parser-combinators ==1.3.0, @@ -214,11 +215,10 @@ constraints: any.BoundedChan ==1.0.3.0, any.process ==1.6.18.0, any.profunctors ==5.6.2, any.psqueues ==0.2.8.0, - any.quickcheck-instances ==0.3.30, - quickcheck-instances -bytestring-builder, + any.quickcheck-instances ==0.3.32, any.random ==1.2.1.2, any.recv ==0.1.0, - any.reflection ==2.1.8, + any.reflection ==2.1.9, reflection -slow +template-haskell, any.regex-base ==0.94.0.2, any.regex-compat ==0.95.2.1, @@ -240,29 +240,29 @@ constraints: any.BoundedChan ==1.0.3.0, semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers, any.semigroups ==0.20, semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers, - any.semirings ==0.6, + any.semirings ==0.7, semirings +containers +unordered-containers, any.serialise ==0.2.6.1, serialise +newtime15, - any.silently ==1.2.5.3, + any.silently ==1.2.5.4, any.simple-get-opt ==0.4, any.simple-sendfile ==0.2.32, simple-sendfile +allow-bsd -fallback, - any.simple-smt ==0.9.7, + any.simple-smt ==0.9.8, any.splitmix ==0.1.0.5, splitmix -optimised-mixer, any.statistics ==0.16.2.1, any.stm ==2.5.2.1, any.streaming-commons ==0.2.2.6, streaming-commons -use-bytestring-builder, - any.strict ==0.5, + any.strict ==0.5.1, any.syb ==0.7.2.4, - any.tagged ==0.8.8, + any.tagged ==0.8.9, tagged +deepseq +transformers, - any.tasty ==1.5, + any.tasty ==1.5.2, tasty +unix, - any.tasty-hunit ==0.10.1, - any.tasty-quickcheck ==0.10.3, + any.tasty-hunit ==0.10.2, + any.tasty-quickcheck ==0.11, any.template-haskell ==2.21.0.0, any.temporary ==1.3, any.terminfo ==0.4.1.6, @@ -275,17 +275,17 @@ constraints: any.BoundedChan ==1.0.3.0, any.text-short ==0.1.6, text-short -asserts, any.tf-random ==0.5, - any.th-abstraction ==0.6.0.0, - any.th-compat ==0.1.5, - any.th-lift ==0.8.4, + any.th-abstraction ==0.7.1.0, + any.th-compat ==0.1.6, + any.th-lift ==0.8.6, any.th-lift-instances ==0.1.20, any.these ==1.2.1, any.time ==1.12.2, any.time-compat ==1.9.7, - any.time-manager ==0.1.0, - any.tls ==2.0.5, + any.time-manager ==0.2.1, + any.tls ==2.1.5, tls -devel, - any.tls-session-manager ==0.0.5, + any.tls-session-manager ==0.0.7, any.transformers ==0.6.1.0, any.transformers-base ==0.4.6, transformers-base +orphaninstances, @@ -294,42 +294,40 @@ constraints: any.BoundedChan ==1.0.3.0, any.unbounded-delays ==0.1.1.1, any.uniplate ==1.6.13, any.unix ==2.8.4.0, - any.unix-compat ==0.7.1, - unix-compat -old-time, - any.unix-time ==0.4.12, + any.unix-compat ==0.7.3, + any.unix-time ==0.4.16, any.unliftio ==0.2.25.0, any.unliftio-core ==0.2.1.0, any.unordered-containers ==0.2.20, unordered-containers -debug, any.utf8-string ==1.0.2, - any.uuid ==1.3.15, - any.uuid-types ==1.0.5.1, + any.uuid ==1.3.16, + any.uuid-types ==1.0.6, any.vault ==0.3.1.5, vault +useghc, - any.vector ==0.13.1.0, + any.vector ==0.13.2.0, vector +boundschecks -internalchecks -unsafechecks -wall, - any.vector-algorithms ==0.9.0.1, + any.vector-algorithms ==0.9.0.3, vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks, any.vector-binary-instances ==0.2.5.2, any.vector-stream ==0.1.0.1, any.vector-th-unbox ==0.2.2, - any.versions ==6.0.6, + any.versions ==6.0.7, any.void ==0.7.3, void -safe, any.wai ==3.2.4, - any.wai-extra ==3.1.15, + any.wai-extra ==3.1.17, wai-extra -build-example, - any.wai-logger ==2.4.0, - any.warp ==3.4.1, + any.wai-logger ==2.5.0, + any.warp ==3.4.7, warp +allow-sendfilefd -network-bytestring -warp-debug +x509, - any.warp-tls ==3.4.5, - any.what4 ==1.6, + any.warp-tls ==3.4.12, + any.what4 ==1.6.2, what4 -drealtestdisable -solvertests -stptestdisable, any.witherable ==0.5, any.word8 ==0.1.3, any.xml ==1.3.14, any.zenc ==0.1.2, any.zlib ==0.7.1.0, - zlib +non-blocking-ffi, any.zlib-bindings ==0.1.1.5 -index-state: hackage.haskell.org 2024-05-20T12:40:45Z +index-state: hackage.haskell.org 2024-12-13T22:36:39Z