lean4-karray
A WIP package that allows automatic C code generation for functions defined in Lean.
Usage
Setup KArray according to our example. It will allow
you to use the kcompile tag in your functions.
The kcompile tag needs to be used along with the extern tag. Example:
import KArray
instance : Reflected Float := ⟨"double"⟩
@[kcompile, extern "c_my_fun"] def myFun (x : Float) := x
KArray will then generate a C file with a function called c_my_fun, using
double as the reflected type for Lean's Float.
You can now run the kcompile script to generate the C file:
$ lake script run kcompile
If you create other functions of change the ones tagged with kcompile, you
will need to run the script again.
After the C file has been generated and your lakefile.lean has been configured,
you're good to call
$ lake build
Which will generate the executable file for your application.