Bundle operations

Faré fahree at gmail.com
Tue Sep 8 19:03:03 UTC 2015


>>: 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!



More information about the asdf-devel mailing list