:claw honing - First milestone11 Aug 2020
Huge first milestone for
:claw honing is reached - I’ve run C++ library
routines (PhysX) from Common Lisp
without writing any
C/C++ myself, without writing any bindings
C adapter and
CL bindings, I only built the former
and called the latter.
This is an important proof of the concept:
- C wrapper generation for C++ is possible with
libclang) - no need to dive into llvm/clang development libraries any deeper, or so it seems so far.
99% work done, so only another 99% left.
I’ve switched from
PhysX wrapping, because the latter one
requires much less work to get it actually running.
Filament comes after.
Next I’ll slowly start bringing
:claw level of C++ wrapping support to that of
C while adding any missing C++ features I’ll stumble upon. Then polishing and
code cleanup - it’s got a bit messy in the process. Hopefully, I won’t be burnt
out by then completely and will be able to add proper documentation, so anyone
else would be able to enjoy
I also decided to add system generation capability to
:claw. At the moment, it
works similar way
cl-autowrap operates - you have primary macro with
configuration that expands into bindings. For that to work, you need to load
:claw bundle and that’s totally an overkill - you don’t need any parsing
and autogeneration when only thing you want is to load pregenerated bindings. So
:claw will have an option to generate an ASDF system for you to do just that -
load bindings for the architecture of your choice.
Basically, you would use system with primary macro to generate bindings and an
ASDF system to load them, then in your project that needs those bindings you
would depend directly on this generated system rather than on
:claw is performance-oriented first and it also cares about image size of your