Virgil

Virgil is a high-level and extensible FFI, built on top of CFFI and oriented towards marshaling? lisp data into raw memory and back.

Unlike CFFI, it does have convenient support for marshaling aggregate data types(structures, arrays etc), and may even handle circular references.

Also, it is highly extensible - function that parses foreign type specifications is exposed to the library user.

Other features include "reference" types(changes in raw-memory representation of lisp data are reflected on it), convenient pointer arithmetics, aligned allocation, flexible foreign name translation and unnamed structure and union support.

It currently supports x86? and x86-64? platforms.

Unfortunately, it has no documentation at the moment.

Have a look at github repo.


This page is linked from: doors  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively