mirror of
https://github.com/edwinb/Idris2-boot.git
synced 2024-12-25 05:43:19 +03:00
bb246a072a
Functions can be declared as %foreign with a list of calling conventions, which a backend will work through until it finds one it can understand. Currently implemented only in Chez backend. If this works out, I'll implement it for Racket too, and remove the old primitive functions. There's a bit more boiler plate here than before, but it has the benefit of being more extensible and portable between different back ends. Some examples, pending proper documentation: %foreign "C:puts,libc" "scheme:display" putline : String -> PrimIO () %foreign "C:exp, libm.so.6, math.h" fexp : Double -> Double %foreign "C:initscr, ncurses_glue.so, ncurses.h" prim_initscr : PrimIO () |
||
---|---|---|
.. | ||
chez | ||
chicken | ||
racket |