| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 22392ba2f8a changed the querylocale_foo macros to return a
mortalized copy instead of having to free things explicitly. This was
done because the various code paths are complicated, and I was noticing
various leaks that would require a bunch of #ifdef's to fix.
That commit meant that all the existing free's of the results needed to
be removed. This one was overlooked at the time. Reported in
<f47046d6-7e35-301d-10f-9160b34ca2b6@uwe-dueffert.de>, not in github
|
|
|
|
|
|
|
|
|
|
|
|
| |
In this case we're testing that the result is always true, and it
happens the compiler realizes that the return value is always true,
even in isolation.
Returning the variable that we've already set to point to
PL_bufptr eliminates the warning.
The compiler is still smart enough to eliminate the comparison
on optimized builds. Some linter may still complain about it.
|
|
|
|
|
|
|
| |
gcc 12 was complaining that GvNAME() always returns a true value,
and that's also true.
Omit such uses in conditions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gcc 12 was producing a confusing message complaining that
references to with hek_key[] were beyond the end of the array,
even though a properly HEK has bytes beyond the first we declare.
From experimentation I theorize the confusing message was produced
because HvENAME_HEK() can return a NULL pointer, and the array
pointed to by any NULL pointer is zero length, producing the
array bounds warning we were seeing.
Fixed by changing each hv_(fetch|delete)hek() call to use the
HvENAME_HEK_NN() macro variant, which doesn't include an explicit
NULL return value.
mro_method_changed_in() was a bit special, it evaluated the
hv_fetchhek() before the check for an anonymous stash, so I reordered
the code to take advantage of C99, checking the assertions before we
dereference the stash pointer, checking we have a name before trying
to look it up.
|
|
|
|
|
|
|
|
|
| |
gcc 12 was complaining that evaluating (somehekptr)->hek_key
was always true in many places where HvNAME() or HvENAME() was
being called in boolean context.
Add new macros to check whether the names should be available and
use those instead.
|
|
|
|
| |
- while the instructions were already clear at this point, accidents with lightweight (unannotated) tags have happened
|
|
|
|
|
|
|
|
|
|
|
| |
I added assertions in SSPTR() and SSPTRt() to try to ensure the new
SSize_t result from SSNEW*() wouldn't be truncated, but this
was too strict, requiring that the size matched exactly.
Relax this to allow the input offset to be the same or larger than
SSize_t.
Fixes #20504.
|
|
|
|
|
|
| |
threads module not yet available.
For: # https://github.com/Perl/perl5/issues/20524
|
|
|
|
|
|
| |
Some of these tests (which involve moving blocks of data around in a
file) are occasionally randomly timing out on some slow smokers.
Double the timeout from 5s to 10s and see if the problem goes away.
|
| |
|
|
|
|
|
|
| |
From Changes:
* Fix compatibility with Perl 5.8.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From Changes:
* Improve parsing of float numbers.
https://rt.cpan.org/Ticket/Display.html?id=133216
* Fix Version/HelpMessage -message argument.
https://rt.cpan.org/Ticket/Display.html?id=133963
* Added 'starter' method to the callback object. This method returns the
starter (e.g. '--' or '-') of the option as used by the user.
* Fix problem with Pod::Usage argument in examples/skel2.pl.
* Enhanced option:default spec to octal, hex and binary.
|
|
|
|
|
|
| |
Issue #20384: This fixes a breakage from
35458d36d3c9fcf47064e4379e15276057b0bca5 that Devel::WatchVars’s test suite
caught. A test is added to Perl’s own test suite to prevent regressions.
|
|
|
|
| |
Issue #20384
|
|
|
|
| |
The version in the pod has been long wrong. We are on 3.48 now, it was 3.13_01.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use warn instead of print STDERR, and provide a way to make
errors trigger a die instead of an exit(1).
Currently the module code is written as though the only way
it will be used is via the xsubpp script, so the library does
annoying things like calling exit() instead of die() to signal
an exception. It also uses print STDERR instead of warn,
which means the test code can't just use a $SIG{__WARN__} hook
to see its warnings, and instead has to include PrimitiveCapture
in the t directory. These two things combine annoyingly in our
test code such that when you break the module you can see tests
exiting early, but with no useful diagnostics as to why.
This patch reworks this to use "warn" instead of print STDERR,
and to provide a way to enable the use of "die" instead of exit.
Thus making debugging failing tests far easier.
|
|
|
|
| |
The upcoming C++23 and C23 standards add #elifdef, #elifndef.
|
|
|
|
|
|
|
| |
Also normalize warnings. It used to be if you created an alias
of the root function (0) no warning would be produced. Now
we will produce a warning, but we also allow symbolic references
to defuse the warning.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes you *want* to create multiple names for the same
functionality, but doing so with the ALIAS functionality requires
awkward workarounds. This adds a new "symbolic alias" that does
not warn on dupes as creating a dupe is its whole point. For a
symbolic alias the value is the name of an existing alias.
This also cleans up some of the warnings related to aliases so
we distinguish between when a duplicate is truly ignored or
where it overrides a previous value. And deal with a few other
edge cases properly.
|
|
|
|
|
|
|
|
|
|
| |
This patch makes it possible to omit some of the whitespace around
preprocessor directives. It teaches fetch_para() to understand
that a #else or #endif directive that does not end a #if that
was seen in the current "paragraph" should not be parsed as part
of that paragraph. This means that a conditional block that defines
the same sub under different define conditions need not have extra
whitespace after each sub definition.
|
|
|
|
| |
Make sure our output is deterministic.
|
|
|
|
|
|
| |
except when it doesn't (the -- arguments)
This came up during discussion of #20502, but is not a fix for it.
|
| |
|
| |
|
|
|
|
| |
This is consistent with other SvPV* variants that take a len parameter.
|
|
|
|
| |
This fixes GH #20419
|
|
|
|
|
|
|
|
|
|
|
|
| |
These macros were defined in perl.h using preprocessor conditionals,
but determining wheter I32 is "int" or "long" is pretty hard with
preprocessor, when INTSIZE == LONGSIZE. The Configure script
should know exact underlying type of I32, so it should be able to
determine whether %d or %ld shall be used to format I32 value
more robustly.
Various pre-configured files, such as uconfig.h, are updated to
align with this.
|
|
|
|
|
|
|
|
| |
The "ibb-perl" link prompts for a login, though other links like
"https://hackerone.com/perl" load without a login.
Perl also isn't listed under the ibb project itself at
"https://hackerone.com/ibb?type=team"
|
|
|
|
|
|
|
|
|
|
| |
Currently some tests have a 5 second timeout. If this is exceeded,
the test number is output as "not ok", along with "# Timeout" to
STDOUT. Change the latter to output to STDERR along with the test
filename and test number, for easer debugging of smoke logs.
(Really these test files need upgrading to use Test::* but that's a job
for another day and another person....)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
git on windows at least of 2.37.1 does not checkout symbolic links
as symbolic links, leaving them as files containing the filename
linked to.
This meant this test against .github/README.md failed, since it only
contained "../README": nothing that appears to be a copyright message
I considered testing that .github/README.md was a symbolic link
but 8975221916 suggests that it may eventually become more distinct
from the root README file, so instead check its size.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used the ARG() macro to access the parno data for the OPEN
and CLOSE regops. This made it difficult to find what needed to
change when the type and size or location of this data in the
node was modified. Replacing this access with a specific macro
makes the code more legible and future proof.
This was actually backported from finding everything that broke
by changing the regnode type for OPEN and CLOSE to 2L and moving
the paren parameter to the 2L slot. We might do something like this
in the future and separating the PARNO() macros from their
implementation will make it easier.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since 7169efc77525df70484a824bff4ceebd1fafc760, perl's core STMT_START
and STMT_END macros no longer try to use brace groups, due to the
warnings they can generate and their very limited usefulness.
That commit also changed Devel::PPPort to remove the use of brace groups
in STMT_START/STMT_END. That led to errors in older perls, so it was
partly reverted in e08ee3cb66f362c4901846a46014cfdfcd60326c. Since then,
various other macros have been improved to properly work with brace
groups enabled or disabled.
We can now remove the brace group using variant of STMT_START/STMT_END,
which will silence the warnings from clang.
|
|
|
|
|
|
|
|
|
|
| |
The macro for croak_sv when brace groups are not enabled uses
STMT_START/STMT_END. This works when used as a statement, but would
break if used as part of an expression.
To resolve this, change that macro to use a function. As a static inline
function with a namespaced name, it shouldn't cause problems with
namespace pollution.
|
|
|
|
|
|
|
| |
Win32 has had TEST_SWITCHES and TEST_FILES for ages. Unix has
TEST_ARGS. This extends Win32 to support TEST_ARGS as well. I
havent made the contrary change to the unix code, anyone using
TEST_SWITCHES is already using it on Win32.
|
|
|
|
|
|
|
| |
The original regex was off and showed this test as passing when
it was actually failing, which is what we expect and why the test
is marked as TODO. The test accidentally doubled the extension
expected in the filename, and this patch corrects that mistake.
|
| |
|
| |
|
|
|
|
|
| |
Previously this would complain it didn't know the object type
when preparing to call STORABLE_freeze.
|
|
|
|
|
|
|
|
|
|
|
| |
This produced an opaque message when it was asked to freeze an
object of an unsupported type. Changes:
- replace the opaque internal object type number with the typical perl name of the
type ("GLOB" instead of "8")
- include the class of the object being frozen to identify which class needs work
- include name of the function we're trying to call to do the freeze,
if possible
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In the first sample .xs file supplied for this branch, a function named
'dbh' was declared twice, once inside an 'ifdef', once outside. This
led me to think that that dual use of the string 'dbh' was the problem
EUPXS was stumbling upon.
However, that appears to be incorrect. If we supply a second sample .xs
file in which we use two different function names, we still get the
undesired warning.
|
| |
|
| |
|
|
|
|
| |
If something goes wrong, this wouldn't have known it
|
|
|
|
|
|
|
|
|
|
| |
Add `my` to synopsis.
Committer: Data-Dumper: Update $VERSION in POD. The release date no
longer appears in the POD, so let's remove the comment admonishing us to
update it.
For: https://github.com/Perl/perl5/pull/20224
|