2017-01-11 12:18:35 +03:00
|
|
|
# Credits
|
|
|
|
|
|
|
|
## Development Lead
|
|
|
|
|
|
|
|
- Barton Cline ([@BartonCline](https://github.com/BartonCline))
|
|
|
|
- Benedikt Reinartz ([@filmor](https://github.com/filmor))
|
|
|
|
- Brian Lloyd ([@brianlloyd](https://github.com/brianlloyd))
|
|
|
|
- David Anthoff ([@davidanthoff](https://github.com/davidanthoff))
|
|
|
|
- Denis Akhiyarov ([@denfromufa](https://github.com/denfromufa))
|
|
|
|
- Tony Roberts ([@tonyroberts](https://github.com/tonyroberts))
|
|
|
|
- Victor Uriarte ([@vmuriart](https://github.com/vmuriart))
|
|
|
|
|
|
|
|
## Contributors
|
|
|
|
|
2019-10-23 11:32:44 +03:00
|
|
|
- Alex Helms ([@alexhelms](https://github.com/alexhelms))
|
2018-07-16 16:12:47 +03:00
|
|
|
- Alexandre Catarino([@AlexCatarino](https://github.com/AlexCatarino))
|
2017-02-21 22:22:37 +03:00
|
|
|
- Arvid JB ([@ArvidJB](https://github.com/ArvidJB))
|
Enable pythonnet to survive in the Unity3d editor environment.
The Unity editor unloads the C# domain and creates a new domain every time it recompiles C# sources.
This caused two crashes.
1. After a domain unload, python is now pointing to a bunch of objects whose C# side is now garbage. Solution: Shutdown() the engine on domain reload, which calls Py_Finalize.
2. After a domain unload, Py_Finalize, and a new Py_Intialize, python still keeps pointers in gc for any python objects that were leaked. And pythonnet leaks. This means that python's gc will be calling tp_traverse, tp_clear, and tp_is_gc on types that are implemented in C#. This crashes because the implementation was freed. Solution: implement those calls in code that is *not* released on domain unload. Side effect: we leak a page on every domain unload. I suspect but didn't test that python gc performance will be slightly faster.
Changes required to implement and test:
3. Use python's platform package to determine what we're running on, so we can use the right mmap/mprotect or VirtualAlloc/VirtualProtect routines, the right flags for mmap, and (theoretically) the right native code. Side effect: to port to a new platform requires updating some additional code now.
4. New unit tests. (a) A new test for domain reload. It doesn't run under .NET Core because you can't create and unload a domain in .NET Core. (b) New unit tests to help us find where to add support for new platforms.
2018-10-12 19:01:59 +03:00
|
|
|
- Benoît Hudson ([@benoithudson](https://github.com/benoithudson))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Bradley Friedman ([@leith-bartrich](https://github.com/leith-bartrich))
|
2017-12-20 03:30:04 +03:00
|
|
|
- Callum Noble ([@callumnoble](https://github.com/callumnoble))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Christian Heimes ([@tiran](https://github.com/tiran))
|
|
|
|
- Christoph Gohlke ([@cgohlke](https://github.com/cgohlke))
|
2019-07-04 00:36:44 +03:00
|
|
|
- Christopher Bremner ([@chrisjbremner](https://github.com/chrisjbremner))
|
2017-03-23 06:31:26 +03:00
|
|
|
- Christopher Pow ([@christopherpow](https://github.com/christopherpow))
|
2017-02-21 22:22:37 +03:00
|
|
|
- Daniel Fernandez ([@fdanny](https://github.com/fdanny))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Daniel Santana ([@dgsantana](https://github.com/dgsantana))
|
2017-05-11 10:47:47 +03:00
|
|
|
- Dave Hirschfeld ([@dhirschfeld](https://github.com/dhirschfeld))
|
Enable pythonnet to survive in the Unity3d editor environment.
The Unity editor unloads the C# domain and creates a new domain every time it recompiles C# sources.
This caused two crashes.
1. After a domain unload, python is now pointing to a bunch of objects whose C# side is now garbage. Solution: Shutdown() the engine on domain reload, which calls Py_Finalize.
2. After a domain unload, Py_Finalize, and a new Py_Intialize, python still keeps pointers in gc for any python objects that were leaked. And pythonnet leaks. This means that python's gc will be calling tp_traverse, tp_clear, and tp_is_gc on types that are implemented in C#. This crashes because the implementation was freed. Solution: implement those calls in code that is *not* released on domain unload. Side effect: we leak a page on every domain unload. I suspect but didn't test that python gc performance will be slightly faster.
Changes required to implement and test:
3. Use python's platform package to determine what we're running on, so we can use the right mmap/mprotect or VirtualAlloc/VirtualProtect routines, the right flags for mmap, and (theoretically) the right native code. Side effect: to port to a new platform requires updating some additional code now.
4. New unit tests. (a) A new test for domain reload. It doesn't run under .NET Core because you can't create and unload a domain in .NET Core. (b) New unit tests to help us find where to add support for new platforms.
2018-10-12 19:01:59 +03:00
|
|
|
- David Lassonde ([@lassond](https://github.com/lassond))
|
2017-01-11 12:18:35 +03:00
|
|
|
- David Lechner ([@dlech](https://github.com/dlech))
|
2017-02-21 22:22:37 +03:00
|
|
|
- Dmitriy Se ([@dmitriyse](https://github.com/dmitriyse))
|
2019-08-02 13:21:48 +03:00
|
|
|
- Florian Treurniet ([@ftreurni](https://github.com/ftreurni))
|
2017-01-11 12:18:35 +03:00
|
|
|
- He-chien Tsai ([@t3476](https://github.com/t3476))
|
2019-06-03 22:16:51 +03:00
|
|
|
- Inna Wiesel ([@inna-w](https://github.com/inna-w))
|
|
|
|
- Ivan Cronyn ([@cronan](https://github.com/cronan))
|
2018-02-12 20:37:49 +03:00
|
|
|
- Jan Krivanek ([@jakrivan](https://github.com/jakrivan))
|
2019-06-03 22:16:51 +03:00
|
|
|
- Jeff Reback ([@jreback](https://github.com/jreback))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Joe Frayne ([@jfrayne](https://github.com/jfrayne))
|
2019-08-05 19:25:37 +03:00
|
|
|
- Joe Lidbetter ([@jmlidbetter](https://github.com/jmlidbetter))
|
2019-09-12 11:26:06 +03:00
|
|
|
- Joe Savage ([@s4v4g3](https://github.com/s4v4g3))
|
2017-01-11 12:18:35 +03:00
|
|
|
- John Burnett ([@johnburnett](https://github.com/johnburnett))
|
2018-06-18 19:49:55 +03:00
|
|
|
- John Wilkes ([@jbw3](https://github.com/jbw3))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Luke Stratman ([@lstratman](https://github.com/lstratman))
|
2017-06-14 17:18:46 +03:00
|
|
|
- Konstantin Posudevskiy ([@konstantin-posudevskiy](https://github.com/konstantin-posudevskiy))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Matthias Dittrich ([@matthid](https://github.com/matthid))
|
2019-10-18 11:07:57 +03:00
|
|
|
- Mohamed Koubaa ([@koubaa](https://github.com/koubaa))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Patrick Stewart ([@patstew](https://github.com/patstew))
|
|
|
|
- Raphael Nestler ([@rnestler](https://github.com/rnestler))
|
2017-06-16 16:19:39 +03:00
|
|
|
- Rickard Holmberg ([@rickardraysearch](https://github.com/rickardraysearch))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Sam Winstanley ([@swinstanley](https://github.com/swinstanley))
|
|
|
|
- Sean Freitag ([@cowboygneox](https://github.com/cowboygneox))
|
|
|
|
- Serge Weinstock ([@sweinst](https://github.com/sweinst))
|
2018-10-29 14:13:20 +03:00
|
|
|
- Simon Mourier ([@smourier](https://github.com/smourier))
|
2019-03-13 00:42:58 +03:00
|
|
|
- Victor Milovanov ([@lostmsu](https://github.com/lostmsu))
|
Enable pythonnet to survive in the Unity3d editor environment.
The Unity editor unloads the C# domain and creates a new domain every time it recompiles C# sources.
This caused two crashes.
1. After a domain unload, python is now pointing to a bunch of objects whose C# side is now garbage. Solution: Shutdown() the engine on domain reload, which calls Py_Finalize.
2. After a domain unload, Py_Finalize, and a new Py_Intialize, python still keeps pointers in gc for any python objects that were leaked. And pythonnet leaks. This means that python's gc will be calling tp_traverse, tp_clear, and tp_is_gc on types that are implemented in C#. This crashes because the implementation was freed. Solution: implement those calls in code that is *not* released on domain unload. Side effect: we leak a page on every domain unload. I suspect but didn't test that python gc performance will be slightly faster.
Changes required to implement and test:
3. Use python's platform package to determine what we're running on, so we can use the right mmap/mprotect or VirtualAlloc/VirtualProtect routines, the right flags for mmap, and (theoretically) the right native code. Side effect: to port to a new platform requires updating some additional code now.
4. New unit tests. (a) A new test for domain reload. It doesn't run under .NET Core because you can't create and unload a domain in .NET Core. (b) New unit tests to help us find where to add support for new platforms.
2018-10-12 19:01:59 +03:00
|
|
|
- Viktoria Kovescses ([@vkovec](https://github.com/vkovec))
|
2017-03-24 03:51:22 +03:00
|
|
|
- Ville M. Vainio ([@vivainio](https://github.com/vivainio))
|
2017-01-11 12:18:35 +03:00
|
|
|
- Virgil Dupras ([@hsoft](https://github.com/hsoft))
|
2017-02-17 09:07:28 +03:00
|
|
|
- Wenguang Yang ([@yagweb](https://github.com/yagweb))
|
2018-07-20 18:35:43 +03:00
|
|
|
- William Sardar ([@williamsardar])(https://github.com/williamsardar)
|
2017-01-11 12:18:35 +03:00
|
|
|
- Xavier Dupré ([@sdpython](https://github.com/sdpython))
|
|
|
|
- Zane Purvis ([@zanedp](https://github.com/zanedp))
|
|
|
|
- ([@bltribble](https://github.com/bltribble))
|
2018-07-01 21:02:53 +03:00
|
|
|
- ([@civilx64](https://github.com/civilx64))
|
|
|
|
- ([@GSPP](https://github.com/GSPP))
|
2017-01-11 12:18:35 +03:00
|
|
|
- ([@omnicognate](https://github.com/omnicognate))
|
2019-04-03 01:27:26 +03:00
|
|
|
- ([@OneBlue](https://github.com/OneBlue))
|
2017-01-11 12:18:35 +03:00
|
|
|
- ([@rico-chet](https://github.com/rico-chet))
|
|
|
|
- ([@rmadsen-ks](https://github.com/rmadsen-ks))
|
|
|
|
- ([@stonebig](https://github.com/stonebig))
|
2017-06-14 14:50:56 +03:00
|
|
|
- ([@testrunner123](https://github.com/testrunner123))
|
|
|
|
|