Will this have any impact on the difficulty of finding "where is np.foo or
ndarray.bar implemented"?

On Thu, Oct 7, 2021 at 3:02 PM Sebastian Berg <sebast...@sipsolutions.net>
wrote:

> On Wed, 2021-08-25 at 17:50 -0500, Sebastian Berg wrote:
> > On Wed, 2021-08-25 at 17:48 +0200, Serge Guelton wrote:
> > > Hi folks,
> > >
> > > https://github.com/numpy/numpy/pull/19713 showcases what *could* be
> > > a
> > > first step
> > > toward getting rid of generated C code within numpy, in favor of
> > > some
> > > C++ code,
> > > coupled with a single macro trick.
>
>
> A brief update on this:  The current plan would be to include this in
> the next release.  Largely as a trial balloon, so we see if there are
> any issues, e.g. with deployment, and can revert the changes if there
> are.
>
> That would mean that some time within the next release cycle using C++
> for more things could be on the table and less difficult to discuss.
>
> Not knowing the C++ much myself, I assume that the current approach is
> fine and the only remaining thing is a brief review of the new code to
> ensure correct translation from C.  (Which does not preclude refining
> the C++ code later.)
>
> Cheers,
>
> Sebastian
>
>
> > >
> > > Basically, templated code is an easy and robust way to replace
> > > generated code
> > > (the C++ compiler becomes the code generator when instantiating
> > > code), and a
> > > single X-macro takes care of the glue with the C world.
> >
> > I am not a C++ export, and really have to get to used to this code.
> > So
> > I would prefer if some C++ experts can look at it and give feedback.
> >
> > This will be a bit harder to read for me than our `.c.src` code for a
> > while.  But on the up-side, I am frustrated by my IDE not being able
> > to
> > deal with the `c.src` templating.
> >
> > One reaction reading the X-macro trick is that I would be more
> > comfortable with a positive list rather than block-listing.  It just
> > felt a bit like too much magic and I am not sure how good it is to
> > assume we usually want to export everything (for one, datetimes are
> > pretty special).
> >
> > Even if it is verbose, I would not mind if we just list everything,
> > so
> > long we have short-hands for all-integers, all-float, all-inexact,
> > etc.
> >
> >
> > >
> > > Some changes in distutils were needed to cope with C++-specific
> > > flags, and
> > > extensions that consist in mixed C and C++ code.
> >
> > <snip>
> >
> > > Potential follow-ups :
> > >
> > > - do we want to use -nostdlib, to be sure we don't bring any C++
> > > runtime dep?
> >
> > What does this mean for compatibility?  It sounds reasonable to me
> > for
> > now if it increases systems we can run on, but I really don't know.
> >
> > > - what about -fno-exception, -fno-rtti?
> >
> > How do C++ exceptions work at run-time?  What if I store a C++
> > function
> > pointer that raises an exception and use it from a C program?  Does
> > it
> > add run-time overhead, do we need that `no-exception` to define that
> > our functions are actually C "calling convention" in this regard?!
> >
> > Run-time calling convention changes worry me, because I am not sure
> > C++
> > exception have a place in the current or even future ABI.  All our
> > current API use a `-1` return value for exceptions.
> >
> > This is just like Python's type slots, so there must be "off the
> > shelve" approaches for this?
> >
> > Embracing C++ exceptions seems a bit steep to me right now, unless I
> > am
> > missing something awesome?
> >
> > I will note that a lot of the functions that we want to template like
> > this, are – and should be – accessible as public API (i.e. you can
> > ask
> > NumPy to give you the function pointer).
> >
> > Cheers,
> >
> > Sebastian
> >
> >
> > > - coding style?
> > > - (I'm-not-a-farseer-I-don-t-know-all-topics)
> > >
> > > _______________________________________________
> > > NumPy-Discussion mailing list
> > > NumPy-Discussion@python.org
> > > https://mail.python.org/mailman/listinfo/numpy-discussion
> > >
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion@python.org
> > https://mail.python.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list -- numpy-discussion@python.org
> To unsubscribe send an email to numpy-discussion-le...@python.org
> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
> Member address: jbrockmen...@gmail.com
>
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to