summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* perlport: major overhaulLukas Mai2016-07-302-472/+524
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - hyperlink function names - hyperlink variable names - hyperlink module names - hyperlink $Config{...} entries - hyperlink some C function names - hyperlink ``/qx, tr///, bitwise operators, BEGIN - remove bareword filehandles from examples - remove 2-arg open from examples - recommend 3-arg open always - clean up weird formatting and use \Q \E in $Config{_exe} example - mention Time::Piece (a core module) for date parsing (-> strptime) - prefer 'use' for loading modules unless there's a reason to 'require' - remove paragraph about using 'use bytes' to indicate that your source code is in some native 8-bit encoding (that's not what 'use bytes' does and its use is "strongly discouraged" anyway) - consistently use 2 spaces after a period - consistently spell $Config{foo} as $Config{foo}, not $Config{'foo'} sometimes - fix some POD markup - remove reference to 'pl2cmd' because I've never heard of it and all search results on the web point back to copies of perlport - remove claim that binmode is a no-op on non-windows systems (that hasn't been true since the introduction of I/O layers and Unicode text files) - realign some tables - don't describe sets of characters as "matching tr/...//" because tr/// isn't really a matching operator (it can be used to *count*, but that's not obvious to most people) - remove nonsensical VOS example that claims to check the architecture by examining @INC but doesn't actually use @INC or check the architecture - 'chown' can't be both "not implemented" and "implemented, but does nothing" on Win32 - remove "semantics of raise()" wording from 'kill' because it's unclear (raise doesn't send a signal to another process anyway) - remove 'sockatmark' entry because there is no such built-in function (the closest thing I can find is IO::Socket->atmark, which already carries appropriate portability warnings) - in 'stat', consistently refer to fields by their names from perlfunc/stat - add myself to list of contributors
* fix version numbering for dist/PathToolsTony Cook2016-07-3011-11/+11
| | | | | I messed up my search and replace and didn't notice it when committing.
* locale.c: Revamp my_strerror() for thread-safenessKarl Williamson2016-07-297-24/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is the first step in making locale handling thread-safe. [perl #127708] was solved for 5.24 by adding a mutex in this function. That bug was caused by the code changing the locale even if the calling program is not consciously using locales. Posix 2008 introduced thread-safe locale functions. This commit changes this function to use them if the perl is threaded and the platform has them available. This means that the mutex is avoided on modern platforms. It restructures the function to return a mortal copy of the error message. This is a step towards making the function completely thread safe. Right now, as documented, if you do 'use locale', locale handling isn't thread-safe. A global C locale object is created and used here if necessary. It is destroyed at the end of the program. Note that some platforms have a strerror_r(), which is automatically used instead of strerror() if available. It differs form straight strerror() by taking a buffer to place the returned string, so the return does not point to internal static storage. One could test for the existence of this and avoid the mortal copy.
* t/thread_it.pl: Increase Darwin stack sizeKarl Williamson2016-07-291-1/+1
| | | | | The next commit causes one test in the suite to use more than the previously allowed max.
* t/lib/warnings/pp_pack: Redundant testsFather Chrysostomos2016-07-291-23/+0
| | | | | | | | | | | | | | | | | | | | This commit: commit 533367d84727b326a81c972a3555d6a7847a4558 Author: Jarkko Hietaniemi <jhi@iki.fi> Date: Sun Jun 24 22:24:49 2001 +0000 Move the pack warnings to their own file, as pointed out by Spider. copied several tests into pp_pack which have nothing to do with pack. Most of them were still in pp, and were thus redundant. The ‘Use of uninitialized value $a in scalar dereference’ test was removed from pp, but I see now that there is a nearly identical test elsewhere in pp, added by this commit: commit 3b434eb14b7fab4ed6941403c71b683066ab60a2 Author: Rafael Garcia-Suarez <rgarciasuarez@gmail.com> Date: Tue Sep 18 00:48:05 2001 +0200 new tests Message-Id: <20010917224805.C11744@rafael>
* Avoid emitting pack("p",...) warning erroneouslyFather Chrysostomos2016-07-292-1/+5
| | | | | A value may legitimately be marked SvTEMP even when it is not about to be freed.
* handy.h: Add missing parens in macroKarl Williamson2016-07-291-1/+1
| | | | | These should have been in the recent commit 6c5b02ac7a9ff1c91f2ca46bedd89ba9012bb34f
* New bug numbers in *.[ch]Father Chrysostomos2016-07-292-3/+3
| | | | perl -pi -e 'BEGIN { %map = split " ", join "", `cat pb2rt.txt` } s/(?<!\d)\d{8}\.\d{3}(?!\d)/$& (#$map{$&})/g' *.[ch]
* New bug numbers in lib/ and dist/, tooFather Chrysostomos2016-07-298-9/+9
| | | | | | This is my quick-and-dirty script: find dist -print0 | xargs -0 perl -pi -e 'BEGIN { %map = split " ", join "", `cat pb2rt.txt` } s/(?<!\d)\d{8}\.\d{3}(?!\d)/$& (#$map{$&})/g'
* Tired of looking up old bug numbersFather Chrysostomos2016-07-2938-104/+104
| | | | | Some of this is ugly, but that’s because I wrote a one-liner to do it. It’s good enough for practical purposes.
* Update Module-Load-Conditional to CPAN version 0.68Chris 'BinGOs' Williams2016-07-292-10/+6
| | | | | | | | [DELTA] 0.68 Fri Jul 29 08:01:12 BST 2016 * Fix unconditional @INC localisation
* print the pop @INC to OUT instead of STDOUTJarkko Hietaniemi2016-07-291-1/+1
|
* unimplemented_op does not implement pp_mapstartFather Chrysostomos2016-07-282-1/+2
|
* POSIX.xs: Make NV_PAYLOAD_SIZEOF_ASSERT staticFather Chrysostomos2016-07-281-2/+4
| | | | | so that we get the benefit of the assertions for non-debugging builds but without any run-time penalty.
* Make switchDx.t more forgiving about newlines.Craig A. Berry2016-07-281-1/+1
| | | | | | On VMS, the test suite collapses multiple newlines into one in order to work around a bug in the pipe implementation, so the test needs to allow for that.
* handy.h: Consolidate some EBCDIC vs ASCII pathsKarl Williamson2016-07-281-65/+58
| | | | | | | This removes some '#ifdef EBCDIC' so as to make more code common between the platforms. This is at the expense of some efficiency, but the affected code only runs when compiling utilities, so ease of maintenance wins out.
* handy.h: Add commentKarl Williamson2016-07-281-1/+10
|
* handy.h: Generate compile error if macros called wrongKarl Williamson2016-07-281-1/+4
| | | | | | | | | This extends the mechanism we added in 5.24 to more macros to make sure that a macro is called with an integer and not a pointer. It adds a "| 0" to the macro parameter, which is illegal if the parameter is a pointer.
* toke.c: White-space onlyKarl Williamson2016-07-281-3/+3
| | | | re-wrap a comment.
* Increase $POSIX::VERSION to 1.71Father Chrysostomos2016-07-281-1/+1
|
* [perl #128763] Fix POSIX.xs longdbl assertionJarkko Hietaniemi2016-07-281-1/+1
|
* t/lib/common.pl: Ignore .rej filesFather Chrysostomos2016-07-281-1/+2
|
* Update Module-Load-Conditional to CPAN version 0.66Chris 'BinGOs' Williams2016-07-282-3/+21
| | | | | | | | [DELTA] 0.66 Wed Jul 27 08:22:53 BST 2016 * Add FORCE_SAFE_INC option to fix CVE-2016-1238
* forgot the cfgvarH.Merijn Brand2016-07-2811-2/+12
|
* Follow-up from backporting workH.Merijn Brand2016-07-284-4/+26
|
* Force inclusion of I_XLOCALE until it is actually usedH.Merijn Brand2016-07-282-0/+6
|
* [perl #128747] Fix line number bug with s//<<END/eFather Chrysostomos2016-07-272-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 6745174b561 I changed the multi_open and multi_close parser pastruct members (known as PL_multi_open/close in toke.c) from char to UV. I failed to change the localization code in S_sublex_start: SAVEI8(PL_multi_close); So on big-endian architectures only the most significant byte would be localized. That meant that effectively no localization would happen for ASCII string delimiters. In S_sublex_done: LEAVE; if (PL_multi_close == '<') PL_parser->herelines += l - PL_multi_end; That LEAVE undoes the localization. '<' for PL_multi_close is a spe- cial value that can only happen for here-docs. The ->herelines line makes sure that line numbers are correct after a here-doc. What ended up happening was that s//<<END/e would throw off line num- bers after the here-doc body. PL_multi_close would end up being set to '<', not '/', when the lexer was finishing up the s///, so it treated it like a here-doc and screwed things up. This resulted in the test failures in ticket #128747. I found that we also had a bug on little-endian machines. But to get the localization of the *least* sigificant byte to screw things up, you have to try something other than s//<<END/e: use utf8; <<END; ${ #line 57 qq || } END warn; # line 59 Replace the pipes with lightning bolts: use utf8; <<END; ${ #line 57 qq ϟϟ } END warn; # line 7 and you get line 7 instead of 59. In this case, the inner construct has a delimiter character whose code is > 255, but only the lower 8 bits get localized. So when the localization unwinds, you get ord("ϟ") & 0xff | ord("<") instead of just ord("<"), resulting in the here-doc line number handling being skipped. This commit fixes the localization and adds the little-endian test.
* Unmathomize save_ivFather Chrysostomos2016-07-272-11/+11
| | | | I need to call it from toke.c.
* (perl #128438) build ppport.h instead of using a dummy fileTony Cook2016-07-283-19/+23
| | | | | | | | | | | | | | The changes to parallelize win32 perl builds with dmake and gmake assumed that ppport.h only provided macros and functions that are already provided by the latest perl. This turns out not to be the case, preventing the building of a new Scalar-List-Utils with dmake and gmake. I only briefly considered changing Scalar-List-Utils - the difference in build systems is what lead to the failure, so properly build ppport.h so that all Win32 builds have a full ppport.h just as POSIXish builds do.
* Configure: note that the infnan tests may crash.Jarkko Hietaniemi2016-07-271-0/+1
| | | | (And in VAX, that is exactly what happens with the infinities.)
* VAX: VAX format HJarkko Hietaniemi2016-07-271-0/+7
|
* Configure: VAX format HJarkko Hietaniemi2016-07-273-3/+16
|
* VAX: catch vax floats beyond VMS or UltrixJarkko Hietaniemi2016-07-271-1/+4
|
* VAX: document also formats S/T/X, and hidden bitsJarkko Hietaniemi2016-07-271-7/+19
| | | | Though S, T, and X are not really pure VAX formats per se.
* [perl #128630] follow-up on 6151d433Jarkko Hietaniemi2016-07-271-15/+12
| | | | | | | | | | | | - test explicitly for $^O equivalence (faster, simpler), as suggested in #126380 - allow also \b-/i match of archname - however, do not explicitly anchor the archname, as suggested in #126380, since if the regexp needs that, it can do so - \Q-\E-protect the $^O, for paranoia - for skip, use test.pl skip() instead of ok(1), pointed out privately by Dan Collins - drop the newly added /xxx/ functionality to simplify things
* PATCH: [perl #128734] tr/\N{...}/ failing for 128-255Karl Williamson2016-07-272-2/+11
| | | | | | | The upper latin1 characters when expressed as \N{U+...} were failing. This was due to trying to convert them to UTF-8 when the result isn't UTF-8. I added a test for \N{name} as well, though these were not affected by this regression.
* Add tests for runaway q«« stringsFather Chrysostomos2016-07-261-0/+20
| | | | fixed by cb65013.
* Handle missing Unicode heredoc terminators correctlyFather Chrysostomos2016-07-262-0/+8
|
* [perl #128701] Fix err msg for Unicode delimitersFather Chrysostomos2016-07-262-7/+33
| | | | | | | | | | | | | | | The output of perl -CS -e 'use utf8; q«' is now correctly: Can't find string terminator "«" anywhere before EOF at -e line 1. Previously, the first byte of the delimiter (as encoded in UTF-8) would be used instead: Can't find string terminator "Â" anywhere before EOF at -e line 1.
* parser.h: Use UV for string delimsFather Chrysostomos2016-07-262-5/+6
| | | | | | We will need to store characters > 255 in here. Also, cast accordingly in toke.c.
* (perl #127384)(CVE-2016-1238) port forward changes from maintTony Cook2016-07-26187-191/+663
|\ | | | | | | | | Some of these changes are unnecessary if we remove the default . from @INC for 5.26.
| * (perl #127834) update CUSTOMIZED entriesTony Cook2016-07-262-10/+330
| |
| * cpan/: bump $VERSION as neededTony Cook2016-07-2628-28/+28
| |
| * cpan/: remove . from @INC when loading optional modulesTony Cook2016-07-2617-10/+81
| |
| * dist/: bump $VERSION as neededTony Cook2016-07-2619-19/+19
| |
| * dist/: remove . from @INC when loading optional modulesTony Cook2016-07-2611-8/+47
| | | | | | | | | | | | I didn't update base.pm since that seems more likely to be loading modules *expected* to be in the current directory. Opinions welcome.
| * bump perl5db.pl's $VERSIONTony Cook2016-07-261-1/+2
| | | | | | | | | | | | Add a note about version numbering, since if we use X.XX_XX versions in blead it's harder to find an unused version number if the module is modified in maint.
| * perl5db.pl: ensure PadWalker is loaded from standard pathsTony Cook2016-07-261-2/+8
| |
| * (perl #127834) bump versions of modules in dists we updated a utility inTony Cook2016-07-26112-112/+112
| | | | | | | | | | | | I tried to follow the numbering convention of the module, bumping every module if the versions are synchronized, bumping just the primary module if not.
| * (perl #127834) remove . from the end of @INC if complex modules are loadedTony Cook2016-07-2625-1/+36
|/ | | | | | | While currently Encode and Storable are know to attempt to load modules not included in the core, updates to other modules may lead to those also attempting to load new modules, so be safe and remove . for those as well.