Parser rejects our self-reference in its initializer under strict vars
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 48/100
Piste de recherche
Start by tracing how our declarations are handled and how strict 'vars' resolves initializer references in both the JVM and interpreter backends. Reproduce with our $V = $V = 119; under strict vars and compare with system Perl. Done when both backends compile the case and leave $V equal to 119.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
The parser rejects a valid our declaration when its initializer reads the variable being declared under strict 'vars'. This breaks CPAN distribution Text-Template 1.61: t/delimiters.t stops at compile time with Global symbol "$V" requires explicit package name, before running its assertions. System Perl 5.42.2 accepts the source, and the complete upstream distribution suite passes there (22 files, 184 tests). Both PerlOnJava backends reject it.
Root cause
The declaration's initializer is resolved before the our variable is entered into the current lexical symbol table. Perl makes the our alias visible in the declaration's initializer, so the self-assignment in this valid initializer must resolve to the package variable. The package glob being materialized during declaration handling is not sufficient: strict-variable resolution uses the lexical symbol table and reports the RHS $V as undeclared.
This was independently reproduced with the one-line case in the comment. It fails under both the JVM and interpreter backends and succeeds under system Perl. The failure is included in archived CPAN run 20261104-151051-20617.
Expected behavior
our $V = $V = 119; compiles under use strict and leaves $V equal to 119, as it does in system Perl.
- Langage dominant
- Perl
- Étoiles
- 65
- Forks
- 8
- Merge moyen
- 5 h 54 min
- PR mergées (30 j)
- 184
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de fglock/PerlOnJava
-
area:runtime documentation enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
fglock/PerlOnJava#1579 ·
Les mainteneurs répondent en général sous 1 jour
-
area:backend bug
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
fglock/PerlOnJava#1981 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area:runtime bug
Difficulté 4/5 3-5 jours Accessibilité débutants 57/100
fglock/PerlOnJava#1980 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
perf: continue eval STRING optimization work (follow-up to #1940)Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
fglock/PerlOnJava#1961 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Fix Java TLS socket reads for chunked HTTPS response bodiesPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertearea:io bug
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
fglock/PerlOnJava#1957 · 6 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de fglock/PerlOnJava
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
ai-driven-fuzzing bug claude Minor
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
linagora/lemonldap-ng-plugins#170 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
libwww-perl/HTTP-Message#236 ·
-
1.severity: security
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
wave-followup
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100