El futuro del compilador JIT de Python en peligro tras decisión del consejo de dirección

Por
4 min de lectura

El consejo de dirección de Python ha sorprendido a la comunidad técnica al pedir la suspensión temporal del desarrollo del compilador JIT (Just-In-Time) en la rama principal del repositorio de código de Python, hasta que se presente y apruebe un nuevo PEP (propuesta de mejora para Python) específico para este proyecto.

Mientras tanto, se seguirán aceptando correcciones relacionadas con errores y seguridad del código JIT ya existente. Sin embargo, si pasado medio año no se presenta ni aprueba ninguna propuesta formal, el código del compilador JIT será eliminado de la rama principal.

Este anuncio resulta inesperado, ya que una versión mejorada del compilador JIT es una característica clave de Python 3.15, cuya congelación de funcionalidades ya se ha producido y su lanzamiento está previsto para octubre. Las notas de la versión prometen una mejora de rendimiento geométrica media del 8-9% respecto al intérprete estándar CPython en sistemas x86-64 con Linux.

El compilador JIT sigue siendo experimental y está desactivado por defecto; para activarlo es necesario establecer la variable de entorno PYTHON_JIT=1.

La postura del consejo de dirección indica que la integración del compilador JIT en la rama principal se hizo de forma prematura, ya que el PEP 744 que lo acompaña se mantiene como informativo y plantea varias cuestiones abiertas. Según Pablo Galindo Salgado, miembro del consejo, «no hemos sido lo suficientemente estrictos siguiendo el proceso requerido para cambios de esta complejidad y alcance».

Entre las dudas pendientes están el mantenimiento futuro del JIT, su compatibilidad con funciones y herramientas actuales de CPython, criterios claros y mensurables para evaluar su éxito, y su relación con otros compiladores JIT externos.

Mark Shannon, uno de los desarrolladores clave del proyecto, lamenta que la paralización del desarrollo hasta la aprobación de un nuevo PEP «nos coloca en una situación complicada», pues se impone urgencia para redactar rápidamente la propuesta mientras la comunidad carecería de tiempo para debatirla. Shannon planeaba presentar ese PEP a finales de año, cuando la ventaja de rendimiento sería más evidente, y ha solicitado una prórroga de uno o dos meses para continuar trabajando. Advirtió que un parón prolongado pondría en riesgo el impulso logrado y la retención de nuevos colaboradores.

Sobre la posibilidad de seguir el desarrollo en un fork, Shannon señaló que no es sencillo debido a la forma en que se generan las optimizaciones, lo que resulta en grandes diferencias de código difíciles de gestionar.

Antes parecía probable que el compilador JIT formara parte integral de CPython, pero la orden del consejo introduce gran incertidumbre. La creación y aprobación de un nuevo PEP en seis meses es un plazo limitado, y en caso de eliminarse el código JIT, el proyecto seguramente perderá fuerza.

Galindo recordó que no buscan propuestas competidoras, aunque mencionó la opción de establecer una infraestructura JIT capaz de soportar múltiples estrategias de implementación, en lugar de quedar fuertemente ligada a una única vía.

La decisión ha sorprendido a Shannon y a otros desarrolladores, evidenciando una posible falta de comunicación entre el consejo de dirección y el equipo JIT.

Donghee Na, otro integrante del consejo, insistió en que «el proyecto experimental JIT actual necesita un PEP oficial» y que este es un buen momento para evaluar diferentes enfoques. Sin embargo, lograr una aprobación rápida del nuevo PEP será complicado debido a la probable discusión extensa sobre las alternativas.

Tanto Galindo como Thomas Wouters, miembro del consejo, indicaron que existe cierta flexibilidad en el plazo de seis meses. «No somos inflexibles, pero queremos que se tome esto en serio», afirmó Wouters.

Compartir este artículo
No hay comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *