| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Also spell check and remove empty sections.
|
| |
|
| |
|
|
|
|
| |
Apparently this should have been updated some time ago.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
|
|
|
| |
Also trim some whitespace from perlvar.pod
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.)
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
This is build product from a make regen.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
It was incorrectly documented as going away in 5.40
|
|
|
|
| |
This was missed when smartmatch was deprecated.
|
|
|
|
|
| |
the "when" parameter is expected to be a version string of the form "5.\d+",
with no minor version.
|
| |
|
| |
|
|
|
|
| |
Also do not generate PERL_ARGS style macros for macros.
|
|
|
|
| |
This makes it easier to see the order the categories were added in.
|
|
|
|
|
| |
This also fixes the version_downgrade to show the correct version that
version downgrades will be removed in.
|
|
|
|
|
| |
This category applies to attempts to goto the internals of a block
construct.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
deprecation category
This category is about use of apostrophe as a package separator, eg
for things like "Test::More::isn't()".
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Instead of using a generic warnings category switch to fine grained
control.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
category as parameter
we should have a deprecation category per type of deprecation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
I want to use these modules in other tests, so changing the name
makes sense.
|
|
|
|
| |
If we chomp we return 2177 tests, if we don't we return 1808 tests.
|
|
|
|
|
|
| |
1.302194 2023-03-13 20:06:57-07:00 America/Los_Angeles
- Fix failing test on 5.10
|
|
|
|
|
|
|
| |
This reverts commit 57e785fdb86b4eb41afd139372aab7841223385f.
This uses the new logic instead of the workaround. Thanks to
Ilmari for the reminder.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_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)
|
|
|
|
|
| |
The next commit needs it. Also, I don't think this optimisation is worth
the trouble.
|
|
|
|
|
|
|
| |
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
|