First, thanks for making this system, and apologies if this isn;t the list for these questions but there appears to be no cffi-users list.
In any case, is there any way to catch the underlying c++ exceptions within a cffi-wrapper? I have developed a C++ library that defines its own exceptions and I would like to trap them and generate an appropriate Lisp Condition. At present deliberately triggering an error (say by passingincorrect parameters to a constructor) gives me back a null pointer.
Btw, do you call out to your library, or you plan to just generate exceptions?
If you do call out, how do you manage it?
I mean, C++ name mangling is hard to keep with, etc...
I call out the library using the cffi foreign-function wrapper. as per the example in the cffi manual. What I ended up doing was making use of SWIG. Swig can both parse C++ and generate CFFI wrappers and so I called it to generate the wrappers. However the existing code in swig has issues so I was forced to hand-edit some of it. It succeeded in handling the name-mangling and so on but its attempted clos wrapper for the C++ had one distinct problem, every method had an extra argument.
It duitifully generated a wrapper for the exception class that I defined in C++ however objects of that instance are not, seemingly, returned by the library at points where they should be. Rather I get (what appears to be) a null pointer instead. I have not yet explored the potential for trapping that pointer as an exception however.
Thanks, Collin Lynch.
regards, Samium Gromoff
Felicitations, Collin Lynch.