{"push_id":1061693114,"size":37,"distinct_size":37,"ref":"refs/heads/blead","head":"9b1bcf24cc1d223ccff3dc5419dee83dbfcd64c1","before":"6fb87544af0ff2b9b9c12038bc0fb261f56a7d88","commits":[{"sha":"102b78772154e95396aa43dd570b4facb5279d4d","author":{"email":"cf0a05cdb2fdc4e2645a7ee205258372c1cbbbce@gmail.com","name":"Yves Orton"},"message":"Add SILENT_NO_TAINT_SUPPORT to S_Internals_V ()\n\nNO_TAINT_SUPPORT was added in 3b0e4ee2077, but SILENT_NO_TAINT_SUPPORT was overlooked.","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/102b78772154e95396aa43dd570b4facb5279d4d"},{"sha":"45d40326f89400e722587fa76ee587404ef594f9","author":{"email":"4ea5a6fcb5b7546937a0a105350d8778134c6858@googlemail.com","name":"Steve Hay"},"message":"5.22.2 should appear this month, starting with RC1 on Sunday 10th","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/45d40326f89400e722587fa76ee587404ef594f9"},{"sha":"8f6eb0aa5efb953e32803878cca6d9c1e28ac03f","author":{"email":"9698b42daff0b0c20281d5ac41198e7d75a0467c@gmail.com","name":"Dan Collins"},"message":"(perl #126162) warn if stat() is called on an array","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/8f6eb0aa5efb953e32803878cca6d9c1e28ac03f"},{"sha":"3c3c69d86c41a658a1d80f5e024b9f8e0b7b425a","author":{"email":"1001e8702733cced254345e193c88aaa47a4f5de@develop-help.com","name":"Tony Cook"},"message":"add the new stat(@array) diagnostic to perldiag","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/3c3c69d86c41a658a1d80f5e024b9f8e0b7b425a"},{"sha":"edc12fc2e5a216570d2b0ec0b1e83a00822120b5","author":{"email":"1001e8702733cced254345e193c88aaa47a4f5de@develop-help.com","name":"Tony Cook"},"message":"error messages vary between platforms, use errno values instead","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/edc12fc2e5a216570d2b0ec0b1e83a00822120b5"},{"sha":"637494ac7ab11f737c47bf95a2c3a27ef1117984","author":{"email":"1001e8702733cced254345e193c88aaa47a4f5de@develop-help.com","name":"Tony Cook"},"message":"(perl #126162) improve stat @array handling\n\n- warn on lexical arrays too\n\n- limit the warning to under C<use warnings 'syntax';>\n\n- test the warnings\n\n- include the (correct) variable name where possible","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/637494ac7ab11f737c47bf95a2c3a27ef1117984"},{"sha":"f43a4a461783c0090f64e82f4ea444fd336bbf5b","author":{"email":"4ea5a6fcb5b7546937a0a105350d8778134c6858@googlemail.com","name":"Steve Hay"},"message":"Add another missing link to epigraphs.pod","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/f43a4a461783c0090f64e82f4ea444fd336bbf5b"},{"sha":"87c118b93c83b875f5f008c28c442757dfb404ae","author":{"email":"fe08d3c717adf2ae63592e4c9aec6e3e404d8e3e@iabyn.com","name":"David Mitchell"},"message":"update security contact information.\n\nPoint out that the security-reporting email address now creates an RT\nticket. Also, consolidate this information purely within perlsec.pod, and\nmake all the other places link to it with L<>.","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/87c118b93c83b875f5f008c28c442757dfb404ae"},{"sha":"2e08dfb2b133af0fbcb4346f8d096ca68454ca54","author":{"email":"b58d09249b3e367ae8383be7fc79efabb7794458@cpan.org","name":"Karl Williamson"},"message":"Revert \"Make instr() a macro\"\n\nThis reverts commit fea1d2dd5d210564d442a09fe034b62f262f35f9 due to it\ncausing problems so close to the release of 5.24.  See\nhttps://rt.perl.org/Ticket/Display.html?id=127852","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/2e08dfb2b133af0fbcb4346f8d096ca68454ca54"},{"sha":"d14d5855c45a17996ec1e16e2f3cfa8ecef24809","author":{"email":"cf0a05cdb2fdc4e2645a7ee205258372c1cbbbce@gmail.com","name":"Yves Orton"},"message":"test for #127855 - Slowdown in m//g on COW strings of certain lengths","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/d14d5855c45a17996ec1e16e2f3cfa8ecef24809"},{"sha":"e19cb11142087974d956f263d24e146b968025d5","author":{"email":"cf0a05cdb2fdc4e2645a7ee205258372c1cbbbce@gmail.com","name":"Yves Orton"},"message":"fix #127855, in Perl_sv_setpvn() we have to overallocate to enable COW\n\nWe need to overallocate by 2 to do COW strings. One for the null,\none for the refcount.","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/e19cb11142087974d956f263d24e146b968025d5"},{"sha":"bcc9f606509ad2fad50e16f081103451b7dc49e1","author":{"email":"cf0a05cdb2fdc4e2645a7ee205258372c1cbbbce@gmail.com","name":"Yves Orton"},"message":"More generalized fix for #127855, overallocate in SvGROW and not just sv_grow()\n\nIf we overallocate in SvGROW() and not just sv_grow() we can ensure\nwe have more cases where we can COW. We need to ensure we always\nhave room for a null and a reference count.","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/bcc9f606509ad2fad50e16f081103451b7dc49e1"},{"sha":"fc82b82ef4784a38877f35f56ee16f14934460ce","author":{"email":"b58d09249b3e367ae8383be7fc79efabb7794458@cpan.org","name":"Karl Williamson"},"message":"Strengthen cautions about locale use with threads\n\nThis comes from our increased understanding of their perils, given\nticket #127708","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/fc82b82ef4784a38877f35f56ee16f14934460ce"},{"sha":"31f8924d9e997070af9ca909e3a78848c4d1972b","author":{"email":"fe08d3c717adf2ae63592e4c9aec6e3e404d8e3e@iabyn.com","name":"David Mitchell"},"message":"new perf test in pat.t: avoid timing failure\n\nA new performance test in re/pat.t added by v5.23.9-58-gd14d585 could\noccasionally fails to a timing issue. It was checking that the the\ntest took less than 1 sec to run; but since the clock usually has a\ngranularity of 1 sec, it could fail if the test ran over a tick boundary.\n\nChange the condition to <= 1 sec, and increase the time the test takes on\na bad perl - it was taking 4sec on my system; it now takes about 14sec,\nso there's less chance of a bad perl passing.","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/31f8924d9e997070af9ca909e3a78848c4d1972b"},{"sha":"68b940afc96546256736bc5d8185075ddc12b205","author":{"email":"fe08d3c717adf2ae63592e4c9aec6e3e404d8e3e@iabyn.com","name":"David Mitchell"},"message":"move perf test from re/pat.t to re/speed.t\n\nThese days we generally put re tests which rely on timing in a separate\nfile, t/re/speed.t; move a recently-added test there.","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/68b940afc96546256736bc5d8185075ddc12b205"},{"sha":"929e12133425199fce3fe026156c10876ac0cbb8","author":{"email":"b58d09249b3e367ae8383be7fc79efabb7794458@cpan.org","name":"Karl Williamson"},"message":"Add locale mutex\n\nThis adds a new mutex for use in the next commit for use with locale\nhandling.","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/929e12133425199fce3fe026156c10876ac0cbb8"},{"sha":"a0b5329765c5b5a7cbb69a2d628d4cea8f0323c1","author":{"email":"b58d09249b3e367ae8383be7fc79efabb7794458@cpan.org","name":"Karl Williamson"},"message":"PATCH: [perl #127708] segfault in \"$!\" in threads\n\nThis was showing up on Darwin because its setlocale is particularly not\nthread safe.  But the problem is more generic.  Using locales just\nisn't a good idea in a threaded application, as locales are\nprocess-wide, not thread-specific.  Calling setlocale() changes the\nlocale of all threads at the same time.  Further the return of\nsetlocale() is a pointer to internal storage.  If you call setlocale()\njust to learn what it currently is without actually changing the locale,\nthere is no guarantee that another thread won't interrupt your thread,\nswitching the locale to something else before you've had a chance to\ncopy it somewhere else for safekeeping, and the internal storage may\nhave been freed during that interruption, leading to things like\nsegfaults.\n\nThis is a problem that has been around in the locale handling code for a\nlong time.  I don't know why it hasn't shown up before, or maybe it has\nand is not reproducible because it's timing dependent, and so any\nproblems didn't have tickets written for them, or were rejected as not\nreproducible.\n\nBut the problem has been made worse in recent releases.  Only fairly\nrecently has perl changed so this problem can occur in programs that\ndon't use locale explicitly: ones that don't 'use locale' nor call\nsetlocale().  This ticket is for such a program that gets a\nlocale-related segfault, without ever touching locales itself.\n\nI have done an audit of the perl source, looking for all such\noccurrences, and this patch fixes all of them that I found.  The only\nother ones, besides \"$!\", is in converting to/from UTF-8 in cygwin.c.\nIn all such cases, perl briefly switches the locale, does an operation,\nthen switches back.  The solution here is to add mutexes to make these\nareas of code uninterruptible critical sections, so that they can rely\non having the locale be what they expect it to be during the entirety of\nthe operation, and can't have a setlocale() from another thread free\ninternal storage.  But this is not a general solution.  A thread\nexecuting these sections can interrupt some other thread doing a\nsetlocale() and zap that.  However, we have long cautioned against doing\nsetlocales() in a thread, and that caution was strengthened in a commit\nmade yesterday, fc82b82ef4784a38877f35f56ee16f14934460ce.\n\nThe current commit should make safe all threaded programs that don't use\nlocales explicitly.\n\nIt's too close to the 5.24 release to do the rearchitecting required for\na general solution.  That would involve adding more critical sections.\n\nPOSIX 2008 introduced new locale handling functions that are\nthread-safe, and affect only a single thread, and don't require mutexes.\nThe ultimate solution would be to use those tools where available, and\nto hide from the outer code which set is being used.  Thus, perl would\nbe thread-safe on such platforms, while remaining problematic on older\nones, though fixed so segfaults wouldn't occur.  Tony Cook believes we\ncould emulate the newer behavior on all platforms at a significant\nperformance penalty.  I think this would require a lot of code, and\nsuspect there would be glitches in it for XS code.  But he may have\nsome ideas about how to do it simply.  In any case, this has to wait\nuntil post 5.24.\n\nThree other notes:\n\nIt seems to me that the cygwin code could be replaced by equivalent code\nthat doesn't use locales at all.  The comments in the source seem to\neven indicate that.  I'll look into doing this in 5.25.\n\nAnother possible reason that this hasn't shown up in earlier perls is\nthat the problems may have been entirely affecting I/O operations and\nthere are already mutexes involving I/O, and so those could be\ninadvertently protecting from, or at least minimizing, the problems\nfound here.  I haven't investigated to verify this.\n\nThis commit doesn't add a test.  I am asking on p5p for assistance in\nwriting one","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/a0b5329765c5b5a7cbb69a2d628d4cea8f0323c1"},{"sha":"a38a1415b2213053721cf97f404166407c4650d5","author":{"email":"4ea5a6fcb5b7546937a0a105350d8778134c6858@googlemail.com","name":"Steve Hay"},"message":"5.22.2-RC1 today","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/a38a1415b2213053721cf97f404166407c4650d5"},{"sha":"bdd099cdd1e6439fffa775fda5961e71d032366c","author":{"email":"4ea5a6fcb5b7546937a0a105350d8778134c6858@googlemail.com","name":"Steve Hay"},"message":"Add 5.22.2-RC1 epigraph","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/bdd099cdd1e6439fffa775fda5961e71d032366c"},{"sha":"125f17fedfceed02f0ae40fceca04ac03fab6bd7","author":{"email":"dc30e19244b61a39e80a3d0fa61957c198cbcee2@cpan.org","name":"Ricardo Signes"},"message":"perldelta: bootstrap perl5240delta with perl5230delta","distinct":true,"url":"https://api.github.com/repos/toddr/perl/commits/125f17fedfceed02f0ae40fceca04ac03fab6bd7"}]}