CINXE.COM
perl5.git.perl.org Git - perl5.git/log
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html [ <!ENTITY nbsp " "> <!ENTITY sdot "⋅"> ]> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> <!-- git web interface version 2.43.5, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke --> <!-- git core binaries version 2.43.5 --> <head> <meta name="generator" content="gitweb/2.43.5 git/2.43.5"/> <meta name="robots" content="index, nofollow"/> <title>perl5.git.perl.org Git - perl5.git/log</title> <base href="https://perl5.git.perl.org" /> <link rel="stylesheet" type="text/css" href="static/gitweb.css"/> <link rel="alternate" title="perl5.git - log - RSS feed" href="/perl5.git/rss" type="application/rss+xml" /> <link rel="alternate" title="perl5.git - log - RSS feed (no merges)" href="/perl5.git/rss?opt=--no-merges" type="application/rss+xml" /> <link rel="alternate" title="perl5.git - log - Atom feed" href="/perl5.git/atom" type="application/atom+xml" /> <link rel="alternate" title="perl5.git - log - Atom feed (no merges)" href="/perl5.git/atom?opt=--no-merges" type="application/atom+xml" /> <link rel="shortcut icon" href="static/git-favicon.png" type="image/png" /> </head> <body> This is a live mirror of the Perl 5 development currently hosted at <a href="https://github.com/perl/perl5" target="_blank">https://github.com/perl/perl5</a> <div class="page_header"> <a href="https://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="static/git-logo.png" width="72" /></a><a href="/">https://perl5.git.perl.org</a> / <a href="/perl5.git">perl5.git</a> / log </div> <form method="get" action="/perl5.git" enctype="multipart/form-data"><div class="search"> <input name="a" type="hidden" value="search" /> <input name="h" type="hidden" value="HEAD" /> <select name="st" > <option selected="selected" value="commit">commit</option> <option value="grep">grep</option> <option value="author">author</option> <option value="committer">committer</option> <option value="pickaxe">pickaxe</option> </select> <a href="/perl5.git/search_help" title="search help">?</a> search: <input type="text" name="s" /> <span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div> </form> <div class="page_nav"> <a href="/perl5.git">summary</a> | <a href="/perl5.git/shortlog">shortlog</a> | log | <a href="/perl5.git/commit">commit</a> | <a href="/perl5.git/commitdiff">commitdiff</a> | <a href="/perl5.git/tree">tree</a><br/> first ⋅ prev ⋅ <a accesskey="n" href="/perl5.git/log?pg=1" title="Alt-n">next</a><br/> </div> <div class="header"> <a class="title" href="/perl5.git">perl5.git</a> </div> <div class="header"> <a class="title" href="/perl5.git/commit/61a68eeb5d7f62b9f5b9a0fab12e8d78c52816c7"><span class="age">5 hours ago</span>Devel::PPPort: add compatibility entries for the new vstrings <span class="refs"> <span class="head" title="heads/blead"><a href="/perl5.git/log/refs/heads/blead">blead</a></span></span></a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/61a68eeb5d7f62b9f5b9a0fab12e8d78c52816c7">commit</a> | <a href="/perl5.git/commitdiff/61a68eeb5d7f62b9f5b9a0fab12e8d78c52816c7">commitdiff</a> | <a href="/perl5.git/tree/61a68eeb5d7f62b9f5b9a0fab12e8d78c52816c7">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Tony+Cook;st=author" title="Search for commits authored by Tony Cook">Tony Cook</a> [<span class="datetime">Mon, 31 Mar 2025 23:53:33 +0000</span> (10:53 +1100)]</span> <br/> </div> <div class="log_body"> Devel::PPPort: add compatibility entries for the new vstrings<br/> <br/> Based on @leont's comment on #23160.<br/> <br/> This seems to produce reasonable results:<br/> <br/> tony@venus:.../git/perl6$ cat foo.c<br/> SvVSTRING<br/> tony@venus:.../git/perl6$ ./perl -Ilib dist/Devel-PPPort/ppport.h --nofilter foo.c<br/> Scanning foo.c ...<br/> === Analyzing foo.c ===<br/> Uses SvVSTRING, which depends on sv_vstring_get, SvVSTRING_mg, mg_find, PERL_MAGIC_vstring, SvMAGICAL<br/> File needs sv_vstring_get, adding static request<br/> Needs to include 'ppport.h'<br/> Analysis completed<br/> Suggested changes:<br/> --- foo.c 2025-04-01 10:51:39.<a class="text" href="/perl5.git/object/040415623">040415623</a> +1100<br/> +++ foo.c.patched 2025-04-01 10:55:11.<a class="text" href="/perl5.git/object/347014468">347014468</a> +1100<br/> @@ -1 +1,3 @@<br/> +#define NEED_sv_vstring_get<br/> +#include "ppport.h"<br/> SvVSTRING<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/7cd47db6555f4260f48646320eaecc23a02f3243"><span class="age">5 hours ago</span>Storable: use SvVSTRING() from ppport.h</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/7cd47db6555f4260f48646320eaecc23a02f3243">commit</a> | <a href="/perl5.git/commitdiff/7cd47db6555f4260f48646320eaecc23a02f3243">commitdiff</a> | <a href="/perl5.git/tree/7cd47db6555f4260f48646320eaecc23a02f3243">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Tony+Cook;st=author" title="Search for commits authored by Tony Cook">Tony Cook</a> [<span class="datetime">Thu, 27 Mar 2025 00:24:31 +0000</span> (11:24 +1100)]</span> <br/> </div> <div class="log_body"> Storable: use SvVSTRING() from ppport.h<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/1db6b57bb1fc7c280d5da30030e1328881344124"><span class="age">5 hours ago</span>Devel-PPPort: add SvVSTRING()</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/1db6b57bb1fc7c280d5da30030e1328881344124">commit</a> | <a href="/perl5.git/commitdiff/1db6b57bb1fc7c280d5da30030e1328881344124">commitdiff</a> | <a href="/perl5.git/tree/1db6b57bb1fc7c280d5da30030e1328881344124">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Tony+Cook;st=author" title="Search for commits authored by Tony Cook">Tony Cook</a> [<span class="datetime">Thu, 27 Mar 2025 00:21:07 +0000</span> (11:21 +1100)]</span> <br/> </div> <div class="log_body"> Devel-PPPort: add SvVSTRING()<br/> <br/> vstrings were originally added in <a class="text" href="/perl5.git/object/perl-5.8.0-82-g92f0c26562">perl-5.8.0-82-g92f0c26562</a>,<br/> SvVSTRING_mg() was originally added in <a class="text" href="/perl5.git/object/perl-5.8.0-8018-gb0a11fe104">perl-5.8.0-8018-gb0a11fe104</a> so<br/> technically in the same release.<br/> <br/> I expect there were some uses of intermediate versions 19 years ago,<br/> but I don't think we need to worry about it now.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/5352940a15b75a73914227ca7329947a7279c2ab"><span class="age">5 hours ago</span>test-dist-modules.pl: allow the invoker to keep the build around</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/5352940a15b75a73914227ca7329947a7279c2ab">commit</a> | <a href="/perl5.git/commitdiff/5352940a15b75a73914227ca7329947a7279c2ab">commitdiff</a> | <a href="/perl5.git/tree/5352940a15b75a73914227ca7329947a7279c2ab">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Tony+Cook;st=author" title="Search for commits authored by Tony Cook">Tony Cook</a> [<span class="datetime">Wed, 26 Mar 2025 23:59:59 +0000</span> (10:59 +1100)]</span> <br/> </div> <div class="log_body"> test-dist-modules.pl: allow the invoker to keep the build around<br/> <br/> This is especially handy when tracking down problems with<br/> Devel::PPPort, since so much is generated.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/33df2fe3fec72f85983b824bbb7038a553daf49f"><span class="age">5 hours ago</span>Devel-PPPort: improve ppptest test reporting</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/33df2fe3fec72f85983b824bbb7038a553daf49f">commit</a> | <a href="/perl5.git/commitdiff/33df2fe3fec72f85983b824bbb7038a553daf49f">commitdiff</a> | <a href="/perl5.git/tree/33df2fe3fec72f85983b824bbb7038a553daf49f">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Tony+Cook;st=author" title="Search for commits authored by Tony Cook">Tony Cook</a> [<span class="datetime">Wed, 26 Mar 2025 23:59:04 +0000</span> (10:59 +1100)]</span> <br/> </div> <div class="log_body"> Devel-PPPort: improve ppptest test reporting<br/> <br/> A change I made caused this to fail, tracking it down was rough.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/eb3602733db508b55830cc07918b58332afe6af7"><span class="age">7 hours ago</span>cpan/Test-Simple - Update to version 1.302210</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/eb3602733db508b55830cc07918b58332afe6af7">commit</a> | <a href="/perl5.git/commitdiff/eb3602733db508b55830cc07918b58332afe6af7">commitdiff</a> | <a href="/perl5.git/tree/eb3602733db508b55830cc07918b58332afe6af7">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Chad+Granum;st=author" title="Search for commits authored by Chad Granum">Chad Granum</a> [<span class="datetime">Wed, 2 Apr 2025 00:48:25 +0000</span> (20:48 -0400)]</span> <br/> </div> <div class="log_body"> cpan/Test-Simple - Update to version 1.302210<br/> <br/> 1.302210 2025-03-29 12:06:57-07:00 America/Los_Angeles<br/> <br/> - Alexander Hartmaier - fix typo in Test2::Util::Trace docs<br/> - Karen Etheridge - documentation fixes throughout for affect vs effect<br/> - Yasuharu Iida feat - Test2::Tools::Warnings warns called in void context<br/> - bernhard Eliminate - Remove unnecessary empty list assignments<br/> - Graham Knop calculate - CAN_SIGSYS when called rather than as a constant<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/d58f204d51252c97a0c6ce487a97ec309d29386c"><span class="age">10 hours ago</span>PathTools: check Config values early before chdir</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/d58f204d51252c97a0c6ce487a97ec309d29386c">commit</a> | <a href="/perl5.git/commitdiff/d58f204d51252c97a0c6ce487a97ec309d29386c">commitdiff</a> | <a href="/perl5.git/tree/d58f204d51252c97a0c6ce487a97ec309d29386c">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Graham+Knop;st=author" title="Search for commits authored by Graham Knop">Graham Knop</a> [<span class="datetime">Mon, 31 Mar 2025 22:22:25 +0000</span> (<span class="atnight">00:22</span> +0200)]</span> <br/> </div> <div class="log_body"> PathTools: check Config values early before chdir<br/> <br/> In a perl core build, the @INC paths will be relative. If you change<br/> directories before loading all of the files needed, they won't be able<br/> to be found. Config.pm loads some of its values at runtime, so if they<br/> are accessed after a chdir, it may fail.<br/> <br/> One of the PathTools tests was relying on the fact that Config_heavy.pl<br/> would be loaded by Test::More, before it did a chdir. Newer Test::More<br/> won't do that, so the test would fail. Accessing the required Config<br/> values early will prevent this failure.<br/> <br/> This same issue is unlikely to impact anything outside core, as it<br/> requires the perl core paths in @INC to be relative paths, which is<br/> normally not the case.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/801e9c3d40c686829f88af7f563b3ad124637c5d"><span class="age">36 hours ago</span>Add quotes around titles when they were missing</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/801e9c3d40c686829f88af7f563b3ad124637c5d">commit</a> | <a href="/perl5.git/commitdiff/801e9c3d40c686829f88af7f563b3ad124637c5d">commitdiff</a> | <a href="/perl5.git/tree/801e9c3d40c686829f88af7f563b3ad124637c5d">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Philippe+Bruhat+(BooK);st=author" title="Search for commits authored by Philippe Bruhat (BooK)">Philippe Bruhat (BooK)</a> [<span class="datetime">Wed, 26 Mar 2025 00:54:01 +0000</span> (<span class="atnight">01:54</span> +0100)]</span> <br/> </div> <div class="log_body"> Add quotes around titles when they were missing<br/> <br/> Also added the book title for one of the Jasper Fforde's quotes.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/3ab0369d98885eb81c47c3f914ee5b7dcef2205c"><span class="age">39 hours ago</span>Time::HiRes: avoid importing via export_to_level</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/3ab0369d98885eb81c47c3f914ee5b7dcef2205c">commit</a> | <a href="/perl5.git/commitdiff/3ab0369d98885eb81c47c3f914ee5b7dcef2205c">commitdiff</a> | <a href="/perl5.git/tree/3ab0369d98885eb81c47c3f914ee5b7dcef2205c">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Graham+Knop;st=author" title="Search for commits authored by Graham Knop">Graham Knop</a> [<span class="datetime">Sat, 29 Mar 2025 10:59:35 +0000</span> (11:59 +0100)]</span> <br/> </div> <div class="log_body"> Time::HiRes: avoid importing via export_to_level<br/> <br/> The export_to_level function forces Exporter to always load<br/> Exporter::Heavy. This can be avoided by only using Exporter::import.<br/> <br/> Time::HiRes's import is only trying to prevent exports of unimplemented<br/> functions and doesn't need to make any modifications to its arguments.<br/> This means doing a goto &Exporter::import will do everything needed.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/91c779a4e66d68028e5016c5008fdff5c5136018"><span class="age">42 hours ago</span>Perl_hv_common: sv_2mortal(newSVsv()) to sv_mortalcopy_flags()</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/91c779a4e66d68028e5016c5008fdff5c5136018">commit</a> | <a href="/perl5.git/commitdiff/91c779a4e66d68028e5016c5008fdff5c5136018">commitdiff</a> | <a href="/perl5.git/tree/91c779a4e66d68028e5016c5008fdff5c5136018">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Richard+Leach;st=author" title="Search for commits authored by Richard Leach">Richard Leach</a> [<span class="datetime">Mon, 24 Mar 2025 00:59:55 +0000</span> (<span class="atnight">00:59</span> +0000)]</span> <br/> </div> <div class="log_body"> Perl_hv_common: sv_2mortal(newSVsv()) to sv_mortalcopy_flags()<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/8294975f8dc19876e88fdfb9b1c9383562fd7e84"><span class="age">42 hours ago</span>regcomp.c - create mortal HV/AV in one step</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/8294975f8dc19876e88fdfb9b1c9383562fd7e84">commit</a> | <a href="/perl5.git/commitdiff/8294975f8dc19876e88fdfb9b1c9383562fd7e84">commitdiff</a> | <a href="/perl5.git/tree/8294975f8dc19876e88fdfb9b1c9383562fd7e84">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Richard+Leach;st=author" title="Search for commits authored by Richard Leach">Richard Leach</a> [<span class="datetime">Wed, 12 Mar 2025 14:28:48 +0000</span> (14:28 +0000)]</span> <br/> </div> <div class="log_body"> regcomp.c - create mortal HV/AV in one step<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/01b85911fcab822877a0ea96bb425ca3292269ee"><span class="age">42 hours ago</span>pp_system: use newSVtype_mortal instead of two functions</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/01b85911fcab822877a0ea96bb425ca3292269ee">commit</a> | <a href="/perl5.git/commitdiff/01b85911fcab822877a0ea96bb425ca3292269ee">commitdiff</a> | <a href="/perl5.git/tree/01b85911fcab822877a0ea96bb425ca3292269ee">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Richard+Leach;st=author" title="Search for commits authored by Richard Leach">Richard Leach</a> [<span class="datetime">Wed, 12 Mar 2025 14:12:46 +0000</span> (14:12 +0000)]</span> <br/> </div> <div class="log_body"> pp_system: use newSVtype_mortal instead of two functions<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/a3a284fa098080c7e48720fd6e11b7ba9066ff0e"><span class="age">42 hours ago</span>do_readline: create new mortal with less branching</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/a3a284fa098080c7e48720fd6e11b7ba9066ff0e">commit</a> | <a href="/perl5.git/commitdiff/a3a284fa098080c7e48720fd6e11b7ba9066ff0e">commitdiff</a> | <a href="/perl5.git/tree/a3a284fa098080c7e48720fd6e11b7ba9066ff0e">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Richard+Leach;st=author" title="Search for commits authored by Richard Leach">Richard Leach</a> [<span class="datetime">Wed, 12 Mar 2025 13:58:43 +0000</span> (13:58 +0000)]</span> <br/> </div> <div class="log_body"> do_readline: create new mortal with less branching<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/829b1d49c7d8d3d4124810384861025a26d7c3cd"><span class="age">42 hours ago</span>Use newSVpvn_flags() rather than sv_2mortal(newSVpvn_utf8)</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/829b1d49c7d8d3d4124810384861025a26d7c3cd">commit</a> | <a href="/perl5.git/commitdiff/829b1d49c7d8d3d4124810384861025a26d7c3cd">commitdiff</a> | <a href="/perl5.git/tree/829b1d49c7d8d3d4124810384861025a26d7c3cd">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Richard+Leach;st=author" title="Search for commits authored by Richard Leach">Richard Leach</a> [<span class="datetime">Wed, 12 Mar 2025 13:28:27 +0000</span> (13:28 +0000)]</span> <br/> </div> <div class="log_body"> Use newSVpvn_flags() rather than sv_2mortal(newSVpvn_utf8)<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/6d97c8623f515875cc84450000603679732502bb"><span class="age">44 hours ago</span>Nuke the MGf_PERSIST flag, freeing a bit in ->mg_flags</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/6d97c8623f515875cc84450000603679732502bb">commit</a> | <a href="/perl5.git/commitdiff/6d97c8623f515875cc84450000603679732502bb">commitdiff</a> | <a href="/perl5.git/tree/6d97c8623f515875cc84450000603679732502bb">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Paul+%22LeoNerd%22+Evans;st=author" title="Search for commits authored by Paul "LeoNerd" Evans">Paul "LeoNerd" Evans</a> [<span class="datetime">Thu, 27 Mar 2025 13:10:25 +0000</span> (13:10 +0000)]</span> <br/> </div> <div class="log_body"> Nuke the MGf_PERSIST flag, freeing a bit in ->mg_flags<br/> <br/> The MGf_PERSIST flag is only used by PERL_MAGIC_lvref, and there it<br/> simply contains a shadow copy of the OPpLVREF_ITER flag in op_private.<br/> Since the mg_priv field is set as a copy of op_private anyway, the code<br/> that checks this bit might as well look there instead.<br/> <br/> As a result of this change, the 0x80 bit of the mg_flags field is now<br/> free for other purposes.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/52fdca79c16ca18468c653ba6ac8a25b90d316dc"><span class="age">2 days ago</span>cpan/Pod-Usage - Update to version 2.05</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/52fdca79c16ca18468c653ba6ac8a25b90d316dc">commit</a> | <a href="/perl5.git/commitdiff/52fdca79c16ca18468c653ba6ac8a25b90d316dc">commitdiff</a> | <a href="/perl5.git/tree/52fdca79c16ca18468c653ba6ac8a25b90d316dc">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Marek+Rouchal;st=author" title="Search for commits authored by Marek Rouchal">Marek Rouchal</a> [<span class="datetime">Sun, 30 Mar 2025 14:26:18 +0000</span> (10:26 -0400)]</span> <br/> </div> <div class="log_body"> cpan/Pod-Usage - Update to version 2.05<br/> <br/> 2.05 2025-03-29<br/> <br/> - merged PR #27, fixing spurious Exporter inheritance<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/63857a61c06bad93cfa1a3edaa0d853d054093e5"><span class="age">2 days ago</span>5.38.4-RC1/5.40.2-RC1 today</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/63857a61c06bad93cfa1a3edaa0d853d054093e5">commit</a> | <a href="/perl5.git/commitdiff/63857a61c06bad93cfa1a3edaa0d853d054093e5">commitdiff</a> | <a href="/perl5.git/tree/63857a61c06bad93cfa1a3edaa0d853d054093e5">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Steve+Hay;st=author" title="Search for commits authored by Steve Hay">Steve Hay</a> [<span class="datetime">Sun, 30 Mar 2025 11:37:20 +0000</span> (12:37 +0100)]</span> <br/> </div> <div class="log_body"> 5.38.4-RC1/5.40.2-RC1 today<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/654993734bba564be7013d78ecc24a4d2330c0bb"><span class="age">3 days ago</span>Add very tentative release date for 5.38.4/5.40.2 security releases</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/654993734bba564be7013d78ecc24a4d2330c0bb">commit</a> | <a href="/perl5.git/commitdiff/654993734bba564be7013d78ecc24a4d2330c0bb">commitdiff</a> | <a href="/perl5.git/tree/654993734bba564be7013d78ecc24a4d2330c0bb">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Steve+Hay;st=author" title="Search for commits authored by Steve Hay">Steve Hay</a> [<span class="datetime">Sat, 29 Mar 2025 15:31:31 +0000</span> (15:31 +0000)]</span> <br/> </div> <div class="log_body"> Add very tentative release date for 5.38.4/5.40.2 security releases<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/de36a92218b2118db3e5a47294474ce10ed4d379"><span class="age">6 days ago</span>Dumper.xs: Use PERL_MAGIC_vstring symbolic constant rather than 'V' character literal</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/de36a92218b2118db3e5a47294474ce10ed4d379">commit</a> | <a href="/perl5.git/commitdiff/de36a92218b2118db3e5a47294474ce10ed4d379">commitdiff</a> | <a href="/perl5.git/tree/de36a92218b2118db3e5a47294474ce10ed4d379">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Paul+%22LeoNerd%22+Evans;st=author" title="Search for commits authored by Paul "LeoNerd" Evans">Paul "LeoNerd" Evans</a> [<span class="datetime">Wed, 26 Mar 2025 16:35:41 +0000</span> (16:35 +0000)]</span> <br/> </div> <div class="log_body"> Dumper.xs: Use PERL_MAGIC_vstring symbolic constant rather than 'V' character literal<br/> <br/> The symbolic name is just a name for the character constant, but doing<br/> this makes it possible to find e.g. via grep.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/3e734cb97c84ce17ea5eabf743c16797b853c288"><span class="age">6 days ago</span>POD fix: link to the fields pragma in perlref</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/3e734cb97c84ce17ea5eabf743c16797b853c288">commit</a> | <a href="/perl5.git/commitdiff/3e734cb97c84ce17ea5eabf743c16797b853c288">commitdiff</a> | <a href="/perl5.git/tree/3e734cb97c84ce17ea5eabf743c16797b853c288">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Philippe+Bruhat+(BooK);st=author" title="Search for commits authored by Philippe Bruhat (BooK)">Philippe Bruhat (BooK)</a> [<span class="datetime">Wed, 26 Mar 2025 09:02:11 +0000</span> (10:02 +0100)]</span> <br/> </div> <div class="log_body"> POD fix: link to the fields pragma in perlref<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/e5ef137f9116f74315e333518f08c23751271064"><span class="age">8 days ago</span>Porting/release_managers_guide.pod: use more neutral tag message</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/e5ef137f9116f74315e333518f08c23751271064">commit</a> | <a href="/perl5.git/commitdiff/e5ef137f9116f74315e333518f08c23751271064">commitdiff</a> | <a href="/perl5.git/tree/e5ef137f9116f74315e333518f08c23751271064">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Sat, 22 Mar 2025 04:58:36 +0000</span> (<span class="atnight">05:58</span> +0100)]</span> <br/> </div> <div class="log_body"> Porting/release_managers_guide.pod: use more neutral tag message<br/> <br/> The tag message is just an example, but most releases aren't .0<br/> versions, so "first release!" doesn't generalize well for release<br/> engineers looking for guidance.<br/> <br/> (Also, update the sample output to match the new tag example.)<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/f81d6dc0beb3612e548d19e563c4259843986324"><span class="age">11 days ago</span>small .h trick for faster win32 interp compiles</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/f81d6dc0beb3612e548d19e563c4259843986324">commit</a> | <a href="/perl5.git/commitdiff/f81d6dc0beb3612e548d19e563c4259843986324">commitdiff</a> | <a href="/perl5.git/tree/f81d6dc0beb3612e548d19e563c4259843986324">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=bulk88;st=author" title="Search for commits authored by bulk88">bulk88</a> [<span class="datetime">Sun, 6 Oct 2024 01:39:59 +0000</span> (21:39 -0400)]</span> <br/> </div> <div class="log_body"> small .h trick for faster win32 interp compiles<br/> <br/> cl.exe in the terminal is much faster by eye. PERL_CORE only, since<br/> CPAN XS assumes the built-in out the box headers/tokens/structs/linker<br/> libs selected by p5p decades ago will never change.<br/> <br/> Since CPAN has been caught doing "-DPERL_CORE" in the past then including<br/> p5 core headers, include a provision to enable #include full W32 headers,<br/> since it might be difficult to #undef then #include the OS headers a 2nd<br/> time with different CPP defines.<br/> <br/> "#define NONLS" too many core interp .c files need the ANSI/Wide code page<br/> apis to special case each .c. Just leave it out for now.<br/> <br/> A benefit is smaller .pdb or whatever GCC's dbg symbol file format is.<br/> So faster debugger startup. Also GCC uncontrollably includes all<br/> "#define"s in its symbol disk format (which isnt a separate file, but a<br/> many MBs memory mapped data structure embedded into the particular .exe<br/> or .dll, on disk, and in VM). Since Perl isn't a Win32 GUI app, keep the<br/> GUI APIs out of the compiler if possible and toss the "text" ASAP in<br/> the phases of compiling. Whether whole MS .h files are skipped, or CPP<br/> discards large chunks of APIs before reaching the C parser/.obj/.pdb files,<br/> is implementation specific behaviour by particular MSVCs and Mingw. Our<br/> side was completed, in requesting to exclude stuff.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/3e105179adb204136ac4a7ef174d96f9698b97fe"><span class="age">11 days ago</span>Porting/release_managers_guide.pod: minor adjustments</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/3e105179adb204136ac4a7ef174d96f9698b97fe">commit</a> | <a href="/perl5.git/commitdiff/3e105179adb204136ac4a7ef174d96f9698b97fe">commitdiff</a> | <a href="/perl5.git/tree/3e105179adb204136ac4a7ef174d96f9698b97fe">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 14:15:55 +0000</span> (15:15 +0100)]</span> <br/> </div> <div class="log_body"> Porting/release_managers_guide.pod: minor adjustments<br/> <br/> - After installing, perl shouldn't need any `-Ilib` options.<br/> - Hyperlinks should be clickable.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/c29144bfa79a9fd0fc99165db8f0a9b420c06ed9"><span class="age">11 days ago</span>Prepare Module::Corelist for 5.41.11</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/c29144bfa79a9fd0fc99165db8f0a9b420c06ed9">commit</a> | <a href="/perl5.git/commitdiff/c29144bfa79a9fd0fc99165db8f0a9b420c06ed9">commitdiff</a> | <a href="/perl5.git/tree/c29144bfa79a9fd0fc99165db8f0a9b420c06ed9">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 14:12:21 +0000</span> (15:12 +0100)]</span> <br/> </div> <div class="log_body"> Prepare Module::Corelist for 5.41.11<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/42d38273704232bb50d431ccf19776e9ca9d8797"><span class="age">11 days ago</span>Bump the perl version in various places for 5.41.11</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/42d38273704232bb50d431ccf19776e9ca9d8797">commit</a> | <a href="/perl5.git/commitdiff/42d38273704232bb50d431ccf19776e9ca9d8797">commitdiff</a> | <a href="/perl5.git/tree/42d38273704232bb50d431ccf19776e9ca9d8797">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 13:55:13 +0000</span> (14:55 +0100)]</span> <br/> </div> <div class="log_body"> Bump the perl version in various places for 5.41.11<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/37067167512bed11133fec9d18d36ed11ede1a72"><span class="age">11 days ago</span>New perldelta for 5.41.11</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/37067167512bed11133fec9d18d36ed11ede1a72">commit</a> | <a href="/perl5.git/commitdiff/37067167512bed11133fec9d18d36ed11ede1a72">commitdiff</a> | <a href="/perl5.git/tree/37067167512bed11133fec9d18d36ed11ede1a72">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 13:44:44 +0000</span> (14:44 +0100)]</span> <br/> </div> <div class="log_body"> New perldelta for 5.41.11<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/58e440aa52267d2298df084b75e42b384e92b367"><span class="age">11 days ago</span>tick off 5.41.10 release; add Karen Etheridge for 5.41.11</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/58e440aa52267d2298df084b75e42b384e92b367">commit</a> | <a href="/perl5.git/commitdiff/58e440aa52267d2298df084b75e42b384e92b367">commitdiff</a> | <a href="/perl5.git/tree/58e440aa52267d2298df084b75e42b384e92b367">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 13:38:11 +0000</span> (14:38 +0100)]</span> <br/> </div> <div class="log_body"> tick off 5.41.10 release; add Karen Etheridge for 5.41.11<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/89121d15bc548956ec8aa904428ec47a0a7119fa"><span class="age">11 days ago</span>Add epigraph for 5.41.10</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/89121d15bc548956ec8aa904428ec47a0a7119fa">commit</a> | <a href="/perl5.git/commitdiff/89121d15bc548956ec8aa904428ec47a0a7119fa">commitdiff</a> | <a href="/perl5.git/tree/89121d15bc548956ec8aa904428ec47a0a7119fa">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 13:33:49 +0000</span> (14:33 +0100)]</span> <br/> </div> <div class="log_body"> Add epigraph for 5.41.10<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/6a1cf63fc3f0e8d25b8f3837f9ca46b3bbc65885"><span class="age">11 days ago</span>Add new release to perlhist <span class="refs"> <span class="tag indirect" title="tags/v5.41.10"><a href="/perl5.git/tag/refs/tags/v5.41.10">v5.41.10</a></span></span></a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/6a1cf63fc3f0e8d25b8f3837f9ca46b3bbc65885">commit</a> | <a href="/perl5.git/commitdiff/6a1cf63fc3f0e8d25b8f3837f9ca46b3bbc65885">commitdiff</a> | <a href="/perl5.git/tree/6a1cf63fc3f0e8d25b8f3837f9ca46b3bbc65885">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 10:25:08 +0000</span> (11:25 +0100)]</span> <br/> </div> <div class="log_body"> Add new release to perlhist<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/0e9419c21980a6e85db2ccc1928e34bc4382787c"><span class="age">11 days ago</span>Finalize perldelta</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/0e9419c21980a6e85db2ccc1928e34bc4382787c">commit</a> | <a href="/perl5.git/commitdiff/0e9419c21980a6e85db2ccc1928e34bc4382787c">commitdiff</a> | <a href="/perl5.git/tree/0e9419c21980a6e85db2ccc1928e34bc4382787c">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 10:16:58 +0000</span> (11:16 +0100)]</span> <br/> </div> <div class="log_body"> Finalize perldelta<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/f95b18b200447c942e238bd2c3f306f3a7a19ded"><span class="age">11 days ago</span>Update Module::CoreList for 5.41.10</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/f95b18b200447c942e238bd2c3f306f3a7a19ded">commit</a> | <a href="/perl5.git/commitdiff/f95b18b200447c942e238bd2c3f306f3a7a19ded">commitdiff</a> | <a href="/perl5.git/tree/f95b18b200447c942e238bd2c3f306f3a7a19ded">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 09:14:40 +0000</span> (10:14 +0100)]</span> <br/> </div> <div class="log_body"> Update Module::CoreList for 5.41.10<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/1fe2652706fcc8c8e954c8bef4c1817f316b6388"><span class="age">11 days ago</span>Porting/acknowledgements.pl: fix encoding of author names</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/1fe2652706fcc8c8e954c8bef4c1817f316b6388">commit</a> | <a href="/perl5.git/commitdiff/1fe2652706fcc8c8e954c8bef4c1817f316b6388">commitdiff</a> | <a href="/perl5.git/tree/1fe2652706fcc8c8e954c8bef4c1817f316b6388">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 09:36:30 +0000</span> (10:36 +0100)]</span> <br/> </div> <div class="log_body"> Porting/acknowledgements.pl: fix encoding of author names<br/> <br/> Previously, running `Porting/acknowledgements.pl` or<br/> `Porting/updateAUTHORS.pl --who` in a "UTF-8 by default" environment<br/> (such as with `LANG=en_US.UTF-8 PERL_UNICODE=SL`) would mangle non-ASCII<br/> characters in authors' names. (More specifically, it would double-encode<br/> non-ASCII characters, so "Mannsåker" would render as "MannsÃ¥ker".)<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/33a8b15ea5268b50f1e50dc8a69e300903c07b93"><span class="age">11 days ago</span>Porting/release_managers_guide.pod: fix CoreList spelling</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/33a8b15ea5268b50f1e50dc8a69e300903c07b93">commit</a> | <a href="/perl5.git/commitdiff/33a8b15ea5268b50f1e50dc8a69e300903c07b93">commitdiff</a> | <a href="/perl5.git/tree/33a8b15ea5268b50f1e50dc8a69e300903c07b93">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Fri, 21 Mar 2025 09:16:58 +0000</span> (10:16 +0100)]</span> <br/> </div> <div class="log_body"> Porting/release_managers_guide.pod: fix CoreList spelling<br/> <br/> It's CoreList, not Corelist. (And add F< > markup while we're at it.)<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/b0bc5378f8286ec2f3d232fbd6b3e9973e425558"><span class="age">11 days ago</span>INSTALL: fix version number in "Upgrading from"</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/b0bc5378f8286ec2f3d232fbd6b3e9973e425558">commit</a> | <a href="/perl5.git/commitdiff/b0bc5378f8286ec2f3d232fbd6b3e9973e425558">commitdiff</a> | <a href="/perl5.git/tree/b0bc5378f8286ec2f3d232fbd6b3e9973e425558">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Wed, 19 Mar 2025 14:50:42 +0000</span> (15:50 +0100)]</span> <br/> </div> <div class="log_body"> INSTALL: fix version number in "Upgrading from"<br/> <br/> ... in accordance with Porting/release_managers_guide.pod, "Update<br/> INSTALL" for BLEAD-POINT.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/514c4e20b23bb7251175642a8b0b522bcae2bda8"><span class="age">12 days ago</span>Remove redundant code that handles mg_obj of PERL_MAGIC_symtab</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/514c4e20b23bb7251175642a8b0b522bcae2bda8">commit</a> | <a href="/perl5.git/commitdiff/514c4e20b23bb7251175642a8b0b522bcae2bda8">commitdiff</a> | <a href="/perl5.git/tree/514c4e20b23bb7251175642a8b0b522bcae2bda8">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Paul+%22LeoNerd%22+Evans;st=author" title="Search for commits authored by Paul "LeoNerd" Evans">Paul "LeoNerd" Evans</a> [<span class="datetime">Wed, 19 Mar 2025 15:54:08 +0000</span> (15:54 +0000)]</span> <br/> </div> <div class="log_body"> Remove redundant code that handles mg_obj of PERL_MAGIC_symtab<br/> <br/> The (badly-named) PERL_MAGIC_symtab no longer uses the `mg_obj` field,<br/> ever since it was reshaped by <a class="text" href="/perl5.git/object/c2b1997a64b4faf9c52a72614bfeb0a1f6eeeba8">c2b1997a64b4faf9c52a72614bfeb0a1f6eeeba8</a><br/> <br/> This magic is only applied in one place (at time of writing, toke.c line<br/> 10711) with the `obj` field set to NULL. Therefore, there is no point<br/> having code in `dump.c` to print it if non-NULL, nor in `sv.c` to<br/> special-case setting a non-NULL value in `sv_magicext()`.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/9365cdf765d479a867ee523e7593e40d72e836f3"><span class="age">12 days ago</span>Use ck_warner() more</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/9365cdf765d479a867ee523e7593e40d72e836f3">commit</a> | <a href="/perl5.git/commitdiff/9365cdf765d479a867ee523e7593e40d72e836f3">commitdiff</a> | <a href="/perl5.git/tree/9365cdf765d479a867ee523e7593e40d72e836f3">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Dagfinn+Ilmari+Manns%C3%A5ker;st=author" title="Search for commits authored by Dagfinn Ilmari Mannsåker">Dagfinn Ilmari Mannsåker</a> [<span class="datetime">Tue, 18 Mar 2025 19:32:46 +0000</span> (19:32 +0000)]</span> <br/> </div> <div class="log_body"> Use ck_warner() more<br/> <br/> Replace trivial uses of<br/> <br/> if(ckWARN(WARN_FOO))<br/> warner(packWARN(WARN_FOO), ...);<br/> <br/> with<br/> <br/> ck_warner(packWARN(WARN_FOO), ...);<br/> <br/> This does mean that the format string arguments get evaluated even if<br/> the warning category isn't enabled, but the most expensive thing I<br/> could see was Strerror(), which I woudn't worry about.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/1b66608de92a5824399f86cf3c4c82b3e4d169c3"><span class="age">12 days ago</span>win32/perlhost.h: revert changes to SETUPEXCHANGE</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/1b66608de92a5824399f86cf3c4c82b3e4d169c3">commit</a> | <a href="/perl5.git/commitdiff/1b66608de92a5824399f86cf3c4c82b3e4d169c3">commitdiff</a> | <a href="/perl5.git/tree/1b66608de92a5824399f86cf3c4c82b3e4d169c3">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Thu, 20 Mar 2025 00:05:07 +0000</span> (<span class="atnight">01:05</span> +0100)]</span> <br/> </div> <div class="log_body"> win32/perlhost.h: revert changes to SETUPEXCHANGE<br/> <br/> This was broken by <a class="text" href="/perl5.git/object/48bda52b92">48bda52b92</a>, which removed the `*` before `xptr`.<br/> Without `*`, we set our `iptr` (a class member) to a bogus pointer, and<br/> the assignment to `xptr` (which is a function parameter and hence a<br/> local variable) is effectively dead code.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/dd8625e73c7f91a1ef58ae8355707bb2dce8d37c"><span class="age">13 days ago</span>Safe: clean up some tests</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/dd8625e73c7f91a1ef58ae8355707bb2dce8d37c">commit</a> | <a href="/perl5.git/commitdiff/dd8625e73c7f91a1ef58ae8355707bb2dce8d37c">commitdiff</a> | <a href="/perl5.git/tree/dd8625e73c7f91a1ef58ae8355707bb2dce8d37c">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Sat, 15 Mar 2025 12:18:53 +0000</span> (13:18 +0100)]</span> <br/> </div> <div class="log_body"> Safe: clean up some tests<br/> <br/> - `BEGIN { require Config; Config->import; }` -> `use Config;`<br/> - `new Safe` -> `Safe->new`<br/> - more use of Test::More skip_all instead of manual print/exit<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/abaee7c6ca652e5e74f8bc3ebffc49a92341bd65"><span class="age">13 days ago</span>perldelta for SvVSTRING</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/abaee7c6ca652e5e74f8bc3ebffc49a92341bd65">commit</a> | <a href="/perl5.git/commitdiff/abaee7c6ca652e5e74f8bc3ebffc49a92341bd65">commitdiff</a> | <a href="/perl5.git/tree/abaee7c6ca652e5e74f8bc3ebffc49a92341bd65">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Paul+%22LeoNerd%22+Evans;st=author" title="Search for commits authored by Paul "LeoNerd" Evans">Paul "LeoNerd" Evans</a> [<span class="datetime">Wed, 19 Mar 2025 15:58:08 +0000</span> (15:58 +0000)]</span> <br/> </div> <div class="log_body"> perldelta for SvVSTRING<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/1fb05c6f7dcd4efde7ac9e3796231129ae970f7a"><span class="age">13 days ago</span>Regenerate podcheck.t db after fix</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/1fb05c6f7dcd4efde7ac9e3796231129ae970f7a">commit</a> | <a href="/perl5.git/commitdiff/1fb05c6f7dcd4efde7ac9e3796231129ae970f7a">commitdiff</a> | <a href="/perl5.git/tree/1fb05c6f7dcd4efde7ac9e3796231129ae970f7a">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Wed, 19 Mar 2025 14:46:33 +0000</span> (08:46 -0600)]</span> <br/> </div> <div class="log_body"> Regenerate podcheck.t db after fix<br/> <br/> <a class="text" href="/perl5.git/object/3c6cd8bb4c475d07e12769dacb3140aff967923e">3c6cd8bb4c475d07e12769dacb3140aff967923e</a> fixed an issue with podcheck,<br/> which allowed it to better distinguish between problems and<br/> non-problems.<br/> <br/> This current commit regenerates its data base as a result.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/4f3b6bcd3bb068ca51402337a5ad7f232a184996"><span class="age">13 days ago</span>perlhacktips: fix trivial typos</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/4f3b6bcd3bb068ca51402337a5ad7f232a184996">commit</a> | <a href="/perl5.git/commitdiff/4f3b6bcd3bb068ca51402337a5ad7f232a184996">commitdiff</a> | <a href="/perl5.git/tree/4f3b6bcd3bb068ca51402337a5ad7f232a184996">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Wed, 19 Mar 2025 10:03:52 +0000</span> (11:03 +0100)]</span> <br/> </div> <div class="log_body"> perlhacktips: fix trivial typos<br/> <br/> `<stdbool.h` was missing its closing `>`.<br/> `S<C<(bool)> I<expr>>>` had one `>` too many.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/3c6cd8bb4c475d07e12769dacb3140aff967923e"><span class="age">13 days ago</span>t/porting/podcheck.t: allow ' in English words</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/3c6cd8bb4c475d07e12769dacb3140aff967923e">commit</a> | <a href="/perl5.git/commitdiff/3c6cd8bb4c475d07e12769dacb3140aff967923e">commitdiff</a> | <a href="/perl5.git/tree/3c6cd8bb4c475d07e12769dacb3140aff967923e">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Wed, 19 Mar 2025 08:52:16 +0000</span> (09:52 +0100)]</span> <br/> </div> <div class="log_body"> t/porting/podcheck.t: allow ' in English words<br/> <br/> podcheck.t uses a crude heuristic to identify links that use the wrong<br/> POD syntax (e.g. C<Some::Module> instead of L<Some::Module>): It checks<br/> whether the word before the C<...> markup was "see". This has the<br/> potential for a lot of false positives, so it adds an additional check:<br/> If the words before "see" include the word "you", we don't count it as a<br/> link attempt. This is to rule out cases like "you may see C<mtfnpy> in<br/> the output".<br/> <br/> However, that heuristic failed on this example from perlport:<br/> <br/> on Unix you'll see C<"a."><br/> <br/> This is because ' is not a word character, so the leading context was<br/> just "ll", which doesn't contain "you":<br/> <br/> not ok 241 - POD of pod/perlport.pod<br/> # "? Should you be using L<...> instead of"<br/> # C<"a."> near line 1104 of pod/perlport.pod<br/> <br/> This patch teaches podcheck.t about common English short forms such as<br/> "you'll", "you're", or "you'd".<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/b01c26f97ee3aaf686c45d31232c426619b1ee9e"><span class="age">13 days ago</span>Zefram's obituary</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/b01c26f97ee3aaf686c45d31232c426619b1ee9e">commit</a> | <a href="/perl5.git/commitdiff/b01c26f97ee3aaf686c45d31232c426619b1ee9e">commitdiff</a> | <a href="/perl5.git/tree/b01c26f97ee3aaf686c45d31232c426619b1ee9e">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Philippe+Bruhat+(BooK);st=author" title="Search for commits authored by Philippe Bruhat (BooK)">Philippe Bruhat (BooK)</a> [<span class="datetime">Fri, 14 Mar 2025 17:06:23 +0000</span> (18:06 +0100)]</span> <br/> </div> <div class="log_body"> Zefram's obituary<br/> <br/> <span class="signoff">Co-authored-by: Paul Evans <leonerd@leonerd.org.uk></span><br/> <span class="signoff">Co-authored-by: Christian Walde (Mithaldu) <walde.christian@gmail.com></span><br/> <span class="signoff">Co-authored-by: Sawyer X <xsawyerx@cpan.org></span><br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/d8f8b812af8405c510b20d98d218a8838f4d8d70"><span class="age">2 weeks ago</span>cpan/Archive-Tar - Re-Update to version 3.04</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/d8f8b812af8405c510b20d98d218a8838f4d8d70">commit</a> | <a href="/perl5.git/commitdiff/d8f8b812af8405c510b20d98d218a8838f4d8d70">commitdiff</a> | <a href="/perl5.git/tree/d8f8b812af8405c510b20d98d218a8838f4d8d70">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Wed, 19 Mar 2025 07:01:59 +0000</span> (08:01 +0100)]</span> <br/> </div> <div class="log_body"> cpan/Archive-Tar - Re-Update to version 3.04<br/> <br/> 3.04 25/02/2025 (Dan Church, Arne Johannessen && SISYPHUS)<br/> - Fix handling filenames with trailing whitespace<br/> - Allow --format=ustar option for ptar<br/> - GH#21402 Symlink tests on Windows<br/> <br/> 3.02 13/04/2023 (Manfred Stock)<br/> - Test block sizes up to (2**31 - 1) bytes only (fix for 32bit perls)<br/> - Don't match on message from exception in symlink test<br/> - Improve formatting of $Archive::Tar::RESOLVE_SYMLINK documentation<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/72c0b8bd8c8a47037590cfd97b481e83ba423829"><span class="age">2 weeks ago</span>cpan/Math-BigInt-FastCalc - Update to version 0.5019</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/72c0b8bd8c8a47037590cfd97b481e83ba423829">commit</a> | <a href="/perl5.git/commitdiff/72c0b8bd8c8a47037590cfd97b481e83ba423829">commitdiff</a> | <a href="/perl5.git/tree/72c0b8bd8c8a47037590cfd97b481e83ba423829">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Wed, 19 Mar 2025 05:32:26 +0000</span> (06:32 +0100)]</span> <br/> </div> <div class="log_body"> cpan/Math-BigInt-FastCalc - Update to version 0.5019<br/> <br/> 0.5019 2025-02-22<br/> <br/> * Sync test files with Math-BigInt.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/6f3297e20b6ddb5c618a29f86e3cde7b681d051f"><span class="age">2 weeks ago</span>cpan/Math-BigInt - Update to version 2.004001</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/6f3297e20b6ddb5c618a29f86e3cde7b681d051f">commit</a> | <a href="/perl5.git/commitdiff/6f3297e20b6ddb5c618a29f86e3cde7b681d051f">commitdiff</a> | <a href="/perl5.git/tree/6f3297e20b6ddb5c618a29f86e3cde7b681d051f">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Wed, 19 Mar 2025 05:16:05 +0000</span> (06:16 +0100)]</span> <br/> </div> <div class="log_body"> cpan/Math-BigInt - Update to version 2.004001<br/> <br/> 2.004001 2025-02-12<br/> <br/> * Improve upgrading and downgrading.<br/> <br/> - Upgrading and downgrading is more consistent.<br/> <br/> - Upgrading and downgrading now keeps the reference, so in the following<br/> example, $x changes from being a Math::BigInt with a value of 2 to a<br/> Math::BigFloat with the value 1.4142...<br/> <br/> perl -Mbignum -le '$x = 2; $x -> bsqrt(); print $x'<br/> <br/> * Fix bug in Math::BigFloat->bdiv(): in list context, bdiv() would do floored<br/> division, except when the denominator was 1. Now, bdiv() always does floored<br/> division.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/b64bec86a023755e02cb34e58dad1e420a3abb8f"><span class="age">2 weeks ago</span>cpan/Archive-Tar - Update to version 3.04</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/b64bec86a023755e02cb34e58dad1e420a3abb8f">commit</a> | <a href="/perl5.git/commitdiff/b64bec86a023755e02cb34e58dad1e420a3abb8f">commitdiff</a> | <a href="/perl5.git/tree/b64bec86a023755e02cb34e58dad1e420a3abb8f">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Wed, 19 Mar 2025 05:05:53 +0000</span> (06:05 +0100)]</span> <br/> </div> <div class="log_body"> cpan/Archive-Tar - Update to version 3.04<br/> <br/> 3.04 25/02/2025 (Dan Church, Arne Johannessen && SISYPHUS)<br/> - Fix handling filenames with trailing whitespace<br/> - Allow --format=ustar option for ptar<br/> - GH#21402 Symlink tests on Windows<br/> <br/> 3.02 13/04/2023 (Manfred Stock)<br/> - Test block sizes up to (2**31 - 1) bytes only (fix for 32bit perls)<br/> - Don't match on message from exception in symlink test<br/> - Improve formatting of $Archive::Tar::RESOLVE_SYMLINK documentation<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/30aeaad51e8ffce935691849a8431213ff7bbb45"><span class="age">2 weeks ago</span>Stop calling Perl_*warn*() manually in core</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/30aeaad51e8ffce935691849a8431213ff7bbb45">commit</a> | <a href="/perl5.git/commitdiff/30aeaad51e8ffce935691849a8431213ff7bbb45">commitdiff</a> | <a href="/perl5.git/tree/30aeaad51e8ffce935691849a8431213ff7bbb45">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Dagfinn+Ilmari+Manns%C3%A5ker;st=author" title="Search for commits authored by Dagfinn Ilmari Mannsåker">Dagfinn Ilmari Mannsåker</a> [<span class="datetime">Tue, 18 Mar 2025 18:49:09 +0000</span> (18:49 +0000)]</span> <br/> </div> <div class="log_body"> Stop calling Perl_*warn*() manually in core<br/> <br/> Except reg*.[ch], which are also compiled "outside" core for re.pm<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/7066fe715bfd61929df7e10d78ad2b96f56948f3"><span class="age">2 weeks ago</span>Thread::Queue: clean up some tests</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/7066fe715bfd61929df7e10d78ad2b96f56948f3">commit</a> | <a href="/perl5.git/commitdiff/7066fe715bfd61929df7e10d78ad2b96f56948f3">commitdiff</a> | <a href="/perl5.git/tree/7066fe715bfd61929df7e10d78ad2b96f56948f3">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Sat, 15 Mar 2025 12:23:14 +0000</span> (13:23 +0100)]</span> <br/> </div> <div class="log_body"> Thread::Queue: clean up some tests<br/> <br/> Some of the tests (04_errs.t, 08_nothreads.t, 09_ended.t) already use<br/> Test::More unconditionally, so remove the conditional loading code from<br/> the other tests. Also, `use Config` doesn't need to be in a BEGIN block.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/8b1b46cdfe5137474a84e023db9c2cd79704c050"><span class="age">2 weeks ago</span>various tests: replace BEGIN/require/import by use</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/8b1b46cdfe5137474a84e023db9c2cd79704c050">commit</a> | <a href="/perl5.git/commitdiff/8b1b46cdfe5137474a84e023db9c2cd79704c050">commitdiff</a> | <a href="/perl5.git/tree/8b1b46cdfe5137474a84e023db9c2cd79704c050">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Sat, 15 Mar 2025 09:52:45 +0000</span> (10:52 +0100)]</span> <br/> </div> <div class="log_body"> various tests: replace BEGIN/require/import by use<br/> <br/> That is, turn<br/> <br/> BEGIN {<br/> require Foo;<br/> Foo->import(...);<br/> }<br/> <br/> into<br/> <br/> use Foo ...;<br/> <br/> (Except for a few tests that did the `require Config; Config->import`<br/> dance without actually using `%Config` anywhere, so I just deleted the<br/> import code.)<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/650608f18d020356072e3ada793633c154ea25cd"><span class="age">2 weeks ago</span>de-layer Perlhost.h's 3 Malloc() classed + Cwd class</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/650608f18d020356072e3ada793633c154ea25cd">commit</a> | <a href="/perl5.git/commitdiff/650608f18d020356072e3ada793633c154ea25cd">commitdiff</a> | <a href="/perl5.git/tree/650608f18d020356072e3ada793633c154ea25cd">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=bulk88;st=author" title="Search for commits authored by bulk88">bulk88</a> [<span class="datetime">Thu, 31 Oct 2024 13:53:34 +0000</span> (09:53 -0400)]</span> <br/> </div> <div class="log_body"> de-layer Perlhost.h's 3 Malloc() classed + Cwd class<br/> <br/> -Perl's primary malloc pool (per interp, never ithread shared), doesnt<br/> need CS mutexes, the refcounting/multiple my_perl owners infrastruture,<br/> etc. Inline the IPerlMem/VPerLMem class/struct direct into CPerlHost<br/> class. Less ptr derefs at runtime. Saves memory, because no malloc header.<br/> And remove the 0x24 ??? bytes on x86-32 CS/mutex struct.<br/> -Use retval of libc's memset(), saves a non-vol reg push/pop/saving cycle.<br/> ZeroMemory() has void retval. Lack of a Calloc() API in VMem.h is for<br/> another time.<br/> -"virtual int Chdir(const char *dirname);" remove virtual tag. It is<br/> unused ptr indirection. Also the secret C++ vtable ptr im CPerlHost<br/> objs is now gone.<br/> -inline VDir obj into CPerlHost, VDir *s are not shared between interps.<br/> -Sort machine type integer members of CPerlHost class by size. Remove<br/> Alignment holes.<br/> -Speedup win32_checkTLS(), win32_checkTLS() is probably redundant<br/> outside -DDEBUGGING nowadays, it was added in commit<br/> <br/> <a class="text" href="/perl5.git/object/222c300afb1c8466398010a3403616462c302185">222c300afb1c8466398010a3403616462c302185</a> 1/13/2002 10:37:48 AM<br/> Win32 fixes:<br/> - vmem.h hack to handle free-by-wrong-thread after eval "".<br/> <br/> still will leave it in for now, just optimize it instead.<br/> <br/> I benchmarked, 10000x calls to Perl_get_context() in a loop.<br/> Retval ignored, is 126 us (microsec). 10000x calls to<br/> GetCurrentThreadId(), is 34 us.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/48bda52b9281bda747d71484962eaafda206dd34"><span class="age">2 weeks ago</span>fix CHostPerl's class design & remove CHostPerl malloc-ed fnc vtbls bloat</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/48bda52b9281bda747d71484962eaafda206dd34">commit</a> | <a href="/perl5.git/commitdiff/48bda52b9281bda747d71484962eaafda206dd34">commitdiff</a> | <a href="/perl5.git/tree/48bda52b9281bda747d71484962eaafda206dd34">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Daniel+Dragan;st=author" title="Search for commits authored by Daniel Dragan">Daniel Dragan</a> [<span class="datetime">Fri, 25 Oct 2024 17:29:37 +0000</span> (13:29 -0400)]</span> <br/> </div> <div class="log_body"> fix CHostPerl's class design & remove CHostPerl malloc-ed fnc vtbls bloat<br/> <br/> Note, non-standard used of "static link" below, I am using it to refer<br/> to static importing funtions/data symbols from another DLL, using the<br/> PE import table. Opposite of "LoadLibrary()"/"GetProcAddress()"<br/> linking. I am NOT using "static link" in typical usage of fully including<br/> a copy of a library at compile time, through a .a/.lib/.o/.obj file.<br/> <br/> Since commit<br/> <br/> Revision: <a class="text" href="/perl5.git/object/af2f850fb5b3bd37dab6742ca16cce6aa5482fb9">af2f850fb5b3bd37dab6742ca16cce6aa5482fb9</a> 10/19/2015 5:47:16 PM<br/> const vtables in win32/perlhost.h<br/> <br/> the vtables have been stored in read-only memory. There have been no bug<br/> tickets or complaints since, of any users, wanting or depending on this<br/> runtime instrumentation system.<br/> <br/> All Win32 perl builds, are static DLL linked to a specific MSVCRT (LIBC)<br/> at interp C compile build time. No matter the name of the CRT DLL,<br/> msvcrt.dll, msvcrt120.dll, ucrtbase.dll, etc. Runtime swapping the<br/> libperl MSVCRT DLL by an embedder, to his favorite CRT DLL, has never<br/> been supported, and wouldn't even work, since perlhost.h's hooking isn't<br/> perfect, and often Win32 Perl uses "win32_*()" functions by accident, or<br/> explictly, and those static-link call into the hard coded CRTs. Plus<br/> prototypes of CRT posix-ish functions have changed over the years.<br/> <br/> What is time_t? stat_t? etc. While func symbol name stays the same.<br/> <br/> The original commit for all this complexity, was from 5.0/5.6 era, where<br/> it was assumed, perl 5 maint/stable releases will be abandoned by P5P<br/> in favor of Perl 6, and all this complexity were provisions and APIs,<br/> to fix, upgrade and improve Win32 Perl, on Microsoft's/ActiveState's<br/> rapid release schedule, without any dependency on<br/> P5P devs/pumpking/P5P policy, about releasing a new perl5 .tar.gz.<br/> <br/> <a class="text" href="/perl5.git/object/0f4eea8fa1779e08575278392ed398ffeda6dcd2">0f4eea8fa1779e08575278392ed398ffeda6dcd2</a> 6/19/1998 6:59:50 AM<br/> commoit title "applied patch, along with many changes:"<br/> <br/> "The features of this are:<br/> 1. All OS dependant code is in the Perl Host and not the Perl Core.<br/> (At least this is the holy grail goal of this work)<br/> 2. The Perl Host (see perl.h for description) can provide a new and<br/> improved interface to OS functionality if required.<br/> 3. Developers can easily hook into the OS calls for instrumentation<br/> or diagnostic purposes."<br/> <br/> None of these provisions and APIs, have ever been used. CPerlHost:: never<br/> became a separate DLL. Perl >= 5.12 has a "rapid release" policy.<br/> ActiveState dropped sponsorship/product interest in Win32 Perl, many years<br/> ago. Strawberry Perl took over the market. CPerlHost:: is way too<br/> over engineereed for perl's ithreads/psuedofork, which only requires<br/> "1 OS process" and 2 %ENVs, and 2 CWDs, functionality. Most of the<br/> CPerlHost::* methods are jump stubs to "win32_*();" anyways, and the<br/> hooking is redundant runtime overhead, but that is for another commit.<br/> <br/> This commit is about removing the pointless malloc() and memcpy() of the<br/> plain C to C++ "thunk funcs" vtables, from the RO const master copy in<br/> perl5**.dll to each "my_perl" instance at runtime.<br/> <br/> On x64, copying the vtables to malloc memory, wasted the following amounts<br/> of malloc() memory. These are the actual integers passed to malloc() by<br/> CPerlHost::/perl. malloc() secret internal headers not included in these<br/> numbers.<br/> <br/> perlMem, 0x38<br/> perlMemShared, 0x38<br/> perlMemParse, 0x38<br/> perlEnv, 0x70<br/> perlStdIO, 0x138<br/> perlLIO, 0xE0<br/> perlDir, 0x58<br/> perlSock, 0x160<br/> perlProc, 0x108<br/> <br/> The old design of malloc-ed vtables, seems to have been, from the<br/> original devs not knowing, or a poor understanding, how MS COM<br/> (C++ obj in plain C) and MSVC ISO C++ objects (almost same ABI), are<br/> layed out in memory. The original devs realized, if they use a ptr to<br/> global vtable struct, they can't "cast" from the child class like<br/> VDir:: or VMem::, back to a CPerlHost:: obj which is a design<br/> requirement here.<br/> <br/> But they wanted to pass around child class ptrs like VMem::* instead of one<br/> CPerlHost:: obj ptr, and those VMem:: ptrs must be seen in 'extern "C"'<br/> land by plain C perl, since my_perl keeps 9 of these C++ obj *s as seperate<br/> ptrs in the my_perl "plain C" struct. So instead they made malloced copies<br/> of the vtables, and put those copies in the CPerlHost:: obj, so from a<br/> child class ptrs, they can C++ cast to the base class CPerlHost:: obj if<br/> needed.<br/> <br/> This is just wrong. Almost universally, vtables are stored in const<br/> RO memory. Monkey-patching at runtime is a Perl lang thing, and rare<br/> to never in C/C++land.<br/> <br/> The ptr to "plain C to C++ func thunk vtable", CAN NOT be stored<br/> per VDir::* or per VMem::* ptr. You can't store them, per C++ tradition,<br/> as the 1st member/field of a VDir::/VMem:: object.<br/> <br/> The reason is, VDir::/VMem:: objects can have refcounts, and multiple<br/> CPerlHost:: ptrs, hold refs to one VMem:: ptr. So there is no way to<br/> reverse a random VMem:: ptr, back to a CPerlHost:: ptr.<br/> <br/> Main examples are VMem:: "MemShared" and VMem:: "MemParse".<br/> <br/> Also the C->C++ thunk funcs must pick/separate, between 3 VMem:: obj ptrs.<br/> Which are "Mem", "MemShared" and "MemParse" and stored at different<br/> offsets in CPerlHost::*, but all 3 VMem:: derived "classes",<br/> must have the same plain-C vtable layout with 7 extern "C" func thunk ptrs.<br/> B/c my minimal C++ knowledge and also not wanting to add even more C++<br/> classes to iperlsys.h perlhost.h and perllib.c, and those new C++ classes<br/> may or may not inline-away. Don't fix this with more C++ classes.<br/> <br/> So fix all of this, by each CPerlHost:: obj storing a ptr to the RO<br/> vtable instead of a huge RW inlined copy of the vtable.<br/> To keep all previous design requirements, just use<br/> "&cperlhost_obj->vmem_whatever_vtable" as the plain-C representation<br/> of a VMem::* ptr, instead of<br/> "&cperlhost_obj->IPerlWhateverMem.pMalloc".<br/> <br/> The 1 extra pointer de-ref CPU machine op, in each perl core and perl xs<br/> caller, that executes in "iperlsys.h" family of macros I think is<br/> irrelavent compared to the savings of having RO vtables. It is the same<br/> machine code length on x86/x64 in each caller, comparing old vs new.<br/> <br/> This extra ptr deref to reach the vtable can be removed, and I will<br/> probably do it in a future commit. Not done here for bisect/small patch<br/> reasons.<br/> <br/> "iperlsys.h" family of macros is for example, the macro<br/> "PerlEnv_getenv(str);"<br/> <br/> Specific example, for macro PerlMem_free() in Perl_safesysfree()<br/> <br/> old before this commit<br/> ----<br/> mov rax, [rax+0CE8h]<br/> mov rcx, rax<br/> call qword ptr [rax+10h]<br/> -----<br/> <br/> new after this commit<br/> -----<br/> mov rcx, [rax+0CE8h]<br/> mov rax, [rcx]<br/> call qword ptr [rax+10h]<br/> ----<br/> <br/> "mov rcx, rax" is "0x48 0x8B 0xC8" compared to<br/> "mov rax, [rcx]" which is "0x48 0x8B 0x01".<br/> <br/> No extra machine code "bloat" in any callers. The extra 1 memory read<br/> is irrelavent if we are about to call malloc() or any of these other<br/> WinOS kernel32.dll syscalls. iperlsys.h/perlhost.h does NOT hook anything<br/> super perf critical such as "memcmp()" or "memcpy()".<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/569c7cd062e39b2720147f2a8ee7eb290e08efe6"><span class="age">2 weeks ago</span>lib/Unicode/testnorm.t: fix spelling of skip message</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/569c7cd062e39b2720147f2a8ee7eb290e08efe6">commit</a> | <a href="/perl5.git/commitdiff/569c7cd062e39b2720147f2a8ee7eb290e08efe6">commitdiff</a> | <a href="/perl5.git/tree/569c7cd062e39b2720147f2a8ee7eb290e08efe6">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Tue, 18 Mar 2025 17:15:56 +0000</span> (18:15 +0100)]</span> <br/> </div> <div class="log_body"> lib/Unicode/testnorm.t: fix spelling of skip message<br/> <br/> - "environmentvariable" -> "environment variable"<br/> - "# skipped:", "# Skip" -> "# SKIP" (mimicking Test::More)<br/> - format the two print/skip statements identically<br/> - remove redundant "0" statements<br/> - use early exit instead of nesting if/else<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/2f6713056a560b96c82f8545e773ac467ec3822f"><span class="age">2 weeks ago</span>malloc.c: fix compilation error, clean up more</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/2f6713056a560b96c82f8545e773ac467ec3822f">commit</a> | <a href="/perl5.git/commitdiff/2f6713056a560b96c82f8545e773ac467ec3822f">commitdiff</a> | <a href="/perl5.git/tree/2f6713056a560b96c82f8545e773ac467ec3822f">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Tue, 18 Mar 2025 12:46:34 +0000</span> (13:46 +0100)]</span> <br/> </div> <div class="log_body"> malloc.c: fix compilation error, clean up more<br/> <br/> When configured with -DEBUGGING -Dusethreads -Dusemymalloc, malloc.c<br/> didn't compile anymore (see below for the full error message). This was<br/> probably broken by commits <a class="text" href="/perl5.git/object/8e3a36a4b3">8e3a36a4b3</a> and <a class="text" href="/perl5.git/object/13e5ba49b2">13e5ba49b2</a>. What they missed<br/> was that all uses of warn/croak in this file were supposed to have no<br/> context parameter (aTHX/pTHX) and the only reason croak2 was introduced<br/> was that C89 didn't have variable-argument macros, so croak() was<br/> hardcoded with one argument and croak2() with two arguments.<br/> <br/> Instead, we can simply replace all uses of croak/croak2 with<br/> Perl_croak_nocontext. On threaded builds, this is a function with no<br/> extra pTHX_ parameter; on non-threaded builds, this just turns into<br/> regular croak. Now we don't need to manually check for MULTIPLICITY<br/> ourselves.<br/> <br/> Back in the day (perl 5.005), malloc.c was supposed to be usable outside<br/> of perl, so it had checks for PERL_CORE being defined. These were<br/> removed in <a class="text" href="/perl5.git/object/b9e5552c5b">b9e5552c5b</a>, but some vestiges remained: PERL_CORE was still<br/> mentioned as a configuration option in a comment and Perl_mfree (but<br/> none of the other functions) tagged its warning messages with the<br/> configuration options in play ("PERL_CORE", "RMAGIC", or "RMAGIC,<br/> PERL_CORE", added in commit <a class="text" href="/perl5.git/object/52c6645e67">52c6645e67</a>). With the removal of<br/> non-PERL_CORE support, these don't make much sense anymore, so I removed<br/> them.<br/> <br/> This change in turn enables further improvements: Common code in the<br/> RCHECK and non-RCHECK branches can be extracted, making the "#ifdef<br/> RCHECK" conditional sections smaller and eliminating the "#else"<br/> sections entirely.<br/> <br/> ------------------------------------------------------------------------<br/> <br/> In file included from malloc.c:240:<br/> malloc.c: In function ‘Perl_malloc’:<br/> perl.h:225:17: error: ‘my_perl’ undeclared (first use in this function)<br/> 225 | # define aTHX my_perl<br/> | ^~~~~~~<br/> perl.h:230:25: note: in expansion of macro ‘aTHX’<br/> 230 | # define aTHX_ aTHX,<br/> | ^~~~<br/> embed.h:966:60: note: in expansion of macro ‘aTHX_’<br/> 966 | # define croak(...) Perl_croak(aTHX_ __VA_ARGS__)<br/> | ^~~~~<br/> malloc.c:1254:13: note: in expansion of macro ‘croak’<br/> 1254 | croak("panic: malloc");<br/> | ^~~~~<br/> perl.h:225:17: note: each undeclared identifier is reported only once for each function it appears in<br/> 225 | # define aTHX my_perl<br/> | ^~~~~~~<br/> perl.h:230:25: note: in expansion of macro ‘aTHX’<br/> 230 | # define aTHX_ aTHX,<br/> | ^~~~<br/> embed.h:966:60: note: in expansion of macro ‘aTHX_’<br/> 966 | # define croak(...) Perl_croak(aTHX_ __VA_ARGS__)<br/> | ^~~~~<br/> malloc.c:1254:13: note: in expansion of macro ‘croak’<br/> 1254 | croak("panic: malloc");<br/> | ^~~~~<br/> malloc.c: In function ‘Perl_mfree’:<br/> perl.h:225:17: error: ‘my_perl’ undeclared (first use in this function)<br/> 225 | # define aTHX my_perl<br/> | ^~~~~~~<br/> perl.h:230:25: note: in expansion of macro ‘aTHX’<br/> 230 | # define aTHX_ aTHX,<br/> | ^~~~<br/> embed.h:966:60: note: in expansion of macro ‘aTHX_’<br/> 966 | # define croak(...) Perl_croak(aTHX_ __VA_ARGS__)<br/> | ^~~~~<br/> malloc.c:1820:13: note: in expansion of macro ‘croak’<br/> 1820 | croak("wrong alignment in free()");<br/> | ^~~~~<br/> malloc.c: In function ‘Perl_realloc’:<br/> perl.h:225:17: error: ‘my_perl’ undeclared (first use in this function)<br/> 225 | # define aTHX my_perl<br/> | ^~~~~~~<br/> perl.h:230:25: note: in expansion of macro ‘aTHX’<br/> 230 | # define aTHX_ aTHX,<br/> | ^~~~<br/> embed.h:966:60: note: in expansion of macro ‘aTHX_’<br/> 966 | # define croak(...) Perl_croak(aTHX_ __VA_ARGS__)<br/> | ^~~~~<br/> malloc.c:1925:13: note: in expansion of macro ‘croak’<br/> 1925 | croak("panic: realloc");<br/> | ^~~~~<br/> make: *** [makefile:265: malloc.o] Error 1<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/b6f991f3f498188dbeb886470e0236a20cc9a2bd"><span class="age">2 weeks ago</span>Storable.xs: remove outdated comment</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/b6f991f3f498188dbeb886470e0236a20cc9a2bd">commit</a> | <a href="/perl5.git/commitdiff/b6f991f3f498188dbeb886470e0236a20cc9a2bd">commitdiff</a> | <a href="/perl5.git/tree/b6f991f3f498188dbeb886470e0236a20cc9a2bd">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Tue, 18 Mar 2025 13:46:44 +0000</span> (14:46 +0100)]</span> <br/> </div> <div class="log_body"> Storable.xs: remove outdated comment<br/> <br/> This comment has been obsolete since commit <a class="text" href="/perl5.git/object/1cb8a344aa">1cb8a344aa</a> (and hasn't made<br/> much sense since that commit changed len's type from int back to<br/> SSize_t.)<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/80f24f4c833392afabce33743adb44803b8d47e9"><span class="age">2 weeks ago</span>Add sv_vstring_get() API function and SvVSTRING() wrapper macro</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/80f24f4c833392afabce33743adb44803b8d47e9">commit</a> | <a href="/perl5.git/commitdiff/80f24f4c833392afabce33743adb44803b8d47e9">commitdiff</a> | <a href="/perl5.git/tree/80f24f4c833392afabce33743adb44803b8d47e9">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Paul+%22LeoNerd%22+Evans;st=author" title="Search for commits authored by Paul "LeoNerd" Evans">Paul "LeoNerd" Evans</a> [<span class="datetime">Mon, 17 Mar 2025 19:27:28 +0000</span> (19:27 +0000)]</span> <br/> </div> <div class="log_body"> Add sv_vstring_get() API function and SvVSTRING() wrapper macro<br/> <br/> This new function and wrapper macro mean that caller code does not have<br/> to directly rely on (or be aware of) the `PERL_MAGIC_vstring` type. The<br/> intent of the API now works independently of the current implemention as<br/> magic.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/60e9e3b7f337433869c7cb996e5c3b0d78734085"><span class="age">2 weeks ago</span>Clone R-O inversion list before modifying it</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/60e9e3b7f337433869c7cb996e5c3b0d78734085">commit</a> | <a href="/perl5.git/commitdiff/60e9e3b7f337433869c7cb996e5c3b0d78734085">commitdiff</a> | <a href="/perl5.git/tree/60e9e3b7f337433869c7cb996e5c3b0d78734085">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Tue, 18 Mar 2025 01:03:51 +0000</span> (19:03 -0600)]</span> <br/> </div> <div class="log_body"> Clone R-O inversion list before modifying it<br/> <br/> Unicode-defined properties are kept in inversion lists in read-only<br/> memory. Attempting to modify them will result in a segfault. The new<br/> Unicode 16.0 has some empty properties that need to be inverted before<br/> use in some cases. This situation has not occurred before. The<br/> inversion code that gets called presumes it has a modifiable SV and<br/> inverts in-place. This segfaults.<br/> <br/> Normally, no inversion is needed, and the properties are used as-is, and<br/> no problem arises.<br/> <br/> The solution here is to create a clone, and then invert that.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/6f00038e2371b7c3a9e0eb1f604ba011f8dc0f3c"><span class="age">2 weeks ago</span>regexp_unicode_prop.t: Fix up test for Unicode 16.0</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/6f00038e2371b7c3a9e0eb1f604ba011f8dc0f3c">commit</a> | <a href="/perl5.git/commitdiff/6f00038e2371b7c3a9e0eb1f604ba011f8dc0f3c">commitdiff</a> | <a href="/perl5.git/tree/6f00038e2371b7c3a9e0eb1f604ba011f8dc0f3c">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Tue, 18 Mar 2025 01:42:51 +0000</span> (19:42 -0600)]</span> <br/> </div> <div class="log_body"> regexp_unicode_prop.t: Fix up test for Unicode 16.0<br/> <br/> This test was assuming that U+0300 (COMBINING GRAVE ACCENT) matches<br/> \p{Inherited}, since it is a combining mark. However Unicode 16.0 has<br/> gone through such marks and decided that some are limited to actually<br/> just a few scripts, so it is not generally inherited. (One of those<br/> scripts is Latin, so it is effectively inherited in French, Spanish,<br/> etc.) But it isn't always inheritied, and so it loses that status, and<br/> the test fails.<br/> <br/> I would never have expected this test to be brittle, but so it is. What<br/> this commit does is to change to another code point that is till<br/> considered Inherited, and the test passes.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/648bc881bcb6a326c397b1449cc460b160721282"><span class="age">2 weeks ago</span>malloc.c: silence "unused result" compiler warning</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/648bc881bcb6a326c397b1449cc460b160721282">commit</a> | <a href="/perl5.git/commitdiff/648bc881bcb6a326c397b1449cc460b160721282">commitdiff</a> | <a href="/perl5.git/tree/648bc881bcb6a326c397b1449cc460b160721282">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Tue, 18 Mar 2025 09:55:30 +0000</span> (10:55 +0100)]</span> <br/> </div> <div class="log_body"> malloc.c: silence "unused result" compiler warning<br/> <br/> Before:<br/> <br/> malloc.c: In function ‘getpages’:<br/> malloc.c:273:34: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]<br/> 273 | # define fatalcroak(mess) (write(2, (mess), strlen(mess)), exit(2))<br/> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br/> malloc.c:1546:21: note: in expansion of macro ‘fatalcroak’<br/> 1546 | fatalcroak("panic: Off-page sbrk\n");<br/> | ^~~~~~~~~~<br/> malloc.c:273:34: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]<br/> 273 | # define fatalcroak(mess) (write(2, (mess), strlen(mess)), exit(2))<br/> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br/> malloc.c:1585:13: note: in expansion of macro ‘fatalcroak’<br/> 1585 | fatalcroak("Misalignment of sbrk()\n");<br/> | ^~~~~~~~~~<br/> gcc -c -DPERL_CORE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c99 -O2 -Wall -Werror=pointer-arith -Werror=vla -Wextra -Wno-long-long -Wno-declaration-after-statement -Wc++-compat -Wwrite-strings -Wno-use-after-free universal.c<br/> <br/> (The "make depend" comment was overlooked in commit <a class="text" href="/perl5.git/object/b9e5552c5b">b9e5552c5b</a>.)<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/a5ccef6909119edd41a0d1318d88f461e28f6623"><span class="age">2 weeks ago</span>eliminate more trivial format strings ("%s", "...")</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/a5ccef6909119edd41a0d1318d88f461e28f6623">commit</a> | <a href="/perl5.git/commitdiff/a5ccef6909119edd41a0d1318d88f461e28f6623">commitdiff</a> | <a href="/perl5.git/tree/a5ccef6909119edd41a0d1318d88f461e28f6623">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Lukas+Mai;st=author" title="Search for commits authored by Lukas Mai">Lukas Mai</a> [<span class="datetime">Tue, 18 Mar 2025 09:44:01 +0000</span> (10:44 +0100)]</span> <br/> </div> <div class="log_body"> eliminate more trivial format strings ("%s", "...")<br/> <br/> As a follow-up to commit <a class="text" href="/perl5.git/object/71d1d453e7">71d1d453e7</a>, turn more trivial format strings<br/> (i.e. "%s" followed by a string literal) into just that string literal.<br/> <br/> - dump.c: String literals are more efficiently appended using sv_catpvs;<br/> C strings using sv_patv. No need to invoke the entire sv_catpvf<br/> machinery to parse a static "format string" of length 1.<br/> - malloc.c: Disentangle some warning messages and make them properly<br/> match their (previously orphaned) perldiag entries again.<br/> - os2/perlrexx.c: Turn sprintf(x, "...") into strcpy(x, "...").<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/79ae12aeb4e6b7da1ea1a3e17be9fc02b32ecc6d"><span class="age">2 weeks ago</span>Stop calling Perl_die manually</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/79ae12aeb4e6b7da1ea1a3e17be9fc02b32ecc6d">commit</a> | <a href="/perl5.git/commitdiff/79ae12aeb4e6b7da1ea1a3e17be9fc02b32ecc6d">commitdiff</a> | <a href="/perl5.git/tree/79ae12aeb4e6b7da1ea1a3e17be9fc02b32ecc6d">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Leon+Timmermans;st=author" title="Search for commits authored by Leon Timmermans">Leon Timmermans</a> [<span class="datetime">Fri, 8 Nov 2024 21:14:39 +0000</span> (22:14 +0100)]</span> <br/> </div> <div class="log_body"> Stop calling Perl_die manually<br/> <br/> Call die() instead.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/153ebd6587362c4681266536cd21fbe0c3a0d833"><span class="age">2 weeks ago</span>Stop calling Perl_form manually</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/153ebd6587362c4681266536cd21fbe0c3a0d833">commit</a> | <a href="/perl5.git/commitdiff/153ebd6587362c4681266536cd21fbe0c3a0d833">commitdiff</a> | <a href="/perl5.git/tree/153ebd6587362c4681266536cd21fbe0c3a0d833">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Leon+Timmermans;st=author" title="Search for commits authored by Leon Timmermans">Leon Timmermans</a> [<span class="datetime">Fri, 8 Nov 2024 21:06:54 +0000</span> (22:06 +0100)]</span> <br/> </div> <div class="log_body"> Stop calling Perl_form manually<br/> <br/> Call form() instead.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/b7e4f70a21617cabc12294b2664b6ca35c16fa4e"><span class="age">2 weeks ago</span>Stop calling Perl_sv_setpvf manually</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/b7e4f70a21617cabc12294b2664b6ca35c16fa4e">commit</a> | <a href="/perl5.git/commitdiff/b7e4f70a21617cabc12294b2664b6ca35c16fa4e">commitdiff</a> | <a href="/perl5.git/tree/b7e4f70a21617cabc12294b2664b6ca35c16fa4e">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Leon+Timmermans;st=author" title="Search for commits authored by Leon Timmermans">Leon Timmermans</a> [<span class="datetime">Fri, 8 Nov 2024 21:05:31 +0000</span> (22:05 +0100)]</span> <br/> </div> <div class="log_body"> Stop calling Perl_sv_setpvf manually<br/> <br/> Call sv_setpvf instead.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/ba04a9040af061424b6d6f0b1e888cd3ce4b3d9f"><span class="age">2 weeks ago</span>Stop calling Perl_sv_catpvf manually</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/ba04a9040af061424b6d6f0b1e888cd3ce4b3d9f">commit</a> | <a href="/perl5.git/commitdiff/ba04a9040af061424b6d6f0b1e888cd3ce4b3d9f">commitdiff</a> | <a href="/perl5.git/tree/ba04a9040af061424b6d6f0b1e888cd3ce4b3d9f">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Leon+Timmermans;st=author" title="Search for commits authored by Leon Timmermans">Leon Timmermans</a> [<span class="datetime">Fri, 8 Nov 2024 21:04:48 +0000</span> (22:04 +0100)]</span> <br/> </div> <div class="log_body"> Stop calling Perl_sv_catpvf manually<br/> <br/> Call sv_catpvf instead<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/410115a66cf3bfe5886711d49c946dfb62bbe2da"><span class="age">2 weeks ago</span>Dont call Perl_warn manually in core</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/410115a66cf3bfe5886711d49c946dfb62bbe2da">commit</a> | <a href="/perl5.git/commitdiff/410115a66cf3bfe5886711d49c946dfb62bbe2da">commitdiff</a> | <a href="/perl5.git/tree/410115a66cf3bfe5886711d49c946dfb62bbe2da">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Leon+Timmermans;st=author" title="Search for commits authored by Leon Timmermans">Leon Timmermans</a> [<span class="datetime">Fri, 8 Nov 2024 20:33:31 +0000</span> (21:33 +0100)]</span> <br/> </div> <div class="log_body"> Dont call Perl_warn manually in core<br/> <br/> Just call warn instead, we've been able to do that for vararg functions<br/> since <a class="text" href="/perl5.git/object/d933027ef0a56c99aee8cc3c88ff4f9981ac9fc2">d933027ef0a56c99aee8cc3c88ff4f9981ac9fc2</a><br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/dbd0f2f14facd3758777f45e175b66a74db09dc9"><span class="age">2 weeks ago</span>Avoid calling Perl_croak_nocontext from core</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/dbd0f2f14facd3758777f45e175b66a74db09dc9">commit</a> | <a href="/perl5.git/commitdiff/dbd0f2f14facd3758777f45e175b66a74db09dc9">commitdiff</a> | <a href="/perl5.git/tree/dbd0f2f14facd3758777f45e175b66a74db09dc9">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Leon+Timmermans;st=author" title="Search for commits authored by Leon Timmermans">Leon Timmermans</a> [<span class="datetime">Fri, 8 Nov 2024 20:24:40 +0000</span> (21:24 +0100)]</span> <br/> </div> <div class="log_body"> Avoid calling Perl_croak_nocontext from core<br/> <br/> In core we almost always have a context, or we can easily get one.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/453b1c0d2bbe8100ccab79dad9f2f5d7f5228632"><span class="age">2 weeks ago</span>Use croak_no_modify directly</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/453b1c0d2bbe8100ccab79dad9f2f5d7f5228632">commit</a> | <a href="/perl5.git/commitdiff/453b1c0d2bbe8100ccab79dad9f2f5d7f5228632">commitdiff</a> | <a href="/perl5.git/tree/453b1c0d2bbe8100ccab79dad9f2f5d7f5228632">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Leon+Timmermans;st=author" title="Search for commits authored by Leon Timmermans">Leon Timmermans</a> [<span class="datetime">Wed, 19 Feb 2025 18:07:08 +0000</span> (19:07 +0100)]</span> <br/> </div> <div class="log_body"> Use croak_no_modify directly<br/> <br/> There never was any good reason to call it by its long name.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/06c3a62f12c80b3037aa9cc72e5e35f9c5ee47c6"><span class="age">2 weeks ago</span>Dont call Perl_croak manually in core</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/06c3a62f12c80b3037aa9cc72e5e35f9c5ee47c6">commit</a> | <a href="/perl5.git/commitdiff/06c3a62f12c80b3037aa9cc72e5e35f9c5ee47c6">commitdiff</a> | <a href="/perl5.git/tree/06c3a62f12c80b3037aa9cc72e5e35f9c5ee47c6">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Leon+Timmermans;st=author" title="Search for commits authored by Leon Timmermans">Leon Timmermans</a> [<span class="datetime">Fri, 8 Nov 2024 18:50:55 +0000</span> (19:50 +0100)]</span> <br/> </div> <div class="log_body"> Dont call Perl_croak manually in core<br/> <br/> Just call croak instead, we've been able to do that for vararg functions<br/> since <a class="text" href="/perl5.git/object/d933027ef0a56c99aee8cc3c88ff4f9981ac9fc2">d933027ef0a56c99aee8cc3c88ff4f9981ac9fc2</a><br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/24ec8e7f78d0add1f58f08cd5e5ddb042d45f3b9"><span class="age">2 weeks ago</span>pv_escape: Use utf8_to_uv, preferred to utf8_to_uvchr_buf</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/24ec8e7f78d0add1f58f08cd5e5ddb042d45f3b9">commit</a> | <a href="/perl5.git/commitdiff/24ec8e7f78d0add1f58f08cd5e5ddb042d45f3b9">commitdiff</a> | <a href="/perl5.git/tree/24ec8e7f78d0add1f58f08cd5e5ddb042d45f3b9">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Thu, 5 Dec 2024 17:22:57 +0000</span> (10:22 -0700)]</span> <br/> </div> <div class="log_body"> pv_escape: Use utf8_to_uv, preferred to utf8_to_uvchr_buf<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/a307b4d27da3ee68ee88b4c9026a0ce505c14ffa"><span class="age">2 weeks ago</span>isFOO_utf8_lc: Use utf8_to-uv_or_die not utf8_to_uvchr_buf</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/a307b4d27da3ee68ee88b4c9026a0ce505c14ffa">commit</a> | <a href="/perl5.git/commitdiff/a307b4d27da3ee68ee88b4c9026a0ce505c14ffa">commitdiff</a> | <a href="/perl5.git/tree/a307b4d27da3ee68ee88b4c9026a0ce505c14ffa">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Mon, 3 Mar 2025 04:48:06 +0000</span> (21:48 -0700)]</span> <br/> </div> <div class="log_body"> isFOO_utf8_lc: Use utf8_to-uv_or_die not utf8_to_uvchr_buf<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/7097dec4d804fc6d96d73b2e5a74a1ea7b66c766"><span class="age">2 weeks ago</span>regmatch: Use utf8_to-uv_or_die not utf8_to_uvchr_buf</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/7097dec4d804fc6d96d73b2e5a74a1ea7b66c766">commit</a> | <a href="/perl5.git/commitdiff/7097dec4d804fc6d96d73b2e5a74a1ea7b66c766">commitdiff</a> | <a href="/perl5.git/tree/7097dec4d804fc6d96d73b2e5a74a1ea7b66c766">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Mon, 3 Mar 2025 04:41:17 +0000</span> (21:41 -0700)]</span> <br/> </div> <div class="log_body"> regmatch: Use utf8_to-uv_or_die not utf8_to_uvchr_buf<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/d22f3fb956eb2805550290893d723427ba0d7a81"><span class="age">2 weeks ago</span>find_by_class: Use utf8_to-uv_or_die not utf8_to_uvchr_buf</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/d22f3fb956eb2805550290893d723427ba0d7a81">commit</a> | <a href="/perl5.git/commitdiff/d22f3fb956eb2805550290893d723427ba0d7a81">commitdiff</a> | <a href="/perl5.git/tree/d22f3fb956eb2805550290893d723427ba0d7a81">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Mon, 3 Mar 2025 04:39:40 +0000</span> (21:39 -0700)]</span> <br/> </div> <div class="log_body"> find_by_class: Use utf8_to-uv_or_die not utf8_to_uvchr_buf<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/4c15e2931d04a5a3a271d243933c1c0a26e6d3a9"><span class="age">2 weeks ago</span>_generic_GET_BREAK_VAL_UTF8: Use utf8_to-uv_or_die not utf8_to_uvchr_buf</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/4c15e2931d04a5a3a271d243933c1c0a26e6d3a9">commit</a> | <a href="/perl5.git/commitdiff/4c15e2931d04a5a3a271d243933c1c0a26e6d3a9">commitdiff</a> | <a href="/perl5.git/tree/4c15e2931d04a5a3a271d243933c1c0a26e6d3a9">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Mon, 3 Mar 2025 04:49:30 +0000</span> (21:49 -0700)]</span> <br/> </div> <div class="log_body"> _generic_GET_BREAK_VAL_UTF8: Use utf8_to-uv_or_die not utf8_to_uvchr_buf<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/c469b4e35c7cbba9ab7a873191851f374395b307"><span class="age">2 weeks ago</span>Convert leading underscore to trailing in internal global macro</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/c469b4e35c7cbba9ab7a873191851f374395b307">commit</a> | <a href="/perl5.git/commitdiff/c469b4e35c7cbba9ab7a873191851f374395b307">commitdiff</a> | <a href="/perl5.git/tree/c469b4e35c7cbba9ab7a873191851f374395b307">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Thu, 5 Dec 2024 17:05:15 +0000</span> (10:05 -0700)]</span> <br/> </div> <div class="log_body"> Convert leading underscore to trailing in internal global macro<br/> <br/> Leading underscores of global names are reserved for the C implmentation<br/> itself. We are gradually fixing ours to conform.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/dd0471ca548cd399aedcefaa2018bd8a9463e95c"><span class="age">2 weeks ago</span>Turn is_utf8_common() into a macro</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/dd0471ca548cd399aedcefaa2018bd8a9463e95c">commit</a> | <a href="/perl5.git/commitdiff/dd0471ca548cd399aedcefaa2018bd8a9463e95c">commitdiff</a> | <a href="/perl5.git/tree/dd0471ca548cd399aedcefaa2018bd8a9463e95c">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Tue, 28 Jan 2025 16:33:15 +0000</span> (09:33 -0700)]</span> <br/> </div> <div class="log_body"> Turn is_utf8_common() into a macro<br/> <br/> This function is now trivial; no need to have it a function<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/3af31f14108d2f84b390293828f2370fd2a639b0"><span class="age">2 weeks ago</span>check_utf8_print: Use utf8_to_uv_flags.</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/3af31f14108d2f84b390293828f2370fd2a639b0">commit</a> | <a href="/perl5.git/commitdiff/3af31f14108d2f84b390293828f2370fd2a639b0">commitdiff</a> | <a href="/perl5.git/tree/3af31f14108d2f84b390293828f2370fd2a639b0">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Thu, 6 Mar 2025 15:50:40 +0000</span> (08:50 -0700)]</span> <br/> </div> <div class="log_body"> check_utf8_print: Use utf8_to_uv_flags.<br/> <br/> This replaces the old-style utf8n_to_uvchr()<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/7b3314d0a287468682ebbbc46befd16da81e4804"><span class="age">2 weeks ago</span>utf8.c: Fill in commit number in comment</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/7b3314d0a287468682ebbbc46befd16da81e4804">commit</a> | <a href="/perl5.git/commitdiff/7b3314d0a287468682ebbbc46befd16da81e4804">commitdiff</a> | <a href="/perl5.git/tree/7b3314d0a287468682ebbbc46befd16da81e4804">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Mon, 17 Mar 2025 17:48:40 +0000</span> (11:48 -0600)]</span> <br/> </div> <div class="log_body"> utf8.c: Fill in commit number in comment<br/> <br/> These comments left the commit number vacant until we actually had one<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/a1805b9cc667e10264e904172273826bb0e46360"><span class="age">2 weeks ago</span>Merge branch 'Fix utf8 corner cases' into blead</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/a1805b9cc667e10264e904172273826bb0e46360">commit</a> | <a href="/perl5.git/commitdiff/a1805b9cc667e10264e904172273826bb0e46360">commitdiff</a> | <a href="/perl5.git/tree/a1805b9cc667e10264e904172273826bb0e46360">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Mon, 17 Mar 2025 14:42:50 +0000</span> (08:42 -0600)]</span> <br/> </div> <div class="log_body"> Merge branch 'Fix utf8 corner cases' into blead<br/> <br/> There are around 20 different functions that take a UTF-8 sequence of<br/> bytes and try to find the ordinal code point represented by them. It was<br/> becoming clear that the existing tests in our suite were inadequate, not<br/> finding glaring bugs. And UTF-8 handling is important, with failures in<br/> it having been exploited by hackers in various products over the years<br/> for various nefarious purposes.<br/> <br/> I set out to improve the tests, spending way too much time before<br/> realizing that adding band aids to the current scheme was not going to<br/> work out. So I undertook rewriting the tests. This turned out to be way<br/> harder and time consuming than I expected. And it still isn't ready to<br/> go into blead. But along the way, I discovered that it was finding<br/> corner case bugs that I would never have anticipated. This series of<br/> commits fixes those, while simplifying the code and reducing redundancy.<br/> <br/> The new test file needs clean-up, and probably ways to make it faster,<br/> but it is finally far enough along that I believe it has caught most of<br/> the bugs out there. So I'm submitting these now to get into v5.42. The<br/> deadline for the test file is later in the development process.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/cab4c628207ecc6c954766194e3dbc02ed196f69"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Assert against both returning and warning</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/cab4c628207ecc6c954766194e3dbc02ed196f69">commit</a> | <a href="/perl5.git/commitdiff/cab4c628207ecc6c954766194e3dbc02ed196f69">commitdiff</a> | <a href="/perl5.git/tree/cab4c628207ecc6c954766194e3dbc02ed196f69">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Fri, 17 Jan 2025 15:48:53 +0000</span> (08:48 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Assert against both returning and warning<br/> <br/> This asserts against the flags to the call of this function being<br/> contradictory, in that it is boths<br/> 1) to warn and/or die if anything goes wrong; and<br/> 2) not to warn under any circumstances but instead to return to the<br/> caller objects describing what it would have otherise warned.<br/> <br/> In a non-DEBUGGING build, the warn/die flags are ignored<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/b0ac0a6283361db570723f33b6ea2d5e3233177e"><span class="age">2 weeks ago</span>utf8.c: White-space only</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/b0ac0a6283361db570723f33b6ea2d5e3233177e">commit</a> | <a href="/perl5.git/commitdiff/b0ac0a6283361db570723f33b6ea2d5e3233177e">commitdiff</a> | <a href="/perl5.git/tree/b0ac0a6283361db570723f33b6ea2d5e3233177e">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sun, 9 Mar 2025 03:52:50 +0000</span> (20:52 -0700)]</span> <br/> </div> <div class="log_body"> utf8.c: White-space only<br/> <br/> Outdent after removing enclosing braces<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/6b30aa30618e2ef4b0029caffdd2a51e645e4970"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Use already computed value</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/6b30aa30618e2ef4b0029caffdd2a51e645e4970">commit</a> | <a href="/perl5.git/commitdiff/6b30aa30618e2ef4b0029caffdd2a51e645e4970">commitdiff</a> | <a href="/perl5.git/tree/6b30aa30618e2ef4b0029caffdd2a51e645e4970">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Fri, 7 Mar 2025 15:02:54 +0000</span> (08:02 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Use already computed value<br/> <br/> Instead of doing the subtraction again, use the variable that already<br/> contains the desired value.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/5104b9a382f597762915def215ec5632a7d1c549"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Add, clarify comments</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/5104b9a382f597762915def215ec5632a7d1c549">commit</a> | <a href="/perl5.git/commitdiff/5104b9a382f597762915def215ec5632a7d1c549">commitdiff</a> | <a href="/perl5.git/tree/5104b9a382f597762915def215ec5632a7d1c549">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 18 Jan 2025 17:18:45 +0000</span> (10:18 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Add, clarify comments<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/e6951798a38b8abe7d29fcf83a8ecd43f1579b18"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Remove redundant conditionals</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/e6951798a38b8abe7d29fcf83a8ecd43f1579b18">commit</a> | <a href="/perl5.git/commitdiff/e6951798a38b8abe7d29fcf83a8ecd43f1579b18">commitdiff</a> | <a href="/perl5.git/tree/e6951798a38b8abe7d29fcf83a8ecd43f1579b18">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 18 Jan 2025 17:07:27 +0000</span> (10:07 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Remove redundant conditionals<br/> <br/> The comments added to the code in this commit explain that to get here,<br/> something needs to be done; no need to test again.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/061644d72c121af5a398b469c7f96f5bd8af97fd"><span class="age">2 weeks ago</span>utf8.c: Remove no longer used #define</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/061644d72c121af5a398b469c7f96f5bd8af97fd">commit</a> | <a href="/perl5.git/commitdiff/061644d72c121af5a398b469c7f96f5bd8af97fd">commitdiff</a> | <a href="/perl5.git/tree/061644d72c121af5a398b469c7f96f5bd8af97fd">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 18 Jan 2025 17:04:15 +0000</span> (10:04 -0700)]</span> <br/> </div> <div class="log_body"> utf8.c: Remove no longer used #define<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/b48d541824a35068f1b154f90382b130581a8c22"><span class="age">2 weeks ago</span>Reinstate utf8 translation testing</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/b48d541824a35068f1b154f90382b130581a8c22">commit</a> | <a href="/perl5.git/commitdiff/b48d541824a35068f1b154f90382b130581a8c22">commitdiff</a> | <a href="/perl5.git/tree/b48d541824a35068f1b154f90382b130581a8c22">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sun, 9 Mar 2025 04:02:10 +0000</span> (21:02 -0700)]</span> <br/> </div> <div class="log_body"> Reinstate utf8 translation testing<br/> <br/> The previous commit fixed the remaining problems that this test finds,<br/> and so it can be turned on again.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/238a42b9ab5c4303236baee35cb3e4c0bee96c1b"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Revamp handling of above-Unicode code points</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/238a42b9ab5c4303236baee35cb3e4c0bee96c1b">commit</a> | <a href="/perl5.git/commitdiff/238a42b9ab5c4303236baee35cb3e4c0bee96c1b">commitdiff</a> | <a href="/perl5.git/tree/238a42b9ab5c4303236baee35cb3e4c0bee96c1b">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sun, 9 Mar 2025 04:00:14 +0000</span> (21:00 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Revamp handling of above-Unicode code points<br/> <br/> As stated in a recent commit message, this is complex and problematic.<br/> This commit revamps it, simplifying it and fixing the known remaining<br/> bugs.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/22d8ec6da1d8e799219e7f66fd962fa9ccb2d4af"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Create another common macro</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/22d8ec6da1d8e799219e7f66fd962fa9ccb2d4af">commit</a> | <a href="/perl5.git/commitdiff/22d8ec6da1d8e799219e7f66fd962fa9ccb2d4af">commitdiff</a> | <a href="/perl5.git/tree/22d8ec6da1d8e799219e7f66fd962fa9ccb2d4af">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sun, 9 Mar 2025 03:47:53 +0000</span> (20:47 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Create another common macro<br/> <br/> This new macro allows two more case statements in the switch to have<br/> a common macro at their beginnings, instead of having to repeat code.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/51fbc1cf7bbf9c3dd6c4159811322dd1fec39bd5"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Convert switch case to use macro</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/51fbc1cf7bbf9c3dd6c4159811322dd1fec39bd5">commit</a> | <a href="/perl5.git/commitdiff/51fbc1cf7bbf9c3dd6c4159811322dd1fec39bd5">commitdiff</a> | <a href="/perl5.git/tree/51fbc1cf7bbf9c3dd6c4159811322dd1fec39bd5">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sun, 9 Mar 2025 03:42:20 +0000</span> (20:42 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Convert switch case to use macro<br/> <br/> By changing flags earlier in the function, we can convert this case in a<br/> switch to use the macro introduced in the previous commit<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/2a00b118018027a7154164b0fa646dab8ce52114"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Create a common macro</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/2a00b118018027a7154164b0fa646dab8ce52114">commit</a> | <a href="/perl5.git/commitdiff/2a00b118018027a7154164b0fa646dab8ce52114">commitdiff</a> | <a href="/perl5.git/tree/2a00b118018027a7154164b0fa646dab8ce52114">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sun, 9 Mar 2025 03:37:57 +0000</span> (20:37 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Create a common macro<br/> <br/> Previous commits have allowed the beginning of several of the case<br/> statements in this switch() to have the same code. This commit creates<br/> a macro encapsulating that code and changes the cases to use it.<br/> <br/> The macro continues the enclosing loop if no message needs to be<br/> generated. This allows the removal of various conditional blocks. And<br/> it means that these conditions don't break to the bottom of the switch()<br/> if no message is needed.<br/> <br/> Braces are needed in one case: so as to not run afoul of C++<br/> initialization crossing<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/3aca733b2ab5c0e9c293648f169ec3320e2473ce"><span class="age">2 weeks ago</span>perlapi: DIE_IF_MALFORMED overrides CHECK_ONLY</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/3aca733b2ab5c0e9c293648f169ec3320e2473ce">commit</a> | <a href="/perl5.git/commitdiff/3aca733b2ab5c0e9c293648f169ec3320e2473ce">commitdiff</a> | <a href="/perl5.git/tree/3aca733b2ab5c0e9c293648f169ec3320e2473ce">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Fri, 7 Mar 2025 23:44:55 +0000</span> (16:44 -0700)]</span> <br/> </div> <div class="log_body"> perlapi: DIE_IF_MALFORMED overrides CHECK_ONLY<br/> <br/> This documents the change in the previous commit<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/9540191231a7d4317417176944cc51a7a16a6ead"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Revise and rename macro</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/9540191231a7d4317417176944cc51a7a16a6ead">commit</a> | <a href="/perl5.git/commitdiff/9540191231a7d4317417176944cc51a7a16a6ead">commitdiff</a> | <a href="/perl5.git/tree/9540191231a7d4317417176944cc51a7a16a6ead">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 8 Mar 2025 22:56:40 +0000</span> (15:56 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Revise and rename macro<br/> <br/> This macro is used to hide the details of determining if an abnormal<br/> condition should raise a warning or not. But I found it more convenient<br/> to expand the macro to return the packed warnings category(ies) if a<br/> warning should be raised or not. That information is known inside the<br/> macro and was being discarded, and then having to be recalculated. The<br/> new name reflects its expanded purpose, PACK_WARN. 0 is returned if no<br/> warnings need be raised; and importantly fixing a bug in the old code,<br/> it returns < 0 if no warning should be raised directly, but that an<br/> entry needs to be added to the AV array returned by the function (if the<br/> parameter requesting that has been passed in)<br/> <br/> But Encode, for which this form of the translation function was created,<br/> and may be the only user of it, depends on not getting a zero return.<br/> So this has an override until Encode can be fixed.<br/> <br/> I introduced the DIE_IF_MALFORMED flag in the previous development<br/> release, making it subservient to the CHECK_ONLY flag. I have since<br/> realized that the precedence should be reversed. If a developer<br/> inadvertently passes both flags, it is better to honor the one saying<br/> you need to quit, than the one saying ignore any problems.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/78cced2399d45a6ef0f3fffa06e6b6aad434885e"><span class="age">2 weeks ago</span>Swap comment order</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/78cced2399d45a6ef0f3fffa06e6b6aad434885e">commit</a> | <a href="/perl5.git/commitdiff/78cced2399d45a6ef0f3fffa06e6b6aad434885e">commitdiff</a> | <a href="/perl5.git/tree/78cced2399d45a6ef0f3fffa06e6b6aad434885e">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 18 Jan 2025 14:34:29 +0000</span> (07:34 -0700)]</span> <br/> </div> <div class="log_body"> Swap comment order<br/> <br/> It is more easily understood reversed<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/d1fba02797d2739f81e5a840744f4e675039a926"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: De-duplicate some more code</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/d1fba02797d2739f81e5a840744f4e675039a926">commit</a> | <a href="/perl5.git/commitdiff/d1fba02797d2739f81e5a840744f4e675039a926">commitdiff</a> | <a href="/perl5.git/tree/d1fba02797d2739f81e5a840744f4e675039a926">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 8 Mar 2025 22:54:18 +0000</span> (15:54 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: De-duplicate some more code<br/> <br/> This moves a conditional found in all cases in a switch() to just before<br/> the switch, so the code is not duplicated.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/b1a21fc8531cf47ab0645788b5644916ed91620a"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Fix handling of too-short malformations</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/b1a21fc8531cf47ab0645788b5644916ed91620a">commit</a> | <a href="/perl5.git/commitdiff/b1a21fc8531cf47ab0645788b5644916ed91620a">commitdiff</a> | <a href="/perl5.git/tree/b1a21fc8531cf47ab0645788b5644916ed91620a">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sun, 9 Mar 2025 02:45:05 +0000</span> (19:45 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Fix handling of too-short malformations<br/> <br/> At this point in the code we know that the input sequence is shorter<br/> than a full character and that it is the legal beginning of a sequence that<br/> could evaluate to a code point that is of interest to the caller of this<br/> function. It turns out that in some cases any filling out of the input<br/> to a full character must lead to a code point that the caller is<br/> interested in. That interest has been signalled by flags passed to this<br/> function.<br/> <br/> In the past, we filled out the sequence with the minimum legal<br/> continuation byte, but that is wrong for some cases. This commit fixes<br/> that.<br/> <br/> Certain start bytes require the second byte to be higher than the<br/> minimum, or else it is an overlong. Prior to this commit, we could<br/> generate overlongs. This commit avoids that pitfall.<br/> <br/> It also moves the complex analysis away from the comments in the code,<br/> and to this commit message, adding even more analysis.<br/> <br/> There are four classes of code points that the caller can have signalled<br/> to this function that it is interested in.<br/> <br/> The noncharacter code point class always needs a full sequence to<br/> determine, and the conditionals prevent the code this analasys is about<br/> from being executed.<br/> <br/> Use of Perl extended-UTF-8 is determinable from the first byte in the<br/> input sequence, and that has already been determined.<br/> <br/> Both of the other two sequences don't have to be fully filled out in<br/> order to determine if a partial sequence would lead to them or not.<br/> <br/> Consider first, the sequences that evaluate to an above-Unicode code<br/> point, charmingly named "supers" by Perl's poetic coders.<br/> ASCII platforms EBCDIC I8<br/> U+10FFFF: \xF4\x8F\xBF\xBF \xF9\xA1\xBF\xBF\xBF<br/> 0x110000: \xF4\x90\x80\x80 \xF9\xA2\xA0\xA0\xA0<br/> *<br/> (Continuation byte range):<br/> \x80 to \xbf \xa0 to \xbf<br/> <br/> On ASCII platforms, any start byte \xf3 and below can't be for a super,<br/> and any non-overlong sequence \xf5 and above has to be for a super. If<br/> the start byte is \xf4, we need a second byte to resolve the ambiguity.<br/> But it takes just the one, or possibly two bytes to make the<br/> determination. It's similar on EBCDIC, but with different values.<br/> <br/> And a similar situation exists for the surrogates. The range of<br/> non-overlong surrogates is:<br/> ASCII platforms EBCDIC I8<br/> "\xed\xa0\x80" "\xf1\xb6\xa0\xa0"<br/> to "\xed\xbf\xbf". "\xf1\xb7\xbf\xbf"<br/> <br/> In both platforms, if we have the first two bytes, we can tell if it is<br/> a surrogate or not, as all legal continuations in the rest of the byte<br/> positions are for surrogates. If we have only one byte, we can't tell,<br/> so we have to assume it isn't a surrogate.<br/> <br/> Overlongs don't meaningfully change things. The shortest ASCII overlong<br/> for the first surrogate is "\xf0\x8d\xa0\x80"<br/> and for the highest surrogate it is "\xf0\x8d\xbf\xbf".<br/> <br/> Note that only the first byte has been changed, into two bytes. All but<br/> the first byte is the same for any overlong of any code point in either<br/> ASCII or EBCDIC.<br/> <br/> This means the algorithm for filling things out works for these two<br/> classes in all cases. Note also that the upper end of the range<br/> conveniently works out without any extra effort needed. The highest<br/> surrogate corresponds to the highest continuation bytes. And the<br/> highest super that fits in the platform will also use the highest<br/> continuation bytes.<br/> <br/> The start bytes that need to have the fix in this commit are the ones<br/> that could be the start of overlongs, minus the lower ones which can<br/> represent only code points smaller than any of the ones the caller can<br/> flag as being "interesting" (U+D800 is that value), and minus 0xFF.<br/> Hence 0xE0 can have overlongs, but it and its overlongs can only<br/> represent code points lower than 0xD800. So we don't have to worry<br/> about it or any smaller start byte.<br/> <br/> But the reason 0xFF doesn't have to be considered is more complex.<br/> It isn't the second byte in a sequence beginning with FF that needs to<br/> be higher than the minimum continuation, but one further in. This<br/> would make things harder except that any sequence beginning with 0xFF is<br/> Perl-extended UTF-8, and has already been considered earlier in this<br/> function. This code is only executed when 'must_be_super' is false.<br/> 'must_be_super' is set true if the sequence overflows or there is no<br/> detectable overlong. By DeMorgan's laws, this means to get here, it<br/> doesn't overflow, and must be overlong. To know that it is overlong, we<br/> must have seen enough bytes to get past the point where we need a higher<br/> continuation byte to legally fill it out. So we can just fill the rest<br/> with the minimum continuation.<br/> <br/> (Note that the same reasoning would apply to 0xFE on ASCII platforms.<br/> That is also used only by Perl-extended UTF-8, so would have been<br/> considered earlier, and to get here we know it has to be overlong, and<br/> so we've already seen enough bytes to not need to handle it specially.<br/> But it fits into the same paradigm as the lower start bytes with just<br/> the second byte needing to be higher, and there is no extra code<br/> required to handle it besides including a case: for it in the switch().<br/> This works in both ASCII and EBCDIC.)<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/6507d4a56a59e7a3008fb4f2228a50013c3e404c"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Reverse order of finding overflow/extended UTF-8</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/6507d4a56a59e7a3008fb4f2228a50013c3e404c">commit</a> | <a href="/perl5.git/commitdiff/6507d4a56a59e7a3008fb4f2228a50013c3e404c">commitdiff</a> | <a href="/perl5.git/tree/6507d4a56a59e7a3008fb4f2228a50013c3e404c">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 8 Mar 2025 23:18:15 +0000</span> (16:18 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Reverse order of finding overflow/extended UTF-8<br/> <br/> This begins the process of fixing the current problematic behavior of<br/> handling UTF-8 that is for code points above the Unicode maximum.<br/> <br/> The lowest of these are considered SUPERs, but if you go high enough, it<br/> takes Perl's extended UTF-8 to represent them. Higher still, and the<br/> extended UTF-8 can represent code points that don't fit in the current<br/> platform's word size.<br/> <br/> A complication is overlongs, where the representation for a seemingly<br/> large code point can reduce down to something much smaller; even 0.<br/> Such sequences are considered invalid by fiat from Unicode due to<br/> successful hacker attacks using them. But Perl has traditionally<br/> allowed XS code to allow them, with flags passed to the translation<br/> functions. So it is important to get it right.<br/> <br/> A sequence that overflows by necessity is using Perl's extended UTF-8,<br/> as that kicks in below a 32 bit word. This commit reverses the prior<br/> order of testing for overflow and extended UTF-8. Steps can be saved<br/> because we now test for Perl-extended first, which is a lot more likely<br/> to happen than overflow.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/3786151d3e0ef00885a777e77cb7b156ad86b463"><span class="age">2 weeks ago</span>Skip testing utf8 translating for the next few commits</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/3786151d3e0ef00885a777e77cb7b156ad86b463">commit</a> | <a href="/perl5.git/commitdiff/3786151d3e0ef00885a777e77cb7b156ad86b463">commitdiff</a> | <a href="/perl5.git/tree/3786151d3e0ef00885a777e77cb7b156ad86b463">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sun, 9 Mar 2025 19:28:52 +0000</span> (13:28 -0600)]</span> <br/> </div> <div class="log_body"> Skip testing utf8 translating for the next few commits<br/> <br/> The next few commits will fail these tests. I could squash them all<br/> together, but that would hide the step by step change progess.<br/> <br/> This should allow future bisecting to not fail in this commit window.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/e0627d5bc831dc78112940aee98d27e2a729f82e"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: De-duplicate common code</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/e0627d5bc831dc78112940aee98d27e2a729f82e">commit</a> | <a href="/perl5.git/commitdiff/e0627d5bc831dc78112940aee98d27e2a729f82e">commitdiff</a> | <a href="/perl5.git/tree/e0627d5bc831dc78112940aee98d27e2a729f82e">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 8 Mar 2025 22:35:28 +0000</span> (15:35 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: De-duplicate common code<br/> <br/> This removes the duplicate code from many of the case statements in a<br/> switch to be common before the switch, with a single conditional<br/> controlling them<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/c4df0807ee70540989f027889680087ddc64fd41"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Move conditional to earlier to avoid work</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/c4df0807ee70540989f027889680087ddc64fd41">commit</a> | <a href="/perl5.git/commitdiff/c4df0807ee70540989f027889680087ddc64fd41">commitdiff</a> | <a href="/perl5.git/tree/c4df0807ee70540989f027889680087ddc64fd41">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Fri, 17 Jan 2025 21:27:25 +0000</span> (14:27 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Move conditional to earlier to avoid work<br/> <br/> By checking before we go to the trouble to do something, rather than in<br/> the middle of it, we can save some work.<br/> <br/> The new test looks at the source UTF-8; the previous one looked at the<br/> code point calculated from it<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/71c5788cff7cf77f6418cd2f8da423a17c0d54ec"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Swap order of switch() cases</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/71c5788cff7cf77f6418cd2f8da423a17c0d54ec">commit</a> | <a href="/perl5.git/commitdiff/71c5788cff7cf77f6418cd2f8da423a17c0d54ec">commitdiff</a> | <a href="/perl5.git/tree/71c5788cff7cf77f6418cd2f8da423a17c0d54ec">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Fri, 17 Jan 2025 13:29:35 +0000</span> (06:29 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Swap order of switch() cases<br/> <br/> The overlong cases more logically belong with the other conditions that<br/> are rejected by default.<br/> <br/> Future commits will simplify this to look much more like those other<br/> conditions.<br/> <br/> </div> <div class="header"> <a class="title" href="/perl5.git/commit/7c94d7394063bf8af825fa5e6e86f66d73530aff"><span class="age">2 weeks ago</span>utf8_to_uv_msgs: Revise assert</a> </div> <div class="title_text"> <div class="log_link"> <a href="/perl5.git/commit/7c94d7394063bf8af825fa5e6e86f66d73530aff">commit</a> | <a href="/perl5.git/commitdiff/7c94d7394063bf8af825fa5e6e86f66d73530aff">commitdiff</a> | <a href="/perl5.git/tree/7c94d7394063bf8af825fa5e6e86f66d73530aff">tree</a><br/> </div> <span class="author_date"><a class="list" href="/perl5.git/search?s=Karl+Williamson;st=author" title="Search for commits authored by Karl Williamson">Karl Williamson</a> [<span class="datetime">Sat, 8 Mar 2025 13:16:04 +0000</span> (06:16 -0700)]</span> <br/> </div> <div class="log_body"> utf8_to_uv_msgs: Revise assert<br/> <br/> More extensive testing revealed that more conditions than this assert<br/> previously contained are legitimate. This requireb defining the name<br/> for a flag<br/> <br/> </div> <div class="page_nav"> <a accesskey="n" href="/perl5.git/log?pg=1" title="Alt-n">next</a> </div> <div class="page_footer"> <div class="page_footer_text">Unnamed repository; edit this file 'description' to name the repository.</div> <a class="rss_logo" href="/perl5.git/rss" title="log RSS feed">RSS</a> <a class="rss_logo" href="/perl5.git/atom" title="log Atom feed">Atom</a> </div> <script type="text/javascript" src="static/gitweb.js"></script> <script type="text/javascript"> window.onload = function () { var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' }; onloadTZSetup('local', tz_cookie, 'datetime'); }; </script> </body> </html>