Port Data::Alias for CPAN compatibility

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

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ó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java, perl
Lĩnh vực
backend, compilers

Hướng nghiên cứu

Read the PerlOnJava parser and runtime entry points that implement Perl syntax and operations, then compare them with Data::Alias 1.30's Alias.xs and documented API. Start by reproducing the pop our @ISA failure and use system Perl as the behavior reference. Done means the documented alias, copy, and deref semantics pass the upstream Data::Alias and Data::Reuse 0.13 suites on supported backends, with unsupported cases and tested versions recorded.

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

Mô tả

area:cpan-port area:parser bug

Summary

Port Data::Alias so CPAN distributions that rely on its aliasing API can run on PerlOnJava. Data::Reuse is one confirmed consumer. Data::Alias 1.30 contains XS code (Alias.xs) and its Perl module bootstraps that extension; the current CPAN MakeMaker path installs only the .pm file and cannot compile the XS component.

Reproduction and evidence

  • Distribution: Data-Alias 1.30, module Data::Alias.
  • In CPAN run 20261104-151051-20617, the PerlOnJava test run fails to load Data::Alias across 31 of 33 test programs with Type of arg 1 to pop must be array (not constant item) at the pop our @ISA statement in Data/Alias.pm line 18. This is the first observed blocker; the package also needs an implementation for its XS-provided aliasing behavior.
  • On system Perl 5.42.2 (macOS), the same distribution compiled its XS extension and passed all available tests: 637 tests across 33 files. Two optional test files were skipped because Devel::CallParser and Test::Pod::Coverage were unavailable.
  • Data::Reuse 0.13 requires Data::Alias 1.16+. In CPAN run 20261106-154847-45334, its four test files all fail during dependency loading at the same pop our @ISA diagnostic. The system-Perl oracle built Data::Alias and passed all 127 Data::Reuse tests.
  • Targeted MetaCPAN reverse-dependency lookup: 14 unique released distributions have a runtime dependency on Data::Alias; 2 are recent. Examples: Data::Reuse, Alias-Any, PerlX-Window, and XML-Dataset.

Scope

Implement the Data::Alias surface needed by real consumers, including alias, copy, and deref, with Perl-compatible parsing and runtime semantics. The upstream distribution documents context-transparent operations and aliasing of variables, elements, arguments, and aggregates. Do not treat successful parsing alone as completion: exercise the upstream suite and Data::Reuse against the implementation.

Acceptance criteria

  • use Data::Alias loads without native XS and provides the supported API through PerlOnJava implementation code.
  • Focused tests cover pop our @ISA parsing and the documented API semantics, validated against system Perl.
  • Relevant upstream Data::Alias tests and the Data::Reuse 0.13 suite pass on PerlOnJava; test on both JVM and interpreter backends where supported.
  • Document any unsupported API cases and keep the tested distribution versions and results in the compatibility evidence.

Evidence references

Ngôn ngữ chính
Perl
Star
65
Fork
8
Merge trung bình
5 giờ 57 phút
Pull request đã merge (30 ngày)
177

Chuẩn bị môi trường

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.