summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add new release to perlhistv5.37.10Yves Orton2023-03-201-1/+2
|
* perldelta.pod - add more docs on %{^HOOK}, update github links,Yves Orton2023-03-201-31/+90
| | | | Also spell check and remove empty sections.
* Update Module::CoreList for 5.37.10Yves Orton2023-03-201-0/+103
|
* update INSTALLYves Orton2023-03-201-2/+2
|
* Porting/Maintainers.pl - update Module-CoreList entry to reflect latest on CPANYves Orton2023-03-201-1/+1
| | | | Apparently this should have been updated some time ago.
* cpan/libnet - update to version 3.15 and remove old customization infoYves Orton2023-03-2018-114/+64
| | | | | | | | | | | | | | | | | | | | | | | | | We were bundling something that claimed to be 3.14 but which was not. This removes the customization info and sync with a rereleased 3.15 which is the same as the actual 3.14 but with a version bump to keep cmp_version.t happy. This is the change log 3.15 and 3.14: 3.15 2023-03-20 - Release for updating bleadperl to avoid cmp_version.t trouble. No code changes. 3.14 2022-05-22 - Remove broken link in Net::FTP manpage. [Mike Blackwell] - Fix EBCDIC detection. [Karl Williamson, PR#45] - Fix non-deterministic output in libnet.cfg. [Sergei Trofimovich, PR#44] - Fix TLS session reuse for dataconn with TLS 1.3 when using passive mode. [Steffen Ullrich, PR#41]
* pod/perldelta.pod - updates for 5.37.10Yves Orton2023-03-202-200/+212
| | | | Also trim some whitespace from perlvar.pod
* embed.fnc - remove redundant deprecate_xxx() macro declarationsYves Orton2023-03-192-19/+0
| | | | | | | | autodoc.pl gets unhappy if you document a macro in place and ALSO list it in embed.fnc. The warnings it produce tend to get crowded out from a parallel make, but @iabyn noticed and (rightly) complained. This removes the redundant definitions.
* regexec.c - convert UNWIND_PAREN() into an inline static functionYves Orton2023-03-194-14/+35
| | | | | This makes it easier to debug, and type checks parameters and the like. It does make it somewhat slower in debug mode, but so what.
* regexec.c - convert CAPTURE_CLEAR into an inline static functionYves Orton2023-03-194-24/+36
| | | | | This makes it easier to debug, and type checks parameters and the like. It does make it somewhat slower in debug mode, but so what.
* regen/embed.pl - change _aDEPTH and _pDEPTH to not have a leading underbarYves Orton2023-03-197-23/+35
| | | | | | | | | | | | | | The leading underbar is reserved by C. These defines are debugging only "recursion" depth related counters injected into the function macro wrappers when a function is marked as 'W', much the same way that aTHX_ and pTHX_ are when building under threaded builds. The functions are expected to incremented the depth parameter themselves. Note that "recursion" is quoted above because in practice currently they are only used by the regex engine when recursing virtually, and they do not relate to true C stack related recursion. (But they could be used for tracking C level recursion under debugging if someone needed it.)
* regcomp.c - throw an error if we have more U16_MAX open parens.Yves Orton2023-03-192-0/+8
| | | | | | We use U16 for various internal logic related to parens. If we exceed this count stuff is going to go silently wrong. Might as well throw a proper error during compilation to detect this.
* regexp.h - document lastcp and cp in regmatch_stateYves Orton2023-03-191-74/+91
| | | | | | and standardized member order, and line up comments and struct members and other whitspace fixes. The internal tabs and messed up layout was hurting my eyes.
* t/re/re_tests - fixup version for changeYves Orton2023-03-191-1/+1
|
* regcomp.h - document RE_PESSIMISTIC_PARENS and VOLATILE_REF definesYves Orton2023-03-192-4/+52
| | | | | | | | | | | | | These two defines are related to each other, and even though VOLATILE_REF is not explicitly used in regexec.c which would require it being placed in regcomp.h, it is implicitly, and RE_PESSIMISTIC_PARENS *is* used in regexec.c. So put them both in regcomp.h and document them together. This adds copious documentation for what they both are for. RE_PESSIMISTIC_PARENS is effectively a "build option" (although intended for debugging regex engine bugs only). VOLATILE_REF is the name of a flag which is used to mark REF nodes as requiring special backtracking support in regexec.c
* pp_ctl.c - don't overallocate paren buffers in rxres_save().Yves Orton2023-03-192-4/+6
| | | | | | | This was added as part of a different fix and was not properly reverted when that fix was put on hold. This should only be applied if we do adopt the patch which adds "start_new" and "end_new" to the regexp_paren_pair structure.
* Mark vtbl argument in sv_unmagicext const in PPPort as wellLeon Timmermans2023-03-182-2/+2
|
* Mark vtbl argument in sv_unmagicext constLeon Timmermans2023-03-183-4/+4
|
* proto.h - fixup remove unneeded defineYves Orton2023-03-181-1/+0
| | | | This is build product from a make regen.
* t/porting/deprecation.t - add tests for deprecation documentation and categoriesYves Orton2023-03-183-112/+260
|
* perldeprecation.pod - add unscheduled deprecations and add category infoYves Orton2023-03-181-0/+52
| | | | | | Multiple deprecation types that are not scheduled for removal in a specific version were not listed. Also now that we have deprecation subcategories we should specify them in the docs.
* perldeprecation.pod - apostrophe as package separator goes away in 5.42Yves Orton2023-03-181-8/+8
| | | | It was incorrectly documented as going away in 5.40
* perldeprecation.pod - add smartmatch deprecationYves Orton2023-03-181-0/+9
| | | | This was missed when smartmatch was deprecated.
* diag.t - parse and validate "when" parameter from deprecated_xxx() macrosYves Orton2023-03-181-2/+9
| | | | | the "when" parameter is expected to be a version string of the form "5.\d+", with no minor version.
* diag.t - detect use of "deprecate_xxx()" style functionsYves Orton2023-03-182-4/+16
|
* handy.h - fixup for deprecated warnings and docsYves Orton2023-03-181-21/+37
|
* embed.fnc - document deprecate_xxx() macros and add them to handy.hYves Orton2023-03-184-64/+48
| | | | Also do not generate PERL_ARGS style macros for macros.
* regen/warnings.pl - line up categories, put them in date orderYves Orton2023-03-181-5/+6
| | | | This makes it easier to see the order the categories were added in.
* warnings.pm - add deprecated::version_downgrade categoryYves Orton2023-03-186-33/+46
| | | | | This also fixes the version_downgrade to show the correct version that version downgrades will be removed in.
* warnings.pm - add deprecated::goto_construct categoryYves Orton2023-03-186-131/+139
| | | | | This category applies to attempts to goto the internals of a block construct.
* warnings.pm - add deprecated::delimiter_will_be_paired categoryYves Orton2023-03-185-25/+39
| | | | | | Some delimiters are considered deprecated because in the future they will be used as part of a paired delimiter. This adds a new category for these cases.
* warnings.pm - add deprecated::apostrophe_as_package_separator as new ↵Yves Orton2023-03-185-173/+187
| | | | | | | deprecation category This category is about use of apostrophe as a package separator, eg for things like "Test::More::isn't()".
* warnings.pm - support deprecated::unicode_property_name categoryYves Orton2023-03-185-120/+134
| | | | | | This category is only used in the regex engine, we should be able to disable it specifically, as it seems like we will never actually remove demove support for the things it warns about.
* warnings.pm - add deprecated::dot_in_inc warings categoryYves Orton2023-03-185-65/+78
| | | | | Instead of using a generic warnings category switch to fine grained control.
* warnings.pm - support deprecated::smartmatch categoryYves Orton2023-03-185-24/+40
| | | | | | | | | | | | | | | | Currently we seem to lack a way to have a subcategory under deprecated. It seems reasonable to me that people might want to disable a specific subcategory warning while leaving the rest in place. This patch allows that. Note that both no warnings "deprecated"; and no warnings "deprecated::smartmatch"; work to disable the warning. Deprecated warnings shouldn't be "all or nothing", they should be specific and targetted.
* utf8.c - add category parameter to unused warn_on_first_deprecated_use functionYves Orton2023-03-184-6/+8
|
* regcomp_internal.h - make unused macros for deprecation warnings take ↵Yves Orton2023-03-181-11/+11
| | | | | | category as parameter we should have a deprecation category per type of deprecation
* pp_ctl.c - add support for hooking require.Yves Orton2023-03-1825-13/+603
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This defines a new magic hash C<%{^HOOK}> which is intended to be used for hooking keywords. It is similar to %SIG in that the values it contains are validated on set, and it is not allowed to store something in C<%{^HOOK}> that isn't supposed to be there. Hooks are expected to be coderefs (people can use currying if they really want to put an object in there, the API is deliberately simple.) The C<%{^HOOK}> hash is documented to have keys of the form "${keyword}__${phase}" where $phase is either "before" or "after" and in this initial release two hooks are supported, "require__before" and "require__after": The C<require__before> hook is called before require is executed, including any @INC hooks that might be fired. It is called with the path of the file being required, just as would be stored in %INC. The hook may alter the filename by writing to $_[0] and it may return a coderef to be executed *after* the require has completed, otherwise the return is ignored. This coderef is also called with the path of the file which was required, and it will be called regardless as to whether the require (or its dependencies) die during execution. This mechanism makes it trivial and safe to share state between the initial hook and the coderef it returns. The C<require__after> hook is similar to the C<require__before> hook however except that it is called after the require completes (successfully or not), and its return is ignored always.
* scope.c - add mortal_destructor_sv() and mortal_svfunc_x()Yves Orton2023-03-1815-7/+292
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function SAVEDESTRUCTOR_X() (save_destructor_x) can be used to execute a C function at the end of the current psuedo-block. Prior to this patch there was no "mortal" equivalent that would execute at the end of the current statement. We offer a collection of functions which are intended to free SV's at either point in time, but only support callbacks at the end of the current pseudo-block. This patch adds two such functions, "mortal_destructor_sv" which can be used to trigger a perl code reference to execute at the end of the current statement, and "mortal_svfunc_x" which can be used to trigger an SVFUNC_t C function at the end of the current statement. Both functions differ from save_destructor_x() in that instead of supporting a void pointer argument they both require their argument to be some sort of SV pointer. The Perl callback function triggered by "mortal_destructor_sv" may be provided no arguments, a single argument or a list of arguments, depending on the type of argument provided to mortal_destructor_sv(): when the argument is a raw AV (with no SV ref wrapping it), then the contents of the AV are passed in as a list of arguments. When the argument is anything else but NULL, the argument is provided as a single argument, and when it is NULL the perl function is called with no arguments. Both functions are implemented on top of a mortal SV (unseen by the user) which has PERL_MAGIC_destruct magic associated with it, which triggers the destructor behavior when the SV is freed. Both functions are provided with macros to match the normal SAVExx() API, with MORTALDESTRUCTOR_SV() wrapping mortal_destructor_sv() and MORTALSVFUNC_X() wrapping mortal_svfunc_x(). The heart of this logic cribbed from Leon Timmermans' Variable-OnDestruct. See the code at: https://metacpan.org/dist/Variable-OnDestruct/source/lib/Variable/OnDestruct.xs#L6-17 I am very grateful to him for his help on this. Any errors or omissions in this code are my fault, not his.
* threads-shared - fixup typo in commentYves Orton2023-03-182-3/+3
|
* pod/perldiag.pod - provide full path to issues trackerYves Orton2023-03-181-2/+2
| | | | | | https://github.com/Perl/perl5/issues shows the list of open issues, whereas https://github.com/Perl/perl5/issues/new/choose is where someone can create a new ticket.
* sv.h - add SvREFCNT_dec_set_NULL()Yves Orton2023-03-185-1/+47
| | | | | | | | | | | | | | | and also SvREFCNT_dec_ret_NULL() which is used to implement SvREFCNT_dec_set_NULL(). The set_NULL() macro is intended to be used to replace code like this: if (sv) { SvREFCNT_dec_NN(sv); sv = NULL; } The function form just facilitates it, and can be used in situations where returning NULL after decrementing a refcount would be reduce code complexity.
* regen/mg_vtable.pl - rename confusing var %sig to %vtable_confYves Orton2023-03-181-7/+6
|
* t/lib/GH_15109 - rename to t/lib/callerYves Orton2023-03-188-16/+16
| | | | | I want to use these modules in other tests, so changing the name makes sense.
* t/TEST - chomp manifest during readYves Orton2023-03-181-1/+2
| | | | If we chomp we return 2177 tests, if we don't we return 1808 tests.
* cpan/Test-Simple - Update to version 1.302194Yves Orton2023-03-1871-71/+73
| | | | | | 1.302194 2023-03-13 20:06:57-07:00 America/Los_Angeles - Fix failing test on 5.10
* Revert "fixup, use old logic until 5.37 - TO BE SQUASHED"Yves Orton2023-03-181-9/+1
| | | | | | | This reverts commit 57e785fdb86b4eb41afd139372aab7841223385f. This uses the new logic instead of the workaround. Thanks to Ilmari for the reminder.
* win32: inject a socket-aware version of CloseHandle() into the CRTTomasz Konojacki2023-03-174-173/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _close() on an fd calls CloseHandle(), which is illegal if the fd contains a socket handle. We previously worked around this by having our own close(), which called closesocket() before calling _close() (e601c439adce167078ac7b49550c0418ace86f94). Amusingly, the author of that solution thought it's just a temporary workaround: /* * close RTL fd while respecting sockets * added as temporary measure until PerlIO has real * Win32 native layer * -- BKS, 11-11-2000 */ To make it thread-safe, we had to manipulate the internals of file descriptors, which kept changing (b47a847f6284f6f98ad7509cf77a4aeb802d8fce). Unfortunately, the C runtime has been rewritten and it no longer exposes them at all. We had to disable the thread-safety fix in Visual C++ 2015 builds (1f664ef5314fb6e438137c44c95cf5ecdbdb5e9b). It also wouldn't work with MinGW configured to use UCRT. This commit introduces a new solution: we inject a socket-aware version of CloseHandle() into the C runtime library. Hopefully, this will be less fragile. This also fixes a few issues that the original solution didn't: - Closing a busy pipe doesn't cause a deadlock (fixes #19963) - _dup2 properly closes an overwritten socket (fixes #20920)
* win32: initialise winsock unconditionallyTomasz Konojacki2023-03-173-99/+4
| | | | | The next commit needs it. Also, I don't think this optimisation is worth the trouble.
* Porting/cmpVERSION.pl - Handle new modules as not an errorJon Gentle2023-03-172-0/+7
| | | | | | | Checking that a module version was bumped when .c/.h files are updated has an edge case where the previous version was unknown, notably when adding a new module to cpan/. The fix for this is to mark new modules as a new version in those cases