Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Fix AnyEvent::Tools compilation and timer scheduling compatibility

オープン
#1,470 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
perl

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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

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.
主要言語
Perl
スター
64
フォーク
7
平均マージ
4時間 27分
マージ済み PR(30日)
178

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

fglock/PerlOnJava のほかの issue

fglock/PerlOnJava の issue をすべて見る

似ている issue

Perl の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。