Skip to content

Commit cac1381

Browse files
khwilliamsonjkeenan
authored andcommitted
Add missing entries to perldiag; GH #18276
The ticket mentions yet another message, not addressed in this commit, "Insecure private-use override". That message is part of a hook for a so-far unimplemented module, so it actually doesn't ever get raised. Committer: One correction per Grinnz comment in #18491
1 parent 034aa30 commit cac1381

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

pod/perldiag.pod

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2195,6 +2195,20 @@ single form when it must operate on them directly. Either you've passed
21952195
an invalid file specification to Perl, or you've found a case the
21962196
conversion routines don't handle. Drat.
21972197

2198+
=item Error %s in expansion of %s
2199+
2200+
(F) An error was encountered in handling a user-defined property
2201+
(L<perlunicode/User-Defined Character Properties>). These are
2202+
programmer written subroutines, hence subject to errors that may
2203+
prevent them from compiling or running. The calls to these subs are
2204+
C<eval>'d, and if there is a failure, this message is raised, using the
2205+
contents of C<$@> from the failed C<eval>.
2206+
2207+
Another possibility is that tainted data was encountered somewhere in
2208+
the chain of expanding the property. If so, the message wording will
2209+
indicate that this is the problem. See L</Insecure user-defined
2210+
property %s>.
2211+
21982212
=item Eval-group in insecure regular expression
21992213

22002214
(F) Perl detected tainted data when trying to compile a regular
@@ -2836,6 +2850,16 @@ not match 8 spaces.
28362850
text. You should check the pattern to ensure that recursive patterns
28372851
either consume text or fail.
28382852

2853+
=item Infinite recursion in user-defined property
2854+
2855+
(F) A user-defined property (L<perlunicode/User-Defined Character
2856+
Properties>) can depend on the definitions of other user-defined
2857+
properties. If the chain of dependencies leads back to this property,
2858+
infinite recursion would occur, were it not for the check that raised
2859+
this error.
2860+
2861+
Restructure your property definitions to avoid this.
2862+
28392863
=item Infinite recursion via empty pattern
28402864

28412865
(F) You tried to use the empty pattern inside of a regex code block,
@@ -6273,6 +6297,20 @@ lexicals that are initialized only once (see L<feature>):
62736297
This use of C<my()> in a false conditional was deprecated beginning in
62746298
Perl 5.10 and became a fatal error in Perl 5.30.
62756299

6300+
=item Timeout waiting for another thread to define \p{%s}
6301+
6302+
(F) The first time a user-defined property
6303+
(L<perlunicode/User-Defined Character Properties>) is used, its
6304+
definition is looked up and converted into an internal form for more
6305+
efficient handling in subsequent uses. There could be a race if two or
6306+
more threads tried to do this processing nearly simultaneously.
6307+
Instead, a critical section is created around this task, locking out all
6308+
but one thread from doing it. This message indicates that the thread
6309+
that is doing the conversion is taking an unexpectedly long time. The
6310+
timeout exists solely to prevent deadlock; it's long enough that the
6311+
system was likely thrashing and about to crash. There is no real remedy but
6312+
rebooting.
6313+
62766314
=item times not implemented
62776315

62786316
(F) Your version of the C library apparently doesn't do times(). I
@@ -6846,6 +6884,13 @@ for the list of known options.
68466884
L<perlrun|perlrun/-C [numberE<sol>list]> documentation of the C<-C> switch
68476885
for the list of known options.
68486886

6887+
=item Unknown user-defined property name \p{%s}
6888+
6889+
(F) You specified to use a property within the C<\p{...}> which was a
6890+
syntactically valid user-defined property, but no definition was found
6891+
for it by the time one was required to proceed. Check your spelling.
6892+
See L<perlunicode/User-Defined Character Properties>.
6893+
68496894
=item Unknown verb pattern '%s' in regex; marked by S<<-- HERE> in m/%s/
68506895

68516896
(F) You either made a typo or have incorrectly put a C<*> quantifier

0 commit comments

Comments
 (0)