15 points par darjeeling 2025-06-16 | 3 commentaires | Partager sur WhatsApp

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.

  1. 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
  2. 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
  3. 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 %)
  4. 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
  5. 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
  6. 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

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

 
carnoxen 2025-06-20

Vive l’indépendance des threads !

 
idunno 2025-06-18

Hourra !

 
kimjoin2 2025-06-17

Waouh... !