Skip to content

Dev Call: 7 October 2021

Tim Felgentreff edited this page Oct 8, 2021 · 2 revisions

Present

Tim, Florian, Stepan, Mohaned, Matti, Antonio, Simon

Notes

Florian

  • hpy_basic example running in Cython.
    • Matti & Stefan Behnel had an "easy" idea for HPy support in Cython. Florian's changes are a bit more invasive.
    • Florian will try to push his changes to a public repo soon so Matti and Stefan can take a look.

Stepan

  • HPy_BuildValue PR is open with multiple packing/unpacking specifiers (not all)
  • Currently working on debug mode for HPy_UnicodeAsUTF8.
    • We had some discussion around how portable vs efficient the debug mode has to be.
  • BEGIN_ALLOW_THREADS is used in psutil, which Stepan has ported
    • We decided to keep it, because it doesn't mean you have to have a GIL.
    • Maybe in the future we can allow extensions to declare they are fully thread-safe and reentrant, so impls without a GIL do not have to take a lock when calling into them
  • discussed fast iteration over PyObject** items via the PySequence_Fast* functions
    • we're not going to address this issue now
    • Matti + Stepan suggested we might offer some kind of iteration API
    • Stefan said that passing a function ptr into a `forEach function is bad for the C compiler, and mentioned that GNU R has an API with a buffer that is filled with parts of the sequence and then an explicit loop, which happens to vectorize well.
    • Anto mentioned there was early discussion on this: https://github.com/hpyproject/hpy/blob/master/docs/api.md#specialized-protocols

Matti

  • PyPy release in a week will also support 0.0.3
  • Cython merge discussion
    • it would be nice if we could merge something that can be called "alpha" at some point for a Cython release
    • maybe when the piconumpy.pyx runs we should propose it

Mohaned

  • matplotlib partial porting in progress
  • PyArgParseTuple can use custom converters that expect PyObject* - these would need to be ported to HPy for the argument parsing

Anto

  • we should define a mixed mode and pure mode compilation, where we disallow Python.h includes completely
Clone this wiki locally