Skip to content

Commit fdb2a3a

Browse files
committed
Use Maybe IO.Handle in simplified config
1 parent 9421178 commit fdb2a3a

File tree

5 files changed

+33
-28
lines changed

5 files changed

+33
-28
lines changed

kore/src/Kore/Equation/Application.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,10 +261,12 @@ applyEquation _ term equation result = do
261261
let results = OrPattern.fromPattern result
262262
debugApplyEquation equation result
263263
doTracing <- liftSimplifier $ asks Simplifier.tracingEnabled
264-
when doTracing $
264+
when (isJust doTracing) emitEquationTrace
265+
pure results
266+
where
267+
emitEquationTrace =
265268
modify $
266269
second (|> SimplifierTrace term (Attribute.uniqueId $ attributes equation) result)
267-
pure results
268270

269271
{- | Use a 'MatchResult' to instantiate an 'Equation'.
270272

kore/src/Kore/Exec.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,8 @@ rpcExec
495495
where
496496
simplifierRun
497497
| tracingEnabled =
498-
fmap snd . evalSimplifierLogged verifiedModule' sortGraph overloadGraph metadataTools equations
498+
-- FIXME: we need to pass the log stream handle to evalSimplifierLogged here
499+
evalSimplifierLogged Nothing verifiedModule' sortGraph overloadGraph metadataTools equations
499500
| otherwise =
500501
evalSimplifier verifiedModule' sortGraph overloadGraph metadataTools equations
501502

kore/src/Kore/JsonRpc.hs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -752,12 +752,15 @@ respond serverState moduleName runSMT =
752752
, equations
753753
}
754754
| doTracing =
755-
evalSimplifierLogged
756-
verifiedModule
757-
sortGraph
758-
overloadGraph
759-
metadataTools
760-
equations
755+
-- FIXME: we need to pass the log stream handle to evalSimplifierLogged here
756+
fmap (Seq.empty,)
757+
. evalSimplifierLogged
758+
Nothing
759+
verifiedModule
760+
sortGraph
761+
overloadGraph
762+
metadataTools
763+
equations
761764
| otherwise =
762765
fmap (Seq.empty,)
763766
. evalSimplifier

kore/src/Kore/Simplify/API.hs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import Data.Map.Strict (
1919
Map,
2020
)
2121
import Data.Map.Strict qualified as Map
22-
import Data.Sequence (Seq)
2322
import Kore.Attribute.Symbol qualified as Attribute (
2423
Symbol,
2524
)
@@ -69,6 +68,7 @@ import Prof
6968
import SMT (
7069
SMT,
7170
)
71+
import System.IO qualified as IO
7272

7373
traceProfSimplify ::
7474
MonadProf prof =>
@@ -85,7 +85,7 @@ traceProfSimplify =
8585
. Pattern.toTermLike
8686

8787
mkSimplifierEnv ::
88-
Bool ->
88+
Maybe IO.Handle ->
8989
VerifiedModuleSyntax Attribute.Symbol ->
9090
SortGraph ->
9191
OverloadGraph ->
@@ -172,21 +172,28 @@ evalSimplifier ::
172172
Map AxiomIdentifier [Equation VariableName] ->
173173
Simplifier a ->
174174
SMT a
175-
evalSimplifier verifiedModule sortGraph overloadGraph metadataTools rawEquations simplifier = do
176-
env <- mkSimplifierEnv False verifiedModule sortGraph overloadGraph metadataTools rawEquations
177-
runSimplifier env simplifier
175+
evalSimplifier = evalSimplifierLogged Nothing
178176

177+
-- | Evaluate a simplifier computation, logging the simplification into the provided 'Handle'
179178
evalSimplifierLogged ::
179+
Maybe IO.Handle ->
180180
VerifiedModuleSyntax Attribute.Symbol ->
181181
SortGraph ->
182182
OverloadGraph ->
183183
SmtMetadataTools Attribute.Symbol ->
184184
Map AxiomIdentifier [Equation VariableName] ->
185185
Simplifier a ->
186-
SMT (Seq SimplifierTrace, a)
187-
evalSimplifierLogged verifiedModule sortGraph overloadGraph metadataTools rawEquations simplifier = do
188-
env <- mkSimplifierEnv True verifiedModule sortGraph overloadGraph metadataTools rawEquations
189-
runSimplifierLogged env simplifier
186+
SMT a
187+
evalSimplifierLogged simlifierTraceHandle verifiedModule sortGraph overloadGraph metadataTools rawEquations simplifier = do
188+
env <-
189+
mkSimplifierEnv
190+
simlifierTraceHandle
191+
verifiedModule
192+
sortGraph
193+
overloadGraph
194+
metadataTools
195+
rawEquations
196+
runSimplifier env simplifier
190197

191198
evalSimplifierProofs ::
192199
VerifiedModule Attribute.Symbol ->

kore/src/Kore/Simplify/Simplify.hs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ module Kore.Simplify.Simplify (
5757
-- * Re-exports
5858
MonadSMT,
5959
MonadLog,
60-
runSimplifierLogged,
6160
SimplifierTrace (..),
6261
) where
6362

@@ -132,6 +131,7 @@ import SMT (
132131
MonadSMT (..),
133132
SMT,
134133
)
134+
import System.IO qualified as IO
135135

136136
-- * Simplifier
137137

@@ -151,7 +151,7 @@ data Env = Env
151151
, injSimplifier :: !InjSimplifier
152152
, overloadSimplifier :: !OverloadSimplifier
153153
, hookedSymbols :: !(Map Id Text)
154-
, tracingEnabled :: Bool
154+
, tracingEnabled :: Maybe IO.Handle
155155
}
156156

157157
data SimplifierTrace = SimplifierTrace
@@ -186,14 +186,6 @@ runSimplifier :: Env -> Simplifier a -> SMT a
186186
runSimplifier env (Simplifier simplifier) =
187187
runReaderT (evalStateT simplifier (initCache, mempty)) env
188188

189-
runSimplifierLogged :: Env -> Simplifier a -> SMT (Seq SimplifierTrace, a)
190-
runSimplifierLogged env (Simplifier simplifier) =
191-
runReaderT
192-
( runStateT simplifier (initCache, mempty) >>= \(res, (_, logs)) ->
193-
pure (logs, res)
194-
)
195-
env
196-
197189
-- | Run a simplification, returning the results along all branches.
198190
runSimplifierBranch ::
199191
Env ->

0 commit comments

Comments
 (0)