[cffi-devel] Merging the cffi+lotsastuff branch; new dependencies
dherring at tentpost.com
dherring at tentpost.com
Tue Apr 8 05:30:53 UTC 2008
On Mon, 7 Apr 2008, Attila Lendvai wrote:
> On Mon, 7 Apr 2008, Daniel Herring wrote:
>> I'd prefer if you held off on this one.
>>
>> In particular, trivial-features bothers me. Libraries probably
>> shouldn't modify the features set by an implementation. I would feel
>> much more comfortable if all names were prefixed to reduce conflict.
>> e.g. set :tf-darwin and :tf-linux instead of :darwin and :linux
>
>
> fwiw, i don't see in what way would it be better if the otherwise
> obvious symbol names were prefixed. it would just make the user code
> less readable. if tf modifies *features* in a wrong way then it needs
> to be fixed.
Until we get a CDR/other generally accepted spec on how *features* should
reflect the platform, there are no wrong settings in *features*. Since
this is a global value, special care must be taken to not break code which
has already been tuned for an implementation. It seems rude for a nested
library to change common global settings.
Putting a prefix on all customized features
- minimizes conflicts with implementation-specific flags
- is explicit about intent; #+:unix says "I want unix".
#+:tf-unix says "I want a tf-compliant unix".
Since we probably can't alter the spec, a prefix may be reasonable.
>> Is there a structural reason to merge grovel with cffi? If not, could
>> they stay separate? Does that reduce the core CFFI dependencies? You
>> probably integrated grovel for trivial-features... Could tf search for
>> :cffi-grovel in *features* and implement a fallback if not found?
>
> i'm not following you on this... cffi-grovel is a standalone .asd
> already, it's just practical to keep it in the same repo as cffi
> itself because it tightly depends on cffi and it's rather small to be
> a separate project.
This branch adds three new dependencies. Babel for string translation is
understandable. Alexandria and trivial-features are somewhat less
obvious. Without reading the darcs branch, I was trying to ask whether
these dependencies are only due to the integration of cffi-grovel, or
whether they were being used in the core cffi functions as well.
If the core cffi is introducing these dependencies, then I'm checking that
we gain something tangible in return. If these two are just for
cffi-grovel, but cffi can be used without grovel, then sure; add grovel to
cffi, but please make it clear in the install docs which deps are needed
for what. Something like "Babel is needed for CFFI; Alexandria and
trivial-features are only used by cffi-grovel."
I don't want to hold things back (cue CFFI-0.9.2 vs debian-stable jokes);
but I would like to avoid unnecessary dependencies.
Later,
Daniel
More information about the cffi-devel
mailing list