summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* speed up building with less disk IO pod moves+__END__+miscDaniel Dragan2014-10-131-344/+345
| | | | | | | | | | In Cwd.pm, dont search for pwd on Win32. Also trim down the list of makefile suffixes on Win32 so it doesn't try searching for av.pas and perl.f90 and hash.cbl on disk. Add __END__ tokens to stop the last read() call on the handle which returns 0 bytes at EOF.
* B: Document GPFLAGSFather Chrysostomos2014-10-121-0/+4
|
* Add support for Linux pipe buffer size fcntl commandsDagfinn Ilmari Mannsåker2014-10-132-3/+5
| | | | | This lets us make t/io/eintr.t more reliable by making sure we're actually writing more than the buffer size.
* Deparse lvalue referencesFather Chrysostomos2014-10-111-0/+4
|
* Add lvavref op typeFather Chrysostomos2014-10-111-1/+1
| | | | | This will be used for slurpy array ref assignments. \(@a) = \(@b) will make @a share the same elements as @b.
* Add lvrefslice op typeFather Chrysostomos2014-10-101-1/+1
|
* Add lvref op typeFather Chrysostomos2014-10-101-1/+1
|
* Increase $Opcode::VERSION to 1.29Father Chrysostomos2014-10-101-1/+1
|
* Add refassign op typeFather Chrysostomos2014-10-101-1/+1
|
* move dMY_CXT in dlutils.c closer to first useDaniel Dragan2014-10-101-3/+5
| | | | | | | | By computing dMY_CXT right before its first and usually last use, my_cxt pointer doesn't need to be carried across function calls in SaveError. This frees a C stack auto and/or register from being saved and restored in SaveError. On VC 2003 32 bits -O1 threaded, the machine code size in bytes dropped from 0x72 to 0x70 after this patch.
* remove dl_nonlazy global if unused in DynaloaderDaniel Dragan2014-10-104-2/+14
| | | | | | | | Saves an int of memory per interp. Removes a env var lookup, and on Win32 also remove a registry check for PERL_DL_NONLAZY. This speeds up start up time of interp a tiny bit. While platforms other than hpux and dlopen use RTLD_LAZY, they use it unconditionally ignoring PERL_DL_NONLAZY. I am not judging that decision in this commit.
* Version bump for e6425454.Jarkko Hietaniemi2014-10-081-1/+1
|
* Add various *BSD O_ constants.Jarkko Hietaniemi2014-10-082-6/+11
|
* fix attributes memcmp without len<6 (asan catch)Reini Urban2014-10-082-2/+2
|
* Mollify concise-xs.tFather Chrysostomos2014-10-061-0/+1
|
* Make OP_METHOD* to be of new class METHOPsyber2014-10-034-31/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new opcode class, METHOP, which will hold class/method related info needed at runtime to improve performance of class/object method calls, then change OP_METHOD and OP_METHOD_NAMED from being UNOP/SVOP to being METHOP. Note that because OP_METHOD is a UNOP with an op_first, while OP_METHOD_NAMED is an SVOP, the first field of the METHOP structure is a union holding either op_first or op_sv. This was seen as less messy than having to introduce two new op classes. The new op class's character is '.' Nothing has changed in functionality and/or performance by this commit. It just introduces new structure which will be extended with extra fields and used in later commits. Added METHOP constructors: - newMETHOP() for method ops with dynamic method names. The only optype for this op is OP_METHOD. - newMETHOP_named() for method ops with constant method names. Optypes for this op are: OP_METHOD_NAMED (currently) and (later) OP_METHOD_SUPER, OP_METHOD_REDIR, OP_METHOD_NEXT, OP_METHOD_NEXTCAN, OP_METHOD_MAYBENEXT (This commit includes fixups by davem)
* Keep concise-xs.t happyFather Chrysostomos2014-10-021-0/+1
|
* Tighten uses of regex synthetic start classKarl Williamson2014-09-291-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A synthetic start class (SSC) is generated by the regular expression pattern compiler to give a consolidation of all the possible things that can match at the beginning of where a pattern can possibly match. For example qr/a?bfoo/; requires the match to begin with either an 'a' or a 'b'. There are no other possibilities. We can set things up to quickly scan for either of these in the target string, and only when one of these is found do we need to look for 'foo'. There is an overhead associated with using SSCs. If the number of possibilities that the SSC excludes is relatively small, it can be counter-productive to use them. This patch creates a crude sieve to decide whether to use an SSC or not. If the SSC doesn't exclude at least half the "likely" possiblities, it is discarded. This patch is a starting point, and can be refined if necessary as we gain experience. See thread beginning with http://nntp.perl.org/group/perl.perl5.porters/212644 In many patterns, no SSC is generated; and with the advent of tries, SSC's have become less important, so whatever we do is not terribly critical.
* B/Makefile.PL: Allow constants to be long/unsignedKarl Williamson2014-09-291-4/+8
| | | | | This looks for numerical constants, but failed to see long and/or unsigned ones, which have suffixes U and/or L, or lowercase u and/or l.
* Deprecate multiple "x" in "/xx"Karl Williamson2014-09-292-4/+22
| | | | | | | | | | It is planned for a future Perl release to have /xx mean something different from just /x. To prepare for this, this commit raises a deprecation warning if someone currently has this usage. A grep of CPAN did not turn up any instances of this, but this is to be safe anyway. The added code is more general than actually needed, in case we want to do this for another flag.
* Make space for /xx flagKarl Williamson2014-09-293-4/+5
| | | | | | This doesn't actually use the flag yet. We no longer have to make version-dependent changes to ext/Devel-Peek/t/Peek.t, (it being in /ext) so this doesn't
* Fix start-of-string error in tovmsspec.Craig A. Berry2014-09-281-0/+2
| | | | | | | | | | | When translating a filespec starting with an extended character, say C<+foo>, from Unix to VMS format, we were inadvertently skipping over the first character and thus not translating it to C<^+foo> with the caret escape prepended to the plus sign as we should have been. This fixes a fairly new test failure in ExtUtils::Manifest where a filename starts with a single quote.
* Add tests for a51d618a fix of RT #122283Yves Orton2014-09-283-4/+72
| | | | | | | | | | | | | | | | | | | | | Add a new re debug mode for outputing stuff useful for testing. In this case we count the number of times that we go through study_chunk. With a51d618a we should do 5 times (or less) when we traverse the test pattern. Without a51d618a we recurse 11 times. In the case of RT #122283 we would do gazilions of recursions, so many I never let it run to finish. / (?(DEFINE)(?<foo>foo)) (?(DEFINE)(?<bar>(?&foo)bar)) (?(DEFINE)(?<baz>(?&bar)baz)) (?(DEFINE)(?<bop>(?&baz)bop)) /x I say "or less" because you could argue that since these defines are never called, we should not actually recurse at all, and should maybe just compile this as a simple empty pattern.
* Tru64: introduce PERL_SYS_FPU_INIT, use it.Jarkko Hietaniemi2014-09-261-1/+3
| | | | | | | In Tru64 the cc -ieee enables the IEEE math but disables traps. We need to reenable the "invalid" trap because otherwise generation of NaN values leaves the IEEE fp flags in bad state, leaving any further fp ops behaving strangely (Inf + 1 resulting in zero, for example).
* Tru64: Floating-point rounding control.Jarkko Hietaniemi2014-09-261-0/+16
|
* Tru64: Do not undef c99_isunordered.Jarkko Hietaniemi2014-09-261-1/+1
|
* Tru64 nan() function broken.Jarkko Hietaniemi2014-09-261-3/+5
| | | | | | | Exists in libm, but no proto or man page, probably for a reason. Return values seem to be garbage, or at least not NaN. Also add a todo for the nan() payload.
* 9d491117 missed one spot.Jarkko Hietaniemi2014-09-261-1/+0
|
* POSIX math: FP_ROUND, not FE_ROUND.Jarkko Hietaniemi2014-09-261-1/+1
|
* POSIX math: Match FE_ and FLT_ROUNDS with the GNU defaults.Jarkko Hietaniemi2014-09-261-8/+8
| | | | (The C99 defines no preferred values.)
* POSIX math: map FLT_ROUNDS to C99 values.Jarkko Hietaniemi2014-09-261-2/+8
| | | | (And try FLT_ROUNDS last.)
* POSIX math: default to fail, no default.Jarkko Hietaniemi2014-09-261-3/+4
|
* Bump $Errno::VERSION for previous commitsSteve Hay2014-09-251-1/+1
|
* Errno parsing: Skip expressions containing function names etcSteve Hay2014-09-251-1/+1
| | | | | | | | | | Expressions containing a function name are no more eval()able than expressions which are just a function name, so skip them too. This also picks up on text in the expression and stops eval()s from whining about "String found where operator expected" on Win32 (with VC10) on expressions like L"\\Enlistment\\" and (sizeof(L"\\Enlistment\\")+(38*sizeof(WCHAR))), encountered when parsing ENLISTMENT_OBJECT_PATH and ENLISTMENT_OBJECT_NAME_LENGTH_IN_BYTES respectively.
* Errno parsing: Don't match hex numbers in parts of function namesSteve Hay2014-09-251-2/+2
| | | | | | This stops __stdcall being seen as a hex number and turned into __stdca. Also include _ in the pattern to match function names so that that gets skipped anyway.
* Tweak Errno parsing some moreSteve Hay2014-09-251-1/+1
| | | | | | | This requires there to be something present in the "0xcafebabe" part of the "((type)0xcafebabe)" (et alia) pattern, otherwise it can end up matching things that it shouldn't. (The "type" part is already required to be non-empty.)
* Improve Errno parsing of Win32 outputSteve Hay2014-09-251-1/+1
| | | | | | | | | This allows us to pluck "0xC038000FL" rather than "(0xC038000FL" out of "(DWORD)(0xC038000FL)", which means we go into the hex case rather than the eval case, and get the desired result (hex '0xC038000F' returns 3224895503, whereas eval '(0xC038000F' returns nothing). Also allows for "((DWORD)(0xC038000FL))" and other existing formats.
* Peek.t should not expect PADMY under 5.21.5Father Chrysostomos2014-09-241-13/+13
|
* Increase $XS::APItest::VERSION to 0.65Father Chrysostomos2014-09-241-1/+1
|
* Add flags to cv_name; allow unqualified retvalFather Chrysostomos2014-09-242-2/+30
| | | | | | | | | | One of the main purposes of cv_name was to provide a way for CPAN mod- ules easily to obtain the name of a sub. As written, it was not actually sufficient, as some modules, such as Devel::Declare, need an unqualified name. So I am breaking compatibility with 5.21.4 (which introduced cv_name, but is only a dev release) by adding a flags parameter.
* Add GPFLAGS and GPf_* to BFather Chrysostomos2014-09-233-1/+11
|
* Increase $B::VERSION to 1.52Father Chrysostomos2014-09-221-1/+1
|
* gv.h: Make gp_line and gp_flags into a bitfieldFather Chrysostomos2014-09-221-5/+4
| | | | | | This reduces the allocated size on Windows, where an extra header is added to what gets allocated. See <https://rt.perl.org/Ticket/Display.html?id=15667#txn-1309657>.
* Peek.t: Drop 5.8 supportFather Chrysostomos2014-09-221-85/+20
| | | | | | There is no reason these tests need to run on such an old version any more, and this is getting in the way of something I am trying to do.
* POSIX math: add todo about the macro interface emulations.Jarkko Hietaniemi2014-09-221-0/+5
|
* PATCH: [perl #122252] international currency formatting (POSIX.1-2008)Andrew Fresh2014-09-224-4/+37
| | | | | | | | Add the new portions of locale currency formatting that are specified in POSIX.1-2008 The commiter (Karl Williamson) made the trivial indentation changes asked for by H. Merijn Brand, and added a perldelta entry
* Yet more Peek.t fix-upsFather Chrysostomos2014-09-201-6/+9
|
* Peek.t: This read-only stuff came after 5.21.4Father Chrysostomos2014-09-201-14/+14
|
* More Peek.t fix-upsFather Chrysostomos2014-09-201-6/+13
|
* Peek.t fix-upFather Chrysostomos2014-09-201-3/+4
|