python / python/cpython

Needs of feature that disabling optimization pipeline in runtime

Ouverte
#119,158 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

type-feature
Langage dominant
Python
Étoiles
77.2k
Forks
36k
Métriques de merge des PR
Métriques de PR en attente

Description

@iritkatriel
This feature is needed for debugging or experimentation when handling optimized bytecode.
When I want to take a look at the sequence of bytecodes that is optimized with the specific pipeline but not all pipelines, I need to disable several pipelines from https://github.com/python/cpython/blob/30b4e9f9c42493136c58c56fee5553128bb32428/Python/flowgraph.c#L1843-L1851 and rebuild the CPython it's pretty painful because when I want to change the combination of optimization than I should rebuild CPython every time.

It would be great if there is a way to disable specific optimization pipelines at runtime when I want.
Above example is just one specific case and sometime I want to disable all _PyCfg_OptimizeCodeUnit or part of _PyCfg_OptimizeCodeUnit.

This is what I wanted to ask about at the PyCon and will happy to see your opinion about this.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par Python/flowgraph.c, au niveau du pipeline _PyCfg_OptimizeCodeUnit référencé dans l’issue, et retracez la manière dont ses étapes d’optimisation sont sélectionnées lors de l’exécution. Définissez comment désactiver certaines étapes ou l’ensemble du pipeline sans reconstruire CPython, puis vérifiez que différentes combinaisons d’optimisations peuvent être inspectées comme demandé.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
c, python
Domaine
compilers
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.