| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
It puts both "use $];" and "bootstrap $package \$VERSION;" in the
generated test module, which is going to break if we ever remove
`indirect` from the current feature bundle.
Fix by making the method call direct instead.
|
|
|
|
|
| |
This release contains only the 1 byte fix for perl RT #132974
The Changes file is still incomplete (see cpan RT #122854)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"$XS_Constant{$type}" is almost always a 2nd PUSH on stack, but EU::C
only extended by 1, not 2. This mistake didn't become visible until
the panic assert was added 5.27.2
panic: XSUB Compress::Raw::Bzip2::constant (Bzip2.c) failed to extend arg
stack: base=1b13010, sp=1b13020, hwm=1b13018
Numbers in message are from my 64bit perl, so 0x1b13020-0x1b13018=0x8
which is one 64 bit pointer stack slot, which is exactly the mistake that
this patch fixes in EU::C. See RT ticket associated with this commit for
details.
|
| |
|
|
|
|
|
|
|
| |
The Changes file is still horriby out of date, and the trickier-to-fix (or
test) bugs remain open in RT, but it seems better to get a release out with
the fixed bugs than delay it further whilst figuring out the cleanest way to
fix the open bugs. The perfect is the enemy of the good.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C++11 changed from earlier versions to require space between the end of
a string literal and a macro, so that a feature can unambiguously be
added to the language. Starting in g++ 6.2, the compiler emits a
deprecation warning when there isn't a space (presumably so that future
versions can support C++11). This commit fixes ExtUtils::Constant
This patch also changes any affected lines that exceed 79 columns, as
specified by perlhack.
Code and modules included with the Perl core need to be compilable using
C++. This is so that perl can be embedded in C++ programs. (Actually,
only the hdr files need to be so compilable, but it would be hard to
test that just the hdrs are compilable.) So we need to accommodate
changes to the C++ language.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code generated by ExtUtils::Constant can look something like:
static int
constant (..., IV *iv_return) {
switch (...) {
case ...:
*iv_return = ...;
return PERL_constant_ISIV;
...
}
}
{
int type;
IV iv;
type = constant(..., &iv);
switch (type) {
case PERL_constant_ISIV:
PUSHi(iv);
...
}
}
and the compiler isn't clever enough to realise that the value of iv
is only used in the code path where its been set.
So initialise it to zero to shut gcc up. Ditto nv and pv.
|
|
|
|
|
|
|
|
|
|
| |
croak doesnt require a context param to be pushed on the c stack,
Perl_croak does, since Perl_croak/croak is very rarily called, minimize
the machine code of the error branches
don't do dTHX in thread aware XS code, this just sets up another my_perl
var for the scope of const-xs BOOT sum masking the original declared
my_perl in the outer C scope
|
|
|
|
|
| |
Spotted by dsteinbrunner@pobox.com, reported as CPAN #85527.
However, I think that the "to to" should be "to do", not "to".
|
|
|
|
|
|
|
|
| |
gcc (and probably others) was warning about a mismatch for between `int`
(implied by the format %d) and the actual type passed, `line_t`. Avoid this
by explicitly casting to UV, and using UVuf.
CPAN #63832
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Awaiting upstream application for many months now at:
https://rt.cpan.org/Public/Bug/Display.html?id=81249
But it's not at all clear that this module is even maintained as
the only two "maintainers" are former pumpkings who probably had
to become maintainers in order to cut a Perl release.
From the message originally submitted upstream:
It turns out the easiest and most robust way to handle the fact that
filename case may or may not be preserved is simply to do all
filename comparisons in a case blind fashion. This is safe to do
because there is no practical possibility of distinct filenames that
differ only by case, especially with the short list of well-known
files being considered here.
|
|
|
|
|
|
|
| |
Work round bugs with the value of ~0 on 5.005 built on 64 bit systems.
Convert @INC to absolute paths on 5.6.x so that
ExtUtils::Constant::Aaargh56Hash will load from blib.
Remove $runperl, which is no longer needed.
|
|
|
|
|
| |
Avoid warnings from letting 5.005 even think about POSIX charclass constants
in regexps, and use compile-time constants to enable backcompat features.
|
|
|
|
|
|
| |
This avoids makes them work on 5.6.2 again, where the fact that the "XS" glob is
also used elsewhere in the tests triggered what seems to be a bug that causes
*XS to lose it's "q" magic.
|
|
|
|
|
|
|
|
|
| |
The reason being that all entries in the tables are guarded
with #ifdef, so if none of the symbols are defined, then we
still end up with an empty table. This actually happens in
the POSIX module on Windows for the "yes" table.
This reverts commit c553cca0 and changes based on it.
|
|
|
|
|
| |
With some compilers NULL is ((void *)0) which isn't type compatible
with the integer returned by hv_exists_ent().
|
|
|
|
|
| |
Typically this would be 'EXPORT_OK', to add all constants to the @EXPORT_OK
array for this package.
|
| |
|
|
|
|
|
|
| |
(Follow on from 4639bd9c727433ad)
For modules such as File::Glob and I18N::Langinfo, which always define all
constants on all platforms, this saves about 700 bytes of object code.
|
|
|
|
| |
This saves the store having to (re)compute the hash.
|
| |
|
|
|
|
|
|
|
| |
For modules such as File::Glob and I18N::Langinfo, which always define all
constants on all platforms, this saves about 1K of object code, plus 1 (empty)
anonymous hash (per process or thread) in
%ExtUtils::Constant::ProxySubs::Missing.
|
|
|
|
| |
All others remain within the scope of the BOOT block.
|
|
|
|
|
|
| |
Use a lexical in place of repeated lc()'s in WriteConstants.
Require ExtUtils::Constant::ProxySubs early, to avoid leaving empty files if it
fails for any reason.
|
| |
|
|
|
|
|
|
|
|
|
| |
Like croak_on_error, this is only useful with the Proxy Constant Subroutine
code, as that adds all known constants to the symbol table at compile time.
The (obvious) additional restriction is that directly implementing AUTOLOAD
is only useful if the package wishes to perform no other autoloading, and to
treat all autoload requests as (failed) constant lookups (with errors describing
them as such).
|
|
|
|
|
|
|
| |
This is only useful with the code that generates Proxy Constant Subroutines, as
this adds all known constants to the symbol table at compile time, meaning that
the only calls to AUTOLOAD will be to load constants not available on this
platform, or for invalid constant names.
|
|
|
|
| |
This was missed from change 575f055216d48b9f.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Previously the code was using the #ifdef generated by macro_to_ifdef(), and
immediately following that with an #else. That was ugly. And longer.
|
|
|
|
|
| |
Previously it was using hv_exists(), requiring extra code to unpack the SV and
convert it to the correct string form for the hash API.
|
|
|