|
Description:
|
|
Ciclos de memoria, "core developers" y dataclasses https://podcast.jcea.es/python/12
En lo que sigue, cuando se habla de CPython, se refiere al
intérprete de referencia de Python, que está escrito en lenguaje
C: https://www.python.org/downloads/.
Participantes:
Audio editado por Pablo Gómez, twitter:
@julebek.
La música de la entrada y la salida es "Lightning Bugs", de Jason
Shaw. Publicada en https://audionautix.com/ con licencia
- Creative Commons Attribution 4.0 International
License.
-
[00:52] Seguimos hablando del bug comentado la semana pasada.
-
[02:17] El "bytecode" https://es.wikipedia.org/wiki/Bytecode
que genera Python es muy mejorable.
>>> import dis
>>> def suma(valores):
... s=0
... for i in valores:
... s+=i
... return s
...
>>> dis.dis(suma)
2 0 LOAD_CONST 1 (0)
2 STORE_FAST 1 (s)
3 4 LOAD_FAST 0 (valores)
6 GET_ITER
>> 8 FOR_ITER 12 (to 22)
10 STORE_FAST 2 (i)
4 12 LOAD_FAST 1 (s)
14 LOAD_FAST 2 (i)
16 INPLACE_ADD
18 STORE_FAST 1 (s)
20 JUMP_ABSOLUTE 8
5 >> 22 LOAD_FAST 1 (s)
24 RETURN_VALUE
-
[08:32] Recogida de basuras.
-
[11:27] Herramientas de monitorización:
- DTrace: http://dtrace.org/blogs/. Monitoriza el sistema
operativo entero, incluyendo las aplicaciones, todo
integrado, de forma segura y sin modificar el software.
-
[13:32] Funcionalidades de auditoría de Python:
-
[16:47] Más herramientas de monitorización:
-
[17:52] Más sobre DTrace
https://es.wikipedia.org/wiki/DTrace_(Sun_Microsystems) y Python:
-
[22:12] Tracemalloc.
-
[23:02] Seguimos hablando del bug comentado la semana pasada.
-
bug bpo35930: "Raising an exception raised in a "future"
instance will create reference cycles":
https://bugs.python.org/issue35930.
-
¡Se ofrece una caja de cervezas!
-
Brainstorming.
-
Diagnóstico detallado.
-
weakref — Weak references:
https://docs.python.org/3/library/weakref.html.
-
Se sube la apuesta a caja y media de cervezas :-).
-
La excepción salta en un hilo y se "transporta" y almacena
para que se pueda acceder desde otro hilo.
-
Test reproducible.
-
[36:42] Aviso legal.
- Machine learning para identificar los diferentes hablantes.
-
[38:27] Las futuras notas de las grabaciones serán EXHAUSTIVAS
(como estáis comprobando leyendo esto :).
-
[39:17] Ideas para "cebar" las tertulias.
- Muchos temas recurrentes, se ve que hay temas "flotando"
en el aire.
-
[40:37] Cómo organizar las tertulias, diferentes intereses y
profundidad. Dinámica de la tertulia.
-
[42:32] ¿Cómo se organizan los "core developers"?
-
El desarrollo se ha movido en github. Los bugs están a medio
migrar, se va a integrar más en github.
-
Guía del desarrollador: https://devguide.python.org/.
-
Backporting de bugs de cpython de la versión en desarrollo a
las versiones estables.
-
¿Cómo se obtiene y se pierde el status de "core developer"?
-
Steering council. PEP 8016:
https://www.python.org/dev/peps/pep-8016/. Rol que cumple
y cómo se elige.
-
Desde que Guido no es BDFL, está muy activo en listas de
correo y picando código.
-
[52:22] ¡Víctor quiere más bugs para aprender!
- Bugs marcados como "easy", como forma de entrada a
desarrolladores nuevos.
-
[53:42] ¿Qué partes de CPython están escritas en C y cuáles en
Python?
-
Se escribe en C lo que no tiene más remedio, por rendimiento
o porque interactúa con el sistema operativo.
-
Más adelante de la conversación Jesús Cea explica cómo ver
si un módulo concreto está en C o en Python sin tener que ir
al código fuente.
-
[57:32] PyPy https://www.pypy.org/. Intérprete de Python
escrito en Python.
-
[58:27] ¿Incluir otros lenguajes en la implementación de
CPython?
-
[01:05:02] Python 3.9. Mejoras.
- Dificultades para utilizar la última versión de Python, en
función de lo que tenga el cliente.
-
[01:08:07] Dataclasses:
https://docs.python.org/3/library/dataclasses.html.
-
[01:23:07] Horarios de las tertulias. Mucha discusión y algunas
ideas. De momento no habrá cambios. Hace falta más feedback.
- Se agradecería que la gente que deje las tertulias,
explicase por qué se ha ido.
-
[01:30:27] Jesús Cea explica cómo ver si un módulo concreto está
en C o en Python sin tener que ir al código fuente.
-
[01:31:18] Más sobre la dinámica de las tertulias.
-
Debate sobre presentarse o no en tertulias abiertas, o tener
la cámara apagada.
-
Va siendo necesario tener algun repositorio para que la
gente de la tertulia pueda compartir cosas.
- ¿Lista de correo específica para las tertulias?
-
[01:36:42] Actas de las tertulias y publicar las grabaciones de
una puñetera vez. ¿Algún ingeniero de sonido en la sala?
¿Baratito?
-
[01:39:08] El "nivel" de las listas de correo. ¿Dónde están las
conversaciones interesantes? (aparte de la tertulia semanal :-).
-
[01:54:52] Cierre.
-
[01:56:42] Final.
|