@@ -2195,6 +2195,20 @@ single form when it must operate on them directly. Either you've passed
2195
2195
an invalid file specification to Perl, or you've found a case the
2196
2196
conversion routines don't handle. Drat.
2197
2197
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
+
2198
2212
=item Eval-group in insecure regular expression
2199
2213
2200
2214
(F) Perl detected tainted data when trying to compile a regular
@@ -2836,6 +2850,16 @@ not match 8 spaces.
2836
2850
text. You should check the pattern to ensure that recursive patterns
2837
2851
either consume text or fail.
2838
2852
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
+
2839
2863
=item Infinite recursion via empty pattern
2840
2864
2841
2865
(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>):
6273
6297
This use of C<my()> in a false conditional was deprecated beginning in
6274
6298
Perl 5.10 and became a fatal error in Perl 5.30.
6275
6299
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
+
6276
6314
=item times not implemented
6277
6315
6278
6316
(F) Your version of the C library apparently doesn't do times(). I
@@ -6846,6 +6884,13 @@ for the list of known options.
6846
6884
L<perlrun|perlrun/-C [numberE<sol>list]> documentation of the C<-C> switch
6847
6885
for the list of known options.
6848
6886
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
+
6849
6894
=item Unknown verb pattern '%s' in regex; marked by S<<-- HERE> in m/%s/
6850
6895
6851
6896
(F) You either made a typo or have incorrectly put a C<*> quantifier
0 commit comments