Data::Dumper::Simple 0.11 fails because Filter::Simple source filtering is not applied correctly
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
- 52/100
Hướng nghiên cứu
Bắt đầu bằng cách chạy jperl -Ilib t/10dump.t và lệnh --interpreter tương ứng, sau đó so sánh các upstream test đang thất bại t/20import.t, t/30autowarn.t và t/40noparens.t. Đọc phần đăng ký và áp dụng source-filter sau các câu lệnh use, đặc biệt là phần tích hợp Filter::Util::Call/Filter::Simple và việc token hóa lại phần mã nguồn còn lại. Công việc được xem là hoàn tất khi cả bốn test đều pass trên cả hai backend và một regression test tập trung, do dự án sở hữu, bao quát hành vi của filter.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
Data::Dumper::Simple v0.11 fails its upstream test suite under PerlOnJava because its Filter::Simple source filter does not transform calls made after the module is imported.
This was observed in CPAN random tester run 20260913-205737-64746.
Reproduction
The upstream test suite passes under system Perl:
- 4 substantive test programs passed
- 35 tests passed in total
- The optional POD tests were skipped because their optional dependencies/files were unavailable
The same upstream tests fail under both PerlOnJava backends:
- JVM backend:
t/10dump.t,t/20import.t,t/30autowarn.t, andt/40noparens.tfail - Interpreter backend: the same four tests fail
Representative commands:
jperl -Ilib t/10dump.t
jperl --interpreter -Ilib t/10dump.t
Observed failures
t/10dump.t:Undefined subroutine &main::Dumpert/20import.t:Undefined subroutine &main::frobnitzt/30autowarn.t:Undefined subroutine &main::Dumpert/40noparens.t:Global symbol "$hash" requires explicit package name
Each failing test reports that it ran only its initial use_ok test before aborting.
Expected behavior
use Data::Dumper::Simple installs a Filter::Simple source filter. Calls such as:
Dumper($scalar, @array, %hash)
should be rewritten at compile time to an equivalent Data::Dumper->Dump call. The as => 'frobnitz' and autowarn options, as well as no-parentheses syntax, should work as they do under system Perl.
Initial diagnosis
The distribution is pure Perl and has no XS, native-library, display, network-service, or other platform prerequisite involved in these tests. The failures occur identically on the JVM and interpreter backends, indicating a shared frontend/source-filter compatibility problem rather than a backend-specific runtime issue.
The module uses Filter::Simple with FILTER_ONLY executable. The missing generated subroutine calls indicate that the filter is either not being applied to the remaining source after the import or its transformed source is not being correctly re-tokenized/compiled. The strict-vars error in t/40noparens.t is consistent with the no-parentheses source-filter path failing to produce the expected transformed expression.
Relevant implementation areas include source-filter registration and application after use statements, especially the Filter::Util::Call/Filter::Simple integration and remaining-source re-tokenization in the frontend.
Acceptance criteria
- All four substantive
Data::Dumper::Simpletest programs pass on the JVM backend. - The same tests pass on the interpreter backend.
as => 'frobnitz',autowarn, and no-parentheses calls are covered.- Add a project-owned focused regression test for the underlying source-filter behavior; retain the upstream distribution tests as integration coverage.
Environment
- CPAN random tester run:
20260913-205737-64746 - Distribution:
Data-Dumper-Simple-0.11 - Affected backends: JVM and interpreter
- System Perl: full substantive suite passes
- Ngôn ngữ chính
- Perl
- Star
- 64
- Fork
- 6
- Merge trung bình
- 5 giờ 38 phút
- Pull request đã merge (30 ngày)
- 170
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: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 ·
-
area:backend 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#1511 ·
-
area:backend area:cpan-port bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
fglock/PerlOnJava#1508 · 1 bình luận ·
-
Port IPC::SysV (low priority) Đang mởarea:cpan-port area:platform enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
fglock/PerlOnJava#1507 ·
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
fglock/PerlOnJava#1506 ·
Tất cả issue của fglock/PerlOnJava
Issue tương tự
-
documentation Needs Triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
trizen/youtube-viewer#456 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
connectivity Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 80/100
-
Common US ingredient names are not recognized, so about 12.4k US products miss an allergen warning Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
openfoodfacts/openfoodfacts-server#14657 · 4 bình luận ·