On Wed, Aug 1, 2018 at 6:27 PM Stephan Hoyer <shoyer@gmail.com> wrote:
I propose to accept NEP-18, "A dispatch mechanism for NumPy’s high level array functions":

Since the last round of discussion, we added a new section on "Callable objects generated at runtime" clarifying that to handle such objects is out of scope for the initial proposal in the NEP.

If there are no substantive objections within 7 days from this email, then the NEP will be accepted; see NEP 0 for more details.

Skipping over all the discussion following this for brevity. I find myself in general agreement with Stephan and think we should go ahead and merge this. A few points:
  1. I don't think we should have an opt in environment variable, just put `__array_function__` out there with the understanding that it might change with experience. I don't think scores, let alone thousands, of folks are going to rush to take advantage of this, most likely the developers of the proposal will be the early adopters.
  2. I have a preference for implementing high level functions rather than low level, and fewer rather than more, with the choice driven by need. I think that will limit the amount of interdependence tangle and, in the long run, might serve to define an unofficial NumPy API.
  3. NumPy cannot manage all the projects that make use of the new option to keep them in sync, we have neither the time nor experience to do so, and historic attempts along those lines tended to die in obscurity. To the extent that we do so, it comes down to 2.
  4. I don't think this conflicts with Nathaniel's proposal, the main disagreement seems to over how to proceed and the selection of functions, see 2.
  5. The `__array_function_types__` idea looks interesting.