Ah yeah I didn't put #-ecl(error "This is ECL only") in there yet. That's a day 1 thing ;p. I'm using the low level embeddable common lisp compiler sffi package, which is basically just this:
```
(ffi:clines "#include <stdio.h>")
(let ((some 0) (variables "!"))
(declare (:string variables) (:int some))
(ffi:c-progn (some variables)
"printf(\"%d %s\", #0++, #1);" ; ugh, yes, you have to ennumerate them in C
(print `(,some ,variables))))
;;(I should double check I got the string <-> automatic cstring thing right)
```
I have found that just using the ECL compiler (common lisp but it's just a C library) is more reliably portable than the c2ffi based cffi, which doesn't have a port to openbsd for example. So we are kind of opposite, in that yours preserves behaviours against many backends right? Whereas mine is just a minimally serviceable seat-of-the-pants.