Hello, everyone,
I've got elephant working along with cffi. Both cffi and elephant need to be patched for this to work, the patches for cffi were already made in the cffi mailing list. The patch was made against elephant-unstable. There were some incompatible changes in elephant, but I've separated those using #-elephant-cffi, what makes elephant also work with uffi. The file elephant.asd detects whether the asdf component :uffi is actually :cffi-uffi-compat, in which case the key :elephant-cffi is pushed into *features*, so everything is done automatically.
I compiled elephant with :elephant-without-optimize and tested the tutorial (with a :bdb 4.7 database). I'll test without the key :elephant-without-optimize later.
I believe this port helps with elephant optimization. For instance, cffi mem-ref is already optimized using implementation specific details (using compiler macros) so I think implementation specific optimizations are not needed anymore. Otherwise it should be possible to do the optimizations in cffi itself. Also cffi does not allocate aliens (my sbcl emits style-warnings complaining about that when using uffi).
Gustavo.
Hello again,
Sorry for the amount of noise. A new patch is needed for cffi, this should be the last one for now. This one supersedes the previous ones.
Gustavo.
2010/8/11 Gustavo gugamilare@gmail.com
Hello, everyone,
I've got elephant working along with cffi. Both cffi and elephant need to be patched for this to work, the patches for cffi were already made in the cffi mailing list. The patch was made against elephant-unstable. There were some incompatible changes in elephant, but I've separated those using #-elephant-cffi, what makes elephant also work with uffi. The file elephant.asd detects whether the asdf component :uffi is actually :cffi-uffi-compat, in which case the key :elephant-cffi is pushed into *features*, so everything is done automatically.
I compiled elephant with :elephant-without-optimize and tested the tutorial (with a :bdb 4.7 database). I'll test without the key :elephant-without-optimize later.
I believe this port helps with elephant optimization. For instance, cffi mem-ref is already optimized using implementation specific details (using compiler macros) so I think implementation specific optimizations are not needed anymore. Otherwise it should be possible to do the optimizations in cffi itself. Also cffi does not allocate aliens (my sbcl emits style-warnings complaining about that when using uffi).
Gustavo.