Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

FileHandle cannot resolve IO::Seekable::getpos while loading DBG

未关闭
#1,873 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
55/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
java, perl
领域
backend, compilers

调研方向

Start with the bundled FileHandle.pm, especially the IO::Seekable::getpos lookup near line 72, and trace where the IO::Seekable package is initialized. Reproduce with t/00-compile.t and t/basic.t, then add the focused FileHandle/DBG loading regression test requested in the issue. Verify the test with system Perl first and on both PerlOnJava backends, with Devel::Size available.

由索引模型根据 Issue 内容生成。

描述

area:io area:runtime bug

Summary

DBG 0.4.1 fails to load under PerlOnJava because bundled FileHandle.pm cannot find IO::Seekable::getpos. This causes both t/00-compile.t and t/basic.t to fail before DBG's tests can run.

Reproduction

Install/run GSG/DBG-v0.4.1.tar.gz through the CPAN tester, including its normal test prerequisites. The failure was recorded in CPAN random tester run 20261022-185222-43282.

The relevant failure is:

# Failed test 'DBG.pm loaded ok'
IO::Seekable::getpos missing at jar:PERL5LIB/FileHandle.pm line 72.
Compilation failed in require

The same diagnostic occurs when t/basic.t loads DBG.pm. The archived PerlOnJava run reports 2 of 6 test programs failed and 1 of 2 executed assertions failed. The three release-only tests are skipped.

Expected: IO::Seekable::getpos is available while FileHandle.pm initializes, and DBG loads.

Actual: loading aborts because the IO::Seekable package has no registered getpos method at that point.

Environment and comparison

  • Distribution: DBG 0.4.1 (GSG/DBG-v0.4.1.tar.gz)
  • PerlOnJava: JVM backend via the CPAN tester; the archived log does not record its source commit. Interpreter backend: not tested.
  • Java: OpenJDK 24.0.2, aarch64
  • System Perl: 5.42.2
  • System Perl t/basic.t: passes after building the exact Devel::Size 0.87 prerequisite locally.
  • Full system-Perl suite: not confirmed. t/00-compile.t could not open DBG's temporary log file in the sandbox (Operation not permitted), so that result is an environment/setup failure rather than evidence of a DBG failure.

The XS prerequisite Devel::Size was missing its native object in the PerlOnJava CPAN build, but the reported failure occurs independently at IO::Seekable::getpos during module loading. The failure points to PerlOnJava's bundled IO module initialization/method availability.

Related issues checked

  • #1782 covers UNIVERSAL::isa ignoring the IO parent for IO references; it is closed and describes a different behavior.
  • #1216 covers Template::Like filehandle input and scalar output; it is unrelated.

Acceptance criteria

  • FileHandle.pm can resolve IO::Seekable::getpos when loading on both PerlOnJava backends.
  • Add a focused project-owned regression test for loading FileHandle/DBG and verify it with system Perl first.
  • The DBG 0.4.1 upstream test suite passes on both PerlOnJava backends when its prerequisites are available.
主要语言
Perl
星标
64
派生
8
平均合并
5 小时 47 分钟
30 天内合并 PR
197

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

fglock/PerlOnJava 的其他 Issue

查看 fglock/PerlOnJava 的全部 Issue

相似的 Issue

更多 Perl Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。