Summary
Port or provide a Java-backed implementation for Time::Moment so PerlOnJava can run its upstream test suite.
Evidence
- Distribution:
Time-Moment v0.46
- Archived CPAN run:
20260824-171428-41866
- PerlOnJava result: 36/37 subtests failed across 25/29 test programs because
Time::Moment has native XS/C code and no Java XS implementation is available.
- System Perl result: the upstream suite passed all runnable tests: 29 files and 34,995 tests. Optional tests for unavailable modules such as
DateTime, CBOR::XS, Sereal, and Params::Coerce were skipped.
- Reverse dependencies: 60 runtime dependant distributions, including 17 released within the recent dependency window.
- Example dependants:
Cron::Toolkit, DBIx::Wizard, Net::Async-Slack, Parse::Syslog-Line, and Web-Async.
Proposed scope
- Determine whether the existing Java time APIs can implement the
Time::Moment value, parsing, arithmetic, calendar, formatting, and serialization behavior.
- Choose a provider strategy: a Java-backed module provider, a compatible pure-Perl implementation, or a narrowly scoped XS shim.
- Preserve the upstream API and document unsupported edge cases explicitly.
- Add focused PerlOnJava regression coverage for provider loading and representative
Time::Moment operations.
- Run the unmodified upstream suite under both PerlOnJava backends and verify that the bundled provider cannot be shadowed by an upstream XS build.
The dependency count makes this a meaningful native-port candidate, but the implementation should be scoped by upstream API conformance rather than by the dependant count alone.
Summary
Port or provide a Java-backed implementation for
Time::Momentso PerlOnJava can run its upstream test suite.Evidence
Time-Momentv0.4620260824-171428-41866Time::Momenthas native XS/C code and no Java XS implementation is available.DateTime,CBOR::XS,Sereal, andParams::Coercewere skipped.Cron::Toolkit,DBIx::Wizard,Net::Async-Slack,Parse::Syslog-Line, andWeb-Async.Proposed scope
Time::Momentvalue, parsing, arithmetic, calendar, formatting, and serialization behavior.Time::Momentoperations.The dependency count makes this a meaningful native-port candidate, but the implementation should be scoped by upstream API conformance rather than by the dependant count alone.