[IO::Handle] Qualify builtin close calls to avoid load-time warnings
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Anfängerfreundlichkeit
- 88/100
Rechercherichtung
Untersuche src/main/perl/lib/IO/Handle.pm bei den gemeldeten Aufrufen um Zeile 301 und 501. Qualifiziere beide Aufrufe des Built-ins als CORE::close($fh) und erhalte dabei das Bereinigungsverhalten von DESTROY. Lade anschließend IO::Handle mit aktivierten Warnungen sowohl im JVM- als auch im Interpreter-Backend. Fertig ist es, wenn das Laden des Moduls keine mehrdeutigen Warnungen ausgibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Perl
- Sterne
- 67
- Forks
- 8
- Ø Merge
- 6 Std. 14 Min.
- Gemergte PRs (30 T.)
- 143
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus fglock/PerlOnJava
-
area:runtime documentation enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
fglock/PerlOnJava#1579 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:parser bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 56/100
fglock/PerlOnJava#2027 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:backend area:io area:runtime bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
fglock/PerlOnJava#2023 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:runtime bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
fglock/PerlOnJava#2022 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:backend area:cpan-port area:parser area:runtime bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 54/100
fglock/PerlOnJava#2021 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in fglock/PerlOnJava
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 94/100
VEuPathDB/ApiCommonModel#260 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
ibmdb/perl_DBD-DB2#21 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
`config --theme` can't find theme files when the `~/Documents/Themes` directory is a symbolic linkOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
1.severity: security
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag