-
-
Notifications
You must be signed in to change notification settings - Fork 52
Dev Call: 4 November 2021
Tim Felgentreff edited this page Dec 2, 2021
·
1 revision
Ronan, Stepan, Florian, Tim, Anto, Simon
- Status of Numpy
- tp_dealloc -> tp_finalize
- transforming tp_traverse
- setting it up to use HPy_Field => see discussion of HPy_GetContext
- We may need a HPy_GetContext
- otherwise almost everything needs to be migrated immediately
- similar problems will come up when migrating pybind11, which has c++ operators which do
Py_
calls - discussing HPy_Context stack for nested downcalls?
- HPy_GetContext would give the top of the stack context
- Simon proposal:
HPy_MakeContext
that gives you a context that you should not hold on to - Stepan proposal: use a trampoline to go through the runtime to call back into our converted function that takes
HPy_Context*, void*
- get the trampoline function from the context and keep it around
- when we need a context, we call the trampoline with the migrated function that does take the context and additional void* args
- tp_finalize is supported in NumPy and can upcall arbitrary code
- guaranteed to be called once exactly, even though it can resurrect; same as
__del__
on the Python level
- guaranteed to be called once exactly, even though it can resurrect; same as
- weak referencable types need special handling for CPython
- use a flag on HPy to declare a type as weak referencable
- 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