[IO::Handle] Qualify builtin close calls to avoid load-time warnings
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 88/100
Piste de recherche
Examinez src/main/perl/lib/IO/Handle.pm aux appels signalés autour des lignes 301 et 501. Qualifiez les deux appels au builtin en CORE::close($fh) tout en préservant le comportement de nettoyage de DESTROY, puis chargez IO::Handle avec les avertissements activés sur les backends JVM et interpréteur. Le travail est terminé lorsque le chargement du module n’émet aucun avertissement d’ambiguïté.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
Loading the bundled IO::Handle module emits two ambiguous warnings even though both calls are intended to invoke Perl's builtin close:
use warnings;
require IO::Handle;
PerlOnJava reports warnings at src/main/perl/lib/IO/Handle.pm lines 301 and 501. The module defines IO::Handle::close earlier (line 86), so these later bare close($fh) calls are ambiguous. The comment at line 298 already describes the intended operation as CORE::close, but the call is not qualified. The DESTROY call also needs explicit builtin qualification while preserving deterministic handle cleanup.
Expected and actual behavior
Expected: requiring IO::Handle produces no warnings.
Actual on PerlOnJava, with both JVM and interpreter backends:
Ambiguous call resolved as CORE::close(), qualify as such or use & at jar:PERL5LIB/IO/Handle.pm line 301.
Ambiguous call resolved as CORE::close(), qualify as such or use & at jar:PERL5LIB/IO/Handle.pm line 501.
System Perl 5.42.2 loads its core IO::Handle without warnings. Its DESTROY is defined before close, and it has no later bare calls to that builtin.
This caused Data-Message-Board 0.06, CPAN random run 20261109-091152-39587, to fail t/Test-Shared-Fixture-Data-Message-Board-Example/01-use.t (no warnings): 1 of 75 tests failed on PerlOnJava. The complete suite passed 75/75 under the archived system-Perl oracle.
Environment and source
- PerlOnJava source:
4aca25e9fc5ebe26fb0081173a0cc9e3339c9c60 - OpenJDK 24.0.2, macOS arm64
- System Perl: 5.42.2
Qualify the two builtin calls as CORE::close($fh) and retain the existing DESTROY cleanup behavior.
- Langage dominant
- Perl
- Étoiles
- 67
- Forks
- 8
- Merge moyen
- 6 h 14 min
- PR mergées (30 j)
- 143
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Lire 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.
Autres issues de fglock/PerlOnJava
-
area:runtime documentation enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
fglock/PerlOnJava#1579 ·
Les mainteneurs répondent en général sous 1 jour
-
area:parser bug
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
fglock/PerlOnJava#2027 ·
Les mainteneurs répondent en général sous 1 jour
-
area:backend area:io area:runtime bug
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
fglock/PerlOnJava#2023 ·
Les mainteneurs répondent en général sous 1 jour
-
area:runtime bug
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
fglock/PerlOnJava#2022 ·
Les mainteneurs répondent en général sous 1 jour
-
area:backend area:cpan-port area:parser area:runtime bug
Difficulté 4/5 3-5 jours Accessibilité débutants 54/100
fglock/PerlOnJava#2021 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de fglock/PerlOnJava
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 94/100
VEuPathDB/ApiCommonModel#260 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
ibmdb/perl_DBD-DB2#21 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
`config --theme` can't find theme files when the `~/Documents/Themes` directory is a symbolic linkOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
1.severity: security
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour