| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
* Restore the upgrading and downgrading in "bignum", with the exception
of upgrading from Math::BigFloat to Math::BigRat, which I couldn't make
sense of. Now, both integer literals and integers (and Infs and NaNs)
that are the result of a computation become Math::BigInt objects, and
both non-integer literals and non-integers that are as a result of a
computation become Math::BigFloat objects. The classes used for literal
integers and non-integers during compile-time are configurable, as well
as the classes used for downgrading and upgrading during runtime.
* Add the "bigfloat" pragma, which converts all numeric literals to
Math::BigFloat objects. This is consistent with the "bigint" pragma,
which converts all numeric literals to Math::BigInt objects, and the
"bigrat" pragma which converts all numeric literals to Math::BigRat
objects.
|
|
|
|
|
|
| |
[DELTA]
* Improve downgrading and upgrading.
|
|
|
|
|
|
|
| |
Per comment by upstream maintainer in
https://github.com/Perl/perl5/pull/19590#issuecomment-1094123880, the
previous CPAN-synch of IO-Compress contained one file which is
experimental. He recommended synching in CPAN release 2.105. Doing so.
|
|
|
|
|
|
|
| |
This silences the build warnings reported in https://github.com/Perl/perl5/issues/19588
and in https://github.com/Perl/perl5/issues/17014.
It includes some test updates, but no functionality changes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit synchs into blead versions 2.103 for 3 CPAN distributions:
Compress-Raw-Zlib
IO-Compress
Compress-Raw-Bzip2
Applying the commits one at a time would have resulted in one test
failure in one of those commits, but applying all three has all tests
passing as expected
From Changes for Compress-Raw-Zlib
2.103 3 April 2022
* Sync upstream fix for CVE-2018-25032
https://github.com/advisories/GHSA-jc36-42cf-vqwj
Update to Zlib 1.2.12
d507f527768f6cbab5831ed3ec17fe741163785c
Fix for inflateSync return code change
f47ea5f36c40fe19efe404dd75fd790b115de596
Fix for incorrect CRC from zlib 1.2.12.1
https://github.com/madler/zlib/commit/ec3df00224d4b396e2ac6586ab5d25f673caa4c2
60104e3a162a116548303861ae0811fb850e65fd
* AUTHOR doesn't contain the stated information
bf5a03c1b440c8d9e41cffb344bf889794cc532b
From Changes for IO-Compress
2.103 3 April 2022
* Update version to 2.103
97f1893892eccac69b3a8033378b0b44d7c4f3ab
* Fix for inflateSyncs retrurn code change
4843e22285bf8e52c9b5b913d167a1545995c793
* Add constant for ZIP_CM_AES
91be04dd8dc2848e3c25b87ec498cf8ccc34187a
* Point links to rfcs to ietf.org
https://github.com/pmqs/IO-Compress/pull/37
a8f28b36cf4d77df1cfa0516867012425920a62f
* Rename test file to fix manifest warning
https://github.com/pmqs/IO-Compress/pull/36
955244f9ac0654d7e8d54115162da53c85d7178c
* Add perl 5.34
06f41883f62ed1b88b03c246b16e0b5ef72503bc
* Fix for Calling nextStream on an IO::Uncompress::Zip object in Transparent mode dies when input is uncompressed
https://github.com/pmqs/IO-Compress/issues/34
b0f93fe62f84b7d4d4bb8d2ea8e6d5432887103f
* IO::Compress: Generalize for EBCDIC
https://github.com/pmqs/IO-Compress/pull/32
90b51dbbd785e2c824cb0a93feef3b3dd5d075f2
* IO::Compress: Fix misspelling in 112utf8-zip.t
c22216b5d3202dce01ef17a271252f82520a6ab9
* Revert "Always have full zip64 entry in central directory"
7df4c9bc98667bc1afd1b4bc5a27d20f94e3cd9c
* Always have full zip64 entry in central directory
333648ee1dece6eb220060c7ec09806f6ebb9866
* update cpanm path on MacOS
33079902934885c515768a08d72e89243a5d01a9
From Changes for Compress-Raw-Bzip2
2.103 3 April 2022
* Silence uninitialized warnings
https://github.com/pmqs/Compress-Raw-Bzip2/pull/5
ff3d907325091287ac1525db384b99a968d763d7
641a440ec6229c1d368b9ead48f4968b955c0115
|
|
|
|
|
|
|
|
| |
Support for Mac OS Classic was removed in 5.12, there's no need to
keep this obsolete notice around.
In passing, add missing perlmacosx to plan9/mkfile's list of
archpodnames.
|
| |
|
|
|
|
|
|
| |
We stopped caring about 8.3 compliance at least 15 years ago, and
currently ship hundreds of files that aren't compliant with such a
filesystem. This script doesn't serve any purpose anymore.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves all run time mutations of PL_hash_rand_bits into a set of
macros which allow us to debug what is happening. It also moves away
from our poor mans RNG based on mixing in various sources of data as
we go and switches to using an XORSHIFT RNG for generating the random
bits. This particular RNG is very efficient, using three xor operations
and three shift operations, so it shouldn't hurt us to use it. As a
bonus it also removes the conditional logic involved, as we use seed()
to initialize things at the very beginning when we are running under
RANDOMIZE mode, which should fix any problems with running on platforms
that do not use process space randomization like cygwin.
It adds support for -Dh under DEBUGGING to allow introspection of the
the state of PL_hash_rand_bits and source and cause of changes to it.
With -Dhv you can also get an idea of the keys which are triggering
these mutations as well. -Dh has also been changed to imply
PERL_HASH_SEED_DEBUG as a convenience.
This goes alongside a new test, based on one from Nicholas R (atoomic)
to test that the various PERL_PERTURB_KEYS options behave as expected
and that 1 bit mutations of the seed actually *do* affect the key order
and hashing of our strings. The test is run many times to ensure that
it passes under many different randomly generated hash seeds. Parts of
this test would fail without the preceding commit to this one adjusting
how SBOX32 is initialized.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change updates AUTHORS with multiple missing contributors to the
project. It updates .mailmap so that the preferred email for each
developer matches what is in AUTHORS (sometimes changing the AUTHORS
entry, sometimes changes the .mailmap entry or entries to achieve this
goal. It also adds a new tool, Porting/UpdateAuthors.pl which can be
used to automatically update the relevant data.
The general idea is that if you run Porting/UpdateAuthors.pl any never
developers will be added to AUTHORS, and new entries will be added to
the .mailmap file. The aim is that the only data we need to have to
manage both files is the data in both files and the commit history
itself. There is NOT embedded special datasets in the tool.
The idea is that *every* developer, be it author or committer has at
least one entry in .mailmap, and that the vast majority of the email
data we have for commits is mapped to corresponding entry in the AUTHORS
file. Furthermore the .mailmap file is expected to have an entry for
every distinct email ever used by a developer on the project.
If you run Porting/UpdateAuthors.pl the tool will analyze all the
commits in the projects history, and update either or both the .mailmap
and AUTHORS file appropriately. If an existing developer adds a commit
which either has the same name or email as is listed already then it
will DTRT and update the .mailmap with the appropriate mappings. If a
new developer adds a commit then it will DTRT and update both the
.mailmap and the AUTHORS file with that developers details.
Every single existing distinct name/email combination has been added to
the mailmap, and matched to AUTHORS data. In some case where there was
conflicting or missing data I used an educated guess, contacted the
developer myself, or verified the email with the email provider. Eg.
gmail.com will helpfully resolve gmail email addresses to their name if
you simply type the email address into a new mail.
testing
testing
fixup
fixup
fixup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a new SV is created and upgraded to a type known at compile time,
uprooting a SV head and then using the general-purpose upgrade function
(sv_upgrade) is clunky. Specifically, while uprooting a SV head is
lightweight (assuming there are unused SVs), sv_upgrade is too big to be
inlined, contains many branches that can logically be resolved at compile
time for known start & end types, and the lookup of the correct
body_details struct may add CPU cycles.
This commit tries to address that by making newSV_type an inline function
and including only the parts of sv_upgrade needed to upgrade a SVt_NULL.
When the destination type is known at compile time, a decent compiler will
inline a call to newSV_type and use the type information to throw away all
the irrelevant parts of the sv_upgrade logic.
Because of the spread of type definitions across header files, it did not
seem possible to make the necessary changed inside sv.h, and so a new
header file (sv_inline.h) was created. For the inlined function to work
outside of sv.c, many definitions from that file were moved to sv_inline.h.
Finally, in order to also benefit from this change, existing code in sv.c
that does things like this:
SV* sv;
new_SV(sv);
sv_upgrade(sv, SVt_PV)
has been modified to read something like:
SV* sv = newSV_type(SVt_PV);
|
|
|
|
| |
Perl core itself seems not to call my_strtod, so test it with XS::APItest.
|
|
|
|
|
|
| |
I added these tests primarily to verify that my previous commit did
not introduce any behavioral change; these tests should not fail
even before that commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Attribute::Handlers supports a __CALLER__ token when declaring autotie
attributes. This is meant to create the attribute in the caller of the
class it is used in. The only reliable way for this to work requires
creating an import method in the calling class. Instead,
Attribute::Handlers was trying to walk up the call stack from when its
own import would be called. This used to partially work, at least enough
to be deceptive. Checking the caller deeper in the call stack of
Attribute::Handlers would allow the __CALLER__ attribute to work only
for the first time the module using it was called. Any future users
would not re-compile the module, so they would not re-invoke
Attribute::Handlers' import method, and would not get the autotie
attribute defined.
This attempt to find the caller's caller also started failing as of
f6387cff9cb31db4cf18c8641917ea4639ac2b65.
Fix the handling of __CALLER__ by creating an import method in the
caller if it is used, so that users of the calling module will reliably
get the attribute defined.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reapplies two reverted patches as a single squashed commit.
Revert "Revert "avoid identical stack traces""
This reverts commit 79f75eaa716307235be78834c99ba0599a00319b
which itself reverted f2f32cd638746f538da6db804dab6dd54e654f30
Revert "Revert "fixup to "avoid identical stack traces" - try 2""
This reverts commit 2abf7efcc0ff8978340af661cb333175a899a84e
which itself reverted ad89278aa25475fb03971aec66692e18e35d9c07
Original Author: David Mitchell <davem@iabyn.com>
Original Date: Fri Dec 13 13:48:25 2019 +0000
avoid identical stack traces
GH #15109
The output of caller() (e.g. as produced by carp::Confess) produces
multiple identical outputs when within a nested use/require. This is
because at the time of calling the 'BEGIN { require ... }', PL_curcop is
set to &PL_compiling, which is a fixed buffer within the interpreter,
whose individual file and line fields are saved and restored when doing
a new require/eval. This means that within the innermost require,
PL_compiling has file:lineno of the innermost source file, and multiple
saved PL_curcop values in the context stack frames all point to the same
&PL_copmpiling. So all levels of the stack trace appear to come from the
innermost file.
This commit fixes this (after a fashion) by, at the start of calling a
BEGIN, making PL_curcop point to a temporary copy of PL_compiling
instead.
This is all a bit of a hack.
|
|
|
|
|
|
|
| |
For: https://github.com/Perl/perl5/issues/19358.
Used tarball from:
http://ftp.cpan.org/pub/CPAN/authors/id/A/AN/ANDK/CPAN-2.33-TRIAL.tar.gz
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
[DELTA]
* Fix CPAN RT #140470. The pragmas ignored user-specified backend libraries.
Add tests to verify the fix.
* Add missing documentation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updated the following files:
AUTHORS:
- corrected my email address
MANIFEST:
- added new testcases for Locale-Maketext
dist/Locale-Maketext/ChangeLog:
- short summary of changes made
dist/Locale-Maketext/lib/Locale/Maketext.pm:
- updated the version to 1.30
- refactored the code to create a common method _include
called by the allowlist and whitelist methods
(whitelist is now an alias, deprecated method, for allowlist).
The _include method now has an internal list called allowlist
that is updated by calls to _include through whitelist or
allowlist methods.
- refactored the code to create a common method _exclude
called by the denylist and blacklist methods
(blacklist is now an alias, deprecated method, for denylist).
The _exclude method now has an internal list called denylist
that is updated by calls to _exclude through blacklist or
denylist methods.
dist/Locale-Maketext/lib/Locale/Maketext.pod:
- documented allowlist and denylist as new methods
- added a NOTE for allowlist and denylist indicating that
they are now the preferred method names to use instead
of whitelist and blacklist
dist/Locale-Maketext/t/92_blacklist.t
- updated the code to have messages in terms of allowlist
and denylist. Actual code continues to test blacklist
method.
dist/Locale-Maketext/t/93_whitelist.t
- updated the code to have messages in terms of allowlist
and denylist. Actual code continues to test whitelist
method.
Created 2 new testcases:
dist/Locale-Maketext/t/94_denylist.t
- this testcase is analagous to 92_blacklist.t but calls
the denylist method instead of the blacklist method.
dist/Locale-Maketext/t/95_allowlist.t
- this testcase is analagous to 93_whitelist.t but calls
the allowlist method instead of the whitelist method.
|
|
|
|
|
|
|
|
| |
POSIX::FLT_ROUNDS now emulates (more) standard behavior that
reflects the current rounding mode set by fesetround(),
even when compiled with GCC whose FLT_ROUNDS is wrongly fixed to 1.
Also add tests for this.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
7.64 Fri 17 Dec 15:35:46 GMT 2021
No changes since v7.63_11
7.63_11 Tue 14 Dec 16:00:11 GMT 2021
OS390 fixes:
- Extend prereqs sort to work on EBCDIC
7.63_10 Mon 13 Dec 16:26:49 GMT 2021
OS390 fixes:
- Fix dynamic loading
7.63_09 Wed 8 Dec 22:20:53 GMT 2021
Enhancements:
- Don't use canned libpth values
7.63_08 Sat 27 Nov 17:28:03 GMT 2021
Correction:
- Previous change to ${LDFLAGS) was reverted
7.63_07 Sat 27 Nov 11:34:12 GMT 2021
Enhancements:
- Add $(LDFLAGS) when linking binary modules
7.63_06 Wed 3 Nov 01:24:05 GMT 2021
Bug fixes:
- Add -rpath when compiling XS modules on macOS
7.63_05 Sat 14 Aug 09:04:08 BST 2021
Enhancements:
- Added CPPRUN variable
7.63_04 Wed 30 Jun 15:15:01 BST 2021
Doc fixes:
- Describe CCFLAGS’ default
7.63_03 Tue 22 Jun 14:39:32 BST 2021
OS390 Enhancements:
- Fix override xs_make_dynamic_lib() for os390
7.63_02 Thu 3 Jun 19:52:03 BST 2021
Doc fixes:
- Changed wording for POLLUTE
7.63_01 Tue 25 May 16:22:50 BST 2021
Bug fixes:
- Comparing inodes numerically is unsafe
|
|
|
|
|
|
|
|
| |
This finishes the perl-visible API required for RFC 0008
https://github.com/Perl/RFCs/blob/master/rfcs/rfc0008.md
It also begins the "builtin::" namespace of RFC 0009
https://github.com/Perl/RFCs/blob/master/rfcs/rfc0009.md
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bignum
======
0.63 2021-10-08
* This version instroduces no changes to the Perl modules, only the
tests.
* Remove tests that don't work on old Perls and that were actually
testing
Math::Big(Int|Float|Rat) more than big(int|num|rat).
* Skip tests that don't work on older versions of Perl.
* Remove Perl v5.10.0 as dependency. This distribution is compatible
with
Perls back to at least v5.6.1, although some functionality
(e.g., nesting the pragmas) requires more recent versions of Perl.
0.62 2021-10-03
* Add support for multiple options in import(), so that one can use,
e.g.,
use bignum accuracy => 20, lib => "GMP";
* Make sure the bigrat pragma always returns Math::BigRat objects.
* Make the "trace" option work as indended, or at least according to
what I
believe is the intention.
* Improve documentation. Fix typos, improve wording, add more examples
etc.
0.61 2021-10-01
* Improve documentation related to floating point literals.
* Skip tests that fail due to Perl's broken handling of floating point
literals before v5.32.0.
0.60 2021-09-28
* Separate the bigint, bignum, and bigrat pragmas.
- The bigint pragma now converts every numeric constant that
represents an
integer to a Math::BigInt object. Non-integers are converted to
Math::BigInt NaNs. With the previous behaviour, only some numeric
constant integers were converted to a Math::BigInt.
- The bignum pragma now converts every numeric constant to a
Math::BigFloat
object.
- The bigrat pragma now converts every numeric constant to a
Math::BigRat
pragma.
The pragmas no longer activate upgrading and downgrading. The
upgrading and
downgrading must now be activated explicitly. The rationale behind
deactivating it by default is that can cause infinite looping where
objects
bounce back and forth between different classes. Explicitly
requesting a
specific class doesn't always work either, because the object might
be
automatically upgraded or downgraded to a different class.
Only one pragma can be used at a time in a given scope. Enabling one
pragma
disables the others in the same scope.
* Implementat working version of "no bigint", "no bignum", and "no
bigrat".
Previously, the upgrading and downgrading activated by, e.g., "use
bigint"
was not deactivated by "no bigint".
* Sync behaviour with the Math-BigInt distribution.
Math::BigInt
============
1.999827 2021-10-03
* Improve error message for missing library argument.
* Skip tests that don't work on older Perls. Also skip tests that
compare
floating point numbers.
1.999826 2021-10-01
* Improve documentation related to floating point literals.
* Skip tests that fail due to Perl's broken handling of floating point
literals before v5.32.0.
1.999825 2021-09-28
* Make Math::BigInt accept integers regardless of whether they are
written as
decimal, binary, octal, or hexadecimal integers or decimal, binary,
octal,
or hexadecimal floating point number.
* When numeric constants are overloaded (with the ":constant" option)
in
Math::BigInt, every numeric constant that represent an integer is
converted
to an object regardless of how it is written. All finite non-integers
are
converted to a NaN.
* When numeric constants are overloaded (with the ":constant" option)
in
Math::BigFloat, every numeric constant is converted to an object
regardless
of how it is written.
* Add method from_dec() (cf. from_bin(), from_oct(), and from_hex()).
It is
like new() except that it does not accept anything but a string
representing a finite decimal number.
1.999824 2021-09-20
* Don't allow mixing math libraries. Use the first backend math library
that
is successfully loaded, and ignore any further attempts at loading a
different backend library. This is a solution to the re-occurring
problem
of using objects using different math libraries.
* Add missing documentation.
* Miscellaneous minor improvements.
Math::BigInt::FastCalc
======================
0.5012 2021-09-28
* Sync test files with Math-BigInt.
0.5011 2021-09-20
* Sync test files with Math-BigInt.
* Add missing documentation.
* Make the test files only print to the standard error when there is an
actual error.
* Miscellaneous changes and updates to author and release test files.
Math::BigRat
============
0.2620 2021-10-03
* Skip tests that don't work on older Perls. Also skip tests that
compare
floating point numbers.
0.2619 2021-10-01
* Correct the handling of Inf and NaN in numify().
* Improve constant overloading. When numeric constants are overloaded
(with the ":constant" option) in Math::BigRat, every numeric constant
is converted to an object regardless of how it is written.
0.2618 2021-09-28
* Add new method binv() for the inverse.
* Add new method dparts(), which returns the integer part and fraction
part
of a number. For example, 9/4 is split into 2 and 1/4. This method is
equivalent to the Math::BigInt and Math::BigFloat methods with the
same
name.
* Improve blog(). Handle cases $x->blog($b) where the numerator of $x
and/or $b is 1 as special.
* Sync tests with Math-BigInt.
|
|
|
|
|
| |
UWIN is a UNIX compatibility layer for Windows. It was last released
in 2012 and has been superseded by Cygwin these days.
|
|
|
|
|
|
| |
DJGPP is a port of the GNU toolchain to 32-bit x86 systems running DOS.
The last known attempt to build Perl on it was on 5.20, which only got
as far as building miniperl.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ext/GDBM_File/Makefile.PL: Register new constants: gdbm_open
flags and return values for gdbm_latest_snapshot.
* ext/GDBM_File/GDBM_File.pm: Update documentation.
Export new constants.
Raise version to 1.21.
* ext/GDBM_File/GDBM_File.xs (dbcroak): Include system error
infomation, when appropriate.
(gdbm_syserrno): Return a meaningful value if not_here.
(gdbm_dump, gdbm_load, gdbm_convert)
(gdbm_failure_atomic, gdbm_latest_snapshot)
(gdbm_crash_tolerance_status): New functions.
* ext/GDBM_File/t/dump.t: New testcase.
* ext/GDBM_File/t/snapshot.t: New testcase.
* MANIFEST: List new files.
|
|
|
|
| |
The build has been broken since 2009.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
0.078 2021-08-02 09:24:03-04:00 America/New_York
- No changes from 0.077-TRIAL.
0.077 2021-07-22 13:07:14-04:00 America/New_York (TRIAL RELEASE)
[ADDED]
- Added a `patch` helper method for the HTTP `PATCH` verb.
- If the REQUEST_METHOD environment variable is set, then CGI_HTTP_PROXY
replaces HTTP_PROXY.
[FIXED]
- Unsupported scheme errors early without giving an uninitialized value
warning first.
- Sends Content-Length: 0 on empty body PUT/POST. This is not in the spec,
but some servers require this.
- Allows optional status line reason, as clarified in RFC 7230.
- Ignore SIGPIPE on reads as well as writes, as IO::Socket::SSL says that
SSL reads can also send writes as a side effect.
- Check if a server has closed a connection before preserving it for reuse.
[DOCS]
- Clarified that exceptions/errors result in 599 status codes.
[PREREQS]
- Optional IO::Socket::IP prereq must be at least version 0.32 to be used.
This ensures correct timeout support.
|
|
|
|
|
|
| |
Address RT#139622. It fixes the memory leak when you set FB_CROAK.
Usually that is not a problem because perl dies immediately after the
error occurs but that is not the case when you wrap it in eval {}.
|
| |
|
|
|
|
|
| |
Extract its test module B::success into a real file, and eliminate lots
of runtime path creation, file creation and file deletion complexity.
|
|
|
|
|
| |
Copy the Scalar::Util::isbool() tests into XS-APItest so we can avoid relying
on Scalar::Util just to check core functionality
|
|
|
|
|
|
| |
Remember to SvGETMAGIC() before testing SvIsBOOL() (thanks @tonycoz)
Unit-test that booleaness is preserved on values passed in to, out of, or captured by threads
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when IsCOW flag was set there were two cases:
SvLEN()==0:
PV is really a shared HEK
SvLEN()!=0:
PV is a COW structure with 1..256 refcount stored in its extra final byte
This change adds a third state:
SvLEN()==0 && SvFLAGS() & SVppv_STATIC:
PV is a shared static const pointer and must not be modified
sv_setsv_flags() and sv_setsv_cow() will preserve this state
sv_uncow() will copy it out to a regular string buffer
sv_dup() will preserve the static pointer into cloned threads
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds syntax `defer { BLOCK }` to create a deferred block; code that is
deferred until the scope exits. This syntax is guarded by
use feature 'defer';
Adds a new opcode, `OP_PUSHDEFER`, which is a LOGOP whose `op_other` field
gives the start of an optree to be deferred until scope exit. That op
pointer will be stored on the save stack and invoked as part of scope
unwind.
Included is support for `B::Deparse` to deparse the optree back into
syntax.
|
|
|
|
|
|
|
|
|
| |
t/op/tie.t uses run_multiple_progs() to run each test in an individual perl
interpreter. This is robust, but slow and doesn't give much flexibility in
test diagnostics.
Hence this test file, for test cases that can safely run in the same
interpreter, and where we'd can use like() etc for better diagnostics.
|