On 24 February 2010 03:24, Robert Bradshaw <[email protected]> wrote:
> On Feb 23, 2010, at 7:13 AM, Lisandro Dalcin wrote:
>
>> Bump!
>>
>> On 18 February 2010 04:27, Stefan Behnel <[email protected]> wrote:
>>> Lisandro Dalcin, 17.02.2010 23:38:
>>>> What is not clear to me is the following: Should "public", "api", or
>>>> "public api" have any semantic diference?
>>>> [...]
>>>> Greg said that he never intended to provide DLL export
>>>> mechanisms, and in fact he just wanted to make stuff available
>>>> across
>>>> compilation units (i.e, make stuff available to other C source files
>>>> being compiled ALONGSIDE the generated C sources to build the final
>>>> ext module). If we enforce this, I mean we are not going to support
>>>> ext module interlinking, then almost the usages of DL_IMPORT/
>>>> DL_EXPORT
>>>> macros are a nonsense and should be removed, alongside almost all
>>>> these dll_linkage arguments in many methods.
>>>> [...]
>>>> So... What do you think?
>>>
>>> My take is that public symbols are only portably usable at static
>>> link
>>> time, so supporting more is simply not worth it. Even static linking
>>> against symbols exported by a Cython module should be a very rare
>>> use case.
>>> It's not used when calling external C code nor is it worth anything
>>> when
>>> providing callbacks into the Cython code. Most of the time, the
>>> external
>>> code will be there first and will be used by the Cython code, not
>>> the other
>>> way round. This mechanism shouldn't be seen as something that's
>>> usable at
>>> dynamic linking time. There's public C-API support for that. I
>>> second your
>>> intuition that the DL_EXPORT stuff can be dropped completely.
>>>
>>
>> OK.
>>
>>> There's also the use case of statically linking multiple Cython
>>> modules
>>> into one extension module. This isn't currently supported (really),
>>> and
>>> there's more to do to make it run smooth.
>>
>> Are you talking about the limitations/gotchas in Python's import.c
>> implementation ?
>>
>>> But I don't think it would
>>> interfere with the above in any way.
>>>
>>
>> Of course.
>>
>> Anyone has something to add? Greg?
>>
>> Still... What should we do with 'public' and 'api' keywords?
>
> I don't really use either, so while I agree that it would be nice to
> clean things up, I don't want to break backwards compatibility.
> (Judging from the lack of activity on this thread though, it seems
> they're not in high demand, though sage-support should be pinged if we
> plan on getting rid of anything.) 'public' should probably still mean
> what it always has.
>

Could you explain me the exact meaning of 'public' (alone, without 'api')?


-- 
Lisandro Dalcin
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to