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

The agenda is here: 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




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
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