Python for .NET working group meeting notes from Tuesday, September 24, 2019
Attendees: Mark Visser (Unity), Benoit Hudson & Felix Bourbonnais (ImgSpc), Victor Milovanov, Mohamed Koubaa (ANSYS Inc), Amos Li Agenda 1. (Mark) Suggest we use a "needs discussion" label on issues and PRs for next time. Then we can just go through them on the call. 2. (Mark) Can we get a status update on joining the .NET Foundation? Github issue: Joining the .NET Foundation <https://github.com/pythonnet/pythonnet/issues/956> 3. (Benoit) Python can't reliably re-initialize; new proposal for Unity's domain reload <https://github.com/pythonnet/pythonnet/issues/957> 4. (Benoit) What's the policy with the GIL? Main thread appears to be grabbing the lock and not releasing it. 5. (Mohamed) Can I get clarification on IWrapper vs. reflection for PR #808? Notes Welcome to new contributor Mohamed Koubaa (ANSYS), who is investigating moving his company's platform from IronPython to CPython. 1 & 2) need input from Benedikt, Mark will follow up with Benedikt. 4) Benoit: GIL - Should we expect the GIL to be held after initialization? Victor: I wouldn't expect it to be held. [PyGIL] attribute is informational. 3) Benoit: Python can't reliably re-initialize. last fall's work - force PyFinalize to be called unfortunately doesn't work for native extensions - can't reliably reinitialize proposal instead of calling PyFinalize, delete all links from Python to C# Felix prototyped a solution that tracks all links during proxy generation and cuts all links during domain shutdown to prevent dereference of dead pointers result is just AttributeError instead of crash Amos proposed a different solution which seems to be targeting memory leaks Victor: what about memory leaks? C# side deletes all of its memory If C# holds a reference to Python, it will still exist when C# shuts down - no problem Amos: has a branch that solves one of the problems Benoit & Felix will investigate his branch and see where it intersects with their solution the reason we're using pythonnet is to enable PySide/PyQt and numpy among others 5) Mohamed: Working on a small change to implement the wrapper function for console output via __repr__ https://github.com/pythonnet/pythonnet/pull/808 inheritance over reflection, IWrapper vs. method with a signature Pythonnet can reflect what are the pros and cons? should we go with a convention? Victor: you can take the reflection approach, but need to cache the delegates more of an implementation detail, not actually necessary (note: any errors in the above are mine, feel free to correct any gross misrepresentations I've inadvertently made!) Action Items Mark follow up with Benedikt about Python foundation and using issues to track discussion items Benoit & Felix investigate why GIL is held indefinitely test out Amos's branch and connect over gitter to discuss what parts of the problem each approach is solving Thank you all for attending! The next call will be held at 3pm EST on Tuesday, October 8th, 2019, see you then. Please e-mail me if you're not on the attendee list and I will add you. Mark Visser Tooling Dev Manager Unity Technologies - www.unity3d.com <http://www.unity3d.com/>
Hi pythonnet members, The next working group call will be held at 3pm EST on Tuesday, October 22, 2019. You can join here: https://unity3d.zoom.us/j/346931511 <https://unity3d.zoom.us/j/346931511> The agenda is here: https://docs.google.com/document/d/1rJVU84B_dgx58-_EopjRtOJVFAI2WfHJYV0n7uE1... <https://docs.google.com/document/d/1rJVU84B_dgx58-_EopjRtOJVFAI2WfHJYV0n7uE1Oak> Please feel free to add items directly to the document or in reply to this e-mail. cheers, -Mark Mark Visser Tooling Dev Manager Unity Technologies - www.unity3d.com <http://www.unity3d.com/>
On Sep 24, 2019, at 4:04 PM, Mark Visser <markv@unity3d.com> wrote:
Attendees: Mark Visser (Unity), Benoit Hudson & Felix Bourbonnais (ImgSpc), Victor Milovanov, Mohamed Koubaa (ANSYS Inc), Amos Li
Agenda
1. (Mark) Suggest we use a "needs discussion" label on issues and PRs for next time. Then we can just go through them on the call. 2. (Mark) Can we get a status update on joining the .NET Foundation? Github issue: Joining the .NET Foundation <https://github.com/pythonnet/pythonnet/issues/956> 3. (Benoit) Python can't reliably re-initialize; new proposal for Unity's domain reload <https://github.com/pythonnet/pythonnet/issues/957> 4. (Benoit) What's the policy with the GIL? Main thread appears to be grabbing the lock and not releasing it. 5. (Mohamed) Can I get clarification on IWrapper vs. reflection for PR #808?
Notes
Welcome to new contributor Mohamed Koubaa (ANSYS), who is investigating moving his company's platform from IronPython to CPython.
1 & 2) need input from Benedikt, Mark will follow up with Benedikt.
4) Benoit: GIL - Should we expect the GIL to be held after initialization? Victor: I wouldn't expect it to be held. [PyGIL] attribute is informational.
3) Benoit: Python can't reliably re-initialize. last fall's work - force PyFinalize to be called unfortunately doesn't work for native extensions - can't reliably reinitialize proposal instead of calling PyFinalize, delete all links from Python to C# Felix prototyped a solution that tracks all links during proxy generation and cuts all links during domain shutdown to prevent dereference of dead pointers result is just AttributeError instead of crash Amos proposed a different solution which seems to be targeting memory leaks Victor: what about memory leaks? C# side deletes all of its memory If C# holds a reference to Python, it will still exist when C# shuts down - no problem Amos: has a branch that solves one of the problems Benoit & Felix will investigate his branch and see where it intersects with their solution the reason we're using pythonnet is to enable PySide/PyQt and numpy among others
5) Mohamed: Working on a small change to implement the wrapper function for console output via __repr__ https://github.com/pythonnet/pythonnet/pull/808 <https://github.com/pythonnet/pythonnet/pull/808> inheritance over reflection, IWrapper vs. method with a signature Pythonnet can reflect what are the pros and cons? should we go with a convention? Victor: you can take the reflection approach, but need to cache the delegates more of an implementation detail, not actually necessary
(note: any errors in the above are mine, feel free to correct any gross misrepresentations I've inadvertently made!)
Action Items
Mark follow up with Benedikt about Python foundation and using issues to track discussion items Benoit & Felix investigate why GIL is held indefinitely test out Amos's branch and connect over gitter to discuss what parts of the problem each approach is solving
Thank you all for attending! The next call will be held at 3pm EST on Tuesday, October 8th, 2019, see you then. Please e-mail me if you're not on the attendee list and I will add you.
Mark Visser Tooling Dev Manager Unity Technologies - www.unity3d.com <http://www.unity3d.com/>
participants (1)
-
Mark Visser