Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Fix AnyEvent::Tools compilation and timer scheduling compatibility

Đang mở
#1,470 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

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
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
perl
Lĩnh vực
compilers, testing-qa

Hướng nghiên cứu

Start with the AnyEvent.pm construct around line 1460 and reproduce the archived compilation diagnostic on both PerlOnJava backends. Then run t/01_mutex.t, t/02_rw_mutex.t, and t/03_repeat.t, comparing timer and callback behavior with the system-Perl baseline of 7 files and 103 tests. Done means those tests pass on both backends and the CPAN compatibility classification is refreshed.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area:backend area:cpan-port area:parser area:runtime bug

Summary

AnyEvent::Tools 0.12 exposes PerlOnJava incompatibilities in the pure-Perl AnyEvent event loop. The archived CPAN run fails while compiling AnyEvent itself, and current focused runs additionally show timer/mutex behavior differences.

Reproduction

CPAN random-tester run: 20260921-124328-13959

Target: AnyEvent::Tools 0.12

The archived PerlOnJava run reports:

Constants from lexical variables potentially modified elsewhere are no longer permitted at AnyEvent.pm line 1460.

This prevents the seven AnyEvent::Tools test programs from reaching their normal assertions. The affected AnyEvent source is pure Perl; no XS or native code is involved.

With the same upstream sources and isolated prerequisites, system Perl passes:

Files=7, Tests=103
Result: PASS

Current focused PerlOnJava runs also reproduce event-loop behavior differences after the compile failure is avoided:

  • JVM and interpreter backends fail t/01_mutex.t: Mutex was locked correct time (4/11).
  • JVM backend also fails t/02_rw_mutex.t and t/03_repeat.t.
  • Other focused JVM tests, including the array/hash iteration and pool tests, pass.

The mutex test uses short AE::timer callbacks and expects the mutex to remain locked for the expected number of timer ticks. System Perl passes this timing assertion, while PerlOnJava reports fewer ticks. The issue may involve AnyEvent timer scheduling, callback ordering, or the handling of lexical subroutine/glob mutation in AnyEvent.pm; the parser/compile diagnostic and the runtime timing failures should be investigated separately.

Related issue

Issue #1118 covers AnyEvent socket EOF and interpreter callback recursion. This report is related but is not a duplicate: it concerns AnyEvent compilation plus mutex/repeat timer scheduling in AnyEvent::Tools.

Acceptance criteria

  • Add a permanent standard-Perl-validated regression for the AnyEvent.pm construct around line 1460.
  • Make AnyEvent::Tools 0.12 load successfully on both PerlOnJava backends.
  • Make t/01_mutex.t, t/02_rw_mutex.t, and t/03_repeat.t pass on both backends.
  • Preserve the system-Perl baseline of 7 files and 103 tests.
  • Refresh the CPAN compatibility classification after the fix.
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

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của fglock/PerlOnJava

Tất cả issue của fglock/PerlOnJava

Issue tương tự

Thêm issue về Perl

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.