[Perl/perl5] 2e75d7: cygwin.c: Use mnemonic instead of repeating expr
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 2e75d796b38ec0461159a22c7a966467ade5 https://github.com/Perl/perl5/commit/2e75d796b38ec0461159a22c7a966467ade5 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Use mnemonic instead of repeating expr This expression is repeated in several places; best to name it for clarity and ease of change. Commit: 841a3e1bca89544d115c2d2d3df1c96d27172a15 https://github.com/Perl/perl5/commit/841a3e1bca89544d115c2d2d3df1c96d27172a15 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Remove misleading comments cygwin works on UTF-16, not UCS-2, nor UTF-8 Commit: ac4290d01742ee1228041e7467ed23414ebfbafc https://github.com/Perl/perl5/commit/ac4290d01742ee1228041e7467ed23414ebfbafc Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Remove memory leaks These mallocs weren't getting freed. Commit: a435da2b160255de4884b0d007ef0d9d93ec203b https://github.com/Perl/perl5/commit/a435da2b160255de4884b0d007ef0d9d93ec203b Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Change wide_to_utf8() to call utf16_to_utf8() The latter function is in the core, and doesn't require the locale to be changed, unlike before. Commit: 457ba501e6d4253da0c5acc6c45c96c598b3f605 https://github.com/Perl/perl5/commit/457ba501e6d4253da0c5acc6c45c96c598b3f605 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Call wide_to_utf8() There are two places that do the same thing as wide_to_utf8(), in different ways. Use the single, common function Commit: 73bdb838da96b52da71c9080ff6fdc2e2c88ea23 https://github.com/Perl/perl5/commit/73bdb838da96b52da71c9080ff6fdc2e2c88ea23 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Narrow scope of setlocale The previous commit caused the locale not to have to be changed and locked for as long as before. Narrow the change to the scope needed. Commit: c3be9bd4d181af38c0c9e2ae3c5ee51d49651eff https://github.com/Perl/perl5/commit/c3be9bd4d181af38c0c9e2ae3c5ee51d49651eff Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Change variable names This makes the names consistent in the two parallel functions, in preparation for folding the two into one. This maps win_path => converted_path wbuf => wsrc wpath=> wconverted Commit: d7c2c45e0afe114a6fc55207b26d268ec4affea6 https://github.com/Perl/perl5/commit/d7c2c45e0afe114a6fc55207b26d268ec4affea6 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Refactor some expressions These cause the long flag name to only be mentioned once. Commit: bba8d7cfa7a094d55326d7a9cfebd73fb8ab2a35 https://github.com/Perl/perl5/commit/bba8d7cfa7a094d55326d7a9cfebd73fb8ab2a35 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Use SvPVx in both places One function uses this form; the parallel function doesn't. Not having delved into the details, the 'x' form is safer, so should be used in the same situation in both functions. Commit: 03fc59afb4069bd5f569c5c4fb2e7b4293d948a9 https://github.com/Perl/perl5/commit/03fc59afb4069bd5f569c5c4fb2e7b4293d948a9 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M pod/perldiag.pod Log Message: --- Add cygwin warning to perldiag Commit: 0880e953fabd23c1207fab60ed2647e122a4e99a https://github.com/Perl/perl5/commit/0880e953fabd23c1207fab60ed2647e122a4e99a Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Change a size_t value from int to STRLEN Commit: ea18e4f378a48b29f06181f2c32101dfc7205ba0 https://github.com/Perl/perl5/commit/ea18e4f378a48b29f06181f2c32101dfc7205ba0 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M cygwin/cygwin.c Log Message: --- cygwin.c: Fold two nearly identical functions into one These functions are to convert from a windows path to posix, and vice versa. Except for the direction, the process is identical. But the two function
[Perl/perl5] 8144f5: embed.fnc - sort entries alphabetically by functio...
Branch: refs/heads/yves/tidy_embed_fnc Home: https://github.com/Perl/perl5 Commit: 8144f59a57fbdf0db0ec4b920f94ce9fe163b40d https://github.com/Perl/perl5/commit/8144f59a57fbdf0db0ec4b920f94ce9fe163b40d Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M regen/tidy_embed.pl Log Message: --- embed.fnc - sort entries alphabetically by function name. This is actually a library sort (lc with underbars removed), followed by a lexicographical sort. Comment lines are sticky to the line that follows them. Somehow the original version of this patch was missed in my earlier work on tidy_embed.pl, I think I messed up a rebase somehow. I noticed it was missing when I realized that new entries werent being sorted into place correctly. While this patch creates a fair bit of churn in the file right now, long term it will make it easier to use. Also note that the *output* files have not changed, which validates that the patch did not break anything. Commit: ae0010a35cc5f41d50ab8863c02649bdcfce39de https://github.com/Perl/perl5/commit/ae0010a35cc5f41d50ab8863c02649bdcfce39de Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M embed.fnc Log Message: --- embed.fnc - updated as per previous commit (squash before committing) Commit: 9b88f9eecd3f4da68cd4223026443236d0b1d8f7 https://github.com/Perl/perl5/commit/9b88f9eecd3f4da68cd4223026443236d0b1d8f7 Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M regen/HeaderParser.pm M regen/embed.pl Log Message: --- embed.pl - sort and dedupe flags in embef.fnc as part of tidy This ensures we use a canonical string for each possible flag variant, which makes it easier to search for flags with a given flag signature. It also exposed a mutex bug in flag handling which caused PerlEnv_putenv to be improperly marked as static, when it is in fact static inline. To validate there aren't any issues like this remaining in the script I set it up so the flags were shuffled during processing and ran embed.pl in a loop for a while and none of the output files changed, so I assume there are no further such issues. This patch also includes some basic validation of the flags so that if someone misses a line continuation the following lines are not treated as a new definition without any flags. I also ran perltidy on it according to the rules contained within the file. Commit: f6d71f5e0cd1ffed41537a0d886a83a00f1cbdb5 https://github.com/Perl/perl5/commit/f6d71f5e0cd1ffed41537a0d886a83a00f1cbdb5 Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M embed.fnc Log Message: --- embed.fnc - updated as per previous commit (squash before committing) Compare: https://github.com/Perl/perl5/compare/283d0609a03b...f6d71f5e0cd1
[Perl/perl5] c05434: Simplify copyright years
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: c05434dd5e129bbae33020bc1d041ecb058215ae https://github.com/Perl/perl5/commit/c05434dd5e129bbae33020bc1d041ecb058215ae Author: Elvin Aslanov Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M README Log Message: --- Simplify copyright years PR originally submitted by @Yahasana in Perl#19163
[Perl/perl5]
Branch: refs/heads/yves/remove_mingw64_test_pipeline_for_now Home: https://github.com/Perl/perl5
[Perl/perl5]
Branch: refs/heads/yves/remove_optimstic_postponed_eval Home: https://github.com/Perl/perl5
[Perl/perl5] 5f5c35: regcomp.c - remove (**{ ... }) from the regex engine
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 5f5c35d3ce139755d02fa07de26229cd08d3c8cd https://github.com/Perl/perl5/commit/5f5c35d3ce139755d02fa07de26229cd08d3c8cd Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M pod/perl5378delta.pod M pod/perldelta.pod M pod/perlre.pod M regcomp.c M regexec.c M t/re/pat_re_eval.t M toke.c Log Message: --- regcomp.c - remove (**{ ... }) from the regex engine Dave M pointed out that this idea was flawed, and after some testing I have come to agree with him. This removes it. It was only available for 5.37.8, so no deprecation cycle involved. The point of (**{ ... }) was to have a postponed eval that does not disable optimizations. But some of the optimizations are disabled because if they are not we do not match correctly as the optimizations will make unwarranted assumptions about the pattern, assumptions which can be incorrect depending on what pattern is returned from the codeblock. The original idea was proposed because (?{ ... }) was treated as though it was (??{ ... }) and disabled many optimizations, when in fact it doesn't interact with optimizations at all. When I added (*{ ... }) as the optimistic version of (?{ ... }) I used "completeness" as the justification for also adding (**{ ... }) when it does not make sense to do so.
[Perl/perl5] 420214: perldelta for b1414dcb98d, dd3d299fefbbf
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 4202141d20ddfa0501f385cf923860bcf7511398 https://github.com/Perl/perl5/commit/4202141d20ddfa0501f385cf923860bcf7511398 Author: Tony Cook Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M pod/perldelta.pod Log Message: --- perldelta for b1414dcb98d, dd3d299fefbbf
[Perl/perl5] 71d63d: Use per-word calcs in utf8_length()
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 71d63d0dc1fcf23d28f488655c105c0dfefbd254 https://github.com/Perl/perl5/commit/71d63d0dc1fcf23d28f488655c105c0dfefbd254 Author: Karl Williamson Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M embed.fnc M proto.h M utf8.c Log Message: --- Use per-word calcs in utf8_length() This commit changes utf8_length to read the input a word at a time. The current method of looking per character is retained for shorter strings. The per-word method yields significant time savings for very long strings and typical inputs. The timings vary depending on the average number of bytes per character in the input. If all our characters were 13 bytes, this commit would always be a loser, as we would be processing per 8 (or 4 on 32-bit platforms) instead of 13. But we don't care about performance for non-Unicode code points, and the maximum legal Unicode code point occupies 4 UTF-8 bytes, which means that is a wash on 32-bit platforms, but a real gain on 64-bit ones. And, except for emoji, most text in modern languages is 3 byte max, with a significant amount of single byte characters (e.g., for punctuation) even in non-Latin scripts. For very long strings we would expect to use 1/8 the conditionals if the input is entirely ASCII; 1/4 if entirely 2-byte UTF-8, and 1/2 if entirely 4-byte. (For 32-bit systems, the savings is approximately half this.) Because of set-up and tear-down complications, these values are limits that are approached the longer the string is (which is where it matters most). The per-word method kicks in for input strings 96 bytes and longer. This value was based on some eyeballing cache grind output, and could be tweaked, but the differences in time spent on strings this short is tiny. This function does a half-hearted job of checking for UTF-8 validity; it doesn't do extra work, but it makes sure that the length implied by the start bytes it sees, all add up. (It doesn't check that the characters in between are all continuation bytes.) In order to preserve this checking, the new version has to stop per-word looking a word earlier than it otherwise would have. There are complications, as it has to process per-byte to get to a word boundary before reading per-word. Here are benchmarks for a 2-byte word using the best and worst case scenarios. (All benchmarks are for a 64-bit platform) Key: Ir Instruction read Dr Data read Dw Data write COND conditional branches IND indirect branches The numbers represent relative counts per loop iteration, compared to blead at 100.0%. Higher is better: for example, using half as many instructions gives 200%, while using twice as many gives 50%. Best case 2-byte sceanario: string length 48 characters; 2 bytes per character; 0 bytes after word boundary blead patch -- --- Ir 100.00 123.09 Dr 100.00 130.18 Dw 100.00 111.44 COND 100.00 128.63 IND 100.00 100.00 Worst case 2-byte sceanario: string length 48 characters; 2 bytes per character; 7 bytes after word boundary blead patch -- --- Ir 100.00 122.46 Dr 100.00 129.52 Dw 100.00 111.07 COND 100.00 127.65 IND 100.00 100.00 Very long strings run an order of magnitude fewer instructions than blead. Here are worst case scenarios (7 bytes after word boundary). string length 1000 characters; 1 bytes per character blead patch -- --- Ir 100.00 814.53 Dr 100.00 1069.58 Dw 100.00 3296.55 COND 100.00 1575.83 IND 100.00 100.00 string length 500 characters; 2 bytes per character blead patch -- --- Ir 100.00 408.86 Dr 100.00 536.32 Dw 100.00 1698.31 COND 100.00 788.72 IND 100.00 100.00 string length 333 characters; 3 bytes per character blead patch -- --- Ir 100.00 273.64 Dr 100.00 358.56 Dw 100.00 1165.55 COND 100.00 526.35 IND 100.00 100.00 string length 250 characters; 4 bytes per character blead patch -- --- Ir 100.00 206.03 Dr 100.00 269.68 Dw 100.00 899.17 COND 100.00 395.17 IND 100.00 100.00
[Perl/perl5]
Branch: refs/heads/yves/move_was_where_init Home: https://github.com/Perl/perl5
[Perl/perl5] 9d3a26: util.c - move was_here to be initialized earlier
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 9d3a26c75c777cb4dc1382d59de52a9b69a38f14 https://github.com/Perl/perl5/commit/9d3a26c75c777cb4dc1382d59de52a9b69a38f14 Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M util.c Log Message: --- util.c - move was_here to be initialized earlier Otherwise the goto out_of_memory breaks threaded builds under debugging as originally reported by Karl as we jump over the initialization of the variable and then use it later on. util.c: In function ‘void* Perl_safesysrealloc(void*, size_t)’: util.c:335:11: error: jump to label ‘out_of_memory’ 335 | out_of_memory: | ^ util.c:248:18: note: from here 248 | goto out_of_memory; | ^ util.c:277:12: note: crosses initialization of ‘UV was_where’ 277 | UV was_where = PTR2UV(where); |^ make: *** [makefile:260: util.o] Error 1
[Perl/perl5] b1414d: warn on redefining an array constant sub
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: b1414dcb98d72036e17cb9d4c8aae9d7ad65113e https://github.com/Perl/perl5/commit/b1414dcb98d72036e17cb9d4c8aae9d7ad65113e Author: Tony Cook Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M op.c M sv.c M t/lib/warnings/op Log Message: --- warn on redefining an array constant sub The code in report_redefined_cv() would check whether the old constant and the new constant were the same SV to avoid warning on duplicate imports of the same constant. Since both gv_setref() and report_redefined_cv() used cv_const_sv() to fetch the constant SV, which returns NULL for an AV based constant sub, the check for the equivalent SV would compare NULL to NULL and report_redefined_cv() would return early. Additional checks were required further down to prevent sv_cmp() being called on AVs. The check for simple SV's allow redefinition of constant subs if the new value string compares the same as the old value. The AV check does not try to allow that. Fixed #20742 Commit: dd3d299fefbbff9efe55eb16af5bb9aa0410d606 https://github.com/Perl/perl5/commit/dd3d299fefbbff9efe55eb16af5bb9aa0410d606 Author: Tony Cook Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M op.c M t/lib/warnings/op Log Message: --- newATTRSUB_x: don't try to sv_cmp() an AV* newATTRSUB_x() does it's own constant sub redefinition checks, but if you tried to redefine a constant.pm defined constant list sub with an old style constant sub C<< sub foo() { CONSTANT } >> it would cause an assertion failure trying to SvPV() an SV inside sv_cmp(): $ ~/perl/v5.36.0-dbg-san/bin/perl -Mconstant=x,1,2 -e 'sub x() { 1 }' perl: sv.c:2820: char *Perl_sv_2pv_flags(SV *const, STRLEN *const, const U32): Assertion `SvTYPE(sv) != SVt_PVAV && SvTYPE(sv) != SVt_PVHV && SvTYPE(sv) != SVt_PVFM' failed. Aborted Compare: https://github.com/Perl/perl5/compare/6c19911f93fc...dd3d299fefbb
[Perl/perl5] 626df4: allow AUTOLOAD for the INC method of objects in @INC
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 626df4fd56759528a170e821cab27f372b174496 https://github.com/Perl/perl5/commit/626df4fd56759528a170e821cab27f372b174496 Author: Tony Cook Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M pp_ctl.c M t/op/inccode.t Log Message: --- allow AUTOLOAD for the INC method of objects in @INC This matches the behaviour in 5.36. This does not allow AUTOLOAD for INCDIR, since if there is an AUTOLOAD the check for INC would have already succeeded. Fixes #20665 Commit: 6c19911f93fc29afe94cad617c6f2f3325ad77ba https://github.com/Perl/perl5/commit/6c19911f93fc29afe94cad617c6f2f3325ad77ba Author: Tony Cook Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M pod/perlfunc.pod Log Message: --- perlfunc/require: Note that AUTOLOAD cannot resolve INCDIR Compare: https://github.com/Perl/perl5/compare/0de69e372d3b...6c19911f93fc
[Perl/perl5] 5fa598: regcomp.c - remove (**{ ... }) from the regex engine
Branch: refs/heads/yves/remove_optimstic_postponed_eval Home: https://github.com/Perl/perl5 Commit: 5fa5980bc4187eb9183d9d96a79d5d1daef2dc65 https://github.com/Perl/perl5/commit/5fa5980bc4187eb9183d9d96a79d5d1daef2dc65 Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M pod/perl5378delta.pod M pod/perldelta.pod M pod/perlre.pod M regcomp.c M regexec.c M t/re/pat_re_eval.t M toke.c Log Message: --- regcomp.c - remove (**{ ... }) from the regex engine Dave M pointed out that this idea was flawed, and after some testing I have come to agree with him. This removes it. It was only available for 5.37.8, so no deprecation cycle involved. The point of (**{ ... }) was to have a postponed eval that does not disable optimizations. But some of the optimizations are disabled because if they are not we do not match correctly as the optimizations will make unwarranted assumptions about the pattern, assumptions which can be incorrect depending on what pattern is returned from the codeblock. The original idea was proposed because (?{ ... }) was treated as though it was (??{ ... }) and disabled many optimizations, when in fact it doesn't interact with optimizations at all. When I added (*{ ... }) as the optimistic version of (?{ ... }) I used "completeness" as the justification for also adding (**{ ... }) when it does not make sense to do so.
[Perl/perl5] 76c617: regcomp.c - remove (**{ ... }) from the regex engine
Branch: refs/heads/yves/remove_optimstic_postponed_eval Home: https://github.com/Perl/perl5 Commit: 76c617f5aa8831fb5d316a407698b9b0dcfb066a https://github.com/Perl/perl5/commit/76c617f5aa8831fb5d316a407698b9b0dcfb066a Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M pod/perl5378delta.pod M pod/perldelta.pod M pod/perlre.pod M regcomp.c M regexec.c M t/re/pat_re_eval.t M toke.c Log Message: --- regcomp.c - remove (**{ ... }) from the regex engine Dave M pointed out that this idea was flawed, and after some testing I have come to agree with him. This removes it. It was only available for 5.37.8, so no deprecation cycle involved. The point of (**{ ... }) was to have a postponed eval that does not disable optimizations. But some of the optimizations are disabled because if they are not we do not match correctly as the optimizations will make unwarranted assumptions about the pattern, assumptions which can be incorrect depending on what pattern is returned from the codeblock. The original idea was proposed because (?{ ... }) was treated as though it was (??{ ... }) and disabled many optimizations, when in fact it doesn't interact with optimizations at all. When I added (*{ ... }) as the optimistic version of (?{ ... }) I used "completeness" as the justification for also adding (**{ ... }) when it does not make sense to do so.
[Perl/perl5] 6ed04c: util.c - move was_here to be initialized earlier
Branch: refs/heads/yves/move_was_where_init Home: https://github.com/Perl/perl5 Commit: 6ed04c56c19ff3c7bdbf5a6ea1b01f471cc89e5f https://github.com/Perl/perl5/commit/6ed04c56c19ff3c7bdbf5a6ea1b01f471cc89e5f Author: Yves Orton Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M util.c Log Message: --- util.c - move was_here to be initialized earlier Otherwise the goto out_of_memory breaks threaded builds under debugging as originally reported by Karl as we jump over the initialization of the variable and then use it later on. util.c: In function ‘void* Perl_safesysrealloc(void*, size_t)’: util.c:335:11: error: jump to label ‘out_of_memory’ 335 | out_of_memory: | ^ util.c:248:18: note: from here 248 | goto out_of_memory; | ^ util.c:277:12: note: crosses initialization of ‘UV was_where’ 277 | UV was_where = PTR2UV(where); |^ make: *** [makefile:260: util.o] Error 1
[Perl/perl5] 0de69e: Clarify perldoc bless per #18713
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 0de69e372d3baf843522c30d8711b6513c2a472b https://github.com/Perl/perl5/commit/0de69e372d3baf843522c30d8711b6513c2a472b Author: Joe McMahon Date: 2023-02-08 (Wed, 08 Feb 2023) Changed paths: M .mailmap M pod/perlfunc.pod Log Message: --- Clarify perldoc bless per #18713 - Specifically calls out the possible invocations - Breaks out the specific use cases and why to use them - Notes the things to avoid and why in clearer language - Update .mailmap so that tests all pass
[Perl/perl5] 66c1d2: Add some examples for push()
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 66c1d2a57eb49d2facb14a07e915cf285e732f21 https://github.com/Perl/perl5/commit/66c1d2a57eb49d2facb14a07e915cf285e732f21 Author: Scott Baker Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M pod/perlfunc.pod Log Message: --- Add some examples for push() Commit: 9baf61eb9f3672d1f743ea0f4e5014045e15ea02 https://github.com/Perl/perl5/commit/9baf61eb9f3672d1f743ea0f4e5014045e15ea02 Author: Scott Baker Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M pod/perlfunc.pod Log Message: --- Move return example after explanation Commit: 376c059310e74ce8b9f3f45a3e9f92160939ca60 https://github.com/Perl/perl5/commit/376c059310e74ce8b9f3f45a3e9f92160939ca60 Author: Scott Baker Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M pod/perlfunc.pod Log Message: --- Remove the "technical" explanation Commit: 84e73d4ea20306de42377d1363057e9baa0a10a1 https://github.com/Perl/perl5/commit/84e73d4ea20306de42377d1363057e9baa0a10a1 Author: Scott Baker Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M pod/perlfunc.pod Log Message: --- Add missing closing parens to the examples Also removes a comment which is duplicated. Compare: https://github.com/Perl/perl5/compare/9312140ba1ac...84e73d4ea203
[Perl/perl5] 82205d: util.c - move was_here to be initialized earlier
Branch: refs/heads/yves/move_was_where_init Home: https://github.com/Perl/perl5 Commit: 82205d446a27403f1ac5631b2b84e22632ae2b81 https://github.com/Perl/perl5/commit/82205d446a27403f1ac5631b2b84e22632ae2b81 Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M util.c Log Message: --- util.c - move was_here to be initialized earlier otherwise the goto out_of_memory breaks g++ as reported by Karl
[Perl/perl5] 6054fa: Mark dowantarray() as deprecated
Branch: refs/heads/ilmari/deprecate-dowantarray Home: https://github.com/Perl/perl5 Commit: 6054fa6fffaed640e1850cfaddb4fcfc0f78002c https://github.com/Perl/perl5/commit/6054fa6fffaed640e1850cfaddb4fcfc0f78002c Author: Dagfinn Ilmari Mannsåker Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M embed.fnc M proto.h Log Message: --- Mark dowantarray() as deprecated This will make uses of the also-deprecated GIMME macro emit a compile-time warning.
[Perl/perl5]
Branch: refs/heads/yves/test_manifest Home: https://github.com/Perl/perl5
[Perl/perl5] a91362: util.c - move was_here to be initialized earlier
Branch: refs/heads/yves/move_was_where_init Home: https://github.com/Perl/perl5 Commit: a91362e5ebeaedd7b4c2e54c3525fe7f7ba9e758 https://github.com/Perl/perl5/commit/a91362e5ebeaedd7b4c2e54c3525fe7f7ba9e758 Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M util.c Log Message: --- util.c - move was_here to be initialized earlier otherwise the goto out_of_memory breaks g++ as reported by Karl
[Perl/perl5] f8ef6e: Revert "op.c - work around Module::Install::DSL is...
Branch: refs/heads/yves/remove_mi_dsl_workaround Home: https://github.com/Perl/perl5 Commit: f8ef6e874c9a52798cd08995fc5b6f3af7fde02c https://github.com/Perl/perl5/commit/f8ef6e874c9a52798cd08995fc5b6f3af7fde02c Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M op.c M op.h M pod/perldiag.pod M t/op/blocks.t Log Message: --- Revert "op.c - work around Module::Install::DSL issue" This reverts commit 451a9a1260f66bc37e4e7187d4368bca92540a8e. We no longer need the Module::Install::DSL workaround. This fixes GH Issue #20233.
[Perl/perl5]
Branch: refs/heads/yves/toke_c_gdb_help Home: https://github.com/Perl/perl5
[Perl/perl5] 931214: toke.c - dont just return the function, assign it ...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 9312140ba1ac523a74c69d552697f2767e128e04 https://github.com/Perl/perl5/commit/9312140ba1ac523a74c69d552697f2767e128e04 Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M toke.c Log Message: --- toke.c - dont just return the function, assign it to an intermediary So we can debug it before we return. an optimization compiler should make them the same thing anyway, but under -Og it is helpful to be able to be able to see the return before we return it.
[Perl/perl5] 438146: toke.c - invoke __DIE__ handler after compilation ...
Branch: refs/heads/yves/consistent_error_exits Home: https://github.com/Perl/perl5 Commit: 438146e215da49557fd0d653c81a781f22bf5ed2 https://github.com/Perl/perl5/commit/438146e215da49557fd0d653c81a781f22bf5ed2 Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M embed.fnc M embed.h M pp_ctl.c M proto.h M t/op/die.t M t/op/eval.t M util.c Log Message: --- toke.c - invoke __DIE__ handler after compilation errors in eval Currently whether the __DIE__ signal handler triggers during compilation of an eval string depends on the selection of the errors it contains. Certain types of compilation error are considered "deferred errors" and will not terminate compilation immediately, for instance undeclared variables do not confuse the compiler so they do not trigger immediate termination, and we will report them without limit provided they are the only errors encountered. Whether a given error terminates compilation or not or uses the error count to decide to do so seems to be somewhat random, and it is quite possible that compilation can complete, with errors, without ever "throwing" the exception so it can be passed to the __DIE__ handler. This patch ensures that when the eval has failed due to errors the $SIG{__DIE__} handler is invoked before the eval completes. Commit: ff34822f4f8da2d7aaf9c6ee0c229d97b38f6f13 https://github.com/Perl/perl5/commit/ff34822f4f8da2d7aaf9c6ee0c229d97b38f6f13 Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M perl.h M perly.c M pp_ctl.c M t/op/eval.t M t/op/signatures.t M t/uni/parser.t M toke.c Log Message: --- perl.h, pp_ctl.c - switch to standard way of terminating compilation I did not fully understand the use of yyquit() when I implemented the SYNTAX_ERROR related stuff. It is not needed, and switching to this makes eval compile error messages more consistent. Commit: 3cdb3de9918b6d0f520c7607ac02c92fc31d4e86 https://github.com/Perl/perl5/commit/3cdb3de9918b6d0f520c7607ac02c92fc31d4e86 Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M pp_ctl.c M t/lib/feature/bundle M t/lib/strict/vars M toke.c Log Message: --- pp_ctl.c - Consistently exit after 10 errors Currently we only check the error count when we report an error via yyerror(), even though we say we will stop processing after 10 errors. Errors reported directly to qerror() bypass the check. This fixes this so that we check the number of errors reported in qerror() itself. We also change qerror() so that qerror(NULL) triggers the exception, this way we can move the logic out of yyerror and into qerror(). Compare: https://github.com/Perl/perl5/compare/be13138f205b...3cdb3de9918b
[Perl/perl5] 61c369: Ensure 'ok #' test output includes a location
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 61c36998dd2ab81a3a53358ac76a57e6f5850dc9 https://github.com/Perl/perl5/commit/61c36998dd2ab81a3a53358ac76a57e6f5850dc9 Author: Paul "LeoNerd" Evans Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M t/test.pl Log Message: --- Ensure 'ok #' test output includes a location If no test name is supplied it can be hard to work out where the failure was, if the output is something like ... ok 100 ok 101 ok 102 Segmentation fault There's no easy correlation with the lines in the .t file, short of counting all the calls. By adding the caller file/line number, at least we can get a rough idea of where the test script got to when it failed ... ok 102 - [at foo.t line 1234] Segmentation fault
[Perl/perl5]
Branch: refs/heads/yves/release_guide_tweak Home: https://github.com/Perl/perl5
[Perl/perl5]
Branch: refs/heads/yves/force_upgrade_var Home: https://github.com/Perl/perl5
[Perl/perl5]
Branch: refs/heads/yves/test_workflows Home: https://github.com/Perl/perl5
[Perl/perl5]
Branch: refs/heads/blead Home: https://github.com/Perl/perl5
[Perl/perl5] 923d5d: pv_escape(): Fix compiler warning
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 923d5d2113e738eea21d56eb8f1589c6b3506f02 https://github.com/Perl/perl5/commit/923d5d2113e738eea21d56eb8f1589c6b3506f02 Author: Karl Williamson Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M embed.fnc M proto.h Log Message: --- pv_escape(): Fix compiler warning A parameter to this function was declared const in embed.fnc, but it isn't const Commit: dead3ccedb0e57c37846b3b30aa1d618ef1309f3 https://github.com/Perl/perl5/commit/dead3ccedb0e57c37846b3b30aa1d618ef1309f3 Author: Karl Williamson Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M locale.c Log Message: --- locale.c: Silence compiler warning This is only emitted on Windows Visual Studio, before 2015. Compare: https://github.com/Perl/perl5/compare/92373dea9d7b...dead3ccedb0e
[Perl/perl5] 92373d: Replaced SSGROW with SSCHECK inside regcppush
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 92373dea9d7bcc0a017f20cb37192c1d8400767f https://github.com/Perl/perl5/commit/92373dea9d7bcc0a017f20cb37192c1d8400767f Author: Alexander Nikolov Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M regexec.c Log Message: --- Replaced SSGROW with SSCHECK inside regcppush Observed is huge slow-down on Win32 machines with many leveled nested recursive patterns. Bottleneck identified to be SSGROW reallocations inside regcppush. Replacing with SSCHECK yields huge performance gains (to the extened for it to be called a "fix") on said platform.
[Perl/perl5] 3e1c78: buildtoc: Use mnemonic instead of hard-coded code ...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 3e1c78bda6bcaff0d1d04c51c98ff3ea0ba0db8b https://github.com/Perl/perl5/commit/3e1c78bda6bcaff0d1d04c51c98ff3ea0ba0db8b Author: Karl Williamson Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M pod/buildtoc Log Message: --- buildtoc: Use mnemonic instead of hard-coded code point \r is clearer and potentially more portable than \015 Commit: ce8f481253f8f6250878c58247f4d8fee6a3a3ce https://github.com/Perl/perl5/commit/ce8f481253f8f6250878c58247f4d8fee6a3a3ce Author: Karl Williamson Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M pod/buildtoc Log Message: --- buildtoc: Fix to work on native line endings buildtoc was failing to work properly on systems where files have line endings that aren't plain \n, notably Windows. The particular reason it fails is that it goes into paragraph slurp mode. That mode is fooled by \r\n sequences, so fails to properly split the input into paragraphs. Compare: https://github.com/Perl/perl5/compare/70bac31a4f4e...ce8f481253f8
[Perl/perl5] c4c0f5: regcomp.c - remove (**{ ... }) from the regex engine
Branch: refs/heads/yves/remove_optimstic_postponed_eval Home: https://github.com/Perl/perl5 Commit: c4c0f563bdcda931d985859a15e29b60eac1ba05 https://github.com/Perl/perl5/commit/c4c0f563bdcda931d985859a15e29b60eac1ba05 Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M pod/perl5378delta.pod M pod/perldelta.pod M pod/perlre.pod M regcomp.c M regexec.c M t/re/pat_re_eval.t M toke.c Log Message: --- regcomp.c - remove (**{ ... }) from the regex engine Dave M pointed out that this idea was flawed, and after some testing I have come to agree with him. This removes it. It was only available for 5.37.8, so no deprecation cycle involved.
[Perl/perl5] 70bac3: Avoid a use-after-free warning by converting a poi...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 70bac31a4f4e90f39d9876a34715f0c83d2684dd https://github.com/Perl/perl5/commit/70bac31a4f4e90f39d9876a34715f0c83d2684dd Author: Paul "LeoNerd" Evans Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M util.c Log Message: --- Avoid a use-after-free warning by converting a pointer to a UV for debug print purposes before we call realloc() on it
[Perl/perl5] c17189: embed.fnc - sort entries alphabetically by functio...
Branch: refs/heads/yves/tidy_embed_fnc Home: https://github.com/Perl/perl5 Commit: c17189b54913301da01edfd0ccd68b5b2cc01a8c https://github.com/Perl/perl5/commit/c17189b54913301da01edfd0ccd68b5b2cc01a8c Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M embed.fnc M regen/tidy_embed.pl Log Message: --- embed.fnc - sort entries alphabetically by function name. This is actually a library sort (lc with underbars removed), followed by a lexicographical sort. Comment lines are sticky to the line that follows them. Somehow the original version of this patch was missed in my earlier work on tidy_embed.pl, I think I messed up a rebase somehow. I noticed it was missing when I realized that new entries werent being sorted into place correctly. While this patch creates a fair bit of churn in the file right now, long term it will make it easier to use. Also note that the *output* files have not changed, which validates that the patch did not break anything. Commit: 283d0609a03b5edc798a71944ac91d5ce9427e33 https://github.com/Perl/perl5/commit/283d0609a03b5edc798a71944ac91d5ce9427e33 Author: Yves Orton Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M embed.fnc M regen/HeaderParser.pm M regen/embed.pl Log Message: --- embed.pl - sort and dedupe flags in embef.fnc as part of tidy This ensures we use a canonical string for each possible flag variant, which makes it easier to search for flags with a given flag signature. It also exposed a mutex bug in flag handling which caused PerlEnv_putenv to be improperly marked as static, when it is in fact static inline. To validate there aren't any issues like this remaining in the script I set it up so the flags were shuffled during processing and ran embed.pl in a loop for a while and none of the output files changed, so I assume there are no further such issues. This patch also includes some basic validation of the flags so that if someone misses a line continuation the following lines are not treated as a new definition without any flags. I also ran perltidy on it according to the rules contained within the file. Compare: https://github.com/Perl/perl5/compare/3377fd383fe3...283d0609a03b
[Perl/perl5] 83ba55: Assert that an op_free()'ed op has an op_first if ...
Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: 83ba55794efd51e7a10531c7e50a859fe310ffb0 https://github.com/Perl/perl5/commit/83ba55794efd51e7a10531c7e50a859fe310ffb0 Author: Paul "LeoNerd" Evans Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M op.c Log Message: --- Assert that an op_free()'ed op has an op_first if it has OPf_KIDS (fixes #20764) Commit: aa2d00d7d06d0ec6110c4351b635728dfa53bc81 https://github.com/Perl/perl5/commit/aa2d00d7d06d0ec6110c4351b635728dfa53bc81 Author: Paul "LeoNerd" Evans Date: 2023-02-07 (Tue, 07 Feb 2023) Changed paths: M op.c Log Message: --- Also add a note to the docs of op_free() to remind users about clearing the OPf_KIDS flag Compare: https://github.com/Perl/perl5/compare/dcf36a4fb962...aa2d00d7d06d