[Numpy-discussion] Proposed Roadmap Overview

David Cournapeau cournape@gmail....
Fri Feb 17 20:29:35 CST 2012


Le 18 févr. 2012 00:58, "Charles R Harris" <charlesr.harris@gmail.com> a
écrit :
>
>
>
> On Fri, Feb 17, 2012 at 4:44 PM, David Cournapeau <cournape@gmail.com>
wrote:
>>
>> I don't think c++ has any significant advantage over c for high
performance libraries. I am not convinced by the number of people argument
either: it is not my experience that c++ is easier to maintain in a open
source context, where the level of people is far from consistent. I doubt
many people did not contribute to numoy because it is in c instead if c++.
While this is somehow subjective, there are reasons that c is much more
common than c++ in that context.
>
>
> I think C++ offers much better tools than C for the sort of things in
Numpy. The compiler will take care of lots of things that now have to be
hand crafted and I wouldn't be surprised to see the code size shrink by a
significant factor.

There are two arguments here: that c code in numpy could be improved, and
that c++ is the best way to do it. Nobody so far has argued against the
first argument. i think there is a lot of space to improve things while
still be in C.

You say that the compiler would take care of a lot of things: so far, the
main thing that has been mentionned is raii. While it is certainly a useful
concept, I find it ewtremely difficult to use correctly in real
applications. Things that are simple to do on simple examples become really
hard to deal with when features start to interact with each other (which is
always in c++). Writing robust code that is exception safe with the stl
requires a lot of knowledge. I don't have this knowledge. I have .o doubt
Mark has this knowledge. Does anyone else on this list has ?

>>
>> I would much rather move most part to cython to solve subtle ref
counting issues, typically.
>
>
> Not me, I'd rather write most stuff in C/C++ than Cython, C is cleaner ;)
Cython good for the Python interface, but once past that barrier C is
easier, and C++ has lots of useful things.
>>
>> The only way that i know of to have a stable and usable abi is to wrap
the c++ code in c. Wrapping c++ libraries in python  has always been a pain
in my experience. How are template or exceptions handled across languages ?
it will also be a significant issue on windows with open source compilers.
>>
>> Interestingly, the api from clang exported to other languages is in c...
>
>
> The api isn't the same as the implementation language. I wouldn't
prejudge these issues, but some indication of how they would be solved
might be helpful.

I understand that api and inplementation language are not the same: you
just quoted the part where I was mentioning it :)

Assuming a c++ inplementation with a c api, how will you deal with
templates ? how will you deal with exception ? How will you deal with
exception crossing dll/so between different compilers, which is a very
common situation in our community ?

david

>
> <snip>
>
> Chuck
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20120217/5124912a/attachment-0001.html 


More information about the NumPy-Discussion mailing list