-
-
Notifications
You must be signed in to change notification settings - Fork 53
dev call 20231109
Florian Angerer edited this page Dec 7, 2023
·
3 revisions
Stepan, Florian, Antonio, Du Toit, Petr, Tim, Matti, Carl Friedrich
- Python NI
- HPy 0.9 on PyPy
- Cython/HPy
- Since there wasn't overwhelming support, NI is more a research project.
- Petr is focusing on the C API Evolution guidelines.
- Current idea is to implement NI and emulate the legacy API (except of a few APIs that will anyway go away and should have appropriate replacements)
- Which API is NI targeting
- API should be split into two levels:
- Low-level: NI as presented; ABI only (no language-specific API)
- Higher-level (C): some API will map to NI-ABI (this could be HPy, Python C API, PyO3, ...)
- Petr wants to limit the scope of NI to really to the necessary revolution.
- Things under the hood (like vtable) can go in later.
- CPython will never switch to handles; it will always use pointers but
PyObject
will become opaque. However, it is still a pointer and exposing location and identity. - Way forward:
- Add API to CPython
- Antonio is concerned about the ABI explosion:
- ABI3
- ABI4
- NI
- NI + vtable
- HPy universal ?
- Petr thinks the ABIs are subsets of each other. You build for ABI4 and will be compatible to ABI3.
- How to publish on PyPI? Probably need some support from PIP to do renaming or whatever.
- Another idea Petr had: using argument clinic to generate C-specific APIs on top of NI.
- Antonio had the idea to do a C API summit at some popular conference (PyCon US or EuroPython)
- Let's ask some people that we think would be interested in such a summit; maybe also ask on some mailing list with good reachability
- PyPy is very close on finishing HPy 0.9
- 5 September 2024
- 4 April 2024
- 7 March 2024
- 1 February 2024
- 11 January 2024
- 7 December 2023
- 9 November 2023
- 5 October 2023
- 14 September 2023
- 3 August 2023
- 6 July 2023
- 1 June 2023
- 4 May 2023
- 13 April 2023
- 2 March 2023
- 2 February 2023
- 12 January 2023
- 1 December 2022
- 3 November 2022
- 6 October 2022
- 8 September 2022
- 4 August 2022
- 7 July 2022
- 2 June 2022
- 5 May 2022
- 7 April 2022
- 3 March 2022
- 3 February 2022
- 13 January 2022
- 2 December 2021
- 4 November 2021
- 7 October 2021
- 2 September 2021
- 12 August 2021
- 8 July 2021
- 6 May 2021
- 4 March 2021
- 7 January 2021
- 3 December 2020
- 5 November 2020