[cffi-devel] mid-level implementation-specific patches (was: uffi and CUSTOM:* FOREIGN-ENCODING* from clisp)

Hoehle, Joerg-Cyril Joerg-Cyril.Hoehle at t-systems.com
Fri Dec 9 18:22:02 UTC 2005


Hi,

Pascal Bourguignon's proposed patch to src/strings.lisp adds
#+clisp, #-clisp to the source. (cf. mailing archives from Mid-November).

I noticed the wide lack of such #+implementation-specific code in the CFFI sources. I like it, but it's limited. I would like to ask what are your thoughts on integration of such code?

I.e., there are a few places (e.g. in strings.lisp) where the CLISP version could clearly benefit from specific code. One of the typical improvements is to get rid of (loop ... do mem-ref #) to copy array contents elementwise and have the FFI built-ins handle them (using native loops). Remember, LOOP compiles to byte code, not tight memcpy()-like code that CMUCL can achieve.
BTW, what happened to the proposed block memory interface?

The general idea is that while the low-level API is fine, as it is currently split across each implementation in cffi-xyz.lisp, there's also a need for high-level implementation-specific optimizations.
Remember, as Peter Norvig said, a Lisp compiler is not going to help optimizing a Prolog compiler implemented in Lisp. Prolog needs its own optimizations. Same for FFI code.

Regards,
	Jörg Höhle.



More information about the cffi-devel mailing list