Mypyc produces module that crashes (segmentation fault) when executed
Ouverte
Personne n'a encore pris cette issue.
crash
topic-mypyc
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
compiled.py:
from typing import Generic, TypeVar
_T = TypeVar("_T")
class Bar(Generic[_T]):
def __init__(self) -> None:
self.value: str = 'start'
def __get__(self, instance: _T, owner: type[_T] | None = None) -> str:
return self.value
def __set__(self, instance: _T, value: str) -> None:
self.value = value
class Foo(object):
bar: Bar = Bar()
Compiled with python3 -m mypyc compiled.py.
test.py:
import compiled
print("hello")
f = compiled.Foo()
print(f.bar)
f.bar = 'test'
print(f.bar)
And running with:
$ python3 test.py
hello
<compiled.Bar object at 0x7464e7774310>
Segmentation fault
Using current master of mypyc:
$ python3 -m mypyc --version
mypy 1.16.0+dev.7b4f6311e29452cc8d4ddb78331d0047c8b17e93.dirty (compiled: no)
Using Python 3.13.1
If running with python3 directly:
$ python3 test.py
hello
start
test
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez le plantage en compilant compiled.py avec python3 -m mypyc et en exécutant test.py avec Python 3.13.1. Comparez le comportement compilé avec l’exécution directe en Python, en vous concentrant sur le descripteur générique et l’accès à Foo.bar. C’est terminé lorsque le module compilé affiche hello, start et test sans segmentation fault.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100