: Faré On implementations other than ECL (and maybe also MKCL and CLASP), DLL-OP and LIB-OP will capture the outputs of extensions like CFFI, and not of the main Lisp implementation.
Problem is, the extensions need to cooperate, and CFFI doesn't at this time. i.e. they need to compile to .o before they transform the .o into a .so or .a — then LIB-OP and DLL-OP can collect the .o and build a .a or .so respectively.
PS: if someone fixes CFFI, they should *also* use tmpize-pathname then rename-file-overwriting-target to fix the same race condition that otherwise plagues concurrent invocations of ASDF.
Is any CFFI maintainer listening?
: Robert I'm not sure I understand. It sounds like on implementations other than C-based ones, these operations will do something fundamentally different. Or am I misunderstanding? Here's what I think you are saying:
On ECL (and possibly others) after you do a DLL-OP, you get a system that can be loaded as a DLL.
On a "conventional lisp" after you do a DLL-OP, you get a DLL for some subset of the functionality.
So then on ECL you would have a system that you could load by loading the DLL. But on a conventional lisp, if you loaded the DLL, you'd get only a subset of the functionality.
Is that right? If so, it seems that it would be The Wrong Thing to use the same name for both things, because they don't do the same thing.
Well, the idea is as follows: * LIB-OP collects all the .o files for your system in a .a * DLL-OP collects all the .o files for your system in a .so
Now, on a C-based implementation, "all the .o files" means essentially all your system, whereas on other implementations, it means only C extensions that play the game (currently: none).
The idea is that you could always deliver a system (or a system + dependencies) in either one file (.fasl) or two files (.fasl and .so), depending on whether you're on ECL or another implementation.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The Constitution may not be perfect, but it's a lot better than what we've got!