Skip to content

Commit 3b2ab2d

Browse files
authored
Merge pull request #1980 from GaloisInc/T1979-ffi-build-fixes
FFI-related build fixes (#1979)
2 parents 22a92d7 + c4c39a8 commit 3b2ab2d

File tree

3 files changed

+27
-31
lines changed

3 files changed

+27
-31
lines changed

cryptol.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ flag ffi
4747
library
4848
Default-language:
4949
Haskell2010
50-
Build-depends: base >= 4.9 && < 5,
50+
Build-depends: base >= 4.9 && < 4.20,
5151
aeson >= 2.0 && < 2.3,
5252
arithmoi >= 0.12,
5353
async >= 2.2 && < 2.3,

src/Cryptol/Eval/FFI.hs

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,30 @@ module Cryptol.Eval.FFI
99
, evalForeignDecls
1010
) where
1111

12-
import Cryptol.Eval.FFI.ForeignSrc
13-
( ForeignSrc)
14-
#ifdef FFI_ENABLED
15-
import Cryptol.Eval.FFI.ForeignSrc
16-
(ForeignImpl, loadForeignImpl )
17-
#else
18-
import Cryptol.Parser.AST (ForeignMode)
19-
#endif
20-
import Cryptol.Eval.FFI.Error ( FFILoadError )
21-
import Cryptol.Eval (Eval, EvalEnv )
22-
import Cryptol.TypeCheck.AST
23-
( FFI(..), TVar(TVBound), findForeignDecls )
24-
import Cryptol.TypeCheck.FFI.FFIType ( FFIFunType(..) )
12+
import Cryptol.Eval.FFI.ForeignSrc (ForeignSrc)
13+
import Cryptol.Eval.FFI.Error (FFILoadError)
14+
import Cryptol.Eval (Eval, EvalEnv)
15+
import Cryptol.ModuleSystem.Name (Name)
16+
import Cryptol.TypeCheck.AST (FFI(..), findForeignDecls)
2517

2618
#ifdef FFI_ENABLED
2719

28-
import Data.Either(partitionEithers)
29-
import Data.Traversable(for)
30-
import Cryptol.Backend.Concrete
31-
import Cryptol.Backend.Monad
32-
import Cryptol.Eval.Env
33-
import Cryptol.Eval.Prims
34-
import Cryptol.Eval.Type
35-
import Cryptol.Eval.Value
36-
import Cryptol.ModuleSystem.Name
37-
import Cryptol.Utils.Ident
38-
import Cryptol.Eval.FFI.C(callForeignC)
39-
import Cryptol.Eval.FFI.Abstract(callForeignAbstract)
20+
import Data.Either (partitionEithers)
21+
import Data.Traversable (for)
22+
23+
import Cryptol.Backend.Concrete (Concrete)
24+
import Cryptol.Backend.Monad (io)
25+
import Cryptol.Eval.Env (bindVarDirect)
26+
import Cryptol.Eval.FFI.Abstract (callForeignAbstract)
27+
import Cryptol.Eval.FFI.C (callForeignC)
28+
import Cryptol.Eval.FFI.ForeignSrc (ForeignImpl, loadForeignImpl)
29+
import Cryptol.Eval.Prims (Prim(..))
30+
import Cryptol.Eval.Type (TypeEnv, bindTypeVar)
31+
import Cryptol.Eval.Value (GenValue, Backend(SEval))
32+
import Cryptol.ModuleSystem.Name (nameIdent)
33+
import Cryptol.TypeCheck.AST (TVar(TVBound))
34+
import Cryptol.TypeCheck.FFI.FFIType (FFIFunType(..))
35+
import Cryptol.Utils.Ident (unpackIdent)
4036

4137
#endif
4238

@@ -70,7 +66,7 @@ foreignPrimPoly cc name impl =
7066
foreignPrim ::
7167
FFIFunType t ->
7268
(TypeEnv -> [(t,GenValue s)] -> SEval s (GenValue s)) ->
73-
Prim s
69+
Prim s
7470
foreignPrim ft k = buildNumPoly (ffiTParams ft) mempty
7571
where
7672
buildNumPoly (tp:tps) tenv = PNumPoly \n ->
@@ -90,4 +86,4 @@ evalForeignDecls :: ForeignSrc -> [(Name, FFI)] -> EvalEnv ->
9086
Eval ([FFILoadError], EvalEnv)
9187
evalForeignDecls _ _ env = pure ([], env)
9288

93-
#endif
89+
#endif

src/Cryptol/Eval/FFI/Abstract/Call.hsc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@ runFFI ::
5757
runFFI args ty k =
5858
allocaBytes #{size struct CryValImporter} $ \robj ->
5959
allocaBytes #{size struct CryValExporter} $ \aobj ->
60-
60+
6161
do expS <- cryStartExport args
6262
#{poke struct CryValExporter, self} aobj expS
6363
#{poke struct CryValExporter, recv_u8} aobj cry_recv_u8_addr
6464
#{poke struct CryValExporter, recv_u64} aobj cry_recv_u64_addr
6565
#{poke struct CryValExporter, recv_double} aobj cry_recv_double_addr
6666
#{poke struct CryValExporter, recv_u64_digits} aobj cry_recv_u64_digits_addr
67-
impS <- cryStartImport ty
67+
impS <- cryStartImport ty
6868
#{poke struct CryValImporter, self} robj impS
6969
#{poke struct CryValImporter, send_bool} robj cry_bool_addr
7070
#{poke struct CryValImporter, send_small_uint} robj cry_small_uint_addr
@@ -74,7 +74,7 @@ runFFI args ty k =
7474
#{poke struct CryValImporter, send_new_large_int} robj cry_large_int_addr
7575
#{poke struct CryValImporter, send_sign} robj cry_sign_addr
7676
callForeignImpl k [SomeFFIArg aobj, SomeFFIArg robj] :: IO ()
77-
77+
7878
-- callFFI k retVoid [argPtr aobj, argPtr robj]
7979
cryEndExport expS
8080
cryFinishImport impS

0 commit comments

Comments
 (0)