Parse postfix unless after eval heredoc with defined sub check
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ó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 67/100
Hướng nghiên cứu
Start with the reduced Perl reproducer and the parser handling its eval heredoc and postfix unless form, then add project-owned regression coverage for both PerlOnJava backends. Run t/00-compile.t for Pod::Weaver::Plugin::WordListC; done means the reproducer parses and runs on the JVM and interpreter backends and the compile test passes.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
PerlOnJava rejects an eval heredoc whose statement has a postfix unless condition checking whether a subroutine is defined. This prevents Params::SomeUtil from loading and causes CPAN distributions such as Pod-Weaver-Plugin-WordListC to fail their compile test.
Reproducer
eval <<'END_PERL' unless defined &foo;
sub foo { 1 }
END_PERL
System Perl 5.42.2 accepts this with syntax OK. Both PerlOnJava backends report a syntax error. The real dependency failure points at the condition near unless defined & in Params::SomeUtil 1.12.
Regression evidence
CPAN run 20261002-132816-78055 records Pod::Weaver::Plugin::WordListC 0.001 as a regression: t/00-compile.t fails while loading Params::SomeUtil, with 1 of 1 assertions failed in that test and 1 of 4 test programs failing overall. The regression record lists a prior pass on 2026-09-12 at commit 141cdae65.
The system-Perl oracle log did not reach the target distribution's test run, so the full upstream suite result is unverified. The reduced Perl syntax construct passes under system Perl and fails reproducibly on both PerlOnJava backends.
Observed on macOS arm64 with Java 24.0.2, PerlOnJava commit a0b6a6256 (reported as Perl 5.44.1).
Ecosystem impact
Params::SomeUtil contains XS code. A targeted MetaCPAN lookup found 6 unique released runtime dependants, all 6 recent: Dist-Zilla, Pod-Weaver, Config-MVP, Sub-Exporter, Data-OptList, and Alt-Params-Util-PLICEASE.
Acceptance criteria
- The reproducer parses and runs on the JVM and interpreter backends.
- Add project-owned regression coverage for this syntax form.
- The
Pod::Weaver::Plugin::WordListCcompile test passes with the same dependency load order.
- Ngôn ngữ chính
- Perl
- Star
- 64
- Fork
- 7
- Merge trung bình
- 4 giờ 27 phút
- Pull request đã merge (30 ngày)
- 178
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
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
fglock/PerlOnJava#1651 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ 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:cpan-port area:unicode bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
fglock/PerlOnJava#1341 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:backend area:cpan-port area:parser bug
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
fglock/PerlOnJava#1659 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
fglock/PerlOnJava#1657 · 2 bình luận ·
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ự
-
Perl/Fish oddness in new versionĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
gugod/App-perlbrew#879 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
RotherOSS/otobo#6205 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add IO::Pipe classĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
yuki-kimoto/SPVM-IO#30 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
RotherOSS/servicecatalog#28 ·