aboutsummaryrefslogtreecommitdiff
path: root/src/ForwardAD.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2025-11-03 22:43:40 +0100
committerTom Smeding <tom@tomsmeding.com>2025-11-03 23:06:55 +0100
commit477b1b0481579519f26153c729daa6a041ed945d (patch)
treeb74f68c6ae39e24d71576158ffb232296c5badee /src/ForwardAD.hs
parent3d1b4b9c2aec604513f04aaae8534936432c8918 (diff)
test: Proper intermixing of GCC warnings with test output
Diffstat (limited to 'src/ForwardAD.hs')
-rw-r--r--src/ForwardAD.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ForwardAD.hs b/src/ForwardAD.hs
index b353def..6655423 100644
--- a/src/ForwardAD.hs
+++ b/src/ForwardAD.hs
@@ -254,8 +254,10 @@ makeFwdADArtifactInterp env expr =
in FwdADArtifact env (typeOf expr) (\inp -> interpretOpen False (dne env) inp dexpr)
{-# NOINLINE makeFwdADArtifactCompile #-}
-makeFwdADArtifactCompile :: SList STy env -> Ex env t -> IO (FwdADArtifact env t)
-makeFwdADArtifactCompile env expr = FwdADArtifact env (typeOf expr) . (unsafePerformIO .) <$> compile (dne env) (dfwdDN expr)
+makeFwdADArtifactCompile :: SList STy env -> Ex env t -> IO (FwdADArtifact env t, String)
+makeFwdADArtifactCompile env expr = do
+ (fun, output) <- compile (dne env) (dfwdDN expr)
+ return (FwdADArtifact env (typeOf expr) (unsafePerformIO . fun), output)
drevByFwdInterp :: SList STy env -> Ex env t -> SList Value env -> Rep (Tan t) -> SList Value (TanE env)
drevByFwdInterp env expr = drevByFwd (makeFwdADArtifactInterp env expr)