2017-01-11 12:18:35 +03:00
|
|
|
# Credits
|
|
|
|
|
|
|
|
## Development Lead
|
|
|
|
|
|
|
|
- Benedikt Reinartz ([@filmor](https://github.com/filmor))
|
2020-05-17 22:56:10 +03:00
|
|
|
- Victor Milovanov ([@lostmsu](https://github.com/lostmsu))
|
|
|
|
|
|
|
|
## Former Development Leads
|
|
|
|
- Barton Cline ([@BartonCline](https://github.com/BartonCline))
|
2017-01-11 12:18:35 +03:00
|
|
|
- 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-12-17 00:33:00 +03:00
|
|
|
- Alex Earl ([@slide](https://github.com/slide))
|
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))
|
2020-02-20 18:20:33 +03:00
|
|
|
- Andrey Sant'Anna ([@andreydani](https://github.com/andreydani))
|
2017-02-21 22:22:37 +03:00
|
|
|
- Arvid JB ([@ArvidJB](https://github.com/ArvidJB))
|
2020-08-23 14:41:09 +03:00
|
|
|
- Avinash Maddikonda ([@SFM61319](https://github.com/SFM61319))
|
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))
|
2021-01-05 04:05:04 +03:00
|
|
|
- Christabella Irwanto([@christabella](https://github.com/christabella))
|
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))
|
2020-09-29 23:46:31 +03:00
|
|
|
- Daniel Abrahamsson ([@danabr](https://github.com/danabr))
|
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))
|
2020-08-19 18:49:38 +03:00
|
|
|
- Félix Bourbonnais ([@BadSingleton](https://github.com/BadSingleton))
|
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))
|
2019-11-28 04:57:19 +03:00
|
|
|
- Jeff Robbins ([@jeff17robbins](https://github.com/jeff17robbins))
|
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))
|
2020-05-11 08:39:25 +03:00
|
|
|
- Meinrad Recheis ([@henon](https://github.com/henon))
|
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))
|
2021-06-09 19:58:02 +03:00
|
|
|
- Peter Kese ([@pkese](https://github.com/pkese))
|
2017-01-11 12:18:35 +03:00
|
|
|
- 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))
|
2020-12-19 00:49:32 +03:00
|
|
|
- Tom Minka ([@tminka](https://github.com/tminka))
|
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))
|
2021-01-21 21:27:07 +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))
|
2021-01-21 21:27:07 +03:00
|
|
|
- ([@amos402](https://github.com/amos402))
|
2017-01-11 12:18:35 +03:00
|
|
|
- ([@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))
|
2020-08-07 06:33:22 +03:00
|
|
|
- ([@SnGmng](https://github.com/SnGmng))
|
2017-01-11 12:18:35 +03:00
|
|
|
- ([@stonebig](https://github.com/stonebig))
|
2017-06-14 14:50:56 +03:00
|
|
|
- ([@testrunner123](https://github.com/testrunner123))
|
2020-06-17 11:31:41 +03:00
|
|
|
- ([@DanBarzilian](https://github.com/DanBarzilian))
|
2020-10-05 23:41:42 +03:00
|
|
|
- ([@alxnull](https://github.com/alxnull))
|
2021-01-21 21:27:07 +03:00
|
|
|
- ([@gpetrou](https://github.com/gpetrou))
|
2022-01-14 05:55:42 +03:00
|
|
|
- Ehsan Iran-Nejad ([@eirannejad](https://github.com/eirannejad))
|