[IO::Handle] Qualify builtin close calls to avoid load-time warnings
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 1/5
- Thời gian dự kiến
- Dưới một giờ
- Mức phù hợp với người mới
- 88/100
Hướng nghiên cứu
Kiểm tra src/main/perl/lib/IO/Handle.pm tại các lệnh gọi được báo cáo quanh dòng 301 và 501. Ghi rõ cả hai lệnh gọi builtin thành CORE::close($fh) trong khi vẫn giữ nguyên hành vi dọn dẹp của DESTROY, sau đó nạp IO::Handle với cảnh báo được bật trên cả backend JVM lẫn backend trình thông dịch. Hoàn tất khi việc nạp mô-đun không phát ra cảnh báo nhập nhằng nào.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Perl
- Star
- 67
- Fork
- 8
- Merge trung bình
- 6 giờ 14 phút
- Pull request đã merge (30 ngày)
- 143
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của fglock/PerlOnJava
-
area:runtime documentation enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
fglock/PerlOnJava#1579 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:parser bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 56/100
fglock/PerlOnJava#2027 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:backend area:io area:runtime bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
fglock/PerlOnJava#2023 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:runtime bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
fglock/PerlOnJava#2022 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:backend area:cpan-port area:parser area:runtime bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 54/100
fglock/PerlOnJava#2021 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của fglock/PerlOnJava
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 94/100
VEuPathDB/ApiCommonModel#260 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
ibmdb/perl_DBD-DB2#21 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
`config --theme` can't find theme files when the `~/Documents/Themes` directory is a symbolic linkĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
1.severity: security
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày