caller reports void context for scalar eval caller frame
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ó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
Hướng nghiên cứu
Start with the caller-frame context tracking path used by caller(1)[5] and the existing upstream regression test t/002_must_be_list.t. Reproduce the scalar and void eval cases on both JVM and interpreter backends, then trace how each backend reports the caller context. Done means the project-owned regression coverage passes with system Perl and the upstream suite passes on both PerlOnJava backends.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
caller(1)[5] reports void instead of scalar for the caller frame when a failing call is made through a scalar eval.
Reproducer
Call Call::Context::must_be_list() from foo, where try_it returns foo(), then run:
eval { try_it() };
scalar eval { try_it() };
scalar eval { () = try_it() };
The upstream Call-Context 0.05 test t/002_must_be_list.t expects the second call's exception to identify scalar context and the third call to succeed.
Evidence
- PerlOnJava
b8e16493d, JVM backend, Java 24.0.2, macOS arm64: 1/6 assertions failed int/002_must_be_list.t; actual diagnostic saysfoo called in non-list (void) contextduring the scalar eval. - Interpreter backend on the same checkout also reports
voidfor the scalar case and has an additional failure in the list case. - System Perl 5.42.2 passes all 6 assertions; the archived CPAN oracle for run
20261021-223510-14962passes all 13 tests across all three test files. - The same CPAN run records the PerlOnJava failure as 12/13 tests, with test 5 failing in
t/002_must_be_list.t. - The archived regression record identifies
d5170d2d0as the last-known-working version.
The distribution is pure Perl. This appears to be a PerlOnJava caller-frame context tracking issue; the JVM and interpreter backends are both affected.
Acceptance criteria
caller(1)[5]reports scalar for the scalar-eval call and undef for the void call.- The upstream
Call-Context0.05 test suite passes on both PerlOnJava backends. - Add permanent project-owned regression coverage and validate it with system Perl.
- Ngôn ngữ chính
- Perl
- Star
- 64
- Fork
- 8
- Merge trung bình
- 5 giờ 28 phút
- Pull request đã merge (30 ngày)
- 199
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
-
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
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 38/100
fglock/PerlOnJava#1854 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 56/100
fglock/PerlOnJava#1851 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:performance enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
fglock/PerlOnJava#1846 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
fglock/PerlOnJava#1835 ·
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ự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
RotherOSS/otobo#6286 · 1 bình luận ·
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 76/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
LMS-Community/slimserver#1692 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
fix(api): API v3 Product Read ignores request language (lc) for sample products and image URLsCó thể đã có người làm @muntasir-396 đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
openfoodfacts/openfoodfacts-server#15042 · 1 bình luận ·
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
Maintainer thường phản hồi trong vòng 3 ngày