Bare package version v20171214 is parsed as an invalid Unicode code point

Open
#1,456 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
67/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
java, perl

Research direction

Start at StringParser.parseVstring and trace how use ISO::639 v20171214 is handled during compilation in both execution backends. Add the project-owned regression for a large one-component package version; it is done when the module loads and its test passes on both the JVM and interpreter backends without the Unicode code point error.

Written by the indexing model from the issue text.

Description

bug high-impact

Summary

Google::Translate::Languages fails to compile on PerlOnJava because a bare package version literal is parsed as a Unicode v-string.

Reproduction

Distribution: Google-Translate-Languages-20190811

The distribution contains:

use ISO::639 v20171214;

Its test program then fails before running any tests with:

Not a valid Unicode code point: 0x133C9CE
Compilation failed in require

0x133C9CE is decimal 20171214, the version value incorrectly passed to the v-string code path.

Results

  • System Perl: PASS, 1 test program and 1 test.
  • PerlOnJava JVM backend: FAIL before test execution.
  • PerlOnJava interpreter backend: FAIL before test execution.
  • The failure reproduces with the archived CPAN dependency overlay.

Archived CPAN tester run: 20260918-141920-96054.

Suspected cause

The parser routes use ISO::639 v20171214 through StringParser.parseVstring. A one-component package version must be treated as a version literal, not converted to a Unicode code point. The failure occurs in both execution backends during parsing/compilation.

Expected behavior

The module should load and its test should pass as it does under standard Perl.

Regression coverage

Add a project-owned parser/compiler regression test covering a bare package version with a large one-component value, such as use Some::Module v20171214, and verify JVM and interpreter parity.

Dominant language
Perl
Stars
64
Forks
6
Avg merge
5h 25m
Merged PRs (30d)
157

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fglock/PerlOnJava

All issues in fglock/PerlOnJava

Similar issues

More Perl issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.