On Sat, Feb 18, 2012 at 5:18 PM, Matthew Brett <matthew.br...@gmail.com> wrote:
> Hi,
>
> On Sat, Feb 18, 2012 at 2:54 PM, Travis Oliphant <tra...@continuum.io> wrote:
>>
>> On Feb 18, 2012, at 4:03 PM, Matthew Brett wrote:
>>
>>> Hi,
>>>
>>> On Sat, Feb 18, 2012 at 1:57 PM, Travis Oliphant <tra...@continuum.io> 
>>> wrote:
>>>> The C/C++ discussion is just getting started.  Everyone should keep in mind
>>>> that this is not something that is going to happening quickly.   This will
>>>> be a point of discussion throughout the year.    I'm not a huge supporter 
>>>> of
>>>> C++, but C++11 does look like it's made some nice progress, and as I think
>>>> about making a core-set of NumPy into a library that can be called by
>>>> multiple languages (and even multiple implementations of Python), tempered
>>>> C++ seems like it might be an appropriate way to go.
>>>
>>> Could you say more about this?  Do you have any idea when the decision
>>> about C++ is likely to be made?  At what point does it make most sense
>>> to make the argument for or against?  Can you suggest a good way for
>>> us to be able to make more substantial arguments either way?
>>
>> I think early arguments against are always appropriate --- if you believe 
>> they have a chance of swaying Mark or Chuck who are the strongest supporters 
>> of C++ at this point.     I will be quite nervous about going crazy with 
>> C++.   It was suggested that I use C++ 7 years ago when I wrote NumPy.   I 
>> didn't go that route then largely because of compiler issues,  ABI-concerns, 
>> and I knew C better than C++ so I felt like it would have taken me longer to 
>> do something in C++.     I made the right decision for me.   If you think my 
>> C-code is horrible, you would have been completely offended by whatever C++ 
>> I might have done at the time.
>>
>> But I basically agree with Chuck that there is a lot of C-code in NumPy and 
>> template-based-code that is really trying to be C++ spelled differently.
>>
>> The decision will not be made until NumPy 2.0 work is farther along.     The 
>> most likely outcome is that Mark will develop something quite nice in C++ 
>> which he is already toying with, and we will either choose to use it in 
>> NumPy to build 2.0 on --- or not.   I'm interested in sponsoring Mark and 
>> working as closely as I can with he and Chuck to see what emerges.
>
> Would it be fair to say then, that you are expecting the discussion
> about C++ will mainly arise after the Mark has written the code?   I
> can see that it will be easier to specific at that point, but there
> must be a serious risk that it will be too late to seriously consider
> an alternative approach.
>
>>> Can you say a little more about your impression of the previous Cython
>>> refactor and why it was not successful?
>>>
>>
>> Sure.  This list actually deserves a long writeup about that.   First, there 
>> wasn't a "Cython-refactor" of NumPy.   There was a Cython-refactor of SciPy. 
>>   I'm not sure of it's current status.   I'm still very supportive of that 
>> sort of thing.
>
> I think I missed that - is it on git somewhere?
>
>> I don't know if Cython ever solved the "raising an exception in a 
>> Fortran-called call-back" issue.   I used setjmp and longjmp in several 
>> places in SciPy originally in order to enable exceptions raised in a 
>> Python-callback that is wrapped in a C-function pointer and being handed to 
>> a Fortran-routine that asks for a function-pointer.
>>
>> What happend in NumPy, was that the code was re-factored to become a 
>> library.   I don't think much NumPy code actually ended up in Cython (the 
>> random-number generators have been in Cython from the beginning).
>>
>>
>> The biggest problem with merging the code was that Mark Wiebe got active at 
>> about that same time :-)   He ended up changing several things in the 
>> code-base that made it difficult to merge-in the changes.   Some of the 
>> bug-fixes and memory-leak patches, and tests did get into the code-base, but 
>> the essential creation of the NumPy library did not make it.   There was 
>> some very good work done that I hope we can still take advantage of.
>
>> Another factor.   the decision to make an extra layer of indirection makes 
>> small arrays that much slower.   I agree with Mark that in a core library we 
>> need to go the other way with small arrays being completely allocated in the 
>> data-structure itself (reducing the number of pointer de-references
>
> Does that imply there was a review of the refactor at some point to do
> things like benchmarking?   Are there any sources to get started
> trying to understand the nature of the Numpy refactor and where it ran
> into trouble?  Was it just the small arrays?
>
>> So, Cython did not play a major role on the NumPy side of things.   It 
>> played a very nice role on the SciPy side of things.
>
> I guess Cython was attractive because the desire was to make a

Sorry - that should read "I guess Cython was _not_ attractive ... "

> stand-alone library?   If that is still the goal, presumably that
> excludes Cython from serious consideration?  What are the primary
> advantages of making the standalone library?  Are there any serious
> disbenefits?

Best,

Matthew
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to