summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* perl -DsR: display PADMTPs as <P>David Mitchell2023-02-281-1/+3
| | | | | | | | | | | | | The R modifier to the stack debugging switch -Ds already indicates if an SV's refcount is > 1 or SvTEMP is set (T), or the SV is on the temps stack without SvTEMP set (t), e.g.: => IV(101), <2>IV(102), <T>IV(103) <3t>IV(104) With this commit, it displays SVs with the SvPADTMP flag set as <P>, e.g. => <P>IV(101), <2P>IV(102), <PT>IV(103)
* cpan/Digest-SHA - sync to 6.04Yves Orton2023-02-267-31/+28
| | | | Updated to build without warnings on gcc-12.
* Add recent CVf_ flags to Devel::Peek::Dump outputDavid Mitchell2023-02-261-1/+6
|
* utf8.h: Rmv improper (STRLEN) castKarl Williamson2023-02-261-1/+1
| | | | | | | | An enum is supposed to be an int. STRLEN may be too large for that. (I suspect the cast was inadvertently left in converting from an earlier implementation that was never released.) Spotted by H. Merijn Brand.
* dist/Time-HiRes - silence ppport warningYves Orton2023-02-262-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Silences the following warning: In file included from HiRes.xs:23: ./ppport.h:14832:1: warning: unused function 'DPPP_my_ck_warner' [-Wunused-function] DPPP_(my_ck_warner)(pTHX_ U32 err, const char *pat, ...) ^ ./ppport.h:11568:21: note: expanded from macro 'DPPP_' #define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name) ^ ./ppport.h:11567:24: note: expanded from macro 'DPPP_CAT2' #define DPPP_CAT2(x,y) CAT2(x,y) ^ ../../config.h:1387:19: note: expanded from macro 'CAT2' #define CAT2(a,b) PeRl_CaTiFy(a,b) ^ ../../config.h:1385:27: note: expanded from macro 'PeRl_CaTiFy' #define PeRl_CaTiFy(a, b) a ## b ^ <scratch space>:34:1: note: expanded from here DPPP_my_ck_warner ^ 1 warning generated.
* APITest.xs - silence build warning under 32 bit clangYves Orton2023-02-262-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Silence build warning with 32 bit build under clang. Also bump version. APItest.xs:7614:24: warning: format specifies type 'unsigned int' but the argument has type 'U32' (aka 'unsigned long') [-Wformat] i, hash32, vectors_32[i]); ^~~~~~ ../../fakesdio.h:64:50: note: expanded from macro 'printf' #define printf(fmt,args...) PerlIO_stdoutf(fmt,##args) ~~~ ^~~~ APItest.xs:7614:32: warning: format specifies type 'unsigned int' but the argument has type 'U32' (aka 'unsigned long') [-Wformat] i, hash32, vectors_32[i]); ^~~~~~~~~~~~~ ../../fakesdio.h:64:50: note: expanded from macro 'printf' #define printf(fmt,args...) PerlIO_stdoutf(fmt,##args) ~~~ ^~~~ APItest.xs:7835:24: warning: format specifies type 'unsigned int' but the argument has type 'U32' (aka 'unsigned long') [-Wformat] i, hash32, vectors_32[i]); ^~~~~~ ../../fakesdio.h:64:50: note: expanded from macro 'printf' #define printf(fmt,args...) PerlIO_stdoutf(fmt,##args) ~~~ ^~~~ APItest.xs:7835:32: warning: format specifies type 'unsigned int' but the argument has type 'U32' (aka 'unsigned long') [-Wformat] i, hash32, vectors_32[i]); ^~~~~~~~~~~~~ ../../fakesdio.h:64:50: note: expanded from macro 'printf' #define printf(fmt,args...) PerlIO_stdoutf(fmt,##args) ~~~ ^~~~ 4 warnings generated.
* regcomp.c - remove unused debug logic that warns under clang.Yves Orton2023-02-261-4/+0
| | | | | | | | | | | | | | | | | | And by removing it we silence the following build warning: regcomp.c:2285:28: warning: format specifies type 'int' but the argument has type 'I32' (aka 'long') [-Wformat] parno, RExC_parno_to_logical[parno], RExC_parno_to_logical_next[parno]); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./regcomp_internal.h:212:37: note: expanded from macro 'RExC_parno_to_logical' #define RExC_parno_to_logical (pRExC_state->parno_to_logical) ^ regcomp.c:2285:58: warning: format specifies type 'int' but the argument has type 'I32' (aka 'long') [-Wformat] parno, RExC_parno_to_logical[parno], RExC_parno_to_logical_next[parno]); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./regcomp_internal.h:213:37: note: expanded from macro 'RExC_parno_to_logical_next' #define RExC_parno_to_logical_next (pRExC_state->parno_to_logical_next) ^ 2 warnings generated.
* dump.c - cast sprintf args properly to silence build warning under clangYves Orton2023-02-261-1/+1
| | | | | | | | | | | | | | | | | | | | Silence the following warnings: dump.c:2688:25: warning: format specifies type 'long long' but the argument has type 'ssize_t' (aka 'int') [-Wformat] r->offs[n].start, r->offs[n].end, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./embed.h:831:72: note: expanded from macro 'sv_catpvf' # define sv_catpvf(a,...) Perl_sv_catpvf(aTHX_ a,__VA_ARGS__) ^~~~~~~~~~~ dump.c:2688:43: warning: format specifies type 'long long' but the argument has type 'ssize_t' (aka 'int') [-Wformat] r->offs[n].start, r->offs[n].end, ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ ./embed.h:831:72: note: expanded from macro 'sv_catpvf' # define sv_catpvf(a,...) Perl_sv_catpvf(aTHX_ a,__VA_ARGS__) ^~~~~~~~~~~ 2 warnings generated.
* class.c - silence build warning under clangYves Orton2023-02-261-2/+2
| | | | | | | | | | | | | | | Use SSize_t for iterator as it matches the type being compared against. Silences the following warning: class.c:555:26: warning: comparison of integers of different signs: 'U32' (aka 'unsigned long') and 'long' [-Wsign-compare] for(U32 i = 0; i <= AvFILL(superaux->xhv_class_adjust_blocks); i++) ~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class.c:699:40: warning: comparison of integers of different signs: 'U32' (aka 'unsigned long') and 'ssize_t' (aka 'int') [-Wsign-compare] for(U32 i = 0; fieldnames && i <= PadnamelistMAX(fieldnames); i++) { ~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated.
* dist/Storable - fix build warning from ppport.h inclusionYves Orton2023-02-262-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Silence warning about PL_parser. As far as I can tell we do not use it. In file included from ../../perl.h:28, from Storable.xs:16: ppport.h:11564:26: warning: ‘DPPP_dummy_PL_parser’ defined but not used [-Wunused-variable] 11564 | # define DPPP_NAMESPACE DPPP_ | ^~~~~ ../../config.h:1385:27: note: in definition of macro ‘PeRl_CaTiFy’ 1385 | #define PeRl_CaTiFy(a, b) a ## b | ^ ppport.h:11567:24: note: in expansion of macro ‘CAT2’ 11567 | #define DPPP_CAT2(x,y) CAT2(x,y) | ^~~~ ppport.h:11568:21: note: in expansion of macro ‘DPPP_CAT2’ 11568 | #define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name) | ^~~~~~~~~ ppport.h:11568:31: note: in expansion of macro ‘DPPP_NAMESPACE’ 11568 | #define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name) | ^~~~~~~~~~~~~~ ppport.h:12222:18: note: in expansion of macro ‘DPPP_’ 12222 | static yy_parser DPPP_(dummy_PL_parser); | ^~~~~
* Compile class.c on VMSCraig A. Berry2023-02-251-2/+2
| | | | Otherwise its symbols are missing at link time.
* Bump $VERSION in lib/feature.pm to 1.81.James E Keenan2023-02-242-2/+2
| | | | | Change is actually made in regen/feature.pl, then we run 'perl regen.pl'.
* Update the smartmatch experiment statusPhilippe Bruhat (BooK)2023-02-251-1/+5
|
* Document that smartmatch is deprecated and will be removed in 5.42Philippe Bruhat (BooK)2023-02-253-16/+20
|
* Smartmatch deprecation warnings are disabled by `no warnings 'deprecated'`Philippe Bruhat (BooK)2023-02-251-2/+0
|
* Replace 'experimental::smartmatch' by 'deprecated' in testsPhilippe Bruhat (BooK)2023-02-2514-39/+42
|
* Deprecate smartmatchPhilippe Bruhat (BooK)2023-02-254-100/+95
| | | | | Make the 'experimental::smartmatch' warning obsolete, and use 'deprecated' instead.
* .github/workflows/testsuite.yml - switch from secrets to varsYves Orton2023-02-231-35/+38
| | | | | | | | | | | | | | We have been using secrets to store boolean variables. This results in our CI output being annoyingly corrupted by the security eliding. Github now supports "variables" as well as secrets, which are not elided in CI output. So switch our test framework controls to use the variable. Note the EXTENDED_TESTING variable was switched from to DO_EXTENDED_TESTING so that we can have both the EXTENDED_TESTING /secret/ and the new DO_EXTENDED_TESTING variable available at the same time as this commit is processed. Fixes #20843
* Benchmark.t - sanity check for a broken times()Yves Orton2023-02-231-0/+83
| | | | | | | | If time() or times() is broken then Benchmark can infinite loop. This adds a sanity check that will die early if it appears that either are broken. This fixes the infinite loop part of GH Issue #20839
* Prefer scalar assignment to get caller's first return valueRichard Leach2023-02-227-15/+15
| | | | | | | | | | | | | | | | | | | | | | | Multiple forms of syntax can be used to obtain a package name from `caller`, which emits this as its first return value, and assign that name to a lexical scalar. The following each achieve the same result, but with varying efficiency: * `sub callme { my $package = caller(2); ...}` * `sub callme { my ($package) = caller(2); ...}` * `sub callme { my $package = (caller(2))[0]; ...}` In the first example, `pp_caller` determines only the package name and pushes it to the stack. In the other two examples, the other 10 of `caller`'s return values are calculated and pushed onto the stack, before being discarded. This commit changes non-CPAN-first instances of the latter two forms in core to the first form. Note: There is a special exception to the equivalence described above, when caller is use in list context within the DB package. Such a usage instance in regen/warnings.pl therefore remains unchanged.
* dist/threads - bump version to make cmp_version happyYves Orton2023-02-221-2/+2
| | | | | | | Its the usual issue, that an old PR that bumps a modules version may look fine in CI as it does not look like a conflict as another patch has bumped the version to the same number, but cmp_version.t notices and complains
* Use ppport.h when building dist/ modules in coreLeon Timmermans2023-02-2218-59/+37
| | | | By always including `ppport.h`, this simplifies both XS code and tooling around it.
* warnings::register - simplify use of callerJames Raspass2023-02-221-3/+2
| | | | | caller in scalar context does much less work so not only is this easier to read, it should be a tad faster. And for good measure, switch to the modern version declaration while bumping.
* Correct equivelent in two more placesElvin Aslanov2023-02-222-2/+2
| | | | | | | | This follows dab4006c92d70a54e7909d0e670b71bfd3fb8221 and ends the misspelling distribution-wide remained in two Windows-related files
* fix "equivelent" in a few placesTony Cook2023-02-211-7/+9
| | | | Be a bit clearer that this is used for testing perl itself.
* fix typo in regexKaren Etheridge2023-02-201-1/+1
|
* add a bit more guidance into the perldelta templateKaren Etheridge2023-02-202-6/+12
|
* when generating RMG, use real version numbers when possibleKaren Etheridge2023-02-202-24/+35
|
* add epigraph for 5.37.9 releaseKaren Etheridge2023-02-201-0/+7
|
* Prepare Module::CoreList for 5.37.10Karen Etheridge2023-02-203-2/+31
|
* Bump the perl version in various places for 5.37.10Karen Etheridge2023-02-2020-124/+124
|
* Generate new perldelta for 5.37.10Karen Etheridge2023-02-2010-434/+883
|
* tick off 5.37.9 releaseKaren Etheridge2023-02-201-1/+1
|
* Add new release to perlhistv5.37.9Karen Etheridge2023-02-201-0/+1
|
* perldelta: fill in synced modulesKaren Etheridge2023-02-201-23/+67
|
* Update Module::CoreList for 5.37.9Karen Etheridge2023-02-201-0/+131
|
* perldelta finalizationKaren Etheridge2023-02-201-202/+254
| | | | | | | | | - add additions to perldiag - documentation section - remove placeholders - finalize Acknowledgements - fix typos - linkify issue/PR references
* diff --binary option does not exist; --text seems to DTRTKaren Etheridge2023-02-201-3/+3
|
* perldelta for optimize_optree() + finalize_optree()Paul "LeoNerd" Evans2023-02-201-0/+14
|
* Update dist/Tie-File to match CPAN 1.07 release.Todd Rinaldo2023-02-202-1/+10
| | | | Changelog updated.
* perldelta for my_snprintfKarl Williamson2023-02-201-0/+6
| | | | a683fa5b7e816ae5c10d246c9a0b1f3ea743274b
* perldelta for utf8_length() changeKarl Williamson2023-02-201-0/+4
| | | | 71d63d0dc1fcf23d28f488655c105c0dfefbd254
* pp: use PP macro consistentlyBranislav Zahradník2023-02-203-320/+320
|
* perldelta.pod - note that REG_INF has been raisedYves Orton2023-02-201-0/+7
| | | | It used to be U16_MAX and it is now I32_MAX.
* scope.c - rework SSGROW() and SSCHECK() macros and undelying functionsYves Orton2023-02-204-24/+42
| | | | | | | | | | | | | | | | | | | | | | | | | Prior to this patch SSCHECK() took a "needs" parameter, but did not actually guarantee that the stack would be sufficiently large to accomodate that many elements after the call. This was quite misleading. Especially as SSGROW() would not do geometric preallocation, but SSCHECK() would, so much of the time SSCHECK() would appear to be a better choice, but not always. This patch makes it so SSCHECK() is an alias for SSGROW(), and it makes it so that SSGROW() also geometrically overallocates. The underlying function that used to implement SSCHECK() savestack_grow() now calls the savestack_grow_cnt() which has always implemented SSGROW(). Anything in the internals that used to call SSCHECK() now calls SSGROW() instead. At the same time the preallocation has been made a little bit more aggressive, ensuring that we always allocate at least SS_MAXPUSH elements on top of what was requested as part of the "known" size of the stack, and additional SS_MAXPUSH elements which are not part of the "known" size of the stack. This "hidden extra" is used to simply some of the other macros which are used a lot internally. (I have beefed up the comment explaining this as well.) This fixes GH Issue #20826
* regexec.c - add assert and test for savestack overflow in Issue #20826.Yves Orton2023-02-202-1/+16
| | | | | | We have a bug where we can overflow the save-stack. This tests for it in a TODO test. The next patch will fix it. Note the test will only fail in debugging as it requires the assert() to be compiled in.
* perldelta.pod - document $SIG{__DIE__} and compile error count bugfixesYves Orton2023-02-202-0/+31
| | | | | | | | We have fixed bugs related to $SIG{__DIE__} being inconsistently triggered during eval, and we have fixed bugs with compilation inconsistently stopping after 10 errors. This patch also includes a micro-tweak to perl.h to allow the threshold to be sanely overriden in Configure.
* pp_ctl.c - Consistently exit after 10 errorsYves Orton2023-02-204-41/+44
| | | | | | | | | | | 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().
* perl.h, pp_ctl.c - switch to standard way of terminating compilationYves Orton2023-02-207-22/+14
| | | | | | 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.
* toke.c - invoke __DIE__ handler after compilation errors in evalYves Orton2023-02-207-15/+62
| | | | | | | | | | | | | | | | | 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.