└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # CPython_things 2 | ## From Azerbaijan Python User Group for the world. 3 | Find us here -> [FB Group](https://www.facebook.com/groups/python.az/) 4 | and here [Telegram Group](https://t.me/azepug) 5 | and [azepug.az](https://azepug.az/) 6 | 7 | ## This repo will consist links and resources related to CPython: 8 | * Aimed to be the open place for CPython things. 9 | * Will add blog posts, books or maybe some interesting notes related CPython. 10 | * Especially interested in adding more video links from conferences which I have found with my own notes. 11 | * Please if you see something new then send PR with new related information. 12 | * Expected to be huge README file. 13 | * I want to speak in English, Russian and Turkish. Please do not be surprised. 14 | 15 | ## Books: 16 | 1. [Inside The Python Virtual Machine](https://leanpub.com/insidethepythonvirtualmachine) 17 | 2. [CPython book from realpython](https://realpython.com/products/cpython-internals-book/) - you need to purchase it. 18 | 19 | ## Repos: 20 | 1. [Python module to modify bytecode ](https://github.com/vstinner/bytecode) 21 | 22 | ## Blog posts: 23 | 1. [Python/C API functions - sum/add 2 integers](https://pytricks.quora.com/Python-C-API-functions-sum-add-2-integers) 24 | 25 | 2. [Why ‘int’ object is not iterable - because tp_iter is NULL](https://pytricks.quora.com/Why-int-object-is-not-iterable-because-tp_iter-is-NULL) 26 | 27 | 3. [Profiling CPython at Instagram](https://instagram-engineering.com/profiling-cpython-at-instagram-89d4cbeeb898) 28 | 29 | 4. [Nice mixed internal topics in Turkish ysar.net](http://ysar.net/python/) 30 | 31 | 5. [Getting Started with Python Internals](https://medium.com/@dawran6/getting-started-with-python-internals-a5474ccb8022) 32 | 33 | 6. [Eli Bendersky's Python Internals blog](https://eli.thegreenplace.net/tag/python-internals) 34 | 35 | 7. [Understanding GIL](http://dabeaz.com/GIL/) 36 | 37 | 8. [Yaniv Aknin Python internals series](https://tech.blog.aknin.name/tag/internals/) 38 | 39 | 9. [Batuhan Taskaya's blog in english](https://dev.to/btaskaya) & [Batuhan Taskaya's blog in turkish](http://isidentical.com/) 40 | 41 | ## Video Materials/Talks: 42 | New additions: 43 | * [CPython Internals - by Shako](https://www.youtube.com/watch?v=PGyzVJuqJBE&list=PL0xSLrZOcI4t3WC1QDN1dE7SVoDzesUyL) 44 | * [Python Memory Deep Dive for Speed and Efficiency](https://www.youtube.com/watch?v=d9mSIEIcTpo) 45 | 46 | 1. [CPython internals: A ten-hour codewalk through the Python interpreter source code](https://www.youtube.com/playlist?list=PLzV58Zm8FuBL6OAv1Yu6AwXZrnsFbbR0S) [+] 47 | 48 | 2. [Bytes in the Machine: Inside the CPython interpreter - PyCon 2015](https://www.youtube.com/watch?v=HVUTjQzESeo) [+] 49 | 50 | 3. [Exploring is never boring: understanding CPython without reading the code](https://www.youtube.com/watch?v=ZSIRGLmQTLk) [+] 51 | 52 | 4. [CPython internals and the VM](https://www.youtube.com/watch?v=cUyMnGeZ_3c) [+] 53 | 54 | 5. [A Bit about Bytes: Understanding Python Bytecode - PyCon 2018](https://www.youtube.com/watch?v=cSSpnq362Bk) [+] 55 | 56 | 6. [CPython internals: why bother? (James Powell)](https://www.youtube.com/watch?v=xLc5xPYGGnQ) [+] (I said no) 57 | 58 | 7. [Hacking the CPython Interpreter | SciPy 2016 | James Powell](https://www.youtube.com/watch?v=1SqRRrmQHx0) [+] (I said no) 59 | 60 | 8. [Stepping Through CPython](https://www.youtube.com/watch?v=XGF3Qu4dUqk) [+] (Extremely informative one!!!) 61 | 62 | 9. [Anjana Vakil - Exploring Python Bytecode](https://www.youtube.com/watch?v=GNPKBICTF2w) [+] 63 | 64 | 10. [So you want to write an interpreter?](https://www.youtube.com/watch?v=LCslqgM48D4) [+] (Watch this again to catch in future!!!) 65 | 66 | Related things: 67 | 68 | [From Source to Code: How CPython's Compiler Works - Brett Cannon](https://www.youtube.com/watch?v=R31NRWgoIWM) [+] 69 | 70 | 11. [CPython - Bytecode and Virtual Machine - Stephane Wirtel](https://www.youtube.com/watch?v=45BhX5wSeVs) [+] (you can use slides from this talk) 71 | 72 | Extra links: https://wirtel.be/talk/ 73 | 74 | Seems to be same thing -> https://www.youtube.com/watch?v=ZkAc6hzGun4 [+] 75 | 76 | Seems to be same thing but a bit different may whatch it again maybe -> https://www.youtube.com/watch?v=pEwewgHQr74 [+] 77 | 78 | 12. [Armin Ronacher – Binary Python: Introducing Native Code](https://www.youtube.com/watch?v=yhiHmBE9fNU) [+] 79 | This thing is about packages, building, preparing python things etc. 80 | 81 | 13. [How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework](https://www.youtube.com/watch?v=qCGofLIzX6g) [+] 82 | Extremely valuable and informative talk. 83 | 84 | 14. [How you can contribute to Python](https://www.youtube.com/watch?v=i-dZ2pxJNFM&list=PLFE1rxhwe5KbyFovVRF8itngQy6CREOCN&index=40) [+] 85 | Well already known things for me. 86 | 87 | 15. [Знай и люби свой CPython во имя луны и великой справедливости, Александр Кошкин](https://www.youtube.com/watch?v=0_5_zEOo8kg) [+] 88 | Great talk in Russian. 89 | 90 | 16. [Garbage Collection in CPython](https://www.youtube.com/watch?v=P-8Z0-MhdQs) [+] 91 | 92 | 17. [Nina Zakharenko - Memory Management in Python - The Basics - PyCon 2016](https://www.youtube.com/watch?v=F6u5rhUQ6dU) [+] 93 | 94 | 18. [«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС](https://www.youtube.com/watch?v=D0vbuIDOV4c) [+] 95 | Notes to look: 96 | * objgraph -> lib 97 | * pympler -> lib 98 | * memory_profiler -> @profile adding top of the function; mprof run + mprof plot 99 | * memoryview 100 | * struct 101 | 102 | 19. [Contribute to CPython, Дмитрий Алимов / PiterPy Meetup #4](https://www.youtube.com/watch?v=pN66VuaKDjk&t=706s) [+] 103 | 104 | 20. [Core Development Panel: Юрий Селиванов, Андрей Светлов и Christian Heimes](https://www.youtube.com/watch?v=E0Gs7C-JctU) [+] 105 | This is talf of core developers. 106 | 107 | 21. [Python Data Structures implementation list, dict: how does CPython actually implement them?](https://www.youtube.com/watch?v=SC8O3nMO5T4) [+] 108 | Advance level talk. Watch it in the future again!!! 109 | 110 | 22. [Emily Morehouse-Valcarcel - The AST and Me - PyCon 2018](https://www.youtube.com/watch?v=XhWvz4dK4ng) [+] 111 | Notes: 112 | * This talk is about Abstract Syntax Trees an internal view of Python code execution. 113 | Modules: 114 | * ast 115 | * astor 116 | * meta 117 | * codegen 118 | 119 | 23. [David Beazley - Reinventing the Parser Generator - PyCon 2018](https://www.youtube.com/watch?v=zJ9z6Ge-vXs) [+] 120 | Explaining how actually the Lexer and YACC works. About Sly and Ply project. 121 | Watch it again to get what is Lexer and Parser basically. 122 | 123 | 24. [A. Skrobov - How CPython parser works, and how to make it work better](https://www.youtube.com/watch?v=qq6eHivQOjI) [+] 124 | 125 | 25. [What's up with th@? Adding an Operator to CPython](https://www.youtube.com/watch?v=dQF1hBuQYZE) [+] 126 | 127 | Nice slides - can be used for further explorations. **This is about adding new operator into CPython** 128 | 129 | 26. [Larry Hastings - Removing Python's GIL: The Gilectomy - PyCon 2016](https://www.youtube.com/watch?v=P3AyI_u66Bw) [+] 130 | 131 | 27. [Larry Hastings The Gilectomy How's It Going PyCon 2017](https://www.youtube.com/watch?v=pLqv11ScGsQ) [+] 132 | Techincally in-depth advance talk which is hard to catch for me now. But it is a matter of time. 133 | 134 | 28. [Larry Hastings - Python's Infamous GIL](https://www.youtube.com/watch?v=4zeHStBowEk) [+] 135 | 136 | 29. [Everything You Always Wanted to Know About Memory in Python But Were Afraid to Ask](https://www.youtube.com/watch?v=hf4MKeP5oxg) [+] 137 | Despite the name of the talk - there is no such extraordinary thing to learn from here, because I am already aware of those things. 138 | 139 | 30. ["Внутренности" CPython, часть II / Никита Лесников / Wargaming [Python Meetup 30.08.2013]](https://www.youtube.com/watch?v=5U496-JPQ_c&t=2s) [+] 140 | 141 | 31. [Fun with cPython memory allocator](https://www.youtube.com/watch?v=l9Le_JOwgsM) [+] 142 | 143 | 32. [Here be dragons: some elegant and ugly hacks in CPython by Nick Coghlan](https://www.youtube.com/watch?v=VIBmWnlDjXc) - [+] interesting talk. 144 | 145 | 33. [Petr Viktorin - Bytecodes and stacks: A look at CPython’s compiler and its execution model](https://www.youtube.com/watch?v=O2lXnayJ-tQ) [+] - extremely informative details. 146 | 147 | 34. [CPython byte-code and code-injection by Tom Zickel](https://www.youtube.com/watch?v=J7E6hKCGh4k) [+] 148 | 149 | 35. [Vlad Sydorenko — Internals of CPython memory](https://www.youtube.com/watch?v=-99tauPppoI) [+] 150 | 151 | 36. [Jesús Espino - Playing with CPython Objects Internals](https://www.youtube.com/watch?v=f5Ica6AeeqE) [+] -> nice tricks with ctypes 152 | 153 | 37. [Jeethu Rao - Faster Python startup](https://www.youtube.com/watch?v=KRqv2Bm1J18) [+] -> not clear what is going here. 154 | 155 | 38. [Открытый урок «Внутреннее устройство интерпретатора CPython»](https://www.youtube.com/watch?v=O9LeNPiftgk) [+] -> Internal talks about CPython adding new command etc in Russian. 156 | --------------------------------------------------------------------------------