Annonce de l’ère du free-threading — décision du Python Steering Council
(discuss.python.org)Grâce aux efforts de Donghee Na, le free-threading quitte désormais le statut expérimental pour bénéficier d’un support officiel.
Le Python Steering Council (SC) a approuvé la PEP 779 et a décidé de retirer le label « experimental » du build free-threaded de Python 3.14. Cette décision s’accompagne de la condition que les points suivants soient remplis durant la phase II.
-
Compatibilité C API/ABI et mise en place d’une Stable C API
- Toute modification rompant la compatibilité avec l’API/ABI existante doit être préalablement approuvée avec le groupe de travail C API
- Définir et fournir d’ici Python 3.15 une Stable C API dédiée au free-threading
-
Nouveaux critères pour les projets expérimentaux
- Les nouveaux projets expérimentaux internes à CPython doivent être compatibles avec le build free-threaded et être développés sur cette base
- Réduire au minimum la complexité liée au maintien parallèle du GIL et du free-threading
-
Garde-fous sur les performances et la mémoire
- Objectif : rester dans une baisse de performances inférieure à 10 % par rapport au build avec GIL
- Jusqu’à 15 % de baisse / 15 % d’augmentation mémoire, un accord préalable du SC est requis (plafond mémoire de 20 %)
-
Exigences de documentation
- Pour les utilisateurs Python : clarifier les garanties de l’API de la bibliothèque standard et les changements
- Pour les développeurs Python et C API : documenter les garanties de concurrence, notamment la gestion des signaux et la sûreté des threads
- Pour les développeurs CPython : documenter les points d’attention à l’implémentation
- Fournir une page officielle de référence sur le free-threading rassemblant toutes les ressources
-
Préparation de primitives de concurrence de haut niveau
- Autour du package
concurrent, proposer et examiner des outils de concurrence de haut niveau exploitables sans connaître les détails d’implémentation internes
- Autour du package
-
Exigences de benchmark
- Vérifier les affirmations sur les performances, la mémoire et la justesse au moyen de tests reproductibles basés sur
pyperformance - Encourager l’ajout de benchmarks supplémentaires reflétant des charges réelles
- Vérifier les affirmations sur les performances, la mémoire et la justesse au moyen de tests reproductibles basés sur
Le SC s’est dit confiant quant à l’avancement du projet et recommande à la communauté Python de promouvoir activement le build free-threaded comme une option officiellement prise en charge. Le label « experimental » devrait être officiellement retiré à partir de la beta 3 de Python 3.14, tandis que le passage à la phase III (faire du free-threading le build par défaut ou l’unique build) sera discuté ultérieurement.
3 commentaires
Vive l’indépendance des threads !
Hourra !
Waouh... !