summaryrefslogtreecommitdiff
path: root/cpan/ExtUtils-Constant
Commit message (Collapse)AuthorAgeFilesLines
* ExtUtils-Constant: Fix to work on EBCDICKarl Williamson2022-04-172-2/+6
|
* Fix indirect method call in ExtUtils::Constant testDagfinn Ilmari Mannsåker2020-07-301-1/+1
| | | | | | | | 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.
* Bump version to 0.25.Nicholas Clark2018-04-181-1/+1
| | | | | This release contains only the 1 byte fix for perl RT #132974 The Changes file is still incomplete (see cpan RT #122854)
* ExtUtils::Constant fix "panic: failed to extend arg stack"Daniel Dragan2018-04-181-1/+1
| | | | | | | | | | | | | | "$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.
* Bump version to 0.24_50.Nicholas Clark2018-04-181-1/+1
|
* Bump ExtUtils::Constant version to 0.24.Nicholas Clark2017-08-081-1/+1
| | | | | | | 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.
* ExtUtils::Constant: Remove impediment to compiling under C++11Karl Williamson2017-08-081-3/+4
| | | | | | | | | | | | | | | | | 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.
* EU::Constant: avoid 'uninit' warningDavid Mitchell2017-08-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* ExtUtils::Constant - better machine code on threaded perlDaniel Dragan2017-08-081-10/+8
| | | | | | | | | | 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
* Typo fixes.Nicholas Clark2017-08-082-5/+6
| | | | | Spotted by dsteinbrunner@pobox.com, reported as CPAN #85527. However, I think that the "to to" should be "to do", not "to".
* Avoid compiler warnings due to mismatched types in *printf format strings.Robin Barker2017-08-081-3/+4
| | | | | | | | 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
* Fix ExtUtils::Constant test failure on VMS.Craig A. Berry2013-05-311-27/+3
| | | | | | | | | | | | | | | | | | | 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.
* Refactor ExtUtils::Constant's tests to pass cleanly on older versions.Nicholas Clark2010-12-171-11/+24
| | | | | | | 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.
* Refactor ExtUtils::Constant::Utils backwards compatibility code.Nicholas Clark2010-12-171-16/+20
| | | | | Avoid warnings from letting 5.005 even think about POSIX charclass constants in regexps, and use compile-time constants to enable backcompat features.
* Localise temporary FHs in the EU::Constant testsFlorian Ragwitz2010-12-101-0/+3
| | | | | | 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.
* For PROXYSUBS, tables may sometimes have no entries.Jan Dubois2010-10-251-4/+6
| | | | | | | | | 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.
* use compatible types in a conditional expressionTony Cook2010-10-251-1/+1
| | | | | With some compilers NULL is ((void *)0) which isn't type compatible with the integer returned by hv_exists_ent().
* For PROXYSUBS, add an option to push all constants' names onto an array.Nicholas Clark2010-10-231-13/+47
| | | | | Typically this would be 'EXPORT_OK', to add all constants to the @EXPORT_OK array for this package.
* For PROXYSUBS, allow an explicit XS_SUBNAME of undef to suppress its generation.Nicholas Clark2010-10-231-4/+7
|
* For PROXYSUBS, also avoid calling get_missing_hash() in the XS constant code.Nicholas Clark2010-10-231-4/+16
| | | | | | (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.
* For PROXYSUBS, get the hash from the fetch to pass to the subsequent store.Nicholas Clark2010-10-221-8/+17
| | | | This saves the store having to (re)compute the hash.
* For PROXYSUBS, loop with do {} not while, as there is always at least 1 entry.Nicholas Clark2010-10-221-3/+2
|
* For PROXYSUBS, avoid calling get_missing_hash() if all symbols are present.Nicholas Clark2010-10-221-61/+56
| | | | | | | 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.
* For PROXYSUBS, give the notfound struct file scope.Nicholas Clark2010-10-221-8/+11
| | | | All others remain within the scope of the BOOT block.
* Minor refactor of ExtUtils::Constant::ProxySubs.Nicholas Clark2010-10-222-5/+8
| | | | | | 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.
* For PROXYSUBS error messages, generate more efficient code for -Uusethreads.Nicholas Clark2010-10-211-4/+21
|
* Add an option autoload to PROXYSUBS, to generate an AUTOLOAD subroutine.Nicholas Clark2010-10-211-7/+25
| | | | | | | | | 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).
* Add option croak_on_error to PROXYSUBS, to directly croak() the error message.Nicholas Clark2010-10-212-4/+38
| | | | | | | 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.
* Remove unused variable len from code generated by ExtUtils::Constant::ProxySubsNicholas Clark2010-10-191-2/+0
| | | | This was missed from change 575f055216d48b9f.
* Improve the generated C code for $xs_subname for Proxy Constant Subroutines.Nicholas Clark2010-10-191-5/+4
|
* Add missing newline to macro_to_ifndef in ExtUtils::Constant::BaseJerry D. Hedden2010-09-221-1/+1
|
* ExtUtils::Constant::ProxySubs should use mro_method_changed_in() if available.Nicholas Clark2010-09-211-1/+10
|
* Add macro_to_ifndef to ExtUtils::Constant::Base, and use it in place of #elseNicholas Clark2010-09-212-4/+17
| | | | | Previously the code was using the #ifdef generated by macro_to_ifdef(), and immediately following that with an #else. That was ugly. And longer.
* Tweak ExtUtils::Constant::ProxySubs to use hv_exists_ent().Nicholas Clark2010-09-211-3/+2
| | | | | 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.
* Move ExtUtils::Constant from ext/ to cpan/Nicholas Clark2009-10-026-0/+3560