Using a cl_object in Lisp

Stewart M. sjm-mail at protonmail.com
Sat Jul 28 22:40:12 UTC 2018


To clarify, the issue is not with C++, which I am successfully wrapping with C.

The actual issue is using the c_object type in Lisp--if it comes back as a CFFI pointer, how can I use it in Lisp as a Lisp object?  Is there something like:

  (ffi:pointer-to-lisp-object ptr)

--
Stewart Milberger
Kavalogic, Inc.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On July 28, 2018 2:46 PM, Stewart M. <sjm-mail at protonmail.com> wrote:

> I am using CFFI with ECL to interface to a C++ library, which has a C++ class with a data member of type 'cl_object'.  Simplified, my C++ code is:
>
>   class LispObject
>   {
>   public:
>     cl_object object;
>   };
>
>   extern "C" cl_object getObject(LispObject* lo) { return lo->object; }
>   extern "C" void setObject(LispObject* lo, cl_object clo) { lo->object = clo; }
>
> The full code is:
>
>   https://common-lisp.net/viewvc/clive/trunk/src/extensions/corral/CliveCorral/LispObjectImpl.hpp?revision=149&view=markup#l59
>
> Can I somehow declare the 'cl_object' type for the 'getValue()' and 'setValue()' functions using CFFI 'defcfun' to get and set ECL objects?  Is there a technique using the lower-level FFI?  I am looking for a way to do this without compiling C code embedded in Lisp, which I am aware ECL can do.
>
> Thank you for any ideas!
>
> --
> Stewart Milberger
> Kavalogic, Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20180728/d7ae493a/attachment.html>


More information about the ecl-devel mailing list