Ciclos de memoria, "core developers" y dataclasses https://podcast.jcea.es/python/12\n
En lo que sigue, cuando se habla de CPython, se refiere al\nint\xe9rprete de referencia de Python, que est\xe1 escrito en lenguaje\nC: https://www.python.org/downloads/.
\nParticipantes:
\nEduardo Castro, email:\n info@ecdesign.es. Conectando desde A\n Guarda.
\nJes\xfas Cea, email: jcea@jcea.es, twitter:\n @jcea, https://blog.jcea.es/,\n https://www.jcea.es/. Conectando desde Madrid.
\nJavier, conectando desde Madrid.
\nV\xedctor Ram\xedrez, twitter: @virako,\n programador python y amante de vim, conectando desde Huelva.
\nJuan Carlos.
\nAudio editado por Pablo G\xf3mez, twitter:\n@julebek.
\nLa m\xfasica de la entrada y la salida es "Lightning Bugs", de Jason\nShaw. Publicada en https://audionautix.com/ con licencia\n- Creative Commons Attribution 4.0 International\nLicense.
\n[00:52] Seguimos hablando del bug comentado la semana pasada.
\n[02:17] El "bytecode" https://es.wikipedia.org/wiki/Bytecode\n que genera Python es muy mejorable.
\n >>> import dis\n >>> def suma(valores):\n ... s=0\n ... for i in valores:\n ... s+=i\n ... return s\n ... \n >>> dis.dis(suma)\n 2 0 LOAD_CONST 1 (0)\n 2 STORE_FAST 1 (s)\n\n 3 4 LOAD_FAST 0 (valores)\n 6 GET_ITER\n >> 8 FOR_ITER 12 (to 22)\n 10 STORE_FAST 2 (i)\n\n 4 12 LOAD_FAST 1 (s)\n 14 LOAD_FAST 2 (i)\n 16 INPLACE_ADD\n 18 STORE_FAST 1 (s)\n 20 JUMP_ABSOLUTE 8\n\n 5 >> 22 LOAD_FAST 1 (s)\n 24 RETURN_VALUE\n
\n[08:32] Recogida de basuras.
\ngc.set_threshold()
:\n https://docs.python.org/3/library/gc.html#gc.set_threshold.
gc.disable()
:\n https://docs.python.org/3/library/gc.html#gc.disable.
[11:27] Herramientas de monitorizaci\xf3n:
\n[13:32] Funcionalidades de auditor\xeda de Python:
\nPEP 551 -- Security transparency in the Python runtime\n https://www.python.org/dev/peps/pep-0551/.
\nPEP 578 -- Python Runtime Audit Hooks\n https://www.python.org/dev/peps/pep-0578/.
\n[16:47] M\xe1s herramientas de monitorizaci\xf3n:
\nSystemTap: https://es.wikipedia.org/wiki/SystemTap.
\neBPF: https://ebpf.io/.
\npy-spy: https://github.com/benfred/py-spy.
\n[17:52] M\xe1s sobre DTrace\n https://es.wikipedia.org/wiki/DTrace_(Sun_Microsystems) y Python:
\n[22:12] Tracemalloc.
\n[23:02] Seguimos hablando del bug comentado la semana pasada.
\nbug bpo35930: "Raising an exception raised in a "future"\n instance will create reference cycles":\n https://bugs.python.org/issue35930.
\n\xa1Se ofrece una caja de cervezas!
\nBrainstorming.
\nDiagn\xf3stico detallado.
\nweakref \u2014 Weak references:\n https://docs.python.org/3/library/weakref.html.
\nSe sube la apuesta a caja y media de cervezas :-).
\nLa excepci\xf3n salta en un hilo y se "transporta" y almacena\n para que se pueda acceder desde otro hilo.
\nTest reproducible.
\n[36:42] Aviso legal.
\n[38:27] Las futuras notas de las grabaciones ser\xe1n EXHAUSTIVAS\n (como est\xe1is comprobando leyendo esto :).
\n[39:17] Ideas para "cebar" las tertulias.
\n[40:37] C\xf3mo organizar las tertulias, diferentes intereses y\n profundidad. Din\xe1mica de la tertulia.
\n[42:32] \xbfC\xf3mo se organizan los "core developers"?
\nEl desarrollo se ha movido en github. Los bugs est\xe1n a medio\n migrar, se va a integrar m\xe1s en github.
\nhttps://pyfound.blogspot.com/2020/05/pythons-migration-to-github-request-for.html
\nPEP 581 -- Using GitHub Issues for CPython\n https://www.python.org/dev/peps/pep-0581/.
\nGu\xeda del desarrollador: https://devguide.python.org/.
\nBackporting de bugs de cpython de la versi\xf3n en desarrollo a\n las versiones estables.
\n\xbfC\xf3mo se obtiene y se pierde el status de "core developer"?
\nSteering council. PEP 8016:\n https://www.python.org/dev/peps/pep-8016/. Rol que cumple\n y c\xf3mo se elige.
\nDesde que Guido no es BDFL, est\xe1 muy activo en listas de\n correo y picando c\xf3digo.
\n[52:22] \xa1V\xedctor quiere m\xe1s bugs para aprender!
\n[53:42] \xbfQu\xe9 partes de CPython est\xe1n escritas en C y cu\xe1les en\n Python?
\nSe escribe en C lo que no tiene m\xe1s remedio, por rendimiento\n o porque interact\xfaa con el sistema operativo.
\nM\xe1s adelante de la conversaci\xf3n Jes\xfas Cea explica c\xf3mo ver\n si un m\xf3dulo concreto est\xe1 en C o en Python sin tener que ir\n al c\xf3digo fuente.
\n[57:32] PyPy https://www.pypy.org/. Int\xe9rprete de Python\n escrito en Python.
\n[58:27] \xbfIncluir otros lenguajes en la implementaci\xf3n de\n CPython?
\nRust:\n https://es.wikipedia.org/wiki/Rust_(lenguaje_de_programaci%C3%B3n).
\nPyOxidizer: https://github.com/indygreg/PyOxidizer.
\nFragmentaci\xf3n. Jes\xfas Cea estoy m\xe1s centrado en la parte de C\n porque la mayor parte de los "core developers" no saben C.\n A\xf1adir m\xe1s lenguajes reduce el grupo de gente que puede\n mantener esas partes.
\nPortabilidad de C.
\nBootstraping de un lenguaje con el propio lenguaje.
\n\n[01:05:02] Python 3.9. Mejoras.
\n[01:08:07] Dataclasses:\n https://docs.python.org/3/library/dataclasses.html.
\nLa dificultad para tener atributos opcionales. Algunas\n ideas.
\nattrs: https://www.attrs.org/en/stable/.
\nUsar valores "sentinel".
\n[01:20:52] Pydantic: https://pydantic-docs.helpmanual.io/.
\n[01:23:07] Horarios de las tertulias. Mucha discusi\xf3n y algunas\n ideas. De momento no habr\xe1 cambios. Hace falta m\xe1s feedback.
\n[01:30:27] Jes\xfas Cea explica c\xf3mo ver si un m\xf3dulo concreto est\xe1\n en C o en Python sin tener que ir al c\xf3digo fuente.
\n[01:31:18] M\xe1s sobre la din\xe1mica de las tertulias.
\nDebate sobre presentarse o no en tertulias abiertas, o tener\n la c\xe1mara apagada.
\nVa siendo necesario tener algun repositorio para que la\n gente de la tertulia pueda compartir cosas.
\n[01:36:42] Actas de las tertulias y publicar las grabaciones de\n una pu\xf1etera vez. \xbfAlg\xfan ingeniero de sonido en la sala?\n \xbfBaratito?
\n[01:39:08] El "nivel" de las listas de correo. \xbfD\xf3nde est\xe1n las\n conversaciones interesantes? (aparte de la tertulia semanal :-).
\nLa maldici\xf3n de lo b\xe1sico e "introducci\xf3n a". Igual para que\n haya conversaci\xf3n interesante, hay que hacer preguntas\n interesantes :-).
\nPython-Madrid antes de que llegase Meetup.
\nJes\xfas Cea sugiere listas como "python-ideas":\n https://mail.python.org/mailman3/lists/python-ideas.python.org/.\n Tambi\xe9n la lista de programaci\xf3n Python en espa\xf1ol:\n python-es@python.org.
\nJavier tiene intereses muy extra\xf1os :-).
\n[01:54:52] Cierre.
\n[01:56:42] Final.
\n