summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fixes to make test pass for regexp nocapture bit addition.Matthew Horsfall (alh)2014-12-282-3/+3
| | | | | | | | | | | * Make Devel-Peek/t/Peek.t less sensitive to regexp flag changes. Devel-Peek had flag names and binary representation hardcoded. Flag names *should* be enough. Otherwise we have to update bits of this test every time we muck with flags that don't affect the flags being tested. * Let B::Deparse know about the new RXf_PMf_CHARSET shift value.
* Create bit for /n.Karl Williamson2014-12-284-19/+22
|
* Fix various "CPAN only" warnings for cpan/ modules in Porting/Maintainers.plSteve Hay2014-12-281-9/+10
|
* Note that threads is currently customized in bleadSteve Hay2014-12-282-0/+6
|
* pp_hot.c:pp_concat: Remove SvGETMAGICFather Chrysostomos2014-12-271-3/+0
| | | | | | | If the operand is magical, try_amagic_bin will already have copied the operand if both left and right were the same, so left == right will no longer be true by the time this path is reached. This has been the case since v5.13.11-400-g75ea7a1.
* pp_hot.c:pp_concat: Remove PUTBACK/SPAGAINFather Chrysostomos2014-12-271-3/+0
| | | | | sv_utf8_upgrade_nomg does not reallocate the stack, as of v5.19.6-25-g7a3f960.
* Use gmtime’s targetFather Chrysostomos2014-12-271-2/+4
| | | | | | | | | | gmtime has a target allocated for it, but it hasn’t used that target since 46fc3d4c6 (inseparable changes from match from perl-5.003_97g to perl-5.003_97h, probably the ‘Mondo Cool patch’ mentioned in the com- mit message). There is no reason not to use it and avoid allocating a fresh SV with each scalar-context call.
* pp_sys.c:pp_gmtime: Remove redundant EXTEND_MORTALFather Chrysostomos2014-12-271-1/+0
| | | | | | | | | | The purpose of EXTEND_MORTAL is to extend the mortals stack only once before pushing multiple items. Here we are just going to push one item, so extending it gains us nothing, as sv_2mortal is going to do that anyway. Moreover, we will not even be using the mortals stack if there has been an error.
* op.c: Remove assert exception for OP_REPEATFather Chrysostomos2014-12-271-7/+0
| | | | I changed the op tree in v5.21.5-101-g5e46266.
* op.h: Parenthesize macro args for cUNOPx etc.Father Chrysostomos2014-12-271-12/+12
| | | | | Without this, we cannot do cUNOPx(complex expression) without worrying about precedence issues.
* perlop: Mention ~ among ops that vary by typeFather Chrysostomos2014-12-271-1/+1
|
* const the PerlIO vtablesDaniel Dragan2014-12-272-7/+5
| | | | | | | | | | | Previously the PerlIO vtables were const only on PERL_GLOBAL_STRUCT_PRIVATE builds, which was created for former Symbian port and today is rarely used. Since writing/hooking the PerlIO vtables from XS has never been public API and is very unlikely to be occuring on CPAN, make then const so they will be shared between perl processes. b4 VC2008 x64 perl521.dll .rdata section 0x7293C bytes, .data 0x34B0 bytes after .rdata 0x7321C .data 0x2BD0
* Update autodie to CPAN version 2.26Chris 'BinGOs' Williams2014-12-2735-96/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [DELTA] 2.26 2014-12-26 16:27:23+00:00 UTC * BUGFIX / INCOMPAT: Remove "fileno" and "umask" from the list of CORE subs protected by autodie and Fatal. When they return undef, it is not a failure. * BUGFIX: Fixed an error that could occur during global destruction of the form "(in cleanup) Can't use an undefined value as an ARRAY reference at .../autodie/Scope/GuardStack.pm line 48 during global destruction" (Thanks to Dave Rolsky). * BUGFIX: The open-pragma is now properly ignored when open is given an explicit layer. This brings autodie protected open in sync with open. Thanks to Gregory Oschwald and Graham Knop for the report + test case and the patch. (GH#52 + GH#53) * BUGFIX: Hide the "SCALAR" (buffer) argument in the string representation of autodie::exception for the read, sysread and syswrite CORE subs. This is to avoid a dump of binary data to the screen/log when a (sys)read or syswrite fails. * FEATURE: Let autodie::exception work in equality tests and string comparison via "overload fallback". (Thanks to Michael G. Schwern) * DOC: Mention that "kill" is in the ":ipc" category. It has been there since autodie v2.14. (Thanks to Felipe Gasper for reporting it, RT#97320). * INTERNAL: Use "parent" instead of "base" for inheritance. Also avoid some @ISA relationships that were redundant. Either truly redundant ones or by importing "import" from Exporter v5.57. - This change implies that perl 5.8 users must now also fetch "parent" from cpan. (Thanks to Olivier Mengué, GH#59) * DEVEL / TEST: The autodie module now accepts an undefined Fatal version, assuming it to be development version. Test cases that require versions are now either skipped or considered "release" test. * TEST / INTERNAL: Enabled travis-ci for Perl 5.20 * TEST: Close temp file before re-opening in t/truncate.t. (Thanks to Craig A. Berry, RT#96609) * TEST: Pass O_TRUNC with O_CREAT to sysopen in t/utf8_open.t. (Thanks to Craig A. Berry, RT#87237) * TEST: Clean up temp file in t/truncate.t. (Thanks to Dave Mitchell, RT#100688)
* Update ExtUtils-Command to CPAN version 1.19Chris 'BinGOs' Williams2014-12-272-13/+20
|
* perlfunc: another alternative for enabling the "state" featureSlaven Rezic2014-12-261-1/+2
|
* optimize CLEAR_ERRSVDaniel Dragan2014-12-261-7/+10
| | | | | | | | | | | | | | | | | | -gv_add_by_type is special only for non-GVs, and add AV to GV, otherwise it is just assigning to GP slot (in this case through GvSV), which CLEAR_ERRSV already did in another branch, so inline the gv_add_by_type -dont compute GvSV multiple times, GvSV contains 2 derefs, after this patch it will contains just 1 deref ("*svp") without an offset (deref without offset is smaller in x86 machine code than deref with offset) -SvREFCNT_dec_NN for efficiency -move SvPOK_only closer to SvMAGICAL, this ensures SvFLAGS is read and written only once, not 2 reads and 1 write, this is specifically for RISC-ish cpus -the goto clresv_newemptypv is because VC optimizer in -O1 didn't combine the branches perl521.dll VC 2003 before .text section size in machine code bytes 0xc8a63, after 0xc88e3
* win32/win32.c Perl_croak->croak_xs_usageDaniel Dragan2014-12-261-1/+1
| | | | | When this XSUB was written croak_xs_usage didn't exist. Now it does. Use it so the error string is shorter in the perl binary.
* const the core magic vtablesDaniel Dragan2014-12-261-8/+1
| | | | | | | | | | | | | | | | | | A remark in http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115113.html caused commit bc028b6b7f / http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115116.html . That remark is not true according to http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115115.html and http://www.nntp.perl.org/group/perl.perl5.porters/2013/01/msg197318.html . To save memory between perl processes, const the tables so the memory is shared by the OS between perl processes. b4 .rdata section of x64 VC 2008 miniperl 0x667EE bytes .data 0x3440 bytes after .rdata 0x66FAE .data 0x2C80, 0x3440-0x2C80=0x7C0 saved, based on the .data section size crossing a page boundary this saved 4K of per process memory on Win64 miniperl.
* document Perl_sv_getbackrefs() in perldeltaYves Orton2014-12-261-0/+8
|
* [perl #123502] isnan identifier can't be used as a varDaniel Dragan2014-12-261-3/+3
| | | | | | | | | | | cl -c -nologo -GF -W3 -I..\lib\CORE -I.\include -I. -I.. -DWIN32 -D_CONS OLE -DNO_STRICT -DPERLDLL -DPERL_CORE -O1 -MD -Zi -DNDEBUG -G7 -GL -DPERL_EXTE RNAL_GLOB -DPERL_IS_MINIPERL -Fo.\mini\pp_sys.obj ..\pp_sys.c pp_sys.c ..\pp_sys.c(4610) : error C2063: '_isnan' : not a function NMAKE : fatal error U1077: 'cl' : return code '0x2' See RT ticket for details.
* perl5220delta: B::Generate is fixedFather Chrysostomos2014-12-261-4/+0
|
* [perl #123495] Stop gmtime(nan) from crashingFather Chrysostomos2014-12-253-2/+32
| | | | | | | | | | | | | | | | | | | | | | We were getting a time struct like this: $12 = { tm_sec = -2147483588, tm_min = 2147483647, tm_hour = -2147483624, tm_mday = -2147483647, tm_mon = 11, tm_year = 69, tm_wday = -2147483641, tm_yday = -2147483314, tm_isdst = 0, tm_gmtoff = 0, tm_zone = 0x1004f6bb6 "UTC" } which resulted in dayname[tmbuf.tm_wday] reading past the beginning of the array. We should check for nan explicitly instead of falling through to the time calculations.
* automatically sort the MANIFEST if necessaryYves Orton2014-12-252-1/+12
| | | | | | | | | | Instead of harrasing people to sort the manifest in our tests, we can just automatically sort the manifest when it changes. That way the tests are actually testing that the auto-sort worked, and not that our devs put the new file in the right place.
* add cast to make c++ happyYves Orton2014-12-251-1/+1
|
* Revert "dont compile unused static hash functions"Yves Orton2014-12-251-16/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 09c759bcfa4c2880c571df4da20458b2f781debf. The reverted patch causes us to not compile functions that we might not use. In theory this is a good thing. But any competent compiler is going to exclude them anyway if they aren't used, and we might miss useful warning messages, or whatnot. See b404539126a for an example of a patch that would not have happened, or would only have been partially done had this patch been applied. Also the reverted patch claimed that "It is not safe to have multiple hash funcs in 1 build due to conflicts on the size of PERL_HASH_SEED_BYTES." which is incorrect. The functions do not reference PERL_HASH_SEED_BYTES directly, and are usable by anyone who knows what size of seed they need. Additionally I have on my long-term todo list the following: * Allow Perl to randomly select the hash function at startup * Allow Perl to use the hash function determined by the ENV at startup. This patch would have to be reverted to complete either of those tasks. To recap, I am reverting this patch because it adds no real value, makes our hash functions susceptible to bit-rot, and because it blocks interesting future changes that I plan to work on in the future.
* Rework sv_get_backrefs() so it is simpler, and C++ compliantYves Orton2014-12-252-12/+10
| | | | | | We unroll hv_backreferences_p() in sv_get_backrefs() so the logic is simpler, (we dont need a **SV for this function), and (hopefully) make it C++ compliant at the same time.
* Restructure hv_backreferences_p() so assert makes senseYves Orton2014-12-251-4/+4
| | | | | | | | Prior to this patch the assert was meaningless as we would use the argument before we asserted things about it. This patch restructures the logic so we do the asserts first and *then* use the argument.
* Revert "sv.c: Add cast to make C++ happy"Yves Orton2014-12-251-1/+1
| | | | | | This reverts commit d49cfb746d789072c374f2403d477feb8017ce89. Better patch coming.
* sv.c: Add cast to make C++ happyFather Chrysostomos2014-12-241-1/+1
|
* t/bigmem/subst.t: Delete bogus commentFather Chrysostomos2014-12-241-2/+0
| | | | Accidentally copied from regexp.t
* fixups to make the porting tests happyYves Orton2014-12-253-6/+6
|
* sort manifestYves Orton2014-12-251-1/+1
| | | | | | | Why do we test for something that can be trivially accomplished by a make manisort? This is just makework with no value.
* add new API function sv_get_backrefs()Yves Orton2014-12-257-1/+124
| | | | | | | | | | | This encapsulates the logic to extract the backrefs from a weak-referent. Since sv_get_backrefs() can be used for a similar purposes as hv_backreferences_p() we no longer need to export the later, and therefore this patch also reverts ad2f46a793b4ade67d45ac0086ae62f6756c2752. See perl #123473 for related discussion, and https://github.com/Sereal/Sereal/issues/73 for a practical example of why this API is required.
* Perl 5 on Haiku - libperl.so not found installing out of standard locationH.Merijn Brand2014-12-241-4/+1
| | | | Patch by Leon, checked by Dan Collins
* RMG: Note that Porting/release_schedule.pod should be updatedSteve Hay2014-12-241-0/+8
|
* Note that 5.21.6 and 5.21.7 are releasedSteve Hay2014-12-241-2/+2
|
* Fix link error in perl521.dll with MinGW/gcc -xc++Steve Hay2014-12-241-2/+1
| | | | perl.exp:fake:(.edata+0x1214): undefined reference to `win32_async_check'
* Fix compilation errors in globals.c with MinGW/gcc -xc++Steve Hay2014-12-241-4/+11
| | | | | | | error: external linkage required for symbol 'PL_charclass' because of 'dllexport' attribute and likewise for many other symbols declared EXTCONST.
* Fix compilation errors in DynaLoader.c with MinGW/gcc -xc++Steve Hay2014-12-242-2/+2
| | | | error: invalid conversion from 'void*' to 'HMODULE'
* Fix compilation errors in win32sck.c with MinGW/gcc -xc++Steve Hay2014-12-241-1/+1
| | | | error: invalid conversion from 'const timeval*' to 'PTIMEVAL'
* Fix compilation errors in win32.c with MinGW/gcc -xc++Steve Hay2014-12-241-4/+4
| | | | | | | | | | | | | | | | | | | | | In MinGW-w64 builds, there are warnings/errors like this (depending on the compiler version used): gcc-4.5.3: warning: passing argument 2 of 'execv' from incompatible pointer type gcc-4.8.0: error: invalid conversion from 'const char* const*' to 'char* const*' This happens because MinGW-w64's process.h declares execv/execvp's second argument as 'char * const*' instead of 'const char * const*'. The _execv/_execvp versions don't have this problem so use them instead. MSDN says execv/execvp are deprecated POSIX functions; use the ISO C++ conformant _execv/_execvp instead anyway so it is not even worth sticking with execv/execvp for those compilers (namely, MinGW and VC++) that have the correct declarations. Likewise with spawnv/spawnvp vs. _spawnv/_spawnvp.
* Fix compilation errors in mg.c with MinGW/gcc -xc++Steve Hay2014-12-241-0/+2
| | | | | error: 'sip' was not declared in this scope error: 'uap' was not declared in this scope
* Fix typos in two unrelated test descriptionsAaron Crane2014-12-242-2/+2
|
* Update IO-Compress to CPAN version 2.068Chris 'BinGOs' Williams2014-12-2437-126/+154
| | | | | | | | | | [DELTA] 2.068 23 Dec 2014 * Disable running of some of the slower test harnesses by default. COMPRESS_ZLIB_RUN_MOST needs set to run them. Make life more bearable on legacy platforms
* Update Compress-Raw-Zlib to CPAN version 2.068Chris 'BinGOs' Williams2014-12-244-2/+11
| | | | | | | | | | | | [DELTA] 2.068 10 Dec 2014 * Silence more compiler warnings * Disable running of 07bufsize.y by default. COMPRESS_ZLIB_RUN_MOST needs set to run them. Makes life more bearable on legacy platforms
* Update Compress-Raw-Bzip2 to CPAN version 2.068Chris 'BinGOs' Williams2014-12-243-3/+3
| | | | | | | | [DELTA] 2.068 23 Dec 2014 * No Changes
* Update CPAN-Meta-Requirements to CPAN version 2.131Chris 'BinGOs' Williams2014-12-245-11/+121
| | | | | | | | | | | | | | [DELTA] 2.131 2014-12-23 15:04:19-05:00 America/New_York [ENHANCEMENTS] - Merging Module => 0 into requirements is now optimized [PREREQS] - Scalar::Utils removed as a prerequisite
* deparse-skips.txt: comp/require.t passesFather Chrysostomos2014-12-231-1/+0
|
* Fix deparsing of some unary-prototyped callsFather Chrysostomos2014-12-232-3/+63
| | | | | | | | | | This resulted in an infinite loop: sub optplus(;+) {} optplus($a < $b); The prototypes ;$ _ ;_ had the wrong predecence, causing foo($a<$b) to be deparsed wrongly, without the parentheses.
* Fix deparsing of ‘my sub x; sub { sub x {...} }’Father Chrysostomos2014-12-232-4/+19
| | | | | | | | | | | | | | | | | | | | | | | The ‘x’ sub has a pad entry in the sub containing its initial decla- ration and in the sub containing its body. pad_subs simplistically added subs found in pads to the list of subs to be deparsed. So the body of x was being deparsed twice. So we need to check the OUTSIDE pointer in pad_subs in deciding whether to add it to the list, so only the sub containing the body definition pushes it on to the list. Without using the pad ID, this test in Deparse.t ends up failing: state sub sb2; sub sb2 { sb2 ; } because the state sub’s OUTSIDE pointer points to the protosub of the anonymous sub that Deparse.t wraps around the test, whereas it is a clone of that anonymous sub that gets deparsed. Pad IDs exist to identify clones of the same original pad.