| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
They're widely used on CPAN, especially safemalloc.
|
|
|
|
|
|
| |
Making these a single entry makes perlapi more concise with less
repetition, and clarifies the similarities and distinctions between the
variant forms.
|
|
|
|
|
| |
This commit consolidates the D form of each function in perlapi with the
plain form.
|
| |
|
|
|
|
| |
To make sure at compile time that its argument is a ptr
|
|
|
|
|
| |
This is intended to make it obvious what this relatively obscure C
construct is doing.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This existed because there wasn't a compiler bool necessarily, and
made complicated to workaround a bug in an AIX compiler as of 2010-ish.
Now that C99 is required, there always is a bool type; we don't know if
the bug existed in a C99 mode for the broken compiler, and sufficient
time has passed that it should have been fixed nonetheless.
This was tested on
IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72)
Version: 12.01.0000.0012
which dates to about 2012.
|
|
|
|
|
|
| |
This is no longer used in core. It occurs twice in metacpan, both to
define it so as to fool core into thinking it is there; hence it isn't
actually used at all in cpan.
|
|
|
|
|
|
|
|
|
|
| |
Now that C99 is required, bool is always defined, so HAS_BOOL should
also always be defined.
PERL_BOOL_AS_CHAR was used to workaround problems when no bool type
existed, so it is obsolete, and in fact perl won't compile if
PERL_BOOL_AS_CHAR is #defined. So remove it completely from being
looked at.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This had been changed by 9555181b32f9b30122a8ea4e779c2c9916cec9f8 to
evaluating multiple times.
(sizeof() also is called with the parameter, but that doesn't actually
evaluate the parameter.)
The previous version of this commit used a comparison with 0xFF, but gcc
is smart enough to realise that `comparison is always true due to limited
range of data type`, but not smart enough to realise that the sizeof makes
that code unreachable. Hence with -Wtype-limits we get thousands of warnings.
Using >> defeats the warnings.
|
|
|
|
| |
See https://github.com/Perl/perl5/issues/18655, which this fixes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These macros use
(x) | 0
to get a compiler error if x is a pointer rather than a value. This was
instituted because there was confusion in them as to what they were
called with.
But the purpose of the paradigm wasn't obvious to even some experts; it
was documented in every file in which it was used, but not at every
occurrence. And, not every compiler can cope with them, it turns out.
Making the paradigm into a macro, which this commit does, makes the uses
self-documenting, albeit at the expense of cluttering up the macro
definition somewhat; and allows the mechanism to be turned off if
necessary for some compilers. Since it will be enabled for the majority
of compilers, the potential bugs will be caught anyway.
|
|
|
|
|
|
|
|
|
|
| |
I found this reading code. The macro is supposed to check for something
not being in the ASCII range, but instead checked that the input is
invariant under UTF-8. These concepts evaluate to the same thing on
ASCII platforms, but differently on EBCDIC ones. The calls to this
macro are such that there isn't a bug that surfaces here, but the code
generated is slightly different, and it should be fixed to prevent any
future issues.
|
|
|
|
| |
The previous commit stopped using this code, so can just get rid of it.
|
|
|
|
|
| |
By using a cast to U8, the '&' operation can be elminated, and the macro
easier to read.
|
|
|
|
|
|
| |
This finishes the work started by
3cb048e540f681a46e641b466030b55feaf5d337 for toLOWERfoo, using the same
paradigm, for the rest of the case changing macros and functions.
|
|
|
|
|
|
| |
The prior code had a comment that indicated uncertainty about its
correctness. I found a case where it didn't work, and am changing it
accordingly. I have more confidence that this is right.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This just detabifies to get rid of the mixed tab/space indentation.
Applying consistent indentation and dealing with other tabs are another issue.
Done with `expand -i`.
* vutil.* left alone, it's part of version.
* Left regen managed files alone for now.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This effectively reverts commit
4c2aa7c802893d0276551ade1b9d5dcd1226afc4.
That commit removed checking for 16 bit inputs because an assert in a
macro was making compilations fail in some compilers that couldn't
handle the complexity. This inadvertently broke systems which use C
language shorts in certain places, such Mingw and Win32 with their use
of UTF16, not typically found on other platforms. At the time, we
weren't smoking Mingw so we didn't know about it there, but the Win32
failures on Win32 were "fixed" by another commit which disabled
assertions of this type completely. It turns out the issue was passing
too long a string to assert(). Commits 92a0bb2 and 88086fd removed a
bunch of unnecessary and/or duplicate asserts, bringing the size down,
so that the 16 bit checks can be added back in without breaking these
compilers.
The reverted commit mentioned HP compilers as having problems. The only
such box we currently have available for testing is HP-31, and the
reversion works fine on it, even before 92a0bb2 and 88086fd.
This fixes GH #18364
|
|
|
|
|
|
|
|
|
|
| |
This commit splits these macros up into components that are separately
callable. The components are considered internal core only, and the
purpose is to avoid duplicate assert() calls that were causing some
compilers to crash from not being able to handle the size.
In particular, this commit refactors inRANGE so that the asserts are
done only once, shortening what it expands to.
|
| |
|
|
|
|
| |
This fixes GH #18379
|
|
|
|
|
|
| |
The names were intended to force people to not use them outside their
intended scopes. But by restricting those scopes in the first place, we
don't need such unwieldy names
|
|
|
|
|
| |
I added these some releases ago, but kept them private. No untoward
things have happened, so I'm now making them API.
|
|
|
|
|
|
| |
Actually trying to compile these with Devel::PPPort revealed that there
were combinations of the conditionals which led to some of the symbols
not getting defined.
|
|
|
|
|
|
|
|
|
|
|
| |
This feature allows documentation destined for perlapi or perlintern to
be split into sections of related functions, no matter where the
documentation source is. Prior to this commit the line had to contain
the exact text of the title of the section. Now it can be a $variable
name that autodoc.pl expands to the title. It still has to be an exact
match for the variable in autodoc, but now, the expanded text can be
changed in autodoc alone, without other files needing to be updated at
the same time.
|
| |
|
|
|
|
| |
so suppress the usage line.
|
| |
|
|
|
|
|
|
|
|
|
| |
For: https://github.com/Perl/perl5/pull/18201
Committer: Samanta Navarro is now a Perl author.
To keep 'make test_porting' happy: Increment $VERSION in several files.
Regenerate uconfig.h via './perl -Ilib regen/uconfig_h.pl'.
|
|
|
|
| |
These were wrong, and Devel::PPPort found the mistakes.
|
| |
|
|
|
|
| |
These macros accept any UV as input, but not a signed number
|
| |
|
|
|
|
|
| |
We already have a macro that expands to what this code does; it's
clearer to use it.
|
| |
|
|
|
|
| |
Now that we have the tools to show these as a whole list, do so
|
| |
|
| |
|
|
|
|
| |
This is a flags parameter, not a particular single flag
|
|
|
|
| |
The character classification macro variants are now presented as a list
|
|
|
|
|
| |
The character case change macro variants are now displayed all
together
|
|
|
|
|
| |
This uses a new organization of sections that I came up with. I asked
for comments on p5p, but there were none.
|
|
|
|
|
| |
apidoc_section is slightly favored over head1, as it is known only to
autodoc, and can't be confused with real pod.
|
|
|
|
|
|
|
|
|
|
|
| |
handy.h was recently updated in 4a1bbd3d but
this is not using the accurate definitions
of the new semantic versions introduced as part of #18020
They are:
- PERL_VERSION_MAJOR
- PERL_VERSION_MINOR
- PERL_VERSION_PATCH
|
|
|
|
|
|
|
|
|
|
|
|
| |
This modifies the macros introduced in
9b6e95106e18e4fd33678d0df9b2293fd4f8ab9c that allow one to determine how
the version of the perl currently being compiled compares to an
arbitrary one. The modification is based on changes in the plan,
including renaming of variables.
This also introduces the use of '*' for the subversion (or micro as it
is now called) to make conversion from the soon-to-be deprecated
PERL_VERSION macro more rote, with less thinking involved.
|