Needs of feature that disabling optimization pipeline in runtime
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
@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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit Python/flowgraph.c bei der im Issue referenzierten _PyCfg_OptimizeCodeUnit-Pipeline und verfolge, wie ihre Optimierungsphasen zur Laufzeit ausgewählt werden. Lege fest, wie bestimmte Phasen oder die gesamte Pipeline deaktiviert werden könnten, ohne CPython neu zu erstellen, und überprüfe anschließend, dass verschiedene Optimierungskombinationen wie angefordert inspiziert werden können.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- c, python
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100