perl.perl5.porters https://www.nntp.perl.org/group/perl.perl5.porters/ ... Copyright 1998-2018 perl.org Thu, 13 Dec 2018 17:23:28 +0000 ask@perl.org Re: t/io/eintr.t hangs on Darwin by Abigail On Thu, Dec 13, 2018 at 04:04:55AM +0100, Leon Timmermans wrote:<br/>&gt; On Wed, Dec 12, 2018 at 11:17 PM Abigail &lt;abigail@abigail.be&gt; wrote:<br/>&gt; &gt;<br/>&gt; &gt;<br/>&gt; &gt; If I run the test suite, it hangs on t/io/eintr.t. This is the output:<br/>&gt; &gt;<br/>&gt; &gt;<br/>&gt; &gt; $ ./perl -Ilib t/io/eintr.t<br/>&gt; &gt; 1..10<br/>&gt; &gt; ok 1 - read/close: sig handler close status<br/>&gt; &gt; ok 2 - read/close: read status<br/>&gt; &gt; ok 3 - read/close: close status<br/>&gt; &gt; ok 4 - read/die: read status<br/>&gt; &gt; ok 5 - read/die: close status<br/>&gt; &gt;<br/>&gt; &gt;<br/>&gt; &gt; And then it hangs. It seems to hang on the line:<br/>&gt; &gt;<br/>&gt; &gt; $st = print $out $buf;<br/>&gt; <br/>&gt; If you cut $buf into pieces, and then print the pieces in a loop<br/>&gt; (until failure), does it pass?<br/>&gt; <br/><br/><br/>I&#39;m not quite sure what you mean.<br/><br/>Anyway, the script hangs if length($buf) &gt;= 512;<br/><br/>With $buf = &#39;a&#39; x 511, the test doesn&#39;t hang, but it fails:<br/><br/> $ ./perl -Ilib t/io/eintr.t <br/> 1..10<br/> ok 1 - read/close: sig handler close status<br/> ok 2 - read/close: read status<br/> ok 3 - read/close: close status<br/> ok 4 - read/die: read status<br/> ok 5 - read/die: close status<br/> not ok 6 - print/close: sig handler close status<br/> # Failed test 6 - print/close: sig handler close status at t/io/eintr.t line 120<br/> # got &quot;&quot;<br/> # expected &quot;nok&quot;<br/> not ok 7 - print/close: print status<br/> # Failed test 7 - print/close: print status at t/io/eintr.t line 121<br/> not ok 8 - print/close: close status<br/> # Failed test 8 - print/close: close status at t/io/eintr.t line 122<br/> not ok 9 - print/die: print status<br/> # Failed test 9 - print/die: print status at t/io/eintr.t line 134<br/> not ok 10 - print/die: close status<br/> # Failed test 10 - print/die: close status at t/io/eintr.t line 137<br/> $<br/><br/><br/>If I change the<br/><br/> $st = print $out $buf;<br/> <br/>to<br/> foreach (1 .. 2) {<br/> $st = print $out $buf;<br/> }<br/><br/>and do the same for the line<br/><br/> $st = eval { print $out $buf };<br/><br/>the tests pass:<br/><br/> $ ./perl -Ilib t/io/eintr.t <br/> 1..10<br/> ok 1 - read/close: sig handler close status<br/> ok 2 - read/close: read status<br/> ok 3 - read/close: close status<br/> ok 4 - read/die: read status<br/> ok 5 - read/die: close status<br/> ok 6 - print/close: sig handler close status<br/> ok 7 - print/close: print status<br/> ok 8 - print/close: close status<br/> ok 9 - print/die: print status<br/> ok 10 - print/die: close status<br/> $<br/><br/><br/>Print more than twice however, results in warnings on the non-evalled<br/>print, while the eval hangs. For instance, using<br/><br/> foreach (1 .. 4) {<br/> $st = print $out $buf;<br/> }<br/><br/>and<br/><br/> foreach (1 .. 4) {<br/> $st = eval { print $out $buf };<br/> }<br/><br/>leads to:<br/><br/> $ ./perl -Ilib t/io/eintr.t <br/> 1..10<br/> ok 1 - read/close: sig handler close status<br/> ok 2 - read/close: read status<br/> ok 3 - read/close: close status<br/> ok 4 - read/die: read status<br/> ok 5 - read/die: close status<br/> print() on closed filehandle $out at t/io/eintr.t line 117.<br/> print() on closed filehandle $out at t/io/eintr.t line 117.<br/> ok 6 - print/close: sig handler close status<br/> ok 7 - print/close: print status<br/> ok 8 - print/close: close status<br/> ^C<br/> $<br/><br/><br/><br/><br/>Abigail<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253155.html Thu, 13 Dec 2018 11:28:28 +0000 [perl #133722] What do we mean by "paragraph mode"? by Tony Cook via RT On Wed, 12 Dec 2018 14:41:11 -0800, jkeenan@pobox.com wrote:<br/>&gt; Summary: This ticket replaces RT 133703 and proposes improved <br/>&gt; documentation and testing for the so-called &quot;paragraph mode&quot;, i.e., <br/>&gt; processing of records in a file while $/ set to the empty string.<br/>&gt; <br/>&gt; I. Background:<br/>&gt; <br/>&gt; In https://rt.perl.org/Ticket/Display.html?id=133703, I submitted a <br/>&gt; patch to sv.c intended to address a &quot;Comparison result is always the <br/>&gt; same&quot; warning reported by LTGM.com analysis of the Perl 5 core <br/>&gt; distribution. Dave Mitchell pointed out where the patch was wrong and, <br/>&gt; in the course of his discussion, mentioned that the section of sv.c at <br/>&gt; issue governed so-called &quot;paragraph mode&quot;, that is, what happens when <br/>&gt; you read a file when the input record separator has been set to an empty <br/>&gt; string:<br/>&gt; <br/>&gt; #####<br/>&gt; $/ = &#39;&#39;;<br/>&gt; #####<br/>&gt; <br/>&gt; While poking around in the code and the test suite, I became convinced:<br/>&gt; <br/>&gt; (a) that I didn&#39;t understand &quot;paragraph mode&quot; very well;<br/>&gt; <br/>&gt; (b) that &quot;paragraph mode&quot; wasn&#39;t well documented;<br/>&gt; <br/>&gt; (c) that &quot;paragraph mode&quot; wasn&#39;t thoroughly tested in the core <br/>&gt; distribution&#39;s test suite; and<br/>&gt; <br/>&gt; (d) that as a consequence of (b) and (c), it might contain bugs.<br/>&gt; <br/>&gt; I spent several days working on this. I no longer think &quot;paragraph <br/>&gt; mode&quot; has bugs, but I&#39;m more convinced that it is under-documented and <br/>&gt; under-tested. In this RT I propose better documentation of paragraph <br/>&gt; mode and additional tests.<br/><br/>If the behaviour of &lt;&gt; with $/ = &quot;&quot; is unclear, any improvements to the documentation belong in either the documentation for &lt;&gt; (aka readline in pod/perlfunc.pod) or for $/ ($/ in pod/perlvar.pod), not in perlfaq. Given the other reference documentation of readline/$/ combined behaviour is in perlvar, it probably belongs there.<br/><br/>&gt; To facilitate discussion, I&#39;ve written this test program in a modern <br/>&gt; style using Test::More, File::Temp, CPAN module Data::Dump and <br/>&gt; subroutines. When we bring this into the core distribution, I&#39;ll adapt <br/>&gt; it for inclusion under, say, t/op/, where I&#39;ll have to use only the <br/>&gt; testing functions provided by t/test.pl.<br/>&gt; <br/>&gt; What is important for discussion now is: Do these tests thoroughly <br/>&gt; cover what we mean by &quot;paragraph mode&quot;?<br/><br/>One suggestion I&#39;d make for the tests is to include a brief description of the test case in the is()/is_deeply() calls, since normal default test failure out includes the name of the test - it doesn&#39;t include the note() output.<br/><br/>In your case you might pass a test name prefix to perform_tests() and include that as part of the name supplied to is()/is_deeply().<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: new<br/>https://rt.perl.org/Ticket/Display.html?id=133722<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253154.html Thu, 13 Dec 2018 04:11:15 +0000 [perl #131165] Encode module caused crash of perl process by Tony Cook via RT On Fri, 28 Jul 2017 13:43:39 -0700, public@khwilliamson.com wrote:<br/>&gt; You missed part of my point. These are fixes to Encode. Encode is on<br/>&gt; CPAN. The latest Encode can be downloaded by anyone at anytime for<br/>&gt; any<br/>&gt; release of Perl. Then recompiling their perl will fix these bugs<br/>&gt; without any changes needed in core perl.<br/>&gt; <br/>&gt; It seems unlikely that we would include an updated Encode, with all<br/>&gt; its<br/>&gt; changes, in a maintenance release, which we strive to have as few<br/>&gt; lines<br/>&gt; of code change as possible.<br/><br/>Since security supported versions of perl have the fixes this ticket is obsolete, and is now public.<br/><br/>As to how we should have treated this ticket - one option would have been to backport only the security related buffer overflow fix, as was done with the CVE-2018-12015 fix for 5.26.<br/><br/>Or to say &quot;upgrade Encode&quot;.<br/><br/>But from Pali&#39;s original description the problem is one we&#39;ve generally not treated as a security issue - a buffer read overflow.<br/><br/>Closing this ticket.<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=131165<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253153.html Thu, 13 Dec 2018 03:45:14 +0000 [perl #133558] perl 5.26: use lib pragma issue in IBM AIX by Tony Cook via RT On Wed, 12 Dec 2018 19:14:27 -0800, gskallur@gmail.com wrote:<br/>&gt; Yes. Now it&#39;s working fine on AIX. Also tried it on Linux. It&#39;s working<br/>&gt; fine in Linux also.<br/>&gt; <br/>&gt; On Thu, 13 Dec 2018, 5:26 am Tony Cook via RT &lt;perlbug-followup@perl.org<br/>&gt; wrote:<br/>&gt; <br/>&gt; &gt; On Wed, 17 Oct 2018 22:37:32 -0700, gskallur@gmail.com wrote:<br/>&gt; &gt; &gt; From where Can I download the patch.<br/>&gt; &gt;<br/>&gt; &gt; Did Dave&#39;s patch solve the problem for you?<br/>&gt; &gt;<br/>&gt; &gt; Tony<br/>&gt; &gt;<br/><br/>Thanks, closing this ticket and added the commit to the backport votes files for 5.28 and 5.26. It cherry-picks cleanly to both.<br/><br/>Tony<br/><br/><br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133558<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253152.html Thu, 13 Dec 2018 03:27:00 +0000 Re: [perl #133558] perl 5.26: use lib pragma issue in IBM AIX by Gururaj Kallur Yes. Now it&#39;s working fine on AIX. Also tried it on Linux. It&#39;s working<br/>fine in Linux also.<br/><br/>On Thu, 13 Dec 2018, 5:26 am Tony Cook via RT &lt;perlbug-followup@perl.org<br/>wrote:<br/><br/>&gt; On Wed, 17 Oct 2018 22:37:32 -0700, gskallur@gmail.com wrote:<br/>&gt; &gt; From where Can I download the patch.<br/>&gt;<br/>&gt; Did Dave&#39;s patch solve the problem for you?<br/>&gt;<br/>&gt; Tony<br/>&gt;<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253151.html Thu, 13 Dec 2018 03:14:24 +0000 Re: [perl #133543] Fatalize my() in false conditional in perl-5.30 by James E Keenan &gt; Hi,<br/><br/> &gt; This code still does not cause an error even on latest blead perl:<br/><br/> &gt; my $x = 0 if 0;<br/><br/> &gt; / Andreas G<br/><br/>If I recall correctly, we were not able to fatalize *all* instances of <br/>&#39;my&#39; in false conditional. The error message was therefore deliberately <br/>worded to start with &#39;This&#39;.<br/><br/>#####<br/>This use of my() in false conditional is no longer allowed<br/>#####<br/><br/>Thank you very much.<br/>Jim Keenan<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253150.html Thu, 13 Dec 2018 03:13:33 +0000 Re: t/io/eintr.t hangs on Darwin by Leon Timmermans On Wed, Dec 12, 2018 at 11:17 PM Abigail &lt;abigail@abigail.be&gt; wrote:<br/>&gt;<br/>&gt;<br/>&gt; If I run the test suite, it hangs on t/io/eintr.t. This is the output:<br/>&gt;<br/>&gt;<br/>&gt; $ ./perl -Ilib t/io/eintr.t<br/>&gt; 1..10<br/>&gt; ok 1 - read/close: sig handler close status<br/>&gt; ok 2 - read/close: read status<br/>&gt; ok 3 - read/close: close status<br/>&gt; ok 4 - read/die: read status<br/>&gt; ok 5 - read/die: close status<br/>&gt;<br/>&gt;<br/>&gt; And then it hangs. It seems to hang on the line:<br/>&gt;<br/>&gt; $st = print $out $buf;<br/><br/>If you cut $buf into pieces, and then print the pieces in a loop<br/>(until failure), does it pass?<br/><br/>Leon<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253149.html Thu, 13 Dec 2018 03:05:24 +0000 [perl #133519] dbmopen() of perl5.028 doesn't work on Win10(AMD64) by Tony Cook via RT On Thu, 11 Oct 2018 16:13:29 -0700, tonyc wrote:<br/>&gt; On Sat, 15 Sep 2018 07:36:57 -0700, ina.cpan@gmail.com wrote:<br/>&gt; &gt; dbmopen() of perl5.028 doesn&#39;t work on Win10(AMD64)<br/>&gt; <br/>&gt; I wasn&#39;t able to reproduce this:<br/><br/>I couldn&#39;t reproduce it with strawberry perl either:<br/><br/>C:\Users\tony&gt;perl -e &quot;dbmopen(%FOO, &#39;foo&#39;, 0666) or die; $FOO{abc} = &#39;xyz&#39;&quot;<br/><br/>C:\Users\tony&gt;perl -le &quot;dbmopen(%FOO, &#39;foo&#39;, 0666) or die; print $FOO{abc}&quot;<br/>xyz<br/><br/>C:\Users\tony&gt;ver<br/><br/>Microsoft Windows [Version 10.0.17134.471]<br/><br/>Can you provide any more information?<br/><br/>Are you using an existing DBM file or creating one new?<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133519<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253148.html Thu, 13 Dec 2018 00:41:39 +0000 Re: t/io/eintr.t hangs on Darwin by Abigail On Thu, Dec 13, 2018 at 10:03:21AM +1100, Tony Cook wrote:<br/>&gt; On Wed, Dec 12, 2018 at 11:19:16PM +0100, Abigail wrote:<br/>&gt; &gt; <br/>&gt; &gt; If I run the test suite, it hangs on t/io/eintr.t. This is the output:<br/>&gt; &gt; <br/>&gt; &gt; <br/>&gt; &gt; $ ./perl -Ilib t/io/eintr.t<br/>&gt; &gt; 1..10<br/>&gt; &gt; ok 1 - read/close: sig handler close status<br/>&gt; &gt; ok 2 - read/close: read status<br/>&gt; &gt; ok 3 - read/close: close status<br/>&gt; &gt; ok 4 - read/die: read status<br/>&gt; &gt; ok 5 - read/die: close status<br/>&gt; &gt; <br/>&gt; &gt; <br/>&gt; &gt; And then it hangs. It seems to hang on the line:<br/>&gt; &gt; <br/>&gt; &gt; $st = print $out $buf;<br/>&gt; &gt; <br/>&gt; &gt; <br/>&gt; &gt; If I outcomment this line, it will hang on a similar line further down:<br/>&gt; &gt; <br/>&gt; &gt; $st = eval { print $out $buf };<br/>&gt; <br/>&gt; I&#39;m not seeing a hang on darwin 17.7.0:<br/>&gt; <br/>&gt; pallas:perl tony$ ./perl -Ilib t/io/eintr.t<br/>&gt; 1..10<br/>&gt; ok 1 - read/close: sig handler close status<br/>&gt; ok 2 - read/close: read status<br/>&gt; ok 3 - read/close: close status<br/>&gt; ok 4 - read/die: read status<br/>&gt; ok 5 - read/die: close status<br/>&gt; ok 6 - print/close: sig handler close status<br/>&gt; ok 7 - print/close: print status<br/>&gt; ok 8 - print/close: close status<br/>&gt; ok 9 - print/die: print status<br/>&gt; ok 10 - print/die: close status<br/>&gt; pallas:perl tony$ uname -a<br/>&gt; Darwin pallas.tony.develop-help.com 17.7.0 Darwin Kernel Version 17.7.0: Fri Nov 2 20:43:16 PDT 2018; root:xnu-4570.71.17~1/RELEASE_X86_64 x86_64<br/>&gt; <br/>&gt; &gt; %ENV:<br/>&gt; &gt; PERL5LIB=&quot;/Users/abigail/Perl/CPAN/Regexp-Common2/lib:/Users/abigail/Perl/CPAN/Test-Regexp/lib:/Users/abigail/Perl/CPAN/Puzzle-Stuff/lib&quot;<br/>&gt; <br/>&gt; It&#39;s unlikely that it matters, but what happens if you remove this?<br/>&gt; <br/><br/><br/>It doesn&#39;t matter; it still hangs.<br/><br/><br/><br/>Abigail<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253147.html Thu, 13 Dec 2018 00:21:28 +0000 [perl #133558] perl 5.26: use lib pragma issue in IBM AIX by Tony Cook via RT On Wed, 17 Oct 2018 22:37:32 -0700, gskallur@gmail.com wrote:<br/>&gt; From where Can I download the patch.<br/><br/>Did Dave&#39;s patch solve the problem for you?<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133558<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253146.html Wed, 12 Dec 2018 23:56:58 +0000 [perl #133596] Perl 5.28.0 fails to compile on AIX by Tony Cook via RT On Wed, 05 Dec 2018 12:35:12 -0800, tonyc wrote:<br/>&gt; On Tue, 16 Oct 2018 10:02:33 -0700, daniele.silvestre@atos.net wrote:<br/>&gt; &gt; Hello,<br/>&gt; &gt;<br/>&gt; &gt; I use the same configure flags to build perl 5.28 on AIX than with<br/>&gt; &gt; 5.26.1<br/>&gt; &gt; 5.26.1 builds succesfully, 5.28.0 fails.<br/>&gt; &gt;<br/>&gt; &gt; Failure occurs in ext/B directory compilation<br/>&gt; &gt; with 5.28.0 version , an additional -bE:B.exp is given on the gcc<br/>&gt; &gt; command uses to generate B.so<br/>&gt; &gt; on AIX, all parameters given as arguments on the gcc command that are<br/>&gt; &gt; meaningul for the loader and then passed to ld must be prefixed with<br/>&gt; &gt; &quot;<br/>&gt; &gt; -Wl,&quot;<br/>&gt; <br/>&gt; I suspect this was broken by:<br/>&gt; <br/>&gt; https://github.com/Perl-Toolchain-Gang/ExtUtils-<br/>&gt; MakeMaker/commit/982f991c7f564f3e40e3f57c1f7090a5d1763611<br/><br/>Reported upstream as https://rt.cpan.org/Ticket/Display.html?id=128004<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133596<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253145.html Wed, 12 Dec 2018 23:46:56 +0000 Re: t/io/eintr.t hangs on Darwin by James E Keenan On 12/12/18 6:33 PM, Abigail wrote:<br/>&gt; On Wed, Dec 12, 2018 at 05:56:42PM -0500, James E Keenan wrote:<br/>&gt;&gt; On 12/12/18 5:19 PM, Abigail wrote:<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; If I run the test suite, it hangs on t/io/eintr.t. This is the output:<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; $ ./perl -Ilib t/io/eintr.t<br/>&gt;&gt;&gt; 1..10<br/>&gt;&gt;&gt; ok 1 - read/close: sig handler close status<br/>&gt;&gt;&gt; ok 2 - read/close: read status<br/>&gt;&gt;&gt; ok 3 - read/close: close status<br/>&gt;&gt;&gt; ok 4 - read/die: read status<br/>&gt;&gt;&gt; ok 5 - read/die: close status<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; And then it hangs. It seems to hang on the line:<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; $st = print $out $buf;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; If I outcomment this line, it will hang on a similar line further down:<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; $st = eval { print $out $buf };<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt;<br/>&gt;&gt;<br/>&gt;&gt; Is this the same problem as reported in<br/>&gt;&gt; https://rt.perl.org/Ticket/Display.html?id=116262 -- a ticket which is<br/>&gt;&gt; still open?<br/>&gt;&gt;<br/>&gt; <br/>&gt; <br/>&gt; The symptoms (test hangs) seem the same, but the cause may be different.<br/>&gt; I certainly not had problems testing/building Perl earlier this year<br/>&gt; on exactly the same box, so any problems which caused the issues in<br/>&gt; 2013 (from which that ticket stems) were either fixed, or did not<br/>&gt; trigger the behaviour earlier this year.<br/>&gt; <br/>&gt; I&#39;ll see whether I can find when this started to happen tomorrow.<br/>&gt; But for now, considering that eintr.t has caused issues on Darwin<br/>&gt; before, should we just skip half the tests on Darwin (or perhaps<br/>&gt; on particular versions of Darwin?)<br/>&gt; <br/><br/>Yes, I too recall problems with it on Darwin. Unfortunately, we don&#39;t <br/>get many smoke test reports from darwin, and so have no reports of <br/>failures of this test in the matrix: <br/>http://perl5.test-smoke.org/submatrix?test=../t/io/eintr.t<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253144.html Wed, 12 Dec 2018 23:31:41 +0000 Re: Please update perldelta! by Abigail On Wed, Dec 12, 2018 at 11:22:11PM +0100, Abigail wrote:<br/>&gt; <br/>&gt; This is a reminder. Next week, I&#39;ll be releasing Perl 5.29.7, aiming<br/> ^^^^^^<br/> 5.29.6<br/>&gt; for Perls birthday on Dec 18.<br/>&gt; <br/>&gt; Please make updates to perldelta reflecting the awesome work you&#39;ve done<br/>&gt; for this release.<br/>&gt; <br/>&gt; <br/>&gt; Thanks,<br/>&gt; <br/>&gt; <br/>&gt; <br/>&gt; Abigail<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253143.html Wed, 12 Dec 2018 23:25:57 +0000 Re: t/io/eintr.t hangs on Darwin by Abigail On Wed, Dec 12, 2018 at 05:56:42PM -0500, James E Keenan wrote:<br/>&gt; On 12/12/18 5:19 PM, Abigail wrote:<br/>&gt;&gt;<br/>&gt;&gt; If I run the test suite, it hangs on t/io/eintr.t. This is the output:<br/>&gt;&gt;<br/>&gt;&gt;<br/>&gt;&gt; $ ./perl -Ilib t/io/eintr.t<br/>&gt;&gt; 1..10<br/>&gt;&gt; ok 1 - read/close: sig handler close status<br/>&gt;&gt; ok 2 - read/close: read status<br/>&gt;&gt; ok 3 - read/close: close status<br/>&gt;&gt; ok 4 - read/die: read status<br/>&gt;&gt; ok 5 - read/die: close status<br/>&gt;&gt;<br/>&gt;&gt;<br/>&gt;&gt; And then it hangs. It seems to hang on the line:<br/>&gt;&gt;<br/>&gt;&gt; $st = print $out $buf;<br/>&gt;&gt;<br/>&gt;&gt;<br/>&gt;&gt; If I outcomment this line, it will hang on a similar line further down:<br/>&gt;&gt;<br/>&gt;&gt; $st = eval { print $out $buf };<br/>&gt;&gt;<br/>&gt;&gt;<br/>&gt;<br/>&gt; Is this the same problem as reported in <br/>&gt; https://rt.perl.org/Ticket/Display.html?id=116262 -- a ticket which is <br/>&gt; still open?<br/>&gt;<br/><br/><br/>The symptoms (test hangs) seem the same, but the cause may be different.<br/>I certainly not had problems testing/building Perl earlier this year<br/>on exactly the same box, so any problems which caused the issues in<br/>2013 (from which that ticket stems) were either fixed, or did not<br/>trigger the behaviour earlier this year.<br/><br/>I&#39;ll see whether I can find when this started to happen tomorrow.<br/>But for now, considering that eintr.t has caused issues on Darwin<br/>before, should we just skip half the tests on Darwin (or perhaps<br/>on particular versions of Darwin?)<br/><br/><br/><br/>Abigail<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253142.html Wed, 12 Dec 2018 23:25:01 +0000 Re: t/io/eintr.t hangs on Darwin by Tony Cook On Wed, Dec 12, 2018 at 11:19:16PM +0100, Abigail wrote:<br/>&gt; <br/>&gt; If I run the test suite, it hangs on t/io/eintr.t. This is the output:<br/>&gt; <br/>&gt; <br/>&gt; $ ./perl -Ilib t/io/eintr.t<br/>&gt; 1..10<br/>&gt; ok 1 - read/close: sig handler close status<br/>&gt; ok 2 - read/close: read status<br/>&gt; ok 3 - read/close: close status<br/>&gt; ok 4 - read/die: read status<br/>&gt; ok 5 - read/die: close status<br/>&gt; <br/>&gt; <br/>&gt; And then it hangs. It seems to hang on the line:<br/>&gt; <br/>&gt; $st = print $out $buf;<br/>&gt; <br/>&gt; <br/>&gt; If I outcomment this line, it will hang on a similar line further down:<br/>&gt; <br/>&gt; $st = eval { print $out $buf };<br/><br/>I&#39;m not seeing a hang on darwin 17.7.0:<br/><br/>pallas:perl tony$ ./perl -Ilib t/io/eintr.t<br/>1..10<br/>ok 1 - read/close: sig handler close status<br/>ok 2 - read/close: read status<br/>ok 3 - read/close: close status<br/>ok 4 - read/die: read status<br/>ok 5 - read/die: close status<br/>ok 6 - print/close: sig handler close status<br/>ok 7 - print/close: print status<br/>ok 8 - print/close: close status<br/>ok 9 - print/die: print status<br/>ok 10 - print/die: close status<br/>pallas:perl tony$ uname -a<br/>Darwin pallas.tony.develop-help.com 17.7.0 Darwin Kernel Version 17.7.0: Fri Nov 2 20:43:16 PDT 2018; root:xnu-4570.71.17~1/RELEASE_X86_64 x86_64<br/><br/>&gt; %ENV:<br/>&gt; PERL5LIB=&quot;/Users/abigail/Perl/CPAN/Regexp-Common2/lib:/Users/abigail/Perl/CPAN/Test-Regexp/lib:/Users/abigail/Perl/CPAN/Puzzle-Stuff/lib&quot;<br/><br/>It&#39;s unlikely that it matters, but what happens if you remove this?<br/><br/>Tony<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253141.html Wed, 12 Dec 2018 23:03:33 +0000 Re: t/io/eintr.t hangs on Darwin by James E Keenan On 12/12/18 5:19 PM, Abigail wrote:<br/>&gt; <br/>&gt; If I run the test suite, it hangs on t/io/eintr.t. This is the output:<br/>&gt; <br/>&gt; <br/>&gt; $ ./perl -Ilib t/io/eintr.t<br/>&gt; 1..10<br/>&gt; ok 1 - read/close: sig handler close status<br/>&gt; ok 2 - read/close: read status<br/>&gt; ok 3 - read/close: close status<br/>&gt; ok 4 - read/die: read status<br/>&gt; ok 5 - read/die: close status<br/>&gt; <br/>&gt; <br/>&gt; And then it hangs. It seems to hang on the line:<br/>&gt; <br/>&gt; $st = print $out $buf;<br/>&gt; <br/>&gt; <br/>&gt; If I outcomment this line, it will hang on a similar line further down:<br/>&gt; <br/>&gt; $st = eval { print $out $buf };<br/>&gt; <br/>&gt; <br/><br/>Is this the same problem as reported in <br/>https://rt.perl.org/Ticket/Display.html?id=116262 -- a ticket which is <br/>still open?<br/><br/>Thank you very much.<br/>Jim Keenan<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253140.html Wed, 12 Dec 2018 22:56:48 +0000 [perl #133721] [PATCH] perl -e "eof or die" dies by James E Keenan via RT On Wed, 12 Dec 2018 21:29:46 GMT, haukex@zero-g.net wrote:<br/>&gt; Hi all,<br/>&gt; <br/>&gt; As the subject says: These die, when AFAICT they shouldn&#39;t:<br/>&gt; <br/>&gt; $ perl -e &quot;eof or die&quot;<br/>&gt; Died at -e line 1.<br/>&gt; $ perl -e &quot;eof or die&quot; /dev/null<br/>&gt; Died at -e line 1.<br/>&gt; <br/>&gt; These all work:<br/>&gt; <br/>&gt; $ perl -e &quot;eof() or die&quot; &lt;/dev/null<br/>&gt; $ perl -e &quot;eof() or die&quot; /dev/null<br/>&gt; $ perl -e &quot;&lt;&gt;; eof or die&quot; /dev/null<br/>&gt; <br/>&gt; It appears to be the same behavior on Linux and Windows.<br/>&gt; <br/>&gt; I ran a bisect and the commit that changed this is <br/>&gt; 32e653230c7ccc7fa595b1ab68502c6eb66ff980, the change was first released <br/>&gt; with 5.12.0 (more specifically, 5.11.0). See also [#60978].<br/>&gt; <br/>&gt; I&#39;m definitely not an expert, but it looks to me like &quot;if (!gv) <br/>&gt; RETPUSHNO;&quot; should probably be &quot;if (!gv) RETPUSHYES;&quot; instead? At least <br/>&gt; that&#39;s what the logic prior to 32e65323 seems to be doing: <br/>&gt; &quot;PUSHs(boolSV(!gv || do_eof(gv)))&quot;<br/>&gt; <br/>&gt; Patch attached. (I didn&#39;t see a place where &quot;eof&quot; is really tested in <br/>&gt; the test suite?)<br/>&gt; <br/>&gt; Thanks, Regards,<br/>&gt; -- Hauke D<br/><br/>An ack for your consideration:<br/><br/>#####<br/>$ ack eof t |cat<br/>t/cmd/subval.t:132: eof F ? print &quot;not ok $i\n&quot; : print &quot;ok $i\n&quot;;<br/>t/cmd/subval.t:140: eof F ? print &quot;not ok $i\n&quot; : print &quot;ok $i\n&quot;;<br/>t/cmd/subval.t:141: &amp;iseof(*F);<br/>t/cmd/subval.t:145:sub iseof {<br/>t/cmd/subval.t:149: eof UNIQ ? print &quot;(not ok $i)\n&quot; : print &quot;ok $i\n&quot;;<br/>t/cmd/subval.t:159: eof F ? print &quot;not ok $main&#39;i\n&quot; : print &quot;ok $main&#39;i\n&quot;;<br/>t/cmd/subval.t:167: eof F ? print &quot;not ok $main&#39;i\n&quot; : print &quot;ok $main&#39;i\n&quot;;<br/>t/cmd/subval.t:168: &amp;iseof(*F);<br/>t/cmd/subval.t:171: sub iseof {<br/>t/cmd/subval.t:175: eof UNIQ ? print &quot;not ok $main&#39;i\n&quot; : print &quot;ok $main&#39;i\n&quot;;<br/>t/test.pl:732: # Hence it&#39;s useful to have a way to make STDIN be at eof without<br/>t/comp/require.t:126:# interaction with pod (see the eof)<br/>t/run/fresh_perl.t:96:system &#39;./perl -ne &quot;print if eof&quot; /dev/null&#39;<br/>t/porting/known_pod_issues.dat:138:gettimeofday(2)<br/>t/porting/regen.t:60: if eof $fh;<br/>t/porting/regen.t:82: if (eof $fh) {<br/>t/re/pat_advanced.t:2372: # sizeof(STRLEN) != sizeof(UV)<br/>t/uni/readline.t:24: is($a .= &lt;&aacute;&ordm;&nbsp;&gt;, 3, &#39;#21628 - $a .= &lt;A&gt; , A eof&#39;);<br/>t/op/svleak.t:315:# Reification (or lack thereof)<br/>t/op/while.t:26:ok(!eof &amp;&amp; /vt100/);<br/>t/op/while.t:36:ok(eof &amp;&amp; !/vt100/ &amp;&amp; !$bad);<br/>t/op/while.t:50:ok(eof &amp;&amp; !$bad);<br/>t/op/while.t:63:ok(!eof &amp;&amp; /vt100/);<br/>t/op/while.t:77:ok(eof &amp;&amp; !/vt100/ &amp;&amp; !$bad);<br/>t/op/while.t:95:ok(eof &amp;&amp; !$bad);<br/>t/op/tiehandle.t:101:is(eof($fh), &#39;&#39;);<br/>t/op/tiehandle.t:109:is(eof, 1);<br/>t/op/tiehandle.t:293: # make sure the new eof() features work with @ARGV magic<br/>t/op/tiehandle.t:304: is(eof(ARGV), &#39;&#39;);<br/>t/op/tiehandle.t:306: is(eof(), &#39;&#39;);<br/>t/op/tiehandle.t:309: is(eof, 1);<br/>t/op/sysio.t:228:# eof<br/>t/op/magic.t:650:for my $code (&#39;tell $0&#39;, &#39;sysseek $0, 0, 0&#39;, &#39;seek $0, 0, 0&#39;, &#39;eof $0&#39;) {<br/>t/op/readline.t:21: is($a .= &lt;A&gt;, 3, &#39;#21628 - $a .= &lt;A&gt; , A eof&#39;);<br/>t/op/cproto.t:87:eof (;*)<br/>t/op/stat.t:429: ok(eof FOO, &#39;at EOF&#39;);<br/>t/op/coreamp.t:878: &#39;prototype of &amp;select (or lack thereof)&#39;;<br/>t/op/lfs.t:240:# eof<br/>t/op/switch.t:468: when(eof(DATA)) {<br/>t/op/switch.t:472: ok($ok, &quot;eof() not smartmatched&quot;);<br/>t/io/perlio.t:59:ok(eof($txtfh));;<br/>t/io/perlio.t:61:ok(eof($binfh));<br/>t/io/perlio.t:63:ok(eof($utffh));<br/>t/io/socket.t:94: # child tests are printed once we hit eof<br/>t/io/socket.t:186: # child tests are printed once we hit eof<br/>t/io/tell.t:19:ok(!eof(TST), &quot;eof is false after open() non-empty file&quot;);<br/>t/io/tell.t:26: if (eof) {$x++;}<br/>t/io/tell.t:28:is($x, 1, &quot;only one eof is in the file&quot;);<br/>t/io/tell.t:32:ok(eof, &quot;tell() doesn&#39;t change current state of eof&quot;);<br/>t/io/tell.t:36:ok(!eof, &quot;reset at beginning of file clears eof flag&quot;);<br/>t/io/tell.t:44:ok(!eof($TST), &quot;it doesn&#39;t set eof flag&quot;);<br/>t/io/tell.t:52:ok(eof, &quot;it sets eof flag&quot;);<br/>t/io/tell.t:155:# be at eof after opening a file but before seeking, reading, or writing.<br/>t/io/tell.t:164: fail &quot;# TODO: file pointer not at eof&quot;;<br/>t/io/tell.t:167: fail &quot;# TODO: Hit bug posix-2056. file pointer not at eof&quot;;<br/>t/io/tell.t:170: fail &quot;file pointer not at eof&quot;;<br/>t/io/tell.t:182:eof $fh;<br/>t/io/tell.t:183:is(tell, 0, &quot;argless tell after eof \$coercible&quot;);<br/>t/io/tell.t:184:eof *$fh;<br/>t/io/tell.t:185:is(tell, 0, &quot;argless tell after eof *\$coercible&quot;);<br/>t/io/argv.t:82: runperl( prog =&gt; &#39;eof()&#39;, stdin =&gt; &quot;nothing\n&quot; );<br/>t/io/argv.t:83: is( 0+$?, 0, q(eof() doesn&#39;t segfault) );<br/>t/io/argv.t:90: if (eof()) {<br/>t/io/argv.t:119:ok( eof TRY );<br/>t/io/argv.t:123: ok( eof NEVEROPENED, &#39;eof() true on unopened filehandle&#39; );<br/>t/io/argv.t:128:ok( !eof(), &#39;STDIN has something&#39; );<br/>t/io/argv.t:136: ok( eof(), &#39;eof() true with empty @ARGV&#39; );<br/>t/io/argv.t:139: ok( !eof() );<br/>t/io/argv.t:142: ok( !eof() );<br/>t/io/argv.t:145: ok( eof(), &#39;eof() true after closing ARGV&#39; );<br/>t/io/argv.t:237: like($x, qr/^Can&#39;t open echo foo \|: .* at -e line 1, &lt;&gt; line 3/, &#39;&lt;&lt;&gt;&gt; does not treat ...| as fork after eof&#39;);<br/>t/io/argv.t:241:fresh_perl_is( &lt;&lt;&#39;**PROG**&#39;, &quot;foobar&quot;, {}, &quot;ARGV aliasing and eof()&quot; ); <br/>t/io/argv.t:249: print &quot;bar&quot; if eof();<br/>t/lib/warnings/doio:45: Filehandle %s opened only for output [Perl_do_eof]<br/>t/lib/warnings/doio:46: my $a = eof STDOUT<br/>t/lib/warnings/doio:267:# doio.c [Perl_do_eof]<br/>t/lib/warnings/doio:269:my $a = eof STDOUT ;<br/>t/lib/warnings/doio:271:$a = eof STDOUT ;<br/>t/lib/warnings/op:411:eof STDIN ; # OP_EOF<br/>t/lib/warnings/op:460:Useless use of eof in void context at - line 44.<br/>t/lib/warnings/op:530:eof STDIN ; # OP_EOF<br/>#####<br/><br/>Since eof() is often used to answer the question, &quot;Is there any more input needing processing?&quot;, I would suggest tests should be written under t/io/.<br/><br/>Thank you very much.<br/><br/>-- <br/>James E Keenan (jkeenan@cpan.org)<br/><br/>---<br/>via perlbug: queue: perl5 status: new<br/>https://rt.perl.org/Ticket/Display.html?id=133721<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253139.html Wed, 12 Dec 2018 22:54:51 +0000 [perl #133703] sv.c: Eliminate LGTM warning Comparison result isalways the same by James E Keenan via RT On Sat, 01 Dec 2018 04:49:35 GMT, jkeenan wrote:<br/>[snip]<br/>&gt; <br/>&gt; The last test file I attached had some incorrect expectations. Please<br/>&gt; see the latest attachment, 133703-better-more-paragraph-mode-tests.t,<br/>&gt; which accounts for the fact that our definition of &quot;paragraph&quot; assumes<br/>&gt; that the &#39;graphs are separated by 2 or more newlines but may<br/>&gt; internally contain single newlines.<br/>&gt; <br/>&gt; My impression is that &quot;local $/ = &#39;&#39;;&quot; fails to strip superfluous<br/>&gt; newlines off the *first* paragraph it finds -- but this needs more<br/>&gt; eyeballs.<br/>&gt; <br/>&gt; Thank you very much.<br/><br/>Closing this ticket and replacing it with https://rt.perl.org/Ticket/Display.html?id=133722.<br/><br/>Thank you very much.<br/>-- <br/>James E Keenan (jkeenan@cpan.org)<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133703<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253138.html Wed, 12 Dec 2018 22:45:33 +0000 [perl #133722] What do we mean by "paragraph mode"? by James E Keenan # New Ticket Created by James E Keenan <br/># Please include the string: [perl #133722]<br/># in the subject line of all future correspondence about this issue. <br/># &lt;URL: https://rt.perl.org/Ticket/Display.html?id=133722 &gt;<br/><br/><br/>Summary: This ticket replaces RT 133703 and proposes improved <br/>documentation and testing for the so-called &quot;paragraph mode&quot;, i.e., <br/>processing of records in a file while $/ set to the empty string.<br/><br/>I. Background:<br/><br/>In https://rt.perl.org/Ticket/Display.html?id=133703, I submitted a <br/>patch to sv.c intended to address a &quot;Comparison result is always the <br/>same&quot; warning reported by LTGM.com analysis of the Perl 5 core <br/>distribution. Dave Mitchell pointed out where the patch was wrong and, <br/>in the course of his discussion, mentioned that the section of sv.c at <br/>issue governed so-called &quot;paragraph mode&quot;, that is, what happens when <br/>you read a file when the input record separator has been set to an empty <br/>string:<br/><br/>#####<br/>$/ = &#39;&#39;;<br/>#####<br/><br/>While poking around in the code and the test suite, I became convinced:<br/><br/>(a) that I didn&#39;t understand &quot;paragraph mode&quot; very well;<br/><br/>(b) that &quot;paragraph mode&quot; wasn&#39;t well documented;<br/><br/>(c) that &quot;paragraph mode&quot; wasn&#39;t thoroughly tested in the core <br/>distribution&#39;s test suite; and<br/><br/>(d) that as a consequence of (b) and (c), it might contain bugs.<br/><br/>I spent several days working on this. I no longer think &quot;paragraph <br/>mode&quot; has bugs, but I&#39;m more convinced that it is under-documented and <br/>under-tested. In this RT I propose better documentation of paragraph <br/>mode and additional tests.<br/><br/>II. Paragraph Mode as Currently Found in the Core Distribution<br/><br/> From this point forward I&#39;ll treat &quot;paragraph mode&quot; and &quot;setting $/ to <br/>an empty string&quot; as equivalent.<br/><br/>In the core distribution $/ (or $INPUT_RECORD_SEPARATOR) is defined in <br/>pod/perlvar.pod and is mainly discussed in perlfaq5 and perlfaq6. <br/>Please see this attachment:<br/><br/>#####<br/>paragraph_mode_in_core_distribution.pod<br/>#####<br/><br/>... for a thorough discussion of paragraph mode in the core <br/>distribution, including instances in code found in cpan/, ext/, dist/ <br/>and lib/. You can also find this discussion on the web at:<br/><br/>#####<br/>http://thenceforward.net/perl/misc/paragraph_mode_in_core_distribution.html<br/>#####<br/><br/>III. Proposed Additional Documentation<br/><br/>I believe that the best place to put additional discussion of paragraph <br/>mode will be in perlfaq5. Please review the patch attached<br/><br/>#####<br/>0001-More-detailed-explanation-of-paragraph-mode.patch<br/>#####<br/><br/>Note that perlfaq5 is maintained upstream on CPAN, so once P5P is <br/>on-board with the patch, I will submit it as a github issue at <br/>https://github.com/perl-doc-cats/perlfaq/issues.<br/><br/>IV. Proposed Additional Testing<br/><br/>Please see the program attached:<br/><br/>#####<br/>paragraph_mode.t<br/>#####<br/><br/>To facilitate discussion, I&#39;ve written this test program in a modern <br/>style using Test::More, File::Temp, CPAN module Data::Dump and <br/>subroutines. When we bring this into the core distribution, I&#39;ll adapt <br/>it for inclusion under, say, t/op/, where I&#39;ll have to use only the <br/>testing functions provided by t/test.pl.<br/><br/>What is important for discussion now is: Do these tests thoroughly <br/>cover what we mean by &quot;paragraph mode&quot;?<br/><br/>Thank you very much.<br/>Jim Keenan<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253137.html Wed, 12 Dec 2018 22:41:22 +0000 t/io/eintr.t hangs on Darwin by Abigail <br/>If I run the test suite, it hangs on t/io/eintr.t. This is the output:<br/><br/><br/> $ ./perl -Ilib t/io/eintr.t<br/> 1..10<br/> ok 1 - read/close: sig handler close status<br/> ok 2 - read/close: read status<br/> ok 3 - read/close: close status<br/> ok 4 - read/die: read status<br/> ok 5 - read/die: close status<br/><br/><br/>And then it hangs. It seems to hang on the line:<br/><br/> $st = print $out $buf;<br/><br/><br/>If I outcomment this line, it will hang on a similar line further down:<br/><br/> $st = eval { print $out $buf };<br/><br/><br/><br/>Output of perl -V:<br/><br/><br/>Summary of my perl5 (revision 5 version 29 subversion 6) configuration:<br/> Commit id: dd0a5f5f02475a77bd12a1a4b201e77be6eaa969<br/> Platform:<br/> osname=darwin<br/> osvers=15.6.0<br/> archname=darwin-2level<br/> uname=&#39;darwin athena 15.6.0 darwin kernel version 15.6.0: mon nov 13 21:58:35 pst 2017; root:xnu-3248.72.11~1release_x86_64 x86_64 &#39;<br/> config_args=&#39;-des -Dusedevel -Dmydomain=.abigail.be -Dcf_email=abigail@abigail.be -Dperladmin=abigail@abigail.be&#39;<br/> hint=recommended<br/> useposix=true<br/> d_sigaction=define<br/> useithreads=undef<br/> usemultiplicity=undef<br/> use64bitint=define<br/> use64bitall=define<br/> uselongdouble=undef<br/> usemymalloc=n<br/> default_inc_excludes_dot=define<br/> bincompat5005=undef<br/> Compiler:<br/> cc=&#39;cc&#39;<br/> ccflags =&#39;-fno-common -DPERL_DARWIN -mmacosx-version-min=10.11 -fno-strict-aliasing -pipe -fstack-protector-strong -I/opt/local/include -DPERL_USE_SAFE_PUTENV&#39;<br/> optimize=&#39;-O3&#39;<br/> cppflags=&#39;-fno-common -DPERL_DARWIN -mmacosx-version-min=10.11 -fno-strict-aliasing -pipe -fstack-protector-strong -I/opt/local/include&#39;<br/> ccversion=&#39;&#39;<br/> gccversion=&#39;4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)&#39;<br/> gccosandvers=&#39;&#39;<br/> intsize=4<br/> longsize=8<br/> ptrsize=8<br/> doublesize=8<br/> byteorder=12345678<br/> doublekind=3<br/> d_longlong=define<br/> longlongsize=8<br/> d_longdbl=define<br/> longdblsize=16<br/> longdblkind=3<br/> ivtype=&#39;long&#39;<br/> ivsize=8<br/> nvtype=&#39;double&#39;<br/> nvsize=8<br/> Off_t=&#39;off_t&#39;<br/> lseeksize=8<br/> alignbytes=8<br/> prototype=define<br/> Linker and Libraries:<br/> ld=&#39;cc&#39;<br/> ldflags =&#39; -mmacosx-version-min=10.11 -fstack-protector-strong -L/opt/local/lib&#39;<br/> libpth=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib /opt/local/lib /usr/lib<br/> libs=-lpthread -lgdbm -ldbm -ldl -lm -lutil -lc<br/> perllibs=-lpthread -ldl -lm -lutil -lc<br/> libc=<br/> so=dylib<br/> useshrplib=false<br/> libperl=libperl.a<br/> gnulibc_version=&#39;&#39;<br/> Dynamic Linking:<br/> dlsrc=dl_dlopen.xs<br/> dlext=bundle<br/> d_dlsymun=undef<br/> ccdlflags=&#39; &#39;<br/> cccdlflags=&#39; &#39;<br/> lddlflags=&#39; -mmacosx-version-min=10.11 -bundle -undefined dynamic_lookup -L/opt/local/lib -fstack-protector-strong&#39;<br/><br/><br/>Characteristics of this binary (from libperl): <br/> Compile-time options:<br/> HAS_TIMES<br/> PERLIO_LAYERS<br/> PERL_COPY_ON_WRITE<br/> PERL_DONT_CREATE_GVSV<br/> PERL_MALLOC_WRAP<br/> PERL_OP_PARENT<br/> PERL_PRESERVE_IVUV<br/> PERL_USE_DEVEL<br/> PERL_USE_SAFE_PUTENV<br/> USE_64_BIT_ALL<br/> USE_64_BIT_INT<br/> USE_LARGE_FILES<br/> USE_LOCALE<br/> USE_LOCALE_COLLATE<br/> USE_LOCALE_CTYPE<br/> USE_LOCALE_NUMERIC<br/> USE_LOCALE_TIME<br/> USE_PERLIO<br/> USE_PERL_ATOF<br/> Built under darwin<br/> Compiled at Dec 12 2018 22:15:01<br/> %ENV:<br/> PERL5LIB=&quot;/Users/abigail/Perl/CPAN/Regexp-Common2/lib:/Users/abigail/Perl/CPAN/Test-Regexp/lib:/Users/abigail/Perl/CPAN/Puzzle-Stuff/lib&quot;<br/> PERLDIR=&quot;/opt/perl/current&quot;<br/> @INC:<br/> lib<br/> /Users/abigail/Perl/CPAN/Regexp-Common2/lib<br/> /Users/abigail/Perl/CPAN/Test-Regexp/lib<br/> /Users/abigail/Perl/CPAN/Puzzle-Stuff/lib<br/> /usr/local/lib/perl5/site_perl/5.29.6/darwin-2level<br/> /usr/local/lib/perl5/site_perl/5.29.6<br/> /usr/local/lib/perl5/5.29.6/darwin-2level<br/> /usr/local/lib/perl5/5.29.6<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253136.html Wed, 12 Dec 2018 22:17:19 +0000 Please update perldelta! by Abigail <br/>This is a reminder. Next week, I&#39;ll be releasing Perl 5.29.7, aiming<br/>for Perls birthday on Dec 18.<br/><br/>Please make updates to perldelta reflecting the awesome work you&#39;ve done<br/>for this release.<br/><br/><br/>Thanks,<br/><br/><br/><br/>Abigail<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253135.html Wed, 12 Dec 2018 22:13:37 +0000 [perl #133721] [PATCH] perl -e "eof or die" dies by Hauke D # New Ticket Created by Hauke D <br/># Please include the string: [perl #133721]<br/># in the subject line of all future correspondence about this issue. <br/># &lt;URL: https://rt.perl.org/Ticket/Display.html?id=133721 &gt;<br/><br/><br/>Hi all,<br/><br/>As the subject says: These die, when AFAICT they shouldn&#39;t:<br/><br/>$ perl -e &quot;eof or die&quot;<br/>Died at -e line 1.<br/>$ perl -e &quot;eof or die&quot; /dev/null<br/>Died at -e line 1.<br/><br/>These all work:<br/><br/>$ perl -e &quot;eof() or die&quot; &lt;/dev/null<br/>$ perl -e &quot;eof() or die&quot; /dev/null<br/>$ perl -e &quot;&lt;&gt;; eof or die&quot; /dev/null<br/><br/>It appears to be the same behavior on Linux and Windows.<br/><br/>I ran a bisect and the commit that changed this is <br/>32e653230c7ccc7fa595b1ab68502c6eb66ff980, the change was first released <br/>with 5.12.0 (more specifically, 5.11.0). See also [#60978].<br/><br/>I&#39;m definitely not an expert, but it looks to me like &quot;if (!gv) <br/>RETPUSHNO;&quot; should probably be &quot;if (!gv) RETPUSHYES;&quot; instead? At least <br/>that&#39;s what the logic prior to 32e65323 seems to be doing: <br/>&quot;PUSHs(boolSV(!gv || do_eof(gv)))&quot;<br/><br/>Patch attached. (I didn&#39;t see a place where &quot;eof&quot; is really tested in <br/>the test suite?)<br/><br/>Thanks, Regards,<br/>-- Hauke D<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253134.html Wed, 12 Dec 2018 21:29:57 +0000 [perl #133715] BBC: ZAG/Perl6-Pod-0.72.tar.gz by James E Keenan via RT On Sat, 08 Dec 2018 21:17:16 GMT, jkeenan wrote:<br/>&gt; On Sat, 08 Dec 2018 20:38:24 GMT, slaven@rezic.de wrote:<br/>&gt; &gt; Dana Sat, 08 Dec 2018 10:56:38 -0800, jkeenan re&Auml;&#141;e:<br/>&gt; &gt; &gt; On Sat, 08 Dec 2018 13:34:19 GMT, slaven@rezic.de wrote:<br/>&gt; &gt; &gt; &gt;<br/>&gt; &gt; &gt; &gt; This is a bug report for perl from slaven@rezic.de,<br/>&gt; &gt; &gt; &gt; generated with the help of perlbug 1.40 running under perl<br/>&gt; &gt; &gt; &gt; 5.29.5.<br/>&gt; &gt; &gt; &gt;<br/>&gt; &gt; &gt; &gt;<br/>&gt; &gt; &gt; &gt; -----------------------------------------------------------------<br/>&gt; &gt; &gt; &gt; The test suite of Perl6-Pod-0.72 is broken since 5.29.4. With<br/>&gt; &gt; &gt; &gt; 5.29.3<br/>&gt; &gt; &gt; &gt; it was OK.<br/>&gt; &gt; &gt; &gt;<br/>&gt; &gt; &gt; &gt; First fail report at CPAN Testers:<br/>&gt; &gt; &gt; &gt; http://www.cpantesters.org/cpan/report/24fdea24-d519-11e8-8b3a-<br/>&gt; &gt; &gt; &gt; f4d73230598c<br/>&gt; &gt; &gt; &gt;<br/>&gt; &gt; &gt; &gt; It looks like it is regexp-related, but I fail to find a matching<br/>&gt; &gt; &gt; &gt; entry in 5.29.4&#39;s perldelta.<br/>&gt; &gt; &gt; &gt;<br/>&gt; &gt; &gt; &gt;<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; Using perl 5 blead, I have been unable to reproduce these test<br/>&gt; &gt; &gt; failures on either Linux or FreeBSD.<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; For example:<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; #####<br/>&gt; &gt; &gt; $ uname -mrs<br/>&gt; &gt; &gt; FreeBSD 11.2-STABLE amd64<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; $ bleadperl -v | head -2 | tail -1<br/>&gt; &gt; &gt; This is perl 5, version 29, subversion 6 (v5.29.6 (v5.29.5-95-<br/>&gt; &gt; &gt; g540fa6e13e)) built for amd64-freebsd-thread-multi<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; $ gitshowf | ack -i &#39;^Commit&#39;<br/>&gt; &gt; &gt; commit 540fa6e13ee03c8b97e3406902f8bd4984eeec3f<br/>&gt; &gt; &gt; Commit: Karl Williamson &lt;khw@cpan.org&gt;<br/>&gt; &gt; &gt; CommitDate: Fri Dec 7 21:12:16 2018 -0700<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; $ bleadperl -MPerl6::Pod -E &#39;say &quot;Perl6::Pod installed against<br/>&gt; &gt; &gt; blead&quot;;&#39;<br/>&gt; &gt; &gt; Perl6::Pod installed against blead<br/>&gt; &gt; &gt; #####<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; Can you re-test with blead?<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; Thank you very much.<br/>&gt; &gt;<br/>&gt; &gt; Passes also for me with 540fa6e13ee03c8b97e3406902f8bd4984eeec3f.<br/>&gt; <br/>&gt; I can also confirm that it did break with v5.29.4 and v5.29.5. But<br/>&gt; Karl (as usual!) has been doing a lot of work* on the files in core<br/>&gt; relevant to regexes, so it&#39;s likely that it got fixed in the past few<br/>&gt; weeks.<br/>&gt; <br/>&gt; * $&gt;<br/>&gt; git diff -w v5.29.5..HEAD -- regcomp.c regcomp.h regcomp.sym regexec.c<br/>&gt; regnodes.h | wc -l<br/>&gt; 1446<br/>&gt; <br/>&gt; Karl, do you have any comment?<br/>&gt; <br/>&gt; I&#39;ll take this ticket for the purpose of closing it within 7 days<br/>&gt; unless we have new reports of failure.<br/>&gt; <br/>&gt; Thank you very much.<br/><br/>Perl6-Pod is once again passing its CPANtesters against Perl 5 blead:<br/><br/>http://fast-matrix.cpantesters.org/?dist=Perl6-Pod;perl=5.29.6;reports=1#sl=7,1<br/>-- <br/>James E Keenan (jkeenan@cpan.org)<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133715<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253133.html Wed, 12 Dec 2018 15:44:47 +0000 Re: TONYC Grant Report November 2018 by Matthias Bloch @Sawyer, @Marcus OK to publish &amp; request payment?<br/><br/>On 10.12.2018 09:43, Tony Cook wrote:<br/>&gt; Approximately 34 tickets were reviewed, and 6 patches were<br/>&gt; applied.<br/>&gt;<br/>&gt; [Hours] [Activity]<br/>&gt; 7.90 #123638 review existing patch, work on fixes, testing<br/>&gt; #123638 review test results, debugging, research<br/>&gt; #123638 more research, work on a fix, debugging, testing<br/>&gt; #123638 debugging, partial fix<br/>&gt; #123638 debugging<br/>&gt; 3.15 #123724 (sec) review, work out extra work needed, work on<br/>&gt; fix<br/>&gt; #123724 (sec) fix a related problem in blead, comment with<br/>&gt; patch<br/>&gt; #123724 (sec) research<br/>&gt; 0.40 #125760 testing, comment<br/>&gt; 0.63 #126706 retest, apply to blead<br/>&gt; 1.68 #131065 (sec) review, research<br/>&gt; #131065 (sec) more research, look for related ticket<br/>&gt; 12.74 #132147 (sec) apply security warning patch, work on trying<br/>&gt; to reproduce<br/>&gt; #132147 (sec) debugging<br/>&gt; #132147 (sec) debugging, work on a fix, polish, write<br/>&gt; tests, testing<br/>&gt; #132147 (sec) fuzz testing, fix an issue, more testing<br/>&gt; #132147 (sec) add more validation, improve and extend fuzz<br/>&gt; testing, more fuzz testing runs, testing<br/>&gt; #132147 (sec) polish, comment with patches, fuzz tools<br/>&gt; #132147 rebase, testing, skip on mismatched architecture<br/>&gt; for test data<br/>&gt; #132147 more testing, apply to blead<br/>&gt; #132147 ticket clean up<br/>&gt; 1.00 #133440 research, re-work<br/>&gt; 0.45 #133511 review, test, apply to blead<br/>&gt; 0.17 #133640 briefly comment<br/>&gt; 0.72 #133643 review, make public and link to meta ticket<br/>&gt; 8.96 #133659 comment<br/>&gt; #133659 research, comment<br/>&gt; #133659 work on finishing in-place edit on non-error exit<br/>&gt; #133659 updates to tests, work on fix within die/eval vs<br/>&gt; normal scope exit<br/>&gt; #133659 try to break scope cleanup detection, rethink<br/>&gt; approach<br/>&gt; #133659 review scope handling code, try to work up a<br/>&gt; solution<br/>&gt; #133659 more work on possible solution, comments with work<br/>&gt; to date<br/>&gt; #133659 retest and apply to blead<br/>&gt; 0.58 #133662 review patch, testing, apply to blead<br/>&gt; 0.58 #133668 review patch, testing, apply to blead<br/>&gt; 0.17 #133670 comment<br/>&gt; 2.00 #133673 research, comment<br/>&gt; #133673 research<br/>&gt; 2.70 #133686 work on tests for the numeric.c conversions,<br/>&gt; review other patches, research comments<br/>&gt; 0.42 #133688 research, briefly comment<br/>&gt; 0.83 Configure alignment probe testing<br/>&gt; 2.10 diagnose cygwin build issues, format issue in utf8.c<br/>&gt; 1.25 lgtm, lint research<br/>&gt; 3.30 more security issue backport<br/>&gt; more security issue backport<br/>&gt; 1.50 more security issue backport, debugging<br/>&gt; 2.00 more security issue backport, finally find problem, work<br/>&gt; on another backport<br/>&gt; 2.10 more security issue backport, give up on 133423, since I<br/>&gt; don&rsquo;t think it&rsquo;s applicable<br/>&gt; 1.92 more security issue backport, test failures :(<br/>&gt; 1.41 more utf8-readline re-work<br/>&gt; more utf8-readline re-work<br/>&gt; 0.92 perldelta updates<br/>&gt; 1.17 security backports &ndash; discussion with khw<br/>&gt; 2.07 security backports, testing, email to downstream<br/>&gt; 1.47 security issue backport checks for downstream<br/>&gt; 1.25 security ticket admin: make some tickets public, add<br/>&gt; reproducers for next batch, emails<br/>&gt; 2.20 upstream bug reports, testing, apply to blead<br/>&gt; 0.97 utf8 readline &ndash; restructure<br/>&gt; 0.88 utf8-readline more re-work<br/>&gt; ======<br/>&gt; 71.59 hours total<br/>&gt;<br/><br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253132.html Wed, 12 Dec 2018 09:59:16 +0000 [perl #133691] [PATCH] faster integer stringification algorithm by Tony Cook via RT On Thu, 29 Nov 2018 03:27:41 -0800, me@xenu.pl wrote:<br/>&gt; On Thu, 29 Nov 2018 11:56:39 +0100<br/>&gt; Tomasz Konojacki &lt;me@xenu.pl&gt; wrote:<br/>&gt; <br/>&gt; &gt; I have attached updated version of the patch. Performance is the same, but<br/>&gt; &gt; the code is now a bit uglier. Unfortunately I&#39;m not aware of a better<br/>&gt; &gt; way to ensure array alignment than using unions with dummy members.<br/>&gt; <br/>&gt; Oops, looks like it has introduced a few hard tabs. The fixed version is<br/>&gt; attached.<br/><br/>Thanks, applied as dd0a5f5f02475a77bd12a1a4b201e77be6eaa969.<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133691<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253131.html Wed, 12 Dec 2018 04:29:43 +0000 [perl #133667] Documentation updates for POSIX by Tony Cook via RT On Mon, 10 Dec 2018 17:30:37 -0800, joeinwap@gmail.com wrote:<br/>&gt; Yes, the patch looks good.<br/>&gt; ~Joe<br/><br/>Thanks for the feedback, applied as c6f0b8cad41ece9c977c36dd4febab2dbb304421.<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133667<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253130.html Wed, 12 Dec 2018 03:46:33 +0000 Perl 5 Commit Summary by Perl 5 commit summary Perl 5 commit summary, activity since Saturday<br/><br/>Current branch blead<br/>20 commits. 4 unique authors. 2 unique committers.<br/>26 files changed, 536 insertions(+), 438 deletions(-)<br/>Thanks, applied: Tony Cook (7)<br/>Snapshot: http://perl5.git.perl.org/perl.git/snapshot/fb21209e9a48703f.tar.gz<br/><br/> (perl #133582) make C99 functions available for Win32 Mingw builds<br/> Tony Cook 2 parents<br/> http://perl5.git.perl.org/perl.git/commit/fb21209e9a48703f<br/><br/> math.t - support C99 math for mingw<br/> sisyphus 1 file changed, 6 insertions(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/7707b4cc8843a71e<br/><br/> config_sh.PL - support C99 math for mingw<br/> sisyphus 1 file changed, 8 insertions(+), 9 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/76c38d919461992d<br/><br/> config_H.gc - support C99 math for mingw<br/> sisyphus 1 file changed, 49 insertions(+), 49 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/e743028e1d041949<br/><br/> config.gc - support C99 math for mingw<br/> sisyphus 1 file changed, 49 insertions(+), 49 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/b32a50a6fc33c50f<br/><br/> POSIX.xs - support C99 math for mingw<br/> sisyphus 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/238ed136cd56b911<br/><br/> perl.h - support C99 math for mingw<br/> sisyphus 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/90f54b1400324177<br/><br/> Call a hash %hash in the documentation<br/> E. Choroba 1 file changed, 6 insertions(+), 6 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/f06965b9f091f4d8<br/><br/> (perl #133708) remove build-time probing for stack limits for Storable<br/> Tony Cook 11 files changed, 36 insertions(+), 167 deletion<br/> http://perl5.git.perl.org/perl.git/commit/2a0bbd31bbcc94c7<br/><br/> handy.h: Fix definition of isPOWER_OF_2()<br/> Karl Williamson 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/2bfa63845d8b4bc3<br/><br/> regcomp.h: Fix typo in comment<br/> Karl Williamson 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/b34f51a7819fd42d<br/><br/> regexec.c: Use mnemonics instead of &quot;256&quot;<br/> Karl Williamson 2 files changed, 6 insertions(+), 6 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/540fa6e13ee03c8b<br/><br/> regcomp.c: Allow more EXACTFish nodes to be trieable<br/> Karl Williamson 5 files changed, 308 insertions(+), 140 deletion<br/> http://perl5.git.perl.org/perl.git/commit/8a100c918ec81926<br/><br/> regcomp.c: Make sure /di nodes begining in &#39;s&#39; are EXACTF<br/> Karl Williamson 1 file changed, 35 insertions(+), 4 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/127a194773690138<br/><br/> regcomp.c: Make sure /di nodes ending in &#39;s&#39; are EXACTF<br/> Karl Williamson 1 file changed, 9 insertions(+), 8 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/0f50a8540199a031<br/><br/> regcomp.c: Simplify a bit of code<br/> Karl Williamson 1 file changed, 3 insertions(+), 3 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/784d244522e80d27<br/><br/> regcomp.c: Can join certain EXACTish node types<br/> Karl Williamson 1 file changed, 17 insertions(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/0aad8307e574d79b<br/><br/> regcomp.c: Move clause of while() conditional into loop<br/> Karl Williamson 1 file changed, 7 insertions(+), 3 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/326e89a8f626e8d3<br/><br/> regcomp.c: Add assertion<br/> Karl Williamson 1 file changed, 3 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/979c312ebbf9f0c1<br/><br/> Remove one use of static function<br/> Karl Williamson 1 file changed, 17 insertions(+), 15 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/13dfc48da5322166<br/><br/>Current branch smoke-me/khw-anyof<br/>23 commits. 1 unique author. 1 unique committer.<br/>11 files changed, 276 insertions(+), 135 deletions(-)<br/><br/>Snapshot: http://perl5.git.perl.org/perl.git/snapshot/bdfcee30f8f16c50.tar.gz<br/><br/> anyof.t<br/> Karl Williamson 1 file changed, 2 insertions(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/bdfcee30f8f16c50<br/><br/> anyofm<br/> Karl Williamson 2 files changed, 41 insertions(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/fdba2080524b271c<br/><br/> regcomp.h: Fix typo in comment<br/> Karl Williamson 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/f34d18b3778b0d78<br/><br/> handy.h: Fix definition of isPOWER_OF_2()<br/> Karl Williamson 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/865ff3a93bbf358b<br/><br/> regcomp.c: White-space only<br/> Karl Williamson 1 file changed, 37 insertions(+), 35 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/1037b5dfc9fe256f<br/><br/> anyofh<br/> Karl Williamson 6 files changed, 477 insertions(+), 418 deletion<br/> http://perl5.git.perl.org/perl.git/commit/681191c5e95d1d9e<br/><br/> XXX need to do process; figure name Configure Fix alignment needed probe<br/> Karl Williamson 1 file changed, 24 insertions(+), 28 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/8731420167935121<br/><br/> regcomp.c: Remove no longer used static function<br/> Karl Williamson 4 files changed, 170 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/1e0d3a17272b51bb<br/><br/> Remove remaining static function use<br/> Karl Williamson 1 file changed, 18 insertions(+), 14 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/b50ac9d8988a9c5d<br/><br/> change engine size<br/> Karl Williamson 1 file changed, 2 insertions(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/19ca2602a5e0ebfb<br/><br/> XXX tests: Revamp compile optimizations of /[bar]/<br/> Karl Williamson 4 files changed, 457 insertions(+), 140 deletion<br/> http://perl5.git.perl.org/perl.git/commit/c3f6dc95b62dc258<br/><br/> regcomp.c: White-space, comments only<br/> Karl Williamson 1 file changed, 27 insertions(+), 21 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/35beb9c408c92015<br/><br/> regcomp.c: Add variable that is an OR of several<br/> Karl Williamson 1 file changed, 13 insertions(+), 3 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/39e9c76c8f910e2e<br/><br/> regcomp.c: White space only<br/> Karl Williamson 1 file changed, 27 insertions(+), 27 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/2fb411da584478c8<br/><br/> regcomp.c: Refactor looking for POSIX optimizations<br/> Karl Williamson 1 file changed, 25 insertions(+), 23 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/6ee62d89903fd28f<br/><br/> regcomp.c: Rename a variable<br/> Karl Williamson 1 file changed, 4 insertions(+), 4 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/106df02f4e6e8b5c<br/><br/> regcomp.c: Consolidate common code<br/> Karl Williamson 1 file changed, 5 insertions(+), 8 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/1422f2179a6b904b<br/><br/> regcomp.c: Simplify ANYOFM node generation<br/> Karl Williamson 1 file changed, 14 insertions(+), 19 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/3882472bd525a89c<br/><br/> regcomp.c: Don&#39;t zap larger scope variables<br/> Karl Williamson 1 file changed, 6 insertions(+), 5 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/1985ed46de7920c3<br/><br/> Remove ASCII/NASCII regnodes<br/> Karl Williamson 8 files changed, 150 insertions(+), 384 deletion<br/> http://perl5.git.perl.org/perl.git/commit/1b43a31894821615<br/><br/> regcomp.c: Prefer ANYOF/NANYOFM regnodes<br/> Karl Williamson 1 file changed, 152 insertions(+), 149 deletions<br/> http://perl5.git.perl.org/perl.git/commit/c0eaf1fd79c96840<br/><br/> regcomp.c: Refactor some /[foo]/ code<br/> Karl Williamson 1 file changed, 50 insertions(+), 48 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/d17f6abde9f51284<br/><br/> XXX don&#39;t push, khw customization for bench.pl<br/> Karl Williamson 1 file changed, 49 insertions(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/f9e127ec6ec2add8<br/><br/>Deleted branch smoke-me/khw-lgtm<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253129.html Wed, 12 Dec 2018 03:14:24 +0000 [perl #133582] POSIX::log2 weird behaviour by Tony Cook via RT On Fri, 26 Oct 2018 18:51:53 -0700, sisyphus@cpan.org wrote:<br/>&gt; On Thu, 25 Oct 2018 17:37:23 -0700, sisyphus@cpan.org wrote:<br/>&gt; <br/>&gt; &gt; With the attached patches to blead ....<br/>&gt; <br/>&gt; The patch to ext/POSIX/t/math.t needs slight modification to better<br/>&gt; identify Microsoft compilers.<br/>&gt; <br/>&gt; Corrected patch attached.<br/><br/>All applied to blead (with the math.t replacement patch rather than the original) as 90f54b14003241779ae6decaab2793fa4cd6d325 through 7707b4cc8843a71ee20c9617f81aa26bb7cb6506.<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133582<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253128.html Wed, 12 Dec 2018 01:13:04 +0000 Re: wishlist : combined declaration and slice-initialization forhashrefs by Christian Millour Le 12/12/2018 &agrave; 00:23, Eirik Berg Hanssen a &eacute;crit&nbsp;:<br/>&gt; On Tue, Dec 11, 2018 at 11:36 PM Martijn Lievaart &lt;m@rtij.nl <br/>&gt; &lt;mailto:m@rtij.nl&gt;&gt; wrote:<br/>&gt; <br/>&gt; Op 11-12-18 om 10:52 schreef Christian Millour:<br/>&gt; &gt; Out of curiosity, is a real block<br/>&gt; &gt; needed here or is it an implementation convenience predating the<br/>&gt; &gt; introduction of my/our/state ? Does it afford any neat trick ;-) ?<br/>&gt; <br/>&gt; Yes, it allows an often used trick:<br/>&gt; <br/>&gt; &nbsp;&nbsp; say &quot;Some text @{[ some code returning a value ]}&quot;;<br/>&gt; <br/>&gt; <br/>&gt; &nbsp; That trick, used like that, doesn&#39;t require the block to be real.&nbsp; It <br/>&gt; might as well have been a parenthesized expression, if the syntax would <br/>&gt; allow it.<br/><br/>exactly so.<br/><br/>&gt; <br/>&gt; &nbsp; I don&#39;t think any of my code uses this block for anything that <br/>&gt; requires a real block ... but I expect such code would employ multiple <br/>&gt; statements or scoping of variables or localizations.<br/>&gt; <br/>&gt; &nbsp; The realness of the block permits just that:<br/>&gt; <br/>&gt; $ perl -Mstrict -E &#39;say @{my $x=1+int(rand(5)); my @y = &quot;A&quot;..&quot;Z&quot;; <br/>&gt; [$y[$x], $y[$x**2-1], $y[2*$x]]}[int(rand(3)), int(rand(3))]&#39;<br/><br/>which you could write<br/><br/>$ perl -Mstrict -E &#39;say @{ +do {my $x=1+int(rand(5)); my @y = &quot;A&quot;..&quot;Z&quot;; <br/>[$y[$x], $y[$x**2-1], $y[2*$x]]} }[int(rand(3)), int(rand(3))]&#39;<br/><br/>if the circumfix notation did not introduce a real block.<br/><br/>&gt; <br/>&gt; &nbsp; ... but any neat trick?&nbsp; None that I can think of.&nbsp; If I weren&#39;t so <br/>&gt; out of practice, I might at best write a JAPH ...<br/>&gt; <br/>&gt; <br/>&gt; Eirik<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253127.html Wed, 12 Dec 2018 00:00:59 +0000 Re: wishlist : combined declaration and slice-initialization forhashrefs by Christian Millour Le 11/12/2018 &agrave; 23:29, Martijn Lievaart a &eacute;crit&nbsp;:<br/>&gt; Op 11-12-18 om 10:52 schreef Christian Millour:<br/>&gt;&gt; Le 10/12/2018 &agrave; 19:11, Eirik Berg Hanssen a &eacute;crit&nbsp;:<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; On Mon, Dec 10, 2018 at 6:49 PM Christian Millour &lt;cm.perl@abtela.com <br/>&gt;&gt;&gt; &lt;mailto:cm.perl@abtela.com&gt;&gt; wrote:<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp; Using strict reveals that the declaration my $h is apparently <br/>&gt;&gt;&gt; somehow<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp; ignored (given that the error message is produced on line 5 below<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp; rather<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp; than line 4...)<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;$ perl -Mstrict -MData::Dump -E &#39;<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;my @k = qw(A B C);<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;my @v = 1 .. 3;<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;@{my $h}{@k} = @v;<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;dd $h&#39;<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;Global symbol &quot;$h&quot; requires explicit package name (did you <br/>&gt;&gt;&gt; forget to<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;declare &quot;my $h&quot;?) at -e line 5.<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;Execution of -e aborted due to compilation errors.<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;$<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp; Is this behaviour legitimate or an implementation oversight (worth a<br/>&gt;&gt;&gt; &nbsp;&nbsp;&nbsp; ticket) ?<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; &nbsp;&nbsp; Legitimate: Not ignored; just too small a scope to be useful, <br/>&gt;&gt;&gt; since the declaration C&lt;&lt; my $h &gt;&gt; scopes the variable to the <br/>&gt;&gt;&gt; surrounding block, which is C&lt;&lt; {my $h} &gt;&gt;.<br/>&gt;&gt;<br/>&gt;&gt; Thank you. Might be worth a mention in &quot;Private Variables via my()&quot; in <br/>&gt;&gt; perlsub.<br/>&gt;&gt;<br/>&gt;&gt;&gt; &nbsp;&nbsp; (Yes, that&#39;s a real block, not purely part of the dereference <br/>&gt;&gt;&gt; syntax.)<br/>&gt;&gt;<br/>&gt;&gt; Indeed, and thus documented in perlref. I had no idea those braces <br/>&gt;&gt; were more than part of the notation. Out of curiosity, is a real block <br/>&gt;&gt; needed here or is it an implementation convenience predating the <br/>&gt;&gt; introduction of my/our/state ? Does it afford any neat trick ;-) ?<br/>&gt; <br/>&gt; Yes, it allows an often used trick:<br/>&gt; <br/>&gt; &nbsp; say &quot;Some text @{[ some code returning a value ]}&quot;;<br/>&gt; <br/>&gt; HTH,<br/>&gt; M4<br/>&gt; <br/><br/>yes but perlref states &#39;The way it works is that when the @{...} is seen <br/>in the double-quoted string, it&#39;s evaluated as a block.&#39;, which looks to <br/>me like an ad-hoc convention. For this specific use a true block is <br/>unneeded. An expression would do.<br/><br/>IOW I don&#39;t see a compelling need for @{...}to create a real block. In <br/>most cases &quot;...&quot; is just an expression. And should you need a block then <br/>there is always @{ +do {...} } . Same for other circumfix notations.<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253126.html Tue, 11 Dec 2018 23:58:25 +0000 Re: Stringification in XS - FAIL, no PATCH by Tony Cook On Tue, Dec 11, 2018 at 09:00:01AM +0100, H.Merijn Brand wrote:<br/>&gt; On Tue, 11 Dec 2018 09:52:27 +1100, Tony Cook &lt;tony@develop-help.com&gt;<br/>&gt; wrote:<br/>&gt; <br/>&gt; &gt; On Mon, Dec 10, 2018 at 01:24:07PM +0100, H.Merijn Brand wrote:<br/>&gt; &gt; &gt; SV = IV(0x1ee0858) at 0x1ee0868<br/>&gt; &gt; &gt; REFCNT = 1<br/>&gt; &gt; &gt; FLAGS = (TEMP,ROK)<br/>&gt; &gt; &gt; RV = 0x1ee0a00<br/>&gt; &gt; &gt; SV = PVAV(0x1ee2360) at 0x1ee0a00<br/>&gt; &gt; &gt; REFCNT = 1<br/>&gt; &gt; &gt; FLAGS = (OBJECT)<br/>&gt; &gt; &gt; STASH = 0x2035118 &quot;Path::Tiny&quot;<br/>&gt; &gt; &gt; ARRAY = 0x1f048c0<br/>&gt; &gt; &gt; FILL = 1<br/>&gt; &gt; &gt; MAX = 1<br/>&gt; &gt; &gt; FLAGS = (REAL)<br/>&gt; &gt; &gt; Elt No. 0<br/>&gt; &gt; &gt; SV = PV(0x1ee13a0) at 0x1f0b040<br/>&gt; &gt; &gt; REFCNT = 1<br/>&gt; &gt; &gt; FLAGS = (POK,IsCOW,pPOK)<br/>&gt; &gt; &gt; PV = 0x20783a0 &quot;Test.pm&quot;\0<br/>&gt; &gt; &gt; CUR = 7<br/>&gt; &gt; &gt; LEN = 10<br/>&gt; &gt; &gt; COW_REFCNT = 1<br/>&gt; &gt; &gt; Elt No. 1<br/>&gt; &gt; &gt; SV = PV(0x1ee1340) at 0x1f0af68<br/>&gt; &gt; &gt; REFCNT = 1<br/>&gt; &gt; &gt; FLAGS = (POK,IsCOW,pPOK)<br/>&gt; &gt; &gt; PV = 0x20783a0 &quot;Test.pm&quot;\0<br/>&gt; &gt; &gt; CUR = 7<br/>&gt; &gt; &gt; LEN = 10<br/>&gt; &gt; &gt; COW_REFCNT = 1<br/>&gt; &gt; &gt; perl5.28.1: Test.xs:25: _DTest: Assertion `PL_valid_types_PVX[SvTYPE(_svpvx) &amp; SVt_MASK]&#39; failed.<br/>&gt; &gt; &gt; Abort (core dumped) <br/>&gt; &gt; <br/>&gt; &gt; You&#39;re calling SvPVX(sv) on an SV of a type that isn&#39;t valid to call<br/>&gt; &gt; SvPVX() on.<br/>&gt; <br/>&gt; Hmm, yes, that is what I reported<br/>&gt; <br/>&gt; But then again, this PASS&#39;s on non-DEBUGGING builds (it stringifies)<br/>&gt; and FAIL&#39;s on DEBUGGING builds.<br/>&gt; <br/>&gt; My patch to use -&gt;stringify works on both, but if this works in either,<br/>&gt; shouldn&#39;t it also work in the other?<br/><br/>file is being populated with rubbish when I test it on the final test<br/>case:<br/><br/>22 file = SvPVX (sv);<br/>(gdb) n<br/>24 } /* _DDump */<br/>(gdb) p file<br/>$3 = 0x555555944f48 &quot;pk\224UUU&quot;<br/><br/>Going back to the dump I see:<br/><br/>(gdb) n<br/>21 sv_dump (sv);<br/>(gdb) <br/>SV = IV(0x555555962810) at 0x555555962820<br/> REFCNT = 1<br/> FLAGS = (TEMP,ROK)<br/> RV = 0x555555944f48<br/> SV = PVAV(0x555555946b70) at 0x555555944f48<br/><br/>so SvPVX() is returning the RV as expected for this type of SV, it<br/>isn&#39;t a useful PV.<br/><br/>&gt; &gt; As Andreas diagnosis suggests, the build difference between your<br/>&gt; &gt; 5.28.0 and 5.28.1 builds that&#39;s causing the difference in results is<br/>&gt; &gt; whether it&#39;s a debugging build or not, not whether it&#39;s -Duseshrplib.<br/>&gt; &gt; <br/>&gt; &gt; And the debugging build is finding a bug in the code.<br/>&gt; <br/>&gt; Whose code? CORE or Image::Scale?<br/><br/>Image::Scale.<br/><br/>The code is simple to fix, just change the code from:<br/><br/> file = SvPVX(path);<br/><br/>to:<br/><br/> file = SvPV_nolen(path);<br/><br/>Since file is only used for error reporting, and the tests don&#39;t test<br/>error reporting for a Path::Tiny path, the tests don&#39;t reveal the<br/>broken implementation.<br/><br/>I&#39;ve replied to https://rt.cpan.org/Ticket/Display.html?id=119094<br/><br/>Tony<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253125.html Tue, 11 Dec 2018 23:26:04 +0000 Re: wishlist : combined declaration and slice-initialization forhashrefs by Eirik Berg Hanssen On Tue, Dec 11, 2018 at 11:36 PM Martijn Lievaart &lt;m@rtij.nl&gt; wrote:<br/><br/>&gt; Op 11-12-18 om 10:52 schreef Christian Millour:<br/>&gt; &gt; Out of curiosity, is a real block<br/>&gt; &gt; needed here or is it an implementation convenience predating the<br/>&gt; &gt; introduction of my/our/state ? Does it afford any neat trick ;-) ?<br/>&gt;<br/>&gt; Yes, it allows an often used trick:<br/>&gt;<br/>&gt; say &quot;Some text @{[ some code returning a value ]}&quot;;<br/>&gt;<br/><br/> That trick, used like that, doesn&#39;t require the block to be real. It<br/>might as well have been a parenthesized expression, if the syntax would<br/>allow it.<br/><br/> I don&#39;t think any of my code uses this block for anything that requires a<br/>real block ... but I expect such code would employ multiple statements or<br/>scoping of variables or localizations.<br/><br/> The realness of the block permits just that:<br/><br/>$ perl -Mstrict -E &#39;say @{my $x=1+int(rand(5)); my @y = &quot;A&quot;..&quot;Z&quot;; [$y[$x],<br/>$y[$x**2-1], $y[2*$x]]}[int(rand(3)), int(rand(3))]&#39;<br/><br/> ... but any neat trick? None that I can think of. If I weren&#39;t so out<br/>of practice, I might at best write a JAPH ...<br/><br/><br/>Eirik<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253124.html Tue, 11 Dec 2018 23:23:47 +0000 Re: wishlist : combined declaration and slice-initialization forhashrefs by Martijn Lievaart Op 11-12-18 om 10:52 schreef Christian Millour:<br/>&gt; Le 10/12/2018 &agrave; 19:11, Eirik Berg Hanssen a &eacute;crit&nbsp;:<br/>&gt;&gt;<br/>&gt;&gt;<br/>&gt;&gt; On Mon, Dec 10, 2018 at 6:49 PM Christian Millour &lt;cm.perl@abtela.com <br/>&gt;&gt; &lt;mailto:cm.perl@abtela.com&gt;&gt; wrote:<br/>&gt;&gt;<br/>&gt;&gt; &nbsp;&nbsp;&nbsp; Using strict reveals that the declaration my $h is apparently <br/>&gt;&gt; somehow<br/>&gt;&gt; &nbsp;&nbsp;&nbsp; ignored (given that the error message is produced on line 5 below<br/>&gt;&gt; &nbsp;&nbsp;&nbsp; rather<br/>&gt;&gt; &nbsp;&nbsp;&nbsp; than line 4...)<br/>&gt;&gt;<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;$ perl -Mstrict -MData::Dump -E &#39;<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;my @k = qw(A B C);<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;my @v = 1 .. 3;<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;@{my $h}{@k} = @v;<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;dd $h&#39;<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;Global symbol &quot;$h&quot; requires explicit package name (did you <br/>&gt;&gt; forget to<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;declare &quot;my $h&quot;?) at -e line 5.<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;Execution of -e aborted due to compilation errors.<br/>&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;$<br/>&gt;&gt;<br/>&gt;&gt; &nbsp;&nbsp;&nbsp; Is this behaviour legitimate or an implementation oversight (worth a<br/>&gt;&gt; &nbsp;&nbsp;&nbsp; ticket) ?<br/>&gt;&gt;<br/>&gt;&gt;<br/>&gt;&gt; &nbsp;&nbsp; Legitimate: Not ignored; just too small a scope to be useful, <br/>&gt;&gt; since the declaration C&lt;&lt; my $h &gt;&gt; scopes the variable to the <br/>&gt;&gt; surrounding block, which is C&lt;&lt; {my $h} &gt;&gt;.<br/>&gt;<br/>&gt; Thank you. Might be worth a mention in &quot;Private Variables via my()&quot; in <br/>&gt; perlsub.<br/>&gt;<br/>&gt;&gt; &nbsp;&nbsp; (Yes, that&#39;s a real block, not purely part of the dereference <br/>&gt;&gt; syntax.)<br/>&gt;<br/>&gt; Indeed, and thus documented in perlref. I had no idea those braces <br/>&gt; were more than part of the notation. Out of curiosity, is a real block <br/>&gt; needed here or is it an implementation convenience predating the <br/>&gt; introduction of my/our/state ? Does it afford any neat trick ;-) ?<br/><br/>Yes, it allows an often used trick:<br/><br/> &nbsp; say &quot;Some text @{[ some code returning a value ]}&quot;;<br/><br/>HTH,<br/>M4<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253123.html Tue, 11 Dec 2018 22:35:37 +0000 Re: Why is REG_INFTY I16_MAX by Karl Williamson On 12/11/18 3:45 AM, hv@crypt.org wrote: <br/>&gt; Karl Williamson &lt;public@khwilliamson.com&gt; wrote: <br/>&gt; :&gt; I investigated, and the behavior stems from this commit (and possibly <br/>&gt; :&gt; other later commits changing things around) <br/>&gt; :&gt; <br/>&gt; :&gt; commit faf11cac614129491d0258772ee4e6f8a3fb39e8 <br/>&gt; :&gt; Author: Hugo van der Sanden &lt;hv@crypt.org&gt; <br/>&gt; :&gt; Date: Mon Jul 1 14:28:04 2002 +0100 <br/>&gt; :&gt; Re: [ID 20020630.002] utf8 regex only matches 32k <br/>&gt; :&gt; Message-Id: &lt;200207011228.g61CS4T06766@crypt.compulink.co.uk&gt; <br/>&gt; :&gt; Date: Mon, 01 Jul 2002 13:28:04 +0100 <br/>&gt; [...] <br/>&gt; :And the reason for Hugo&#39;s commit was this: <br/>&gt; :https://www.nntp.perl.org/group/perl.perl5.porters/2018/10/msg252614.html <br/>&gt; <br/>&gt; That&#39;d be this one, I think: <br/>&gt; https://www.nntp.perl.org/group/perl.perl5.porters/2002/07/msg62591.html <br/>&gt; <br/>&gt; Hugo <br/>&gt; <br/> <br/>Further investigation by me leads me to think that the implementation we <br/>have currently is fine. The perldelta for my change needs to be <br/>corrected, and I&#39;ll check if there are adequate tests. It turns out <br/>that the implementation is already what I had proposed, except that the <br/>upper limit specifiable is 16 bits wide. I no longer see any point to <br/>enlarging that at this time, as I say in the following comment on <br/>brian&#39;s page: <br/> <br/>I was the one who made the change and wrote the perldelta. It turns out <br/>that the change is valid, I believe, but the perldelta is wrong due to <br/>my incomplete understanding of how things work. It should have read <br/>something like <br/> <br/>&ldquo;The upper limit &lsquo;n&rsquo; specifiable in a regular expression quantifier of <br/>the form &lsquo;{m,n}&rsquo; has been doubled to 65534. <br/> <br/>&ldquo;The meaning of an unbounded upper quantifier &lsquo;{m,}&rsquo; remains unchanged. <br/>It matches at least 2**31 &ndash; 1 times.&rdquo; <br/> <br/>Some platforms (maybe not current ones; I don&rsquo;t know, I don&rsquo;t keep <br/>track) make every number 64 bits wide. It&rsquo;s on those that the unbounded <br/>limit could be larger than 2**31. But Perl takes special care to limit <br/>&lsquo;n&rsquo; to 65534 max, even on such platforms. <br/> <br/>The bottom line is that the upper limit you can specify is much lower <br/>than the infinity that perl uses internally. That could be changed <br/>fairly easily, but no one has, to my knowledge, ever complained that <br/>it&rsquo;s too low, and we just doubled it anyway. <br/> <br/>You can say &lsquo;use re qw(Debug ALL)&rsquo; before a regular expression you are <br/>curious about to see in more detail what is happening. If you do so <br/>around a quantifier &ldquo;{1,}&rdquo;, you&rsquo;ll see that what gets generated is <br/>identical to what gets generated if you had instead said &ldquo;+&rdquo;. <br/> <br/>And, BTW, the reason <br/> <br/>$ perl -c -e &lsquo;/.{0,-1}/&rsquo; <br/> <br/>passes a syntax check is that it is legal; it just doesn&rsquo;t match what <br/>probably was intended. Again if you say &lsquo;use re qw(Debug ALL)&rsquo;, you can <br/>see what&rsquo;s going on. <br/> <br/>Final program: <br/>1: REG_ANY (2) <br/>2: EXACT &lt;{0,-1}&gt; (5) <br/>5: END (0) <br/> <br/>REG_ANY matches any single character except newline. That&rsquo;s the dot in <br/>the input. Then the exact string &lsquo;{0-1}&rsquo; must be matched. The warning <br/>message no longer says (in 5.29) that this will be illegal in 5.30. It <br/>will remain legal, and the warning message will remain. Pay attention to <br/>it. It&rsquo;s telling you that the left brace is to be matched literally, <br/>which also implies that what follows isn&rsquo;t going to be a quantifier. <br/>What will be illegal in 5.30 are just the constructs that we intend to <br/>change the meaning of. This is to limit the potential breakage of <br/>existing code, while still warning that what they might have thought <br/>they were getting is wrong. It allows _autoconf_ to not change, for <br/>example. (As a head&rsquo;s up, after 5.30, we can relax the syntax to allow <br/>some spaces and to be able to say &ldquo;{,n}&rdquo;. Currently the lower limit must <br/>be specified. It will also allow us to extend various escape sequences, <br/>so that \w{foo} could mean the &ldquo;foo&rdquo; specialization of \w, for whatever <br/>specializations we come up with in the future.) <br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253122.html Tue, 11 Dec 2018 15:57:48 +0000 Re: Why is REG_INFTY I16_MAX by hv Karl Williamson &lt;public@khwilliamson.com&gt; wrote:<br/>:&gt; I investigated, and the behavior stems from this commit (and possibly <br/>:&gt; other later commits changing things around)<br/>:&gt; <br/>:&gt; commit faf11cac614129491d0258772ee4e6f8a3fb39e8<br/>:&gt; Author: Hugo van der Sanden &lt;hv@crypt.org&gt;<br/>:&gt; Date: Mon Jul 1 14:28:04 2002 +0100<br/>:&gt; Re: [ID 20020630.002] utf8 regex only matches 32k<br/>:&gt; Message-Id: &lt;200207011228.g61CS4T06766@crypt.compulink.co.uk&gt;<br/>:&gt; Date: Mon, 01 Jul 2002 13:28:04 +0100<br/>[...]<br/>:And the reason for Hugo&#39;s commit was this:<br/>:https://www.nntp.perl.org/group/perl.perl5.porters/2018/10/msg252614.html<br/><br/>That&#39;d be this one, I think:<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2002/07/msg62591.html<br/><br/>Hugo<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253121.html Tue, 11 Dec 2018 11:49:06 +0000 Re: wishlist : combined declaration and slice-initialization forhashrefs by Christian Millour Le 10/12/2018 &agrave; 19:11, Eirik Berg Hanssen a &eacute;crit&nbsp;:<br/>&gt; <br/>&gt; <br/>&gt; On Mon, Dec 10, 2018 at 6:49 PM Christian Millour &lt;cm.perl@abtela.com <br/>&gt; &lt;mailto:cm.perl@abtela.com&gt;&gt; wrote:<br/>&gt; <br/>&gt; Using strict reveals that the declaration my $h is apparently somehow<br/>&gt; ignored (given that the error message is produced on line 5 below<br/>&gt; rather<br/>&gt; than line 4...)<br/>&gt; <br/>&gt; &nbsp; &nbsp;$ perl -Mstrict -MData::Dump -E &#39;<br/>&gt; &nbsp; &nbsp; &nbsp;my @k = qw(A B C);<br/>&gt; &nbsp; &nbsp; &nbsp;my @v = 1 .. 3;<br/>&gt; &nbsp; &nbsp; &nbsp;@{my $h}{@k} = @v;<br/>&gt; &nbsp; &nbsp; &nbsp;dd $h&#39;<br/>&gt; &nbsp; &nbsp;Global symbol &quot;$h&quot; requires explicit package name (did you forget to<br/>&gt; &nbsp; &nbsp;declare &quot;my $h&quot;?) at -e line 5.<br/>&gt; &nbsp; &nbsp;Execution of -e aborted due to compilation errors.<br/>&gt; &nbsp; &nbsp;$<br/>&gt; <br/>&gt; Is this behaviour legitimate or an implementation oversight (worth a<br/>&gt; ticket) ?<br/>&gt; <br/>&gt; <br/>&gt; &nbsp; Legitimate: Not ignored; just too small a scope to be useful, since <br/>&gt; the declaration C&lt;&lt; my $h &gt;&gt; scopes the variable to the surrounding <br/>&gt; block, which is C&lt;&lt; {my $h} &gt;&gt;.<br/><br/>Thank you. Might be worth a mention in &quot;Private Variables via my()&quot; in <br/>perlsub.<br/><br/>&gt; &nbsp; (Yes, that&#39;s a real block, not purely part of the dereference syntax.)<br/><br/>Indeed, and thus documented in perlref. I had no idea those braces were <br/>more than part of the notation. Out of curiosity, is a real block needed <br/>here or is it an implementation convenience predating the introduction <br/>of my/our/state ? Does it afford any neat trick ;-) ?<br/><br/>&gt; &nbsp; To your wish though: I guess the new-ish postfix dereferencing is <br/>&gt; what you want:<br/>&gt; <br/>&gt; $ perl -MData::Dump -e &#39;<br/>&gt; &nbsp;&nbsp;&nbsp;&nbsp; my @k = qw(A B C);<br/>&gt; &nbsp;&nbsp;&nbsp;&nbsp; my @v = 1 .. 3;<br/>&gt; &nbsp;&nbsp;&nbsp;&nbsp; my $h-&gt;@{@k} = @v;<br/>&gt; &nbsp;&nbsp;&nbsp;&nbsp; dd $h&#39;<br/>&gt; { A =&gt; 1, B =&gt; 2, C =&gt; 3 }<br/>&gt; <br/>&gt; &nbsp; (Shivers down my spine as I write that ...)<br/>&gt; <br/><br/>Thanks again. It will take some getting used to. I&#39;ll try that on a <br/>small project and come back to it in a few months to check whether I can <br/>still read my own code :-).<br/><br/>&gt; &nbsp; As to new-ish: This should work as-is on 5.24 and later; on 5.20 &ndash; <br/>&gt; 5.22 I think it just requires &quot;use feature &#39;postderef&#39;&quot; (untested though).<br/>&gt; <br/>&gt; <br/>&gt; Eirik<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253120.html Tue, 11 Dec 2018 09:52:34 +0000 Re: Stringification in XS - FAIL, no PATCH by H.Merijn Brand On Tue, 11 Dec 2018 09:52:27 +1100, Tony Cook &lt;tony@develop-help.com&gt; <br/>wrote: <br/> <br/>&gt; On Mon, Dec 10, 2018 at 01:24:07PM +0100, H.Merijn Brand wrote: <br/>&gt; &gt; SV = IV(0x1ee0858) at 0x1ee0868 <br/>&gt; &gt; REFCNT = 1 <br/>&gt; &gt; FLAGS = (TEMP,ROK) <br/>&gt; &gt; RV = 0x1ee0a00 <br/>&gt; &gt; SV = PVAV(0x1ee2360) at 0x1ee0a00 <br/>&gt; &gt; REFCNT = 1 <br/>&gt; &gt; FLAGS = (OBJECT) <br/>&gt; &gt; STASH = 0x2035118 &quot;Path::Tiny&quot; <br/>&gt; &gt; ARRAY = 0x1f048c0 <br/>&gt; &gt; FILL = 1 <br/>&gt; &gt; MAX = 1 <br/>&gt; &gt; FLAGS = (REAL) <br/>&gt; &gt; Elt No. 0 <br/>&gt; &gt; SV = PV(0x1ee13a0) at 0x1f0b040 <br/>&gt; &gt; REFCNT = 1 <br/>&gt; &gt; FLAGS = (POK,IsCOW,pPOK) <br/>&gt; &gt; PV = 0x20783a0 &quot;Test.pm&quot;\0 <br/>&gt; &gt; CUR = 7 <br/>&gt; &gt; LEN = 10 <br/>&gt; &gt; COW_REFCNT = 1 <br/>&gt; &gt; Elt No. 1 <br/>&gt; &gt; SV = PV(0x1ee1340) at 0x1f0af68 <br/>&gt; &gt; REFCNT = 1 <br/>&gt; &gt; FLAGS = (POK,IsCOW,pPOK) <br/>&gt; &gt; PV = 0x20783a0 &quot;Test.pm&quot;\0 <br/>&gt; &gt; CUR = 7 <br/>&gt; &gt; LEN = 10 <br/>&gt; &gt; COW_REFCNT = 1 <br/>&gt; &gt; perl5.28.1: Test.xs:25: _DTest: Assertion `PL_valid_types_PVX[SvTYPE(_svpvx) &amp; SVt_MASK]&#39; failed. <br/>&gt; &gt; Abort (core dumped) <br/>&gt; <br/>&gt; You&#39;re calling SvPVX(sv) on an SV of a type that isn&#39;t valid to call <br/>&gt; SvPVX() on. <br/> <br/>Hmm, yes, that is what I reported <br/> <br/>But then again, this PASS&#39;s on non-DEBUGGING builds (it stringifies) <br/>and FAIL&#39;s on DEBUGGING builds. <br/> <br/>My patch to use -&gt;stringify works on both, but if this works in either, <br/>shouldn&#39;t it also work in the other? <br/> <br/>&gt; As Andreas diagnosis suggests, the build difference between your <br/>&gt; 5.28.0 and 5.28.1 builds that&#39;s causing the difference in results is <br/>&gt; whether it&#39;s a debugging build or not, not whether it&#39;s -Duseshrplib. <br/>&gt; <br/>&gt; And the debugging build is finding a bug in the code. <br/> <br/>Whose code? CORE or Image::Scale? <br/> <br/>&gt; -Duseshrplib is in very common use, many linux system perls are built <br/>&gt; with it, as is darwin, and it&#39;s unlikely to be the cause of XS API <br/>&gt; issues you run into. <br/> <br/>I am going to do this all again, but now without -DDEBUGGING, but <br/>this build at least caused me to write 5 patches to CPAN modules <br/>that used the stack in a bad way that caused core dumps <br/> <br/>&gt; Tony <br/> <br/>-- <br/>H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ <br/>using perl5.00307 .. 5.29 porting perl5 on HP-UX, AIX, and openSUSE <br/>http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ <br/>http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/ <br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253119.html Tue, 11 Dec 2018 08:00:33 +0000 [perl #133596] Perl 5.28.0 fails to compile on AIX by Tony Cook via RT Hi,<br/><br/>Are you able to try what I suggested below?<br/><br/>Tony<br/><br/>On Wed, 05 Dec 2018 13:31:34 -0800, tonyc wrote:<br/>&gt; On Wed, 05 Dec 2018 12:35:12 -0800, tonyc wrote:<br/>&gt; &gt; On Tue, 16 Oct 2018 10:02:33 -0700, daniele.silvestre@atos.net wrote:<br/>&gt; &gt; &gt; Hello,<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; I use the same configure flags to build perl 5.28 on AIX than with<br/>&gt; &gt; &gt; 5.26.1<br/>&gt; &gt; &gt; 5.26.1 builds succesfully, 5.28.0 fails.<br/>&gt; &gt; &gt;<br/>&gt; &gt; &gt; Failure occurs in ext/B directory compilation<br/>&gt; &gt; &gt; with 5.28.0 version , an additional -bE:B.exp is given on the gcc<br/>&gt; &gt; &gt; command uses to generate B.so<br/>&gt; &gt; &gt; on AIX, all parameters given as arguments on the gcc command that are<br/>&gt; &gt; &gt; meaningul for the loader and then passed to ld must be prefixed with<br/>&gt; &gt; &gt; &quot;<br/>&gt; &gt; &gt; -Wl,&quot;<br/>&gt; &gt; <br/>&gt; &gt; I suspect this was broken by:<br/>&gt; &gt; <br/>&gt; &gt; https://github.com/Perl-Toolchain-Gang/ExtUtils-<br/>&gt; &gt; MakeMaker/commit/982f991c7f564f3e40e3f57c1f7090a5d1763611<br/>&gt; <br/>&gt; In your build tree, try running:<br/>&gt; <br/>&gt; ./miniperl -Ilib -V<br/>&gt; <br/>&gt; As a workaround, try editing cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm<br/>&gt; <br/>&gt; Search for &quot;sub xs_dlsyms_arg&quot; and change:<br/>&gt; <br/>&gt; return qq{-bE:${file}};<br/>&gt; <br/>&gt; to<br/>&gt; <br/>&gt; return qq{-Wl,-bE:${file}};<br/>&gt; <br/>&gt; Please let us know if that helps.<br/>&gt; <br/>&gt; Tony<br/><br/><br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=133596<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253118.html Tue, 11 Dec 2018 03:46:18 +0000 Re: Why is REG_INFTY I16_MAX by Karl Williamson On 12/10/18 8:16 PM, Karl Williamson wrote: <br/>&gt; On 10/24/18 9:02 PM, Karl Williamson wrote: <br/>&gt;&gt; On 10/1/18 10:38 PM, Karl Williamson wrote: <br/>&gt;&gt;&gt; On 07/06/2018 12:46 PM, Karl Williamson wrote: <br/>&gt;&gt;&gt;&gt; On 07/06/2018 11:11 AM, Karl Williamson wrote: <br/>&gt;&gt;&gt;&gt;&gt; On 07/06/2018 02:05 AM, Dave Mitchell wrote: <br/>&gt;&gt;&gt;&gt;&gt;&gt; On Thu, Jul 05, 2018 at 10:32:03PM -0600, Karl Williamson wrote: <br/>&gt;&gt;&gt;&gt;&gt;&gt;&gt; It is possible to increase this number with a Configure option, <br/>&gt;&gt;&gt;&gt;&gt;&gt;&gt; but I was <br/>&gt;&gt;&gt;&gt;&gt;&gt;&gt; surprised to learn that the default is INT16_MAX.&nbsp; This seems low <br/>&gt;&gt;&gt;&gt;&gt;&gt;&gt; to me. <br/>&gt;&gt;&gt;&gt;&gt;&gt;&gt; What are the reasons for it being this value? <br/>&gt;&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt;&gt; Historically I think it used to be like that because when the <br/>&gt;&gt;&gt;&gt;&gt;&gt; regex engine <br/>&gt;&gt;&gt;&gt;&gt;&gt; used to be recursive, /Something_Complex{1,large_number}/ would <br/>&gt;&gt;&gt;&gt;&gt;&gt; blow the <br/>&gt;&gt;&gt;&gt;&gt;&gt; stack. <br/>&gt;&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt;&gt; The thing that put me off changing it myself was that it would <br/>&gt;&gt;&gt;&gt;&gt;&gt; presumably <br/>&gt;&gt;&gt;&gt;&gt;&gt; increase the size of certain reg node types, and I&#39;m not clear how <br/>&gt;&gt;&gt;&gt;&gt;&gt; reg <br/>&gt;&gt;&gt;&gt;&gt;&gt; node sizes are handled (all that NODE_STEP_REGNODE stuff). <br/>&gt;&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt;&gt; But it definitely needs increasing. <br/>&gt;&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt; We could change it to U16, doubling the size, without having to <br/>&gt;&gt;&gt;&gt;&gt; change any regnodes. <br/>&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt; I tried this, and there were a few test failures that assumed the <br/>&gt;&gt;&gt;&gt; existing size, but no real problems. <br/>&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt; Currently, the regnodes that contain this use the regnode_2 <br/>&gt;&gt;&gt;&gt; structure, which has room for two U16 args (min and max).&nbsp; But there <br/>&gt;&gt;&gt;&gt; is a regnode_2L that has a U32 arg and an I32 arg, which we could <br/>&gt;&gt;&gt;&gt; use instead.&nbsp; Or we could trivially create a regnode_2UL with two <br/>&gt;&gt;&gt;&gt; U32s, to avoid casting <br/>&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt; If there is agreement to do so, I can go ahead and do it. <br/>&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt; <br/>&gt;&gt;&gt; I doubled the size, leaving for later any further enlargement.&nbsp; We <br/>&gt;&gt;&gt; can see what sorts of problems this small step causes. <br/>&gt;&gt;&gt; <br/>&gt;&gt; <br/>&gt;&gt; As a cross reference,&nbsp; XML::Easy fails as a result of this. <br/>&gt;&gt; <br/>&gt; <br/>&gt; This topic came up again in b. d. foy&#39;s post <br/>&gt; <br/>&gt; https://www.effectiveperlprogramming.com/2018/12/perl-v5-30-lets-you-match-more-with-the-general-quantifier/ <br/>&gt; <br/>&gt; <br/>&gt; In it, he talks about his experiments that showed that saying /a{1,}/ <br/>&gt; had a limit of U16_MAX, but /a+/ has a limit of I32_MAX. <br/>&gt; <br/>&gt; I investigated, and the behavior stems from this commit (and possibly <br/>&gt; other later commits changing things around) <br/>&gt; <br/>&gt; commit faf11cac614129491d0258772ee4e6f8a3fb39e8 <br/>&gt; &nbsp;Author: Hugo van der Sanden &lt;hv@crypt.org&gt; <br/>&gt; &nbsp;Date:&nbsp;&nbsp; Mon Jul 1 14:28:04 2002 +0100 <br/>&gt; <br/>&gt; &nbsp;&nbsp;&nbsp;&nbsp; Re: [ID 20020630.002] utf8 regex only matches 32k <br/>&gt; &nbsp;&nbsp;&nbsp;&nbsp; Message-Id: &lt;200207011228.g61CS4T06766@crypt.compulink.co.uk&gt; <br/>&gt; &nbsp;&nbsp;&nbsp;&nbsp; Date: Mon, 01 Jul 2002 13:28:04 +0100 <br/>&gt; <br/>&gt; &nbsp;&nbsp;&nbsp;&nbsp; p4raw-id: //depot/perl@17390 <br/>&gt; <br/>&gt; The commit causes something that is REG_INFTY to be instead translated <br/>&gt; into I32_MAX in one place in the code. <br/>&gt; <br/>&gt; I believe the numbers should be consistent, and that likely we should <br/>&gt; use the larger number in current use in the field as the minimum value <br/>&gt; for infinity. <br/>&gt; <br/>&gt; What I propose is to make &#39;n&#39; in /a{1,n}/ be a maximum of I32_MAX - 1, <br/>&gt; else it&#39;s an error.&nbsp; If instead the pattern is written /a{1,}/ we would <br/>&gt; use plain I32_MAX as the upper limit.&nbsp; This would make REG_INFTY out of <br/>&gt; bounds, and so we would know which the pattern was written as.&nbsp; This <br/>&gt; frees us from breaking if we later upped the REG_INFTY value to, say, <br/>&gt; IV_MAX. <br/>&gt; <br/>&gt; The reason not to go to U32_MAX and UV_MAX is that it looks to me like <br/>&gt; we would have problems with various expressions potentially overflowing. <br/>&gt; <br/>&gt; Making this change would require changing the regnodes that represent <br/>&gt; the {m,n} constructs to use 32 bit arguments, instead of 16. <br/>&gt; <br/> <br/>And the reason for Hugo&#39;s commit was this: <br/>https://www.nntp.perl.org/group/perl.perl5.porters/2018/10/msg252614.html <br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253117.html Tue, 11 Dec 2018 03:33:47 +0000 Re: Why is REG_INFTY I16_MAX by Karl Williamson On 10/24/18 9:02 PM, Karl Williamson wrote: <br/>&gt; On 10/1/18 10:38 PM, Karl Williamson wrote: <br/>&gt;&gt; On 07/06/2018 12:46 PM, Karl Williamson wrote: <br/>&gt;&gt;&gt; On 07/06/2018 11:11 AM, Karl Williamson wrote: <br/>&gt;&gt;&gt;&gt; On 07/06/2018 02:05 AM, Dave Mitchell wrote: <br/>&gt;&gt;&gt;&gt;&gt; On Thu, Jul 05, 2018 at 10:32:03PM -0600, Karl Williamson wrote: <br/>&gt;&gt;&gt;&gt;&gt;&gt; It is possible to increase this number with a Configure option, <br/>&gt;&gt;&gt;&gt;&gt;&gt; but I was <br/>&gt;&gt;&gt;&gt;&gt;&gt; surprised to learn that the default is INT16_MAX.&nbsp; This seems low <br/>&gt;&gt;&gt;&gt;&gt;&gt; to me. <br/>&gt;&gt;&gt;&gt;&gt;&gt; What are the reasons for it being this value? <br/>&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt; Historically I think it used to be like that because when the regex <br/>&gt;&gt;&gt;&gt;&gt; engine <br/>&gt;&gt;&gt;&gt;&gt; used to be recursive, /Something_Complex{1,large_number}/ would <br/>&gt;&gt;&gt;&gt;&gt; blow the <br/>&gt;&gt;&gt;&gt;&gt; stack. <br/>&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt; The thing that put me off changing it myself was that it would <br/>&gt;&gt;&gt;&gt;&gt; presumably <br/>&gt;&gt;&gt;&gt;&gt; increase the size of certain reg node types, and I&#39;m not clear how reg <br/>&gt;&gt;&gt;&gt;&gt; node sizes are handled (all that NODE_STEP_REGNODE stuff). <br/>&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt; But it definitely needs increasing. <br/>&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt; <br/>&gt;&gt;&gt;&gt; We could change it to U16, doubling the size, without having to <br/>&gt;&gt;&gt;&gt; change any regnodes. <br/>&gt;&gt;&gt; <br/>&gt;&gt;&gt; I tried this, and there were a few test failures that assumed the <br/>&gt;&gt;&gt; existing size, but no real problems. <br/>&gt;&gt;&gt; <br/>&gt;&gt;&gt; Currently, the regnodes that contain this use the regnode_2 <br/>&gt;&gt;&gt; structure, which has room for two U16 args (min and max).&nbsp; But there <br/>&gt;&gt;&gt; is a regnode_2L that has a U32 arg and an I32 arg, which we could use <br/>&gt;&gt;&gt; instead.&nbsp; Or we could trivially create a regnode_2UL with two U32s, <br/>&gt;&gt;&gt; to avoid casting <br/>&gt;&gt;&gt; <br/>&gt;&gt;&gt; If there is agreement to do so, I can go ahead and do it. <br/>&gt;&gt;&gt; <br/>&gt;&gt; <br/>&gt;&gt; I doubled the size, leaving for later any further enlargement.&nbsp; We can <br/>&gt;&gt; see what sorts of problems this small step causes. <br/>&gt;&gt; <br/>&gt; <br/>&gt; As a cross reference,&nbsp; XML::Easy fails as a result of this. <br/>&gt; <br/> <br/>This topic came up again in b. d. foy&#39;s post <br/> <br/>https://www.effectiveperlprogramming.com/2018/12/perl-v5-30-lets-you-match-more-with-the-general-quantifier/ <br/> <br/>In it, he talks about his experiments that showed that saying /a{1,}/ <br/>had a limit of U16_MAX, but /a+/ has a limit of I32_MAX. <br/> <br/>I investigated, and the behavior stems from this commit (and possibly <br/>other later commits changing things around) <br/> <br/>commit faf11cac614129491d0258772ee4e6f8a3fb39e8 <br/> Author: Hugo van der Sanden &lt;hv@crypt.org&gt; <br/> Date: Mon Jul 1 14:28:04 2002 +0100 <br/> <br/> Re: [ID 20020630.002] utf8 regex only matches 32k <br/> Message-Id: &lt;200207011228.g61CS4T06766@crypt.compulink.co.uk&gt; <br/> Date: Mon, 01 Jul 2002 13:28:04 +0100 <br/> <br/> p4raw-id: //depot/perl@17390 <br/> <br/>The commit causes something that is REG_INFTY to be instead translated <br/>into I32_MAX in one place in the code. <br/> <br/>I believe the numbers should be consistent, and that likely we should <br/>use the larger number in current use in the field as the minimum value <br/>for infinity. <br/> <br/>What I propose is to make &#39;n&#39; in /a{1,n}/ be a maximum of I32_MAX - 1, <br/>else it&#39;s an error. If instead the pattern is written /a{1,}/ we would <br/>use plain I32_MAX as the upper limit. This would make REG_INFTY out of <br/>bounds, and so we would know which the pattern was written as. This <br/>frees us from breaking if we later upped the REG_INFTY value to, say, <br/>IV_MAX. <br/> <br/>The reason not to go to U32_MAX and UV_MAX is that it looks to me like <br/>we would have problems with various expressions potentially overflowing. <br/> <br/>Making this change would require changing the regnodes that represent <br/>the {m,n} constructs to use 32 bit arguments, instead of 16. <br/> https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253116.html Tue, 11 Dec 2018 03:17:23 +0000