[cffi-devel] uffi.asd vs uffi-compat.asd

Jeff Cunningham j.k.cunningham at comcast.net
Sat Aug 22 17:47:24 UTC 2009


Luís Oliveira wrote:
> That of course is a more general problem that should be solved with
> something like this: <http://paste.lisp.org/display/45282>.
>
> I have seen plenty of people taking advantage of the fact that
> CFFI-UFFI-COMPAT can easily be used as a drop-in replacement for UFFI.
> I have never seen anyone trying to use CFFI-UFFI-COMPAT and UFFI
> simultaneously and I strongly suspect you don't actually have that
> need either.
>
> If for some reason you do need that, it's fairly straightforward to
> use RENAME-PACKAGE to remove CFFI-UFFI-COMPAT's UFFI nickname.
>
>
>   
You are absolutely right - I don't have that need. And so far as I know, 
elephant doesn't either, but I haven't dug into their code. I'm just 
trying to install it to evaluate it. And I have many packages installed 
already that use the CFFI-UFFI-COMPAT capability.


>> Both UFFI and CFFI have a right to exist. The gcc analogy isn't valid -
>> these aren't compilers that users expect to be substituting one for another.
>> It doesn't matter that the CFFI people don't like the style of code writing
>> that goes on in the ELEPHANT group.
>>     
>
> By "the CFFI people" I presume you mean me, since the other CFFI
> developers haven't joined the discussion. I never said I didn't their
> code style.
>
>
>   
Sorry, if I offended you - I didn't mean to offend anybody. I am new to 
this list and don't know who the developers are. I used the term "CFFI 
people" as a general term to refer to whoever it was on the list who was 
criticizing the elephant code rather than deal with the problem which I 
believe was created here by a using the uffi.asd name which was bound to 
lead to confusion in installations. I think if you asked any randomly 
100 selected  users _not_ involved in either of these groups, 98 of them 
would side with me on this.

>> They chose to use UFFI for whatever
>> reason and should have the right to expect that some other development group
>> won't break their code via the ASDF package system unless there is a
>> dependency relationship.
>>     
>
> How are we breaking their code? Just don't use CFFI-UFFI-COMPAT. If I
> just rename the system, Elephant/clbuild won't work either. That was
> my first concern.
>   
I don't understand this comment. Please explain. Elephant isn't trying 
to use it. It depends on UFFI which wants to see uffi.asd in 
asdf:*central-registry*. But when it goes there, it gets diverted to 
your version which breaks it.

Yet, I have other codes - many - which use CFFI, so I don't want to 
remove that. Its a great package. What does that have to do with clbuild?
>
>   
>> Since UFFI came up with the name first, I believe most people would agree
>> they have a prior right to the name.
>>     
>
> Nobody is arguing that.
>
>
>   
>> I think you should change the name of your file to uffi-cffi-compat.asd
>>     
>
> Like I said, I have no problem with that and I agree that it's the
> best way in principle.  However, I have a couple of concerns that I've
> mentioned in my previous email which you decided to ignore and instead
> paint this as some personal conflict between the UFFI and CFFI
> developers. That was unfortunate.
>
>   
Sorry, I'm not trying to paint a conflict, and certainly nothing of a 
personal nature. I'm just trying to get this resolved in what I think is 
the right way. I can't see anyway to resolve that doesn't involve some 
pain somewhere. I'm trying to take the long view, and in my opinion, the 
long view should be to improve the utility of Common Lisp, not UFFI or 
CFFI.

I don't see how you can argue that anyone should be able to set up a 
package so that when using common automated methods to create links from 
asd files it effectively masks another group's package is reasonable. As 
someone pointed out, it can be worked around, but only by excluding one 
link altogether, which is just as draconian and undesirable. If you 
would just name it something unique, they could both coexist and anyone 
could chose what they wanted to use.

>   
>> Then, inform your users of the fact, and if they were relying on an implicit
>> use of CFFI in place of UFFI they should change their projects to explicitly
>> use CFFI by way of this definition file.
>>     
>
> Not sure if this is what you mean, but some projects do indeed already
> use cffi-uffi-compat explicitly (e.g., Edi Weitz's CL-GD uses it in
> order to support CLISP.) but others don't, namely CL-SQL.
>
>   
> Bottom line is, if I rename CFFI's uffi.asd, it'll just break a bunch
> stuff within clbuild and Elephant still won't work out of the box. I
> don't see how that could be regarded as an improvement.
>
> I would be glad to work with you to solve the problem, but renaming
> uffi.asd is clearly not the first step.
>
>   
What, specifically, will break if you rename uffi.asd to 
cffi-uff-compat.asd? One solution would be to contact cl-sql devs and 
tell them you are going to change it. Give them a heads up. I'm guessing 
Edi already saw the potential problem and used the unique name in 
advance. Can you think of a single other package?

And, elephant works just fine out of the box so far as their claims go - 
if I rename your compatibility definition file something else. 

--Jeff Cunningham
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20090822/7b990dbd/attachment.html>


More information about the cffi-devel mailing list