summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Revert "document that sigs in future may not populate @_"Ricardo Signes2016-04-232-12/+3
| | | | This reverts commit 19d6c3854e96d89bf4dc2d874df433beac27ee8b.
* Fix some pod errorsKarl Williamson2016-04-227-19/+19
| | | | | These were discovered while testing the Pod::Checker that is intended to be used in 5.25.
* [perl #127936] fix typoTony Cook2016-04-201-1/+1
|
* perldelta for ab462c7d2dTony Cook2016-04-201-0/+7
|
* [perl #127894] ensure alignbytes is correct for -DusequadmathDagfinn Ilmari Mannsåker2016-04-201-11/+2
|
* Correct typo in JJORE's name in todo.pod.Matthew Horsfall2016-04-191-1/+1
|
* Avoid passing non-literal to format functionAaron Crane2016-04-191-2/+2
| | | | | | | | | | | This avoids the following error, reported by Jitka Plesníková <jplesnik@redhat.com> in a test of RC1: op.c: In function 'Perl_ck_ftst': op.c:9754:58: error: format not a string literal and no format arguments [-Werror=format-security] Perl_warner(aTHX_ packWARN(WARN_SYNTAX), array_passed_to_stat); In addition, the string in question is now made const.
* document that sigs in future may not populate @_David Mitchell2016-04-192-3/+12
| | | | | | | Give people a heads up that in the next major perl release, subroutine signatures may no longer populate @_ by default. See http://nntp.perl.org/group/perl.perl5.porters/235332.
* perldelta: Remove error/warning explanationsKarl Williamson2016-04-181-30/+0
| | | | | Only the text of these should be present in a delta, with a link to the full explanation. Most of perldelta conformed to this, but not all.
* perldelta: Add some C<>Karl Williamson2016-04-181-22/+23
|
* perldelta: Clarifications, corrections, wordsmithingKarl Williamson2016-04-181-30/+25
| | | | | I also removed one instance of a 5.23-only bug, which isn't relevant to a dot zero delta
* Add perldelta for d9fc04eeLeon Timmermans2016-04-191-0/+7
|
* perldelta: IO-Compress is a dist, no link possibleRicardo Signes2016-04-181-1/+1
|
* perldelta: generate the module update sectionRicardo Signes2016-04-181-1/+411
|
* perldelta: various fixesMatthew Horsfall2016-04-181-13/+45
| | | | | | | * behaviour -> behavior * =over -> =over 4 * Add =items for consistency * Capitalization fixes
* perldelta: Fix typoMatthew Horsfall2016-04-181-1/+1
|
* perldelta: Revise wordingKarl Williamson2016-04-181-2/+2
| | | | Some of this was suggested by Jarkko Hietaniemi
* perldelta: Remove typo extra '/'Karl Williamson2016-04-141-1/+1
| | | | This fixes the 5.24 part of [perl #127899].
* perldelta: minor tweak to fix awkward proseRicardo Signes2016-04-141-2/+2
| | | | (Thanks, Ed Avis!)
* patchlevel: we are now RC1v5.24.0-RC1Ricardo Signes2016-04-131-1/+1
|
* remove the v5.23.x perldeltasRicardo Signes2016-04-1313-4355/+0
|
* perlpolicy: update the supported versions for v5.24 onRicardo Signes2016-04-131-3/+3
|
* perlhist: add v5.24.0 dataRicardo Signes2016-04-131-19/+22
|
* corelist: set a (tentative) release date for 5.24.0Ricardo Signes2016-04-131-1/+1
|
* fix IO::Handle documentation mangled by a manually applied patchTony Cook2016-04-131-3/+3
|
* perllocale: Unicode has changed their data; fix referencesKarl Williamson2016-04-121-5/+11
| | | | We say something here that is no longer true; update it.
* perldelta: Some minor fixes.Karl Williamson2016-04-121-12/+6
| | | | | This includes deleting some bug fixes for things introduced in the 5.23 series, and so not relevant to a dot zero perldelta
* pod/perldelta: Fixes to pedantic failuresKarl Williamson2016-04-121-5/+5
|
* perldelta: Add note about recent doc changeKarl Williamson2016-04-121-0/+10
|
* Merge branch 'release-5.24' into bleadRicardo Signes2016-04-1053-426/+1866
|\ | | | | | | | | This commit is just prep, turning blead into the branch from which v5.24.0 will be released, after suitable testing.
| * CoreList: update for v5.24.0Ricardo Signes2016-04-102-10/+17
| |
| * fix versions of generated perldeltaRicardo Signes2016-04-107-16/+16
| |
| * put perl5240delta into placeRicardo Signes2016-04-102-1911/+1489
| |
| * regen META.json for v5.24.0-RCRicardo Signes2016-04-101-1/+1
| |
| * regen: B::Op_private and uconfig.hRicardo Signes2016-04-102-2/+2
| |
| * version bump: this is now v5.24.0-RC0!Ricardo Signes2016-04-1027-200/+201
| |
| * perldelta: merge in perl5239deltaRicardo Signes2016-04-101-2/+119
| |
| * perldelta: remove unneeded entries, do more merge and sortRicardo Signes2016-04-101-426/+213
| |
| * perldelta: merge in changes from perl5238deltaRicardo Signes2016-04-101-0/+296
| |
| * perldelta: merge in changes from perl5237deltaRicardo Signes2016-04-101-0/+216
| |
| * perldelta: merge in changes from perl5236deltaRicardo Signes2016-04-101-1/+221
| |
| * perldelta: merge in changes from perl5235deltaRicardo Signes2016-04-101-0/+109
| |
| * perldelta: merge in changes from perl5234deltaRicardo Signes2016-04-101-0/+282
| |
| * perldelta: merge in changes from perl5233deltaRicardo Signes2016-04-101-0/+131
| |
| * perldelta: merge in changes from perl5232deltaRicardo Signes2016-04-101-0/+211
| |
| * perldelta: merge in changes from perl5231deltaRicardo Signes2016-04-101-27/+93
| |
| * perldelta: bootstrap perl5240delta with perl5230deltaRicardo Signes2016-04-101-0/+306
| |
| * Add 5.22.2-RC1 epigraphSteve Hay2016-04-101-0/+34
| |
| * 5.22.2-RC1 todaySteve Hay2016-04-101-0/+1
| |
| * PATCH: [perl #127708] segfault in "$!" in threadsKarl Williamson2016-04-094-6/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was showing up on Darwin because its setlocale is particularly not thread safe. But the problem is more generic. Using locales just isn't a good idea in a threaded application, as locales are process-wide, not thread-specific. Calling setlocale() changes the locale of all threads at the same time. Further the return of setlocale() is a pointer to internal storage. If you call setlocale() just to learn what it currently is without actually changing the locale, there is no guarantee that another thread won't interrupt your thread, switching the locale to something else before you've had a chance to copy it somewhere else for safekeeping, and the internal storage may have been freed during that interruption, leading to things like segfaults. This is a problem that has been around in the locale handling code for a long time. I don't know why it hasn't shown up before, or maybe it has and is not reproducible because it's timing dependent, and so any problems didn't have tickets written for them, or were rejected as not reproducible. But the problem has been made worse in recent releases. Only fairly recently has perl changed so this problem can occur in programs that don't use locale explicitly: ones that don't 'use locale' nor call setlocale(). This ticket is for such a program that gets a locale-related segfault, without ever touching locales itself. I have done an audit of the perl source, looking for all such occurrences, and this patch fixes all of them that I found. The only other ones, besides "$!", is in converting to/from UTF-8 in cygwin.c. In all such cases, perl briefly switches the locale, does an operation, then switches back. The solution here is to add mutexes to make these areas of code uninterruptible critical sections, so that they can rely on having the locale be what they expect it to be during the entirety of the operation, and can't have a setlocale() from another thread free internal storage. But this is not a general solution. A thread executing these sections can interrupt some other thread doing a setlocale() and zap that. However, we have long cautioned against doing setlocales() in a thread, and that caution was strengthened in a commit made yesterday, fc82b82ef4784a38877f35f56ee16f14934460ce. The current commit should make safe all threaded programs that don't use locales explicitly. It's too close to the 5.24 release to do the rearchitecting required for a general solution. That would involve adding more critical sections. POSIX 2008 introduced new locale handling functions that are thread-safe, and affect only a single thread, and don't require mutexes. The ultimate solution would be to use those tools where available, and to hide from the outer code which set is being used. Thus, perl would be thread-safe on such platforms, while remaining problematic on older ones, though fixed so segfaults wouldn't occur. Tony Cook believes we could emulate the newer behavior on all platforms at a significant performance penalty. I think this would require a lot of code, and suspect there would be glitches in it for XS code. But he may have some ideas about how to do it simply. In any case, this has to wait until post 5.24. Three other notes: It seems to me that the cygwin code could be replaced by equivalent code that doesn't use locales at all. The comments in the source seem to even indicate that. I'll look into doing this in 5.25. Another possible reason that this hasn't shown up in earlier perls is that the problems may have been entirely affecting I/O operations and there are already mutexes involving I/O, and so those could be inadvertently protecting from, or at least minimizing, the problems found here. I haven't investigated to verify this. This commit doesn't add a test. I am asking on p5p for assistance in writing one