17 | module Compiler.Stablehlo.Dialect.Version
20 | import Compiler.String
22 | ffi : String -> String
23 | ffi = libxla "c/stablehlo/dialect/Version.h"
26 | data Version = MkVersion GCAnyPtr
28 | %foreign (ffi "Version_delete")
29 | prim__delete : AnyPtr -> PrimIO ()
31 | %foreign (ffi "Version_getCurrentVersion")
32 | prim__versionGetCurrentVersion : PrimIO AnyPtr
35 | getCurrentVersion : HasIO io => io Version
36 | getCurrentVersion = do
37 | version <- primIO $
prim__versionGetCurrentVersion
38 | version <- onCollectAny' version (primIO . prim__delete)
39 | pure (MkVersion version)
41 | %foreign (ffi "Version_toString")
42 | prim__versionToString : GCAnyPtr -> PrimIO AnyPtr
45 | toString : HasIO io => Version -> io CppString
46 | toString (MkVersion version) = do
47 | str <- primIO $
prim__versionToString version
48 | pure (MkCppString str)