Builds Without HAVE_DYNAMIC_LOADING Set Still Expose Features and API Related to Dynamic Modules
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
When CPython is built without HAVE_DYNAMIC_LOADING set, we currently leave out a small handful of code in Python/import.c and Python/importdl.c. However, there is a bunch more that should probably be excluded (via #ifdef HAVE_DYNAMIC_LOADING):
- some functions and constants in Python/importdl.c and Include/internal/pycore_importdl.h
- some functions, constants, and state in Python/import.c and Include/internal/pycore_import.h
- some code in Lib/importlib/_bootstrap_external.py
- maybe some code in Objects/moduleobject.c
- builds for Modules/Setup.stdlib
- checks in Tools/build/check_extension_modules.py
- modules listed by Tools/build/generate_stdlib_module_names.py
(Also see gh-122907.)
Getting this all correct would probably take a fair amount of effort. Perhaps the big question is would it be worth addressing all these cases?
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
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
Examinez les chemins de chargement dynamique indiqués dans Python/import.c, Python/importdl.c, Include/internal/pycore_importdl.h, Include/internal/pycore_import.h, Lib/importlib/_bootstrap_external.py et Objects/moduleobject.c, ainsi que les scripts Tools/build listés et Modules/Setup.stdlib. Comparez le comportement lorsque HAVE_DYNAMIC_LOADING n’est pas défini, en tenant compte de gh-122907, et déterminez la portée complète avant de définir ce que signifierait l’exclusion cohérente des API et fonctionnalités des modules dynamiques.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- build-system
- Type d'issue
- Bug
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100