From: Matt S Trout Date: Wed, 16 Jun 2010 23:00:19 +0000 (+0100) Subject: LOGONLY annotated log from v5.13.1 tag - will rebase this away on merge X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=91c261ec364324cef4a536718bab82be4b6e1d00;p=p5sagit%2Fp5-mst-13.2.git LOGONLY annotated log from v5.13.1 tag - will rebase this away on merge --- diff --git a/alog b/alog new file mode 100644 index 0000000..05c1ded --- /dev/null +++ b/alog @@ -0,0 +1,1919 @@ +commit 0a18a49b281a5a76e75de77e45ee27ad1b807bb2 +Author: Maik Hentsche +Date: Tue Jun 15 17:19:41 2010 +0200 + + Attempt at improving the perlipc docs + +commit ee84a7925f473937ece8b2db88bffc4400a8cabe +Author: Rafael Garcia-Suarez +Date: Tue Jun 15 14:48:34 2010 +0200 + + Revert "It may not be obvious to a new Perl programmer that $#ary is explained in perldata.pod (see http://stackoverflow.com/questions/2997042/ )." + + This reverts commit db2ed3fb308b082577e9315ba52b2cb266a2bd0a. + +commit 4c8a458a2f2be4d98cd2b8873f15b800e9382262 +Author: Karl Williamson +Date: Wed Jun 2 15:07:29 2010 -0600 + + uc(): Handle Greek YPOGEGRAMMENI + + Unicode contains two context-sensitive case-changing rules. This patch + enables one of them, dealing with the Greek YPOGEGRAMMENI. The code had + been #ifdef'd out, so the changes here are more than what the diff + shows. The reason it was #ifdef'd out was because more research was + needed to verify that it was correct, which I have now done, and think + it is. + + The issue is we may just be uppercasing a portion of the context, so + don't have complete knowledge of what should be done. This patch causes + us to move the ypogegrammeni to as far right as it should go, or to the + end of the context we know about, whichever comes first. That's the + best we can do. If it really should be moved further to the right, + there's no way we can do it, because the user has not called uc() + with the full information needed. So, in all cases, this is better than + just leaving it where it was in the input. Also, the applicable context + is limited to a logical character, that matched by /\X/, so if the user + is calling uc() on a subset of a logical character, it really is their + mistake. + +commit cc70200b5f52ae10e2985e4d11670b3b76984b4d +Author: Karl Williamson +Date: Wed Jun 2 15:04:16 2010 -0600 + + t/uni/case.pl: allow extra tests of different form + + Add an option to case.pl so that the callers can run extra tests that + don't fit in with it's format. They just pass the number run to it, and + it adjusts the plan accordingly. + +commit f686127b43eb3c08a5cb1fccce5ef34212234df5 +Author: Salvador Fandino +Date: Tue Jun 15 11:31:04 2010 +0200 + + Add support for more TCP_ constants to Socket + + (plus bump version to 1.89) + +commit 5621738aceb2535b67ff880f9ef107b9a0f8389e +Author: Karl Williamson +Date: Sun May 30 21:34:53 2010 -0600 + + Remove debugging statement from mktables. + + A debugging statement was inadvertently left in which causes an + extraneous warning. + +commit db2ed3fb308b082577e9315ba52b2cb266a2bd0a +Author: Sinan Unur +Date: Tue Jun 8 18:53:27 2010 -0400 + + It may not be obvious to a new Perl programmer that $#ary is explained in perldata.pod (see http://stackoverflow.com/questions/2997042/ ). + + A possible solution is to place an entry in perlvar.pod pointing out + that $# was removed and pointing the user to perldata.pod for the + explanation of $#ary usage. + +commit 9b58b542ddb7ea24d774e7f780c8a19127be1f5a +Author: Rafael Garcia-Suarez +Date: Tue Jun 15 10:16:35 2010 +0200 + + usemymalloc slows down newer openbsd [perl #75742] + +commit c35588eb09d732b01769aad7cf303e81b9417302 +Author: Chris 'BinGOs' Williams +Date: Mon Jun 14 10:07:27 2010 +0100 + + Rename copyright section of Module::CoreList to LICENSE, fixes for my kwalitee score. + +commit 742adbff4f079f203897faa086d954cc3a26460a +Author: Andreas J. Koenig +Date: Mon Jun 14 09:46:15 2010 +0100 + + Update CPAN.pm to 1.94_57 + + 2010-05-24 Andreas J. Koenig + + * release 1.94_57 + + * bugfix: treat modules correctly that are deprecated in perl 5.12. + + * bugfix: RT #57482 and #57788 revealed that configure_requires + implicitly assumed build_requires instead of normal requires. (Reported + by Andrew Whatson and Father Chrysostomos respectively) + + * testfix: solaris should run the tests without expect because (some?) + solaris have a broken expect + + * testfix: run tests with cache_metadata off to prevent spill over + effects from previous test runs + + Signed-off-by: Chris 'BinGOs' Williams + +commit 086d291379a28ceb3cd7cc6416747be8c426476b +Author: Nicholas Clark +Date: Mon Jun 14 09:44:49 2010 +0200 + + Note why pp_tie can't use call_method() for a package name. + + Plus a test that would fail if it did. + +commit f4adce6b773b2b6071e0d1627f4dce6ec0c3caa7 +Author: Nicholas Clark +Date: Sun Jun 13 16:25:53 2010 +0200 + + Merge flags and argc parameters to S_tied_handle_method(). + + This generates slightly smaller object code overall, which means that the "hot" + code (the non-overloaded paths through the ops) will be smaller, and hence more + likely to stay in the CPU cache. + +commit 74f0b5509afd269c59f1396fde551295bbeec7d5 +Author: Nicholas Clark +Date: Sun Jun 13 15:02:14 2010 +0200 + + In S_tied_handle_method() default to mortalizing extra arguments. + + Convert the gimme argument to a flags argument, and add a flag bit to signal + that mortalization is not required. Only "BINMODE" needs this. + +commit 0240605ecd7a040cc6058409c65a3ebc6b7d489b +Author: Nicholas Clark +Date: Sun Jun 13 12:38:16 2010 +0200 + + Add a gimme parameter to S_tied_handle_method(). + + This allows "GETC" to use it. + +commit bc0c81caab3813b2d61b70f94e5075bbf3a3ef69 +Author: Nicholas Clark +Date: Sun Jun 13 12:12:43 2010 +0200 + + Change S_tied_handle_method() to varargs to allow extra SV parameters. + + This enables "BINMODE", "EOF" and "SYSSEEK" to use it. + +commit ebc1fde647268c1d49a6096baf6ca8a708363f5b +Author: Nicholas Clark +Date: Sun Jun 13 10:34:56 2010 +0200 + + Merge simple tied handle method calls into S_tied_handle_method(). + +commit c33ef3ac654cbe35caea1d36f34c68f0e4a134ba +Author: Nicholas Clark +Date: Sat Jun 12 22:29:03 2010 +0200 + + For tied file handle calls, use PUSH* when we know that the stack has space. + + Previously the code was using XPUSH* in many cases, often to push back values + recently popped off the stack. + +commit 2addaaf3b439e1adb64bd833a257ff963c73f45a +Author: Nicholas Clark +Date: Sat Jun 12 20:51:19 2010 +0200 + + Remove unecessary EXTEND()s from pp_sys.c + + If we've just POP*ed something from the stack, it will already have space. + If we conditionally POP* something from the stack, avoid the EXTEND() in that + path. Also, use PUSH() rather than XPUSH() where we know that the stack is large + enough. Changes to pp_close, pp_binmode, pp_enterwrite, pp_readlink and pp_alarm. + +commit 2116934e2bf4f3c1445ea039e29ff377c3de2648 +Author: Nicholas Clark +Date: Sun Jun 13 08:50:00 2010 +0100 + + In pp_eof, ensure stack space for the second argument to the tied EOF method. + + Commit 32e653230c7ccc7f added this second argument, but didn't verify that the + stack always had sufficient space for it. + +commit b0c1862166fbc7bf02b768bf81c9e1e77b5220a8 +Author: David Golden +Date: Wed Jun 9 14:53:15 2010 -0400 + + remove trailing spaces in perlvar.pod + +commit 9bf2270250326fb85445d6849ed84a94434dd12c +Author: Ævar Arnfjörð Bjarmason +Date: Thu May 13 22:02:25 2010 +0000 + + Link to perlport/PLATFORMS from the $^O docs + + I was looking for some actual values of $^O the other day and started + ack-ing t/. Turns out that this was documented in perlport. Link to + the relevant section to make it easy to find. + +commit b5f55170e8ef2a91497f68ff0af6ff6cded9f433 +Author: Nicholas Clark +Date: Sat Jun 12 21:13:14 2010 +0100 + + Fix edge case in pp_eof where the stack extent was not checked. + + Analogous to pp_getc and pp_tell in ac3697cd90b00fae, pp_eof has a conditional + POP from the stack, but an unconditional PUSH to the stack, but no check that + the stack had space for the PUSH. This bug has been present since perl 5.000. + +commit ac3697cd90b00fae88e4f19931af920bc552e2b8 +Author: Nicholas Clark +Date: Sat Jun 12 20:43:37 2010 +0100 + + Fix edge cases in pp_getc and pp_tell where the stack extent was not checked. + + Both conditionally POP a GV from the stack, but always PUSH a return value to + it. For the case where they did not POP the GV, they made no check that the + stack had space for the PUSH. This bug has been present since perl 5.000. + +commit 0f7807cda10b798e3d16820699b3a52f13a8de16 +Author: Nicholas Clark +Date: Sat Jun 12 19:05:51 2010 +0100 + + Better diagnostics on detecting case sensitive file name clashes. + +commit f06daabb40d6dee8a7eda2c79bd7ee3e0b6275ec +Author: Chris 'BinGOs' Williams +Date: Fri Jun 11 07:59:48 2010 +0100 + + Added new files I forgot to add for the Thread-Semaphore update + +commit 04febe174c342d1018822ab2c67fb381bb88c55f +Author: Jerry D. Hedden +Date: Fri Jun 11 07:57:34 2010 +0100 + + [PATCH-revised] Upgrade to Thread-Semaphore 2.11 + + Added new methods ->down_nb() and ->down_force() at the suggestion of + Rick Garlick. + + Refactored methods to skip argument validation when no argument is supplied. + + Signed-off-by: Chris 'BinGOs' Williams + +commit b00fc8d41de1694e3f43042249a46dd72bd0163a +Author: Nicholas Clark +Date: Thu Jun 10 10:01:18 2010 +0200 + + Parameters for * in *printf must be int - add a cast to ensure this. + + Fixes a (legitimate) compiler warning present since 6e1bad6cc227c8e8. + +commit c2485e0c886f5e7d6fd27b65f085b0ba231ca557 +Author: Nicholas Clark +Date: Wed Jun 9 19:53:20 2010 +0100 + + Reorder CVf_* flags to be numerically contiguous again. + + The removal of CVf_ASSERTION in 584420f022db5722 and CVf_LOCKED in + e95ab0c0d2aa1b35 left two gaps in the sequence of bits in use. + +commit ede3a6167fdc98bf29305444db6ff93c33d8155d +Author: David Golden +Date: Wed Jun 9 11:47:41 2010 -0400 + + added Chas. Owens to AUTHORS + +commit 7f315d2e5ecf9c2453606c348568dc73e5e4d390 +Author: Chas. Owens +Date: Wed Jun 9 11:43:46 2010 -0400 + + Document $# and $* as removed + + See email thread for reference: + + http://www.nntp.perl.org/group/perl.perl5.porters/2010/06/msg160812.html + +commit 1f3ebc3b353ab41acc3013ef04412dda481b4282 +Author: Abigail +Date: Tue Jun 8 16:35:52 2010 +0200 + + Resolve issue #74974: document File::Copy::copy(FILE, DIR) + +commit c1bd236350b343c4ef921b81c45eabb4ecc82569 +Author: H.Merijn Brand +Date: Tue Jun 8 15:50:05 2010 +0200 + + Fix long-standing typos in Policy_sh.SH + + This patch fixes several long-standing typos and naming confusions in + Policy_sh.SH, standardizing on the variable names used in config.sh. + This will change the behavior of Policy.sh if you happen to have been + accidentally relying on the Policy.sh incorrect behavior. I'd appreciate + feedback from anyone using Policy.sh to be sure nothing is broken by + this change. Thanks to Stoned Elipot for pointing this out. + + Signed-off-by: H.Merijn Brand + +commit e6eb90205a8cd8f42cd4d1226ea369f3ff1a14ae +Author: David Mitchell +Date: Tue Jun 8 00:08:19 2010 +0100 + + perlbug: always allow change of sender address + + The code that guessed a default sender address would under some + circumstances not display this guess to the user with the option to change + it. Specifically, if $Config{cf_me} eq {login id of the user running + perlbug}. + + In my case, cf_email got set at build time (Configure default) of + 'davem@pigeon.(none)', which was then silently used. Not good! + +commit 4ea8010ab3e95796683d1a69375c8df8c4bea3fb +Author: David Mitchell +Date: Mon Jun 7 23:28:26 2010 +0100 + + perlbug -d,-v: fix uninit value warnings + +commit 5f3e44b689cab8bd7cec81aa6fc21c2ec5b3489f +Author: David Mitchell +Date: Mon Jun 7 22:18:35 2010 +0100 + + document revert of 'local $tied' change + +commit 89adf4e8e0de17fedf78328b32920f47635850d0 +Author: David Mitchell +Date: Mon Jun 7 22:11:42 2010 +0100 + + Revert "make 'local $tied' untied" + + This reverts commit 191ad7eff570fc96c93993e4358f83e2033365d6. + + Some modules (e.g. File::chdir) relied on the current behaviour of + local $tied_scalar, so lets leave things as-is for now. See + + http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2010-05/msg00627.html + +commit e1137bc782e702f287ec7909f121d66bfb4707ba +Author: Sullivan Beck +Date: Mon Jun 7 21:58:34 2010 +0100 + + PATCH: Bump Locale-Codes from 3.12 to 3.13 + + Attached is a patch to upgrade the Locale-Codes distribution (containing + the core modules Locale::Country, Locale::Language, and + Locale::Currency) to the most recent version. + + ==== + Background: + + The core modules Locale::Country, Locale::Language, and Locale::Currency + (all part of the Locale-Codes distribution) should be updated on a + regular basis. They contain "codes" from various internet standards + which change over time. + + I plan on releasing new versions twice a year to keep the codes + up-to-date. At this point, I'm not planning on any significant code + changes (other than bug fixes), so the only significant changes + between releases should be to update the codes. + +commit 16d811d41019c65e82b767b91041c1bebb9b4407 +Author: David Mitchell +Date: Mon Jun 7 18:23:43 2010 +0100 + + identify a few vars in intrpvar.h + +commit f2ed9b323720c96381a3407a26ac73176799e8ee +Author: Karl Williamson +Date: Sun Jun 6 08:50:24 2010 -0600 + + regexec.c: change names of two vars for clarity + + do_utf8 is changed to utf8_target + UTF is changed to UTF_PATTERN + + This will help me keep track of the fact that there are four possible + combinations of these, and that ! do_utf8 doesn't necessarily mean don't + do utf8. + +commit 60eaec425bbc5e93d5dab2c98aa44af5d0baeb52 +Author: David Golden +Date: Mon Jun 7 07:07:10 2010 -0400 + + Remove -w recommendation in perl -h + + Abigail already said it best: + + I do not think 'perl -h' is the place to give recommendations on how + code should be written. 'perl -h' gives a list and a brief explanation + of the command line switches. IMO, it should do just that, and nothing + else. + +commit 98ccfbbf7f3673c554b54933d94b68014231a32e +Author: H.Merijn Brand +Date: Mon Jun 7 12:19:32 2010 +0200 + + Spell-check fixes in ext + +commit fb78fdcd12d30a6a41c12c697ef31593f4bc5d94 +Author: H.Merijn Brand +Date: Mon Jun 7 12:17:22 2010 +0200 + + Spell-check fixes in lib + +commit 2108160ef633eaf83b7335df0336ca1f5e0e0462 +Author: H.Merijn Brand +Date: Mon Jun 7 12:17:09 2010 +0200 + + Spell check fixes in CPAN + + already fixed upstream + +commit 4984aa345cae6d92b88b5afcf09ce72cb121191a +Author: Father Chrysostomos +Date: Mon Jun 7 12:07:11 2010 +0200 + + glob crashes when %File::Glob:: is empty + + In 5.6.2, a failure to find a CORE::GLOBAL::glob after loading + File::Glob would result in a fallback to external glob via pp_glob. + Now it crashes. + + The attached patch should fix this. + +commit b3fe9f3f93e825d0b858b198dad1d2da4b7b4a95 +Author: Karl Williamson +Date: Wed Jun 2 12:33:56 2010 -0600 + + perlhack: Add reference to TAP for test protocol + +commit 195c30cea8a0d6f651c1a4c8bcc30506f46cbbaa +Author: Karl Williamson +Date: Wed Jun 2 12:32:19 2010 -0600 + + perlhack: fix formatting issues + + Change some lines so won't overflow 80 column width; make a link. + +commit 66fd7fd0f5a20fad5e7cda931bc1dd21789dc9b2 +Author: Karl Williamson +Date: Sun May 30 14:11:52 2010 -0600 + + PATCH: uniprops.t take advantage of EBCDIC test.pl + + This patch removes the partial solution to testing on EBCDIC platforms + that was in uniprops.t (generated by mktables), and replaces it with the + simple complete solution now in test.pl + +commit d02d6d97d5eefad4e164003699595f59abb06506 +Author: David Mitchell +Date: Sun Jun 6 21:09:22 2010 +0100 + + reduce size of regmatch_state.u.curlyx by 2 words + +commit 6dd2be570d715119e05672f6f0266d924022b65a +Author: David Mitchell +Date: Sun Jun 6 18:48:49 2010 +0100 + + micro-optimise a bit of trie code + +commit 0bf6a637d180d2ff237212513f8b816d40ead86a +Author: Nicholas Clark +Date: Sun Jun 6 11:50:56 2010 +0200 + + Test the return value of push and unshift. + +commit af5c7f63b8ce18483dfeb72829f70ee387ece366 +Author: Nicholas Clark +Date: Sun Jun 6 11:46:16 2010 +0200 + + Convert tiearray.t to test.pl. + +commit 4c1b470c26738a632b119c2932798183ae51b3ec +Author: Karl Williamson +Date: Sat Jun 5 11:25:58 2010 -0600 + + Change regexec.c to use new foldEQ functions + +commit e6226b18246ce7d24213c41123114ac7967ed04f +Author: Karl Williamson +Date: Sat Jun 5 11:12:47 2010 -0600 + + Change name of ibcmp to foldEQ + + As discussed on p5p, ibcmp has different semantics from other cmp + functions in that it is a binary instead of ternary function. It is + less confusing then to have a name that implies true/false. + + There are three functions affected: ibcmp, ibcmp_locale and ibcmp_utf8. + ibcmp is actually equivalent to foldNE, but for the same reason that things + like 'unless' and 'until' are cautioned against, I changed the functions + to foldEQ, so that the existing names, like ibcmp_utf8 are defined as + macros as being the complement of foldEQ. + + This patch also changes the one file where turning ibcmp into a macro + causes problems. It changes it to use the new name. It also documents + for the first time ibcmp, ibcmp_locale and their new names. + +commit d51c1b21fa08933083b4723794b68ac09a7a248b +Author: Karl Williamson +Date: Sat Jun 5 11:08:25 2010 -0600 + + utf8.c: further doc tweaks + +commit 48ef279ea70605b40a74c3e2c4a5c4ca2cf48054 +Author: Karl Williamson +Date: Fri Jun 4 12:04:45 2010 -0600 + + utf8.c: Modify doc comment; change whitespace + + This removes the comment about the function name, and converts tabs to + blanks throughout the function, as so much of it is changing already. + + It also removes trailing whitespace in other lines of the file. + +commit 8b35872c947d4c76532f1e4874411afa9125575d +Author: Karl Williamson +Date: Tue May 25 11:18:42 2010 -0600 + + Revamp ibcmp_utf8 for performance and clarity + + I had a hard time understanding how this routine worked; there were no + comments. In figuring it out, I discovered it could be made more + efficient. This routine is called over and over in the innermost loops + in regex matching, so efficiency is a concern. + + Setup is done once before the main while loop so that it now has two + conditions instead of eight. The loop was rearranged slightly to be + smaller and a couple of unneeded assignments to temporaries were + removed, and recomputation of some values was avoided. Several other + small efficiency changes were made. + + Several asserts had been commented out, saying that they make tests + fail. But they no longer do, at least on my platform. There was a + reason that they were asserts to begin with, and that is they denoted an + insane or trivial condition. Apparently there have been fixes to the + other code calling this, so I re-enabled them. + + The names of several variables were changed to be less confusing; hence + f1 means the fold buffer for string 1 whereas it used to mean its goal, + which is now g1. + + The leading indent was changed from 5 to 4 blanks. I made enough + other changes that I didn't submit this as a separate commit + +commit 970ea3cb860f5a38a7f7582cc02c1b88c0bf4b0f +Author: Karl Williamson +Date: Tue May 25 11:17:22 2010 -0600 + + Clarify some documentation + +commit 5ac3629776cb773f868455ce02860eafa022c003 +Author: David Mitchell +Date: Sat Jun 5 13:44:04 2010 +0100 + + silence some warnings in hv.c + + Since de0a224a057997a65d38856f1981702fca5d7c18, xhv_keys and xhv_max + are the same type, so no casting needed + +commit 4a75fa1ae0acfb6204ce925df66ec1e7f85767ce +Author: David Mitchell +Date: Sat Jun 5 13:12:11 2010 +0100 + + add handy note on vtable fields + +commit 1a1a5af7b042b1599e52170095e55b02673d4c53 +Author: David Mitchell +Date: Sat Jun 5 12:46:09 2010 +0100 + + update Perl_magic_methcall description + + it's now a varargs function + +commit 7c75014e4b3bd5ebe368b5d6b981f310525d1389 +Author: David Mitchell +Date: Fri Jun 4 23:09:21 2010 +0100 + + fix for RT #8438: $tied->() doesn't call FETCH + + pp_entersub checked for ROK *before* calling magic. If the tied scalar + already had ROK set (perhaps from a previous time), then get magic (and + hence FETCH) wasn't called. + +commit dfae30232f1b277231b0dee813acbeca0b958afd +Author: Craig A. Berry +Date: Thu Jun 3 22:17:39 2010 -0500 + + Avoid overflow warning in chop.t. + + It overflows at compile time on 32-bit architectures, so the skip + isn't enough. + +commit 613a9ec2cfb133a94ef11f3e50bdfef024885d96 +Author: David Mitchell +Date: Fri Jun 4 21:30:18 2010 +0100 + + fix indendation of DM_* flag definitions + +commit 6ca8229ddb2de12c1f8f877d70989420b70a8072 +Author: David Mitchell +Date: Fri Jun 4 21:28:20 2010 +0100 + + express DM_[GU]ID flags in terms of components + +commit 354b0578ec63c058cd73f018f484808b22cc8631 +Author: David Mitchell +Date: Fri Jun 4 21:25:07 2010 +0100 + + rename DM_ARRAY flag to DM_ARRAY_ISA + + This better represents its current role as specifically delaying magic on + @ISA as opposed to a general array magic delay mechanism. + +commit 3a19377ba2315fce9354aa3f06bafbbbab740f1b +Author: David Mitchell +Date: Fri Jun 4 21:16:48 2010 +0100 + + belatedly add a test for RT #51636: + + segmentation fault with array ties + +commit 8ef242405b8c660c02e953dbc987fbc06897af10 +Author: David Mitchell +Date: Fri Jun 4 21:01:43 2010 +0100 + + Revert "Re: [perl #51636] segmentation fault with array ties" + + This reverts commit 90630e3c741716305d7f1da4df5eab5c1bee42cc. + + This fix turns out to be wrong, and also made ($<,$>)=(...) fail + (RT #75212). + + The original problem was a SEGV in av_clear(). This was mis-diagnosed + as recursive PL_delaymagic issue, and the fix was to temprarily reset + PL_delaymagic to zero. This stopped the mg_set() of $> and $> being + delayed. + + The real problem was that mg_free wasn't clearing the [GSR]MG flags + after freeing xmg_magic. This was independently fixed by commit + 68f8932eb570af656553ed44c11a23f0a216a3ec. + +commit 65c7421c80585e0d12a20773935dc01f4ffa3e42 +Author: David Mitchell +Date: Fri Jun 4 17:05:21 2010 +0100 + + threads::shared: veto signal despatch if locked + + This fixes RT #74868: Safe signals changes causing hangs with threads. + + The basic issue is that due to changes in where safe signals can be + despatched, (including now on leaving scope), it's possible for a + perl-level signal handler to be called while PL_sharedsv_lock is held. + If the handler does locking or manipulation of shared vars, then deadlock + can occur. + + A robust fix for this is to ensure that the signal handler isn't called + while we have the lock. This is done using the signal handler hook added + in the previous commit. + +commit 92f022bbf8c129c6f2379a382f1eaaa5c7bd9f3f +Author: David Mitchell +Date: Fri Jun 4 16:18:05 2010 +0100 + + add PL_signalhook to hook into signal dispatch + + This is initially intended for threads::shared and shouldn't (yet) + be considered part of the public API. + +commit 83918a83a5dfae8071d366c33fa37b83aabecfc4 +Author: Rafael Garcia-Suarez +Date: Thu Jun 3 16:11:26 2010 +0200 + + Do not advertise Math::TrulyRandom, which hasn't been updated since 1996 + + (Spotted by Giel Goudsmit) + +commit f58883a1a38c36629a8af25cd2fe9b2c5c3fcfec +Author: Craig A. Berry +Date: Thu Jun 3 07:44:17 2010 -0500 + + Remove extraneous semicolon from OP_PRIVATE_ONCE. + + Thus silencing compiler noise like: + + OP_PRIVATE_ONCE(op_aassign, OPpASSIGN_COMMON, ",COMMON"); + ........................................................^ + %CC-I-EXTRASEMI, Extraneous semicolon. + at line number 846 in file D0:[craig.blead]dump.c;1 + +commit 03d5bcf83cdbcccf9aefa373ec7b6a3dc11c5142 +Author: Vincent Pit +Date: Thu Jun 3 12:08:14 2010 +0200 + + Deprecate find_rundefsvoffset() + +commit 483ce06a4f6c720f66285117b98747911f62226a +Author: Vincent Pit +Date: Thu Jun 3 11:55:20 2010 +0200 + + The UNDERBAR macro should use find_rundefsv() as well + +commit 789bd863840ef4ff6c46f7c2ee0f3f64e0b5daa6 +Author: Vincent Pit +Date: Thu Jun 3 11:44:15 2010 +0200 + + Make pp_reverse fetch the lexical $_ from the correct pad + + This is achieved by introducing a new find_rundefsv() function in pad.c + + This fixes [perl #75436]. + +commit 540810e8986e170e75f4b34a7ca1f1dd5b0da3c4 +Author: Abigail +Date: Tue Jun 1 18:27:43 2010 +0200 + + Skip two Japhs that use the fact that split in void context splitted + to @_. This is no longer true in 5.12.0 and upwards. + +commit 321499b5be1bfbade4d0e2e11136d1d4d87a5e7f +Author: Slaven Rezic +Date: Thu Apr 29 16:04:35 2010 +0200 + + Document IO::Socket getsockopt and setsockopt + + get/setsockopt are not explicitly documented. Note that the documented + sockopt() method is a wrapper around get/setsockopt, but does not cover + all cases because of the hardcoded level (= SOL_SOCKET). + +commit 065144c63ee2795acbc962d225b0a3f8d7967ae3 +Author: Tony Cook +Date: Tue Jun 1 09:50:08 2010 +1000 + + move the fresh_perl() tests above the environment tests + + the environment tests were resetting environment variables useful for + running fresh perls, like LD_LIBRARY_PATH. + +commit 1b1ee2ef87e2dcc8a1699cc870aefd1b91c5f645 +Author: Karl Williamson +Date: Sun May 30 21:54:32 2010 -0600 + + PATCH: teach diag.t new warning function names + + A number of function names that do warnings have been added, but diag.t + hasn't kept up. + + This patch changes it to look for likely function names in embed.fnc, so + it will automatically keep up in the future. There's no need to worry + about it looking for inappropriate functions, as the syntax of messages + that it looks for is so restrictive, that there won't be false + positives. Instead there are still many messages it fails to catch. + + As a result of it's falling behind several issues have crept in. I + resolved the couple I thought were clear (including one in a comment; + diag.t doesn't strip comments, but mostly it doesn't matter), and added + the others to the section to ignore. + are + +commit 51eec7ec9cf1a154df61e6fc6c46acab7c69b296 +Author: H.Merijn Brand +Date: Mon May 31 14:35:09 2010 +0200 + + State the requirement of a C89 compliant ANSI C-compiler + +commit c1bf42f3e6ad8f1c3d821a2ae616c5703f66237c +Author: Nicholas Clark +Date: Mon May 31 13:19:22 2010 +0100 + + In Perl_pad_add_name(), use sv_upgrade() directly rather than new[AH]V(). + + As newAV() and newHV() are now merely wrappers around sv_upgrade(), and the + existing SV is always brand new and of type SVt_NULL, call them on it, rather + than disposing of it as a side effect of storing a(nother new) SV. + + Also, no need to set SvPADMY() again, as it is already set. + + Resolves RT #73092. + +commit 4c050ad563ece4467b3b083d8efcf2b62ad0b9c5 +Author: Nicholas Clark +Date: Mon May 31 11:47:04 2010 +0100 + + Reorder the entry for die, moving discussion of the exit code later. + + Change to start with "C raises an exception." and phrase in terms of + handling exceptions, and then how uncaught exceptions result in process exit. + Do not give details of the exit code in the first paragraph. Move this to a + later paragraph, clarify that $! is often unpredictable, and stress that 255 + is the last resort exit code. + +commit 65ab9279784aa811d78b2903b57bc0e7947dec78 +Author: Tony Cook +Date: Tue Mar 16 23:46:48 2010 +1100 + + handle perl extended utf8 start bytes + + perl uses UTF8_IS_START() to test if a byte is a valid start byte, + this didn't take perl's extended UTF-8 range into account. + +commit e57ed4ecd4d7de38a79a316da8d657dad656f93f +Author: Father Chrysostomos +Date: Mon May 31 20:03:11 2010 +1000 + + [perl #70075] no 6; broken + + the original patch included a fix, but this problem was fixed in + faee19b5, so only apply the test. + +commit 1408fb84de0c28007d91730cde177d893e427181 +Author: Karl Williamson +Date: Sun May 30 13:05:48 2010 -0600 + + PATCH: [perl #75138] "\c`" -> " " + + Attached is a patch for some of this issue. I took Nicholas' advice, + and if the result of \cX isn't a word character, the output message will + precede it with a backslash, so the message in the example would be + + "\c`" more clearly written simply as "\ " at -e line 1. + + I think that message is true. + + I also added tests. + + There is a test that guarantees that we won't ship 5.14 with things as + they are now in it. I added wording to the comments next to that test + to be sure to verify with this email thread if we should remove the + deprecation, and mentioned that in the explanatory wording in the pod. + I support removing the deprecation, but for now I'm not touching that, + to see what other issues may yet arise before 5.14. + +commit 71648f9a69cff1f8ee90adfed51c64c3c2dfeaf1 +Author: Karl Williamson +Date: Thu May 27 22:24:40 2010 -0600 + + Document tricks, work-arounds for user-defined casing + + And add a .t file to verify that it works. + +commit abd889b86d676557bdda48bf0873bd04aa95a9ff +Author: Jerry D. Hedden +Date: Wed May 26 14:50:39 2010 -0400 + + Un-TODO a threads-shared test that now passes + + Commit bb1bc619ea68d9703fbd3fe5bc65ae000f90151f has + fixed a threads-shared TODO test in t/object.t. + +commit 9ef2b94f54586a775e4e47eebd8bbd9e08ce5fdd +Author: Karl Williamson +Date: Tue May 4 21:43:56 2010 -0600 + + Add mktables option for development use + + The -output_names option was added. It will cause the generated file + tables to not have ranges, and each line will have the character name. + This makes it easier to compare what characters are in given tables, + from version to version, or to compare the differences between + properties. + +commit 28093d0e3328797fc0783f9d909d7931ba57bd59 +Author: Karl Williamson +Date: Tue May 4 15:14:24 2010 -0600 + + mktables -- don't create Names table unless asked + + This speeds up mktables by not creating the Names table unless asked to, + by someone adding it to the list of tables to be output. Perl uses a + different table than this one for charnames, so the one being suppressed + isn't generally used. Previously it was created but not output. Now, + we skip the useless creation step. + +commit ec11e5f48c39adae8dd35f4d50a4b1b04eb80b97 +Author: Karl Williamson +Date: Tue May 4 15:10:18 2010 -0600 + + Fix priority of suppressed vs. explicitly output + + It's not clear this is a real bug, but it is a surprise. If a table is + in the suppressed list, it isn't output, even if it is in the + to-be-output override list. This latter list is non-empty only if the + user has hand-edited the the program to force an output. So this patch + makes that list have priority. + +commit 9d682c834ea42d040e5ba121ea8595c2f298b64f +Author: Karl Williamson +Date: Tue May 4 11:18:59 2010 -0600 + + Remove obsolete comment + + Commit: 6c4b69c35161f79a5088d6c3070cc17a0e4978b2 made this comment + obsolete; forgot to remove it then. + +commit 959ce5bf0ff22e4213e8987e43954483009d4a8e +Author: Karl Williamson +Date: Tue May 4 09:13:35 2010 -0600 + + Generate simple case folding tables only if asked + + Speed up mktables by not generating the simple case folding tables + unless asked to. Previously the simple tables were generated, and then + the full tables were initialized with them, and then overwritten with + the full mappings. This is an artifact from the fact that the data + comes to us in two files, one with the simple mappings (among other + things), and another with the full mapping overrides. Now, the full + tables are initialized from the first file, and the second file + overrides the full mappings. The simple tables are not generated by + default, so this saves, copying them. + +commit 6c68572bb711304d008bc1439d541dd69fcde4e0 +Author: Karl Williamson +Date: Sun May 30 16:49:28 2010 +0200 + + Add comment about objaddr in mktables + + Slightly modified to include the commit id by Steffen. + +commit f998e60c2aa1b9879e2c7c365acd05c0799ae46a +Author: Karl Williamson +Date: Mon May 3 10:06:30 2010 -0600 + + Use in-line 'no overloading' for speed + + An earlier performance enhancement was to change the subroutine that + gets the address of a ref to using 'no overloading' and then numifying + the ref, which returns its address. This patch speeds things up + slightly by in-lining the "no overloading" so that the function call + overhead is avoided. + + It also gets rid of the kludge that was done before the original + speed-up that created a local in the call stack of one of the classes so + that the address would only have to be executed once per call stack; + This was subject to failure if maintenance of the code perturbed things + so it didn't work; now the overhead is minimal, so the address is gotten + in each call. + +commit 4a68bf9d410f9046c46490523fe5d75c93632a5d +Author: Karl Williamson +Date: Sun May 16 06:56:01 2010 -0600 + + Don't require doubled backslashes in perldiag.pod + + Prior to this patch, messages in perldiag.pod had to have \\ instead of + the correct single backslash in order for diag.t to not complain. + +commit b081dd7eaaec2b6ee43335645ab40cff0ca3f91a +Author: Nicholas Clark +Date: Sun May 30 12:52:01 2010 +0100 + + Eliminate some newSV(0)s by merging the SV allocation with first modification. + +commit 77bac227771c643a8a6e305b2bac4665a8f772d1 +Author: Nicholas Clark +Date: Sun May 30 11:51:15 2010 +0100 + + Only allocate entries for @_ when the subroutine is first called. + + Previously, @_ was allocated for every subroutine at compile time, with a + default sized AV, hence space for 4 entries. We don't actually need to + allocate the space for entries, as there is already a check at call time as to + whether @_ is long enough. + + valgrind suggests that this saves allocating 23K (on a 64 bit platform) when + running pod2man on perlfunc.pod. As well as the absolute saving, there is also + benefit in deferring allocation for subroutines actually called - for a program + which forks, @_ is less likely to be in pages shared COW with the parent. + + Resolves RT #72416. + +commit c85ae797ecb755d3bcfabd44aa268e3e6e2e7c13 +Author: Nicholas Clark +Date: Sat May 29 22:22:36 2010 +0100 + + Fix the regexp in t/porting/args_assert.t, and add 3 missing macros. + + Resolves RT #72800. + +commit af534a0431cd837092de9abe4bff29feeeafebb3 +Author: Nicholas Clark +Date: Sat May 29 22:07:04 2010 +0100 + + Properly free paren_name_list with its regexp. + + Previously the AV paren_name_list would "leak" until global destruction. + This was only an issue under -DDEBUGGING. Fixes RT #73438. + +commit 1c8f8eb1d500716bc7368dab00869ae3be841e0c +Author: Karl Williamson +Date: Thu Jan 14 21:21:37 2010 -0700 + + Clarify that count is bytes not unicode characters + +commit c2dc4c7d5e51c6211637044820c7a560da7e6268 +Author: Karl Williamson +Date: Thu Jan 14 19:19:22 2010 -0700 + + Display characters as Unicode for clarity + +commit 35db910f236b637e47a514ee62ca3e5a98169ddd +Author: Karl Williamson +Date: Thu Jan 14 17:36:46 2010 -0700 + + Add tested for corrupted regnode + +commit 525aa6214fa98872c8e7604a6b63bd6c7914f3a4 +Author: Karl Williamson +Date: Thu Jan 14 16:02:14 2010 -0700 + + Use sizeof instead of hard-coded array size + + The array should be declared with its actual size. + +commit 22c985d500f518cdb601db921ea5b3edaa6c4ae6 +Author: Karl Williamson +Date: Thu Jan 14 16:01:13 2010 -0700 + + Typo + +commit 4c0f30d62c000e3bbbd4f45eb9fd4bd4b4015cf9 +Author: Nicholas Clark +Date: Sat May 29 16:23:53 2010 +0100 + + When assigning to $^P, don't zero $DB::single, $DB::trace and $DB::signal. + + Previously, whenever a true value was assigned to $^P, all 3 were set to 0. + Now only set them to 0 if they aren't already SvIOK(). + + Resolves RT #72422. + +commit 261c990ef860580c9092985d3f4629073a671b2f +Author: Nicholas Clark +Date: Fri May 28 16:02:12 2010 +0100 + + Migrate most other op_private to name conversion into S_op_private_to_names(). + +commit 1fe3abee1ef8693b6241cf4cb1670e7e5e2d4a51 +Author: Nicholas Clark +Date: Fri May 28 14:33:34 2010 +0100 + + In Perl_do_op_dump(), move calls to append_flags() into S_op_private_to_names() + +commit cd431fdedf8dec69c65efa7edc1d60005800919a +Author: Nicholas Clark +Date: Fri May 28 14:53:04 2010 +0100 + + Add C_ARRAY_END(), returning a pointer to after the last element of an array. + + Refactor the macro append_flags() in dump.c to use it. + +commit 5c135d48c0468f552840e5ac9811f70aebcac766 +Author: Nicholas Clark +Date: Fri May 28 13:53:02 2010 +0100 + + In Perl_do_op_dump(), reorder the ops within the if (o->op_private) clause. + +commit ae1f06a125e806e4a0c111878fb9da530a3df3c6 +Author: Nicholas Clark +Date: Fri May 28 13:43:43 2010 +0100 + + In Perl_do_sv_dump(), use append_flags() for PVCV, PVFM and PVGP flags. + +commit 16cf2f8dc20a01967bab359ae99891d1259c6812 +Author: Nicholas Clark +Date: Fri May 28 11:50:54 2010 +0100 + + In Perl_do_sv_dump(), for PVCV and PVFM, test for SvCOMPILED(sv) last. + +commit ea9ad1f28e506daa41693d2ef7ab39b8182101b1 +Author: Nicholas Clark +Date: Fri May 28 11:26:16 2010 +0100 + + In Perl_do_op_dump(), move runs of op_private name tests to S_append_flags(). + +commit a0c2f4dde00175193ad56350e2a8982e360c6726 +Author: Nicholas Clark +Date: Fri May 28 10:56:21 2010 +0100 + + Create S_append_flags() from a common code pattern in dump.c. + + Convert repetitive sequences of "if this bit is set, append that string" into + structures and a function call. Use a custom macro append_flags() to make + calling it easer. + + This makes the object code slightly smaller. + +commit eff5b9d539e47421a784cb6a5fa9366c6522a4eb +Author: Nicholas Clark +Date: Tue Jan 5 13:06:52 2010 +0000 + + InPerl_boot_core_UNIVERSAL() use a data structure for calls to newXS{,proto} + + Replacing the longhand list of calls to newXS{,proto} with loop over a data + structure reduces the object size by over 1K. + +commit dc1f0c2041dab5a98af69338d1fa501b5e90ac70 +Author: Salvador Ortiz Garcia +Date: Fri May 28 10:25:52 2010 +0200 + + Naif calls segfault T_PRTOBJ of the stock typemap + + The T_PTROBJ INPUT in stock typemap only uses 'sv_derived_from' for + input validation, that cause a segfault when the argument passed match + the class name. + +commit 02927be17db68ef768a4a953e754b78a4350b226 +Author: Nicholas Clark +Date: Fri May 28 07:58:19 2010 +0100 + + Add simple_bitmask and varies_bitmask to globvar.sym. + + global.sym is generated; is there a way to automate globvar.sym? + +commit ded4dd2add376b302c561318612805c584ef9e6a +Author: Nicholas Clark +Date: Wed Mar 17 17:16:24 2010 +0000 + + Convert REGNODE_{SIMPLE,VARIES} to a bitmask lookup, from a strchr() lookup. + + This is O(1) with no branching, instead of O(n) with branching. + Deprecate the old implementation's externally visible variables + PL_simple and PL_varies. Google codesearch suggests that nothing outside the + core regexp code was using these. + +commit 93882df08ca38a02b0381419b29fff019ec87ef7 +Author: Nicholas Clark +Date: Wed Mar 17 16:41:27 2010 +0000 + + Change regcomp.pl to 0-based indexing for its arrays and loops. + +commit e52fc5395a9d11f134b6e4ecacde7782d1af6b26 +Author: Nicholas Clark +Date: Wed Mar 17 13:58:25 2010 +0000 + + Encapsulate lookups in PL_{varies,simple} within macros REGNODE_{VARIES,SIMPLE} + + This allows the implementation of the lookup mechanism to change. + +commit f9ef50a71935a8e93b4030c12dcd1206ccab71ab +Author: Nicholas Clark +Date: Wed Mar 17 13:33:48 2010 +0000 + + Generate PL_simple[] and PL_varies[] with regcomp.pl, rather than hard-coding. + + Add a new flags column to regcomp.sym, with V if the node type is in PL_varies, + S if it is in PL_simple, and . if a placeholder is needed because subsequent + optional columns are present. + +commit f8abb37e5b952f76a9e019137369e3f8ef5a58ae +Author: Nicholas Clark +Date: Tue Mar 16 10:22:04 2010 +0000 + + Re-work the regcomp.sym to remove use of hard tabs. No data change. + + The tab separating name and type is replaced with whitespace, the tab marking + the start of the description is replaced by a semicolon. + +commit 5014f7dab1e8d50a8f9ba9b88aa6446cfc8189ab +Author: Nicholas Clark +Date: Tue Mar 16 09:50:29 2010 +0000 + + Correct the node numbers in comments. + + Really, should we be maintaining these manually? + +commit 20832bc55b5c8a1f61c1270e40b964ff1488847d +Author: Nicholas Clark +Date: Tue Mar 16 09:48:35 2010 +0000 + + Remove stray tab character in definition for VERB. + + As VERB is "Used only for the type field of verbs" this is only a cosmetic + change, causing that correct description to appear in the comment in + regnodes.h. The change to regarglen doesn't affect anything, as the VERB type + is never actually used for compiled nodes. + +commit 1404b48744cfa915e3f54775feb4e9b6c10f3b91 +Author: George Greer +Date: Wed May 26 21:12:37 2010 -0400 + + Fix clang "incompatible operand types" error in ternary expressions. + +commit a6f87d8c282ba94b0308898be052d1ac956d0ea9 +Author: Karl Williamson +Date: Fri May 14 08:56:46 2010 -0600 + + PATCH: user defined special casing for non utf8 + + Users can define their own case changing mappings to replace the + standard ones. Prior to this patch, any mappings on characters whose + ordinals are 0-222, 224-255 that resulted in multiple characters were + ignored. + + Note that there still is a deficiency in that the mappings will be + applied only to strings in utf8 format. + +commit 8a38a8369536df0f4eac69e5a26e9b86f9123d1d +Author: Karl Williamson +Date: Mon May 24 11:01:10 2010 -0600 + + Change a few tests to use new test.pl EBCDIC stuff + + A few .t's are delivered here which use the new conversion functions in + test.pl. Obviously, this commit doesn't have to be incorporated, but it + does simplify those tests. + +commit f69d9fdf3f3cf041b8398a5d897daef24f0e5fa0 +Author: Karl Williamson +Date: Mon May 24 10:50:13 2010 -0600 + + Add functions to test.pl for easier EBCDIC testing + + This patch adds functions native_to_latin1($) and latin1_to_native($) to + test.pl. Use of these in test scripts allows for less special case code + (or deciding to blow it off and just skip EBCDIC platforms). If a + string is all ASCII, one has always been able to just use it and not + worry about EBCDIC. But non-ASCII, latin1 characters have been a + different matter. This allows one to wrap those characters in a + function call and get automatic EBCDIC compatibility. + + The functions do not handle UTF-8/UTF-EBCDIC conversions. This is more + complicated, and I was worried that that part was not appropriate for + test.pl which should use the bare minimum of Perl functionality. These + functions use tr///, beyond what other parts of test.pl use. + +commit 04518cc3f43b495f85caf2ec89c8b06540a60f8c +Author: Nicholas Clark +Date: Tue May 25 17:23:10 2010 +0100 + + Fix CLONE/weakref bug revealed by adf8f095c5881bce. + + The AV unreferenced in the clone_params needs to be reference counted, rather + than not referenced counted, because the fixup to ensure that all otherwise + 0-reference count scalars have a reference (on the temps stack) happens after + CLONE is run, and CLONE can run Perl code that causes their reference counts + to increase from then return to zero, which prematurely triggers sv_free(). + +commit a77cd7b8173d6381e0eb4d3296627023900d0cb4 +Author: H.Merijn Brand +Date: Tue May 25 18:26:37 2010 +0200 + + Update rsync sources in perlhack + +commit 775f1d61966fb2c5300c9c08fa931980430ed0da +Author: Shlomi Fish +Date: Mon May 24 23:40:48 2010 +0300 + + Add the perl equivalent for av_make. + + Signed-off-by: David Golden + +commit a8676f70bbd19ba630d2e76288f31b4a2d7a63f1 +Author: Shlomi Fish +Date: Wed May 19 20:11:03 2010 +0300 + + Add the Perl equivalent for av_len. + + Signed-off-by: David Golden + +commit 1a3362a5d4e9f2d3548e2937ecf5a9a8a1ac7898 +Author: Shlomi Fish +Date: Wed May 19 17:46:43 2010 +0300 + + Add a missing comma in the av_fill() docs. + + Minor, but still good enough for a commit. + + Signed-off-by: David Golden + +commit 1a32886282d60539000205670909069b85d9eedd +Author: Shlomi Fish +Date: Tue May 18 17:42:52 2010 +0300 + + Clarify the av_fetch() documentation. + + Thanks to LeoNerd and Zefram on #p5p on IRC for some insights and + suggesting versions for the modified text. I ended up using Zefram's + version. + + Signed-off-by: David Golden + +commit b7ff7ff211d0d5fc593efe5c9d305d197ecb8d86 +Author: Shlomi Fish +Date: Tue May 18 15:31:41 2010 +0300 + + Add Perl equivalent for av_exists(). + + This mentions that it's equivalent to exists($myarray[$key]). + + Signed-off-by: David Golden + +commit 71282cab69578876db765e8d8aadb9cc2331ebf2 +Author: Shlomi Fish +Date: Sat May 15 22:13:59 2010 +0300 + + Add a Perl equivalent to av_delete(). + + Signed-off-by: David Golden + +commit 31bde0acd044dc2a6e4ccd40fa4660a6009fcb9d +Author: Shlomi Fish +Date: Sat May 15 21:44:58 2010 +0300 + + Add the Perl equivalent example to av_clear. + + Signed-off-by: David Golden + +commit 683d9ad15a8b09b17249f2efd39d10a9a251cd95 +Author: Shlomi Fish +Date: Sat May 15 21:37:46 2010 +0300 + + Link from GIMME_V to perlcall for a usage example. + + Added a link from the GIMME_V entry to perlcall for a usage example. + + Signed-off-by: David Golden + +commit d5cd9e7bba185db6dc6b1e6fa215978a38ae9ea8 +Author: Karl Williamson +Date: Mon May 24 08:08:51 2010 -0600 + + PATCH: correct misstatement, formats in perlunicode + + This is suitable for 5.12.2, but not many people use this feature. + +commit 24e28fd799c14b3895ad81b7f27a6a547ac2dd44 +Author: Nicholas Clark +Date: Tue May 25 16:30:43 2010 +0100 + + Fix for typo in 0824d66743a706cd, in the expected output with threads. + +commit 0824d66743a706cd268ace8fc9df03d7374c6886 +Author: David Mitchell +Date: Tue May 25 11:38:35 2010 +0100 + + add OPpDEREFed flag to avoid double mg_get() + + The previous commit made various ops such as rv2av unconditionally do + an SvGETMAGIC(). Under some circumstances this could cause a double + mg_get() (and hence double FETCH etc). In particular, when the + proceeding op was something like aelem with OPpDEREF, the aelem would + call vivify_ref(), which would call magic. So in peep(), mark + OP_RV2[SAH]V ops with the new OPpDEREFed flag if the preceding op was + OPpDEREF. Then use this flag to avoid a second dose of magic. + + Note that RV2GV probably needs this flag too, but there weren't any + spare private flag bits left for that op (I think). + +commit bb1bc619ea68d9703fbd3fe5bc65ae000f90151f +Author: Father Chrysostomos (via RT) +Date: Sun Jan 17 14:32:24 2010 -0800 + + Deref ops ignore get-magic when SvROK(sv) + + This is just like bug 68192, except in this case it’s a different set + of operators that have had this problem for much longer. + +commit 6a5f8cbd14b4a44b35830907e944f1af0caeea90 +Author: Father Chrysostomos +Date: Mon May 24 11:56:25 2010 +0100 + + Just the tests from a proposed fix for 68192 + + The bug was fixed in a different way by davem, but the tests + are needed as the base for a commit to follow + +commit 5f26d5fd39994d2ecb568aeb7efdba685fe9a350 +Author: Karl Williamson +Date: Tue May 18 08:43:31 2010 -0600 + + Replace wrong tr/// table in perlebcdic.pod + + perlebcdic.pod contains a helpful table to use in tr/// to convert + between EBCDIC and Latin1/ASCII. Unfortunately, the table is the + inverse of the one it describes, as I discovered in following the + directions on how it was extracted. + + The actual code that uses the table uses it in the inverse way, so it + actually works correctly, but if you follow the instructions to get the + tables corresponding to the other recognized code pages, you will get + the inverse of the ones you wanted, and things won't work out. + + This patch changes the table to its inverse, and changes the sample code + to correspond, as this is easier for the person trying to follow the + instructions since deriving the old table is somewhat more complicated. + + I also changed the table to hex from octal, as that is more the norm + these days, and I changed to recipes in the pod to print out leading + zeros to make all the values the same length, as the table that they can + generate has them. + +commit 8590c068107627f63321a9736653a498cadf3a27 +Author: Karl Williamson +Date: Tue May 18 10:02:26 2010 -0600 + + Remove unused, wrong #define in utf8.h + + is unused in the code, and is wrong for EBCDIC platforms, as there can + be invariants there that aren't ASCII. I simply removed it. + +commit 5df417d0a2691b4e62ac4c2403e6cf71612289f6 +Author: Jerry D. Hedden +Date: Fri May 7 12:14:05 2010 -0400 + + Fix build warnings introduced by v5.13.0-139-ge0fa7e2 + +commit 7c425e3cac4112a3489a559bbfc18e717d87d070 +Author: Nicholas Clark +Date: Mon May 24 21:01:29 2010 +0100 + + Add Perl_clone_params_{del,new} and Perl_sv_dup to the "no threads" exclusions. + +commit adf8f095c5881bcedf07b8e41072f8125e00b5a6 +Author: Nicholas Clark +Date: Fri Feb 26 09:18:44 2010 +0000 + + Set PADSTALE on all lexicals at the end of sub creation. + + The PADSTALEness of lexicals between the 0th and 1st call to a subroutine is now + consistent with the state between the nth and (n + 1)th call. + + This permits a work around in Perl_padlist_dup() to avoid leaking active pad + data into a new thread, whilst still correctly bodging the external references + needed by the current ?{} implementation. Fix that, and this can be removed. + +commit 05d04d9c74ee968bace5e063c9ded74f94b3df24 +Author: Nicholas Clark +Date: Thu Feb 25 21:35:39 2010 +0000 + + Don't clone the contents of lexicals in pads. + + This stops the values of lexicals in active stack frames in the parent leaking + into the lexicals in the child thread. + + With an exception for lexicals with a reference count of > 1, to cope with the + implementation of ?{{ ... }} blocks in regexps. :-( + +commit 4cee4ca8b28e9dadc530df8ce100439bc4a78e73 +Author: Nicholas Clark +Date: Thu Feb 25 16:56:53 2010 +0000 + + In Perl_pad_tidy(), merge the SvPADTMP_on() loops for padtidy_SUB and _FORMAT. + +commit 6de654a5795b6f7915432ff16bcdac0688492a9b +Author: Nicholas Clark +Date: Thu Feb 25 14:21:18 2010 +0000 + + In Perl_padlist_dup() don't duplicate @_ or pads caused by recursion. + + CvDEPTH() is 0 in a new thread, so duplicating pads beyond the always-present + first level is a waste of effort and memory. + +commit d5b1589c09b534ccfeb2eae26b3de9339c1bf22b +Author: Nicholas Clark +Date: Wed Feb 10 09:57:23 2010 +0000 + + Convert PAD_DUP to a function Perl_padlist_dup(). + + assert() that pads are never AvREAL(). + +commit e42956688f2e0df936f1a42811962946e4e185bf +Author: Nicholas Clark +Date: Thu Feb 25 11:12:03 2010 +0000 + + When deleting CLONE_PARAMS, push any unreferenced SVs onto the temps stack. + + Effectively this leaves the cloned-into interpreter in a consistent state. + In the cloned-from interpreter, the SV targets of non-reference owning pointers + *are* referenced and managed by other pointers. SvREFCNT() == 0 SVs in the + cloned-into interpreter result from the non-reference owning pointers being + found and followed, but the reference owning and managing pointers not being + part of the subsection of interpreter state cloned over. Hence, this change + creates reference owning pointers to this SVs on the temps stack, which ensures + that they are correctly cleaned up, and don't "leak" until interpreter + destruction. (Which might be some time away, in a persistent process.) + +commit d08d57ef17162c52e2024a3ba6755f778acbc697 +Author: Nicholas Clark +Date: Wed Feb 24 17:15:41 2010 +0000 + + Better ithreads cloning - add all SVs with a 0 refcnt to the temps stack. + + Track all SVs created by sv_dup() that have a 0 reference count. If they still + have a 0 reference count at the end of cloning, assign a reference to each to + the temps stack. As the temps stack is cleared at thread exit, SVs book keeping + will be correct and consistent before perl_destruct() makes its check for + leaked scalars. + + Remove special case code for checking each @_ and the parent's temp stack. + +commit 1db366cc74404c47243e1d86efa59c6559db818e +Author: Nicholas Clark +Date: Mon May 24 15:48:06 2010 +0100 + + Cleaner implementations for Perl_clone_params_{new,del} + + Not source or binary compatible with maint-5.12. + +commit f7abe70be985cb9179c2e728a593cb8a5c8e049d +Author: Nicholas Clark +Date: Wed Feb 24 11:47:08 2010 +0000 + + Abstract *correct* initialisation of CLONE_PARAMS into Perl_clone_params_new(). + + As it allocates memory dynamically, add Perl_clone_params_del(). This will + allow CLONE_PARAMS to be expand in future in a source and binary compatible + fashion. + + These implementations of Perl_clone_params_new()/Perl_clone_params_del() jump + through hoops to remain source and binary compatible, in particular, by not + assuming that the structure member is present and correctly initialised. Hence + they should be suitable for inclusion into Devel::PPPort. + + Convert threads.xs to use them, resolving RT #73046. + +commit a09252eb79f700c93c37322c1ad831cf3193571b +Author: Nicholas Clark +Date: Tue Feb 23 14:48:17 2010 +0000 + + Convert Perl_sv_dup_inc() from a macro to a real function. + +commit 842c41230043ce99d4bf7b2c79aed85ce2908e89 +Author: Nicholas Clark +Date: Wed Feb 24 15:07:51 2010 +0000 + + In perl_clone_using(), turn off AvREAL() on param->stashes. + + This is an optimisation, not a bug fix. + +commit f5d8aca1e51e677519775b879a4d41b6f78d07d2 +Author: Zefram +Date: Mon May 24 07:38:24 2010 -0400 + + Add package block syntax to perldelta + +commit c4a6534165d0545c5a1273d7febaa02f28023972 +Author: David Golden +Date: Sun May 23 20:04:38 2010 -0400 + + Add perldelta entry for non-destructive substitution + +commit 196007d1d65f1413c42844a9656643290de75eb5 +Author: Nicholas Clark +Date: Sun May 23 21:09:13 2010 +0100 + + Change the API documentation from sv_2nv to sv_2nv_flags. + + Addendum to 39d5de13bc6d138b. + +commit 702646f25c38c963340344fc4125d616ff143857 +Author: Zefram +Date: Sat May 22 23:10:16 2010 +0100 + + fix MAD handling of package block syntax + + There was a broken TOKEN_GETMAD attempting to handle the label preceding a + package-block statement, where no label is actually possible. The correct + behaviour for no label is a no-op, so just remove the TOKEN_GETMAD. + +commit ebe8e111d12294e0144e3f276418ccacc4ff3fe2 +Author: David Mitchell +Date: Sun May 23 15:04:37 2010 +0100 + + add perldelta entry for overload fixes + +commit 847428bd7826cc0cc873c7440aba67dffca8e984 +Author: David Golden +Date: Sun May 23 07:51:04 2010 -0400 + + Format perlhist consistently by maint/dev track + +commit f83c51e56b41b58bf562b416ffc86a6548df8f88 +Author: David Golden +Date: Sun May 23 07:22:32 2010 -0400 + + create perl5132delta + +commit 000c65fce914409ad42f49763dbced48187b5baf +Author: David Golden +Date: Sat May 22 22:46:50 2010 -0400 + + Rephrase perlop for non-destructive substitution + +commit 5901ab6e45f075cff484db49565241f42c2202a5 +Author: David Golden +Date: Sat May 22 22:31:38 2010 -0400 + + Add David Caldwell to AUTHORS + +commit 4f4d7508b0c2c114e5f52420e0e87a853c5f642a +Author: David Caldwell +Date: Mon Nov 23 17:24:25 2009 -0800 + + Add s///r (non-destructive substitution). + + This changes s/// so that it doesn't act destructively on its target. + Instead it returns the result of the substitution (or the original string if + there was no match). + + In addition this patch: + + * Adds a new warning when s///r happens in void context. + * Adds a error when you try to use s///r with !~ + * Makes it so constant strings can be bound to s///r with =~ + * Adds documentation. + * Adds some tests. + * Updates various debug code so it knows about the /r flag. + * Adds some new 'r' words to B::Deparse. + +commit dd9035cd5bdeced1187df399d27d526f3b30194b +Author: Nicholas Clark +Date: Tue Nov 17 10:17:11 2009 +0000 + + Restore strict refs on stashes, removed by ce10b5d1ec5b5f68b0811018a415bc37. + + Strictures on stashes were special-cased, because the lexer was special-cased + to avoid autovivifying stashes (in adc51b978ed1b2e9d4512c9bfa80386ac917d05a, + now reverted), to keep the behaviour of defined %stash:: consistent. + + defined %stash:: is deprecated. + + Keep the new regression tests from ce10b5d1ec5b5f68b0811018a415bc37bb6bfe5e. + +commit 223f0fb7579941d15c6185ada7e98fb53bf60852 +Author: Nicholas Clark +Date: Sat Oct 24 12:22:01 2009 +0100 + + Re-instate the use of gv_stashpvn_flags(), and the correct non-boolean argument. + + This restores the change of 9bde8eb087a2c05d4c8b0394a59d28a09fe5f529. + +commit 0cc522c3af5e9943da81cc0c962abc67d3df6925 +Author: Nicholas Clark +Date: Sat Oct 24 11:36:06 2009 +0100 + + Remove the tokeniser hack that prevents compile-time vivification of %stash:: + + This was put in to ensure that defined %stash:: continued to return false after + the implementation of hashes was changed, such that stashes were always defined. + defined %stash:: is deprecated. + + This reverts the tokeniser changes of adc51b978ed1b2e9d4512c9bfa80386ac917d05a, + 76138434928a968a390c791aec92e5f00017d01d, + d6069db2e52f58ef65bf59f2fd453604270d2205 and part of + 9bde8eb087a2c05d4c8b0394a59d28a09fe5f529, and updates the tests added with those + commits to reflect the restored (but as yet unreleased) behaviour. + + I don't think that this should be merged to blead until after 5.12.0 ships, + with the enabled deprecation warnings on defined %hash, as it changes subtle + behaviour that all current released stable perls accept without warning. + +commit 4fa7c2bfe0a54ceffcc7c56cdc072eaeaf54cad9 +Author: Nicholas Clark +Date: Fri May 21 20:32:28 2010 +0100 + + PL_in_load_module only has values 0 and 1, so can be a bool instead of int. + +commit fcd24582e9751804a977b6d4ef227de5a3b0343b +Author: Nicholas Clark +Date: Sat Mar 13 11:23:46 2010 +0000 + + Perl_hv_fill(), count empty chains down, rather than used chains up. + + The assumption is that most chains of a hash are in use. + + Suggestion and initial patch by Ruslan Zakirov. + +commit 359164a0b0ca9d7142b89ef0b09c1d01437e4471 +Author: Nicholas Clark +Date: Sun Jan 24 15:39:53 2010 +0000 + + Eliminate xhv_fill from struct xpvhv. + +commit 4d0fbddde6c5dcb972786d09de0cab6e93056b88 +Author: Nicholas Clark +Date: Sun Jan 24 15:07:50 2010 +0000 + + Make HvFILL() count the allocated buckets, instead of reading a stored value. + + Add a function Perl_hv_fill to perform the count. This will save 1 IV per hash, + and on some systems cause struct xpvhv to become cache aligned. + +commit f4431c56525a8650559872ff19c75f109a5d1190 +Author: Nicholas Clark +Date: Sun Jan 24 10:50:02 2010 +0000 + + Replace boolean use of HvFILL(hv) with HvTOTALKEYS(hv), which is equivalent. + +commit ed3b9b3c212f717939207379cdb328156dd4a01e +Author: David Mitchell +Date: Fri May 21 17:07:40 2010 +0100 + + followup to magic/overload fix + + 6f1401dc2acd2a2b85df22b0a74e5f7e6e0a33aa was over-enthusiastic + on removing redundant code in the comparison ops. This code was only used + on 64-bit #ifdef branches which is why I failed to spot it earlier. + So restore that code! + +commit 6f1401dc2acd2a2b85df22b0a74e5f7e6e0a33aa +Author: David Mitchell +Date: Fri May 21 14:18:21 2010 +0100 + + make overload respect get magic + + In most places, ops checked their args for overload *before* doing + mg_get(). This meant that, among other issues, tied vars that + returned overloaded objects wouldn't trigger calling the + overloaded method. (Actually, for tied and arrays and hashes, it + still often would since mg_get gets called beforehand in rvalue + context). + + This patch does the following: + + Makes sure get magic is called first. + + Moves most of the overload code formerly included by macros at the + start of each pp function into the separate helper functions + Perl_try_amagic_bin, Perl_try_amagic_un, S_try_amagic_ftest, + with 3 new wrapper macros: + tryAMAGICbin_MG, tryAMAGICun_MG, tryAMAGICftest_MG. + This made the code 3800 bytes smaller. + + Makes sure that FETCH is not called multiple times. Much of this + bit was helped by some earlier work from Father Chrysostomos. + + Added new functions and macros sv_inc_nomg(), sv_dec_nomg(), + dPOPnv_nomg, dPOPXiirl_ul_nomg, dPOPTOPnnrl_nomg, dPOPTOPiirl_ul_nomg + dPOPTOPiirl_nomg, SvIV_please_nomg, SvNV_nomg (again, some of + these were based on Father Chrysostomos's work). + + Fixed the list version of the repeat operator (x): it now only + calls overloaded methods for the scalar version: + (1,2,$overloaded) x 10 + no longer erroneously calls + x_method($overloaded,10)) + + The only thing I haven't checked/fixed yet is overloading the + iterator operator, <>. + +commit c4648999f2aa0b971b46a580c1258b719394072a +Author: Nicholas Clark +Date: Tue Jan 26 17:03:41 2010 +0000 + + Remove union _xivu from _XPVCV_COMMON, and hence structs xpvcv and xpvfm + + Replaced with xcv_depth and xfm_lines respectively. Both structures might + benefit from some field re-ordering. + + Update the descriptive comments in the definition of union _xivu. + +commit 89f6f2871ea81b2c6a09311796395c610f3e3464 +Author: Nicholas Clark +Date: Tue Jan 26 16:28:59 2010 +0000 + + Remove union _xivu from struct regexp - replace it with a non-union paren_names. + + This was the only user of xivu_hv in union _xivu, so remove that too. + +commit de0a224a057997a65d38856f1981702fca5d7c18 +Author: Nicholas Clark +Date: Mon Jan 25 14:28:30 2010 +0000 + + Remove union _xivu from struct xpvhv - replace it with a non-union xav_keys. + +commit 4f7003f5e8adb225a16f3788ec81e193021f41e5 +Author: Nicholas Clark +Date: Mon Jan 25 13:55:28 2010 +0000 + + Remove union _xivu from struct xpvav - replace it with a non-union xav_alloc. + + This was the only user of xivu_p1 in union _xivu, so remove that too. + +commit 889d28b2ea2c17517fae97cf4a92bd3563aaa74f +Author: Nicholas Clark +Date: Mon Jan 25 13:30:16 2010 +0000 + + Reinstate space optimisations to SV body structures. + +commit 6e1287864cd02fb6f429f12a995e1c08e03572b9 +Author: Nicholas Clark +Date: Mon Jan 25 09:27:56 2010 +0000 + + In the SV body, exchange the positions of the NV and stash/magic. + +commit 601dfd0af0604fa7ed2cabe7f33a232b9b3908c0 +Author: Nicholas Clark +Date: Fri Jan 22 15:31:49 2010 +0000 + + Remove all space optimisations from SV body structures. + +commit 89c1d9143a1f7d921350481bd9e3f617a2988f9c +Author: H.Merijn Brand +Date: Fri May 21 08:01:54 2010 +0200 + + The size of a character in C is per definition 1 + +commit 23ae7f173577cbe2d62a4f7d64340f6457c75ee3 +Author: Sisyphus +Date: Thu May 20 17:56:07 2010 -0700 + + Fix CCINCDIR and CCLIBDIR for mingw64 cross compiler + + When building perl with the mingw64 x64 cross-compiler 'incpath', 'libpth', + 'ldflags', 'lddlflags' and 'ldflags_nolargefiles' values in Config.pm and + Config_heavy.pl are not being set correctly because, with that compiler, the + include and lib directories are not immediately below $(CCHOME). + +commit 36f77d7116441b32ff6c10307a116e105b7eabb4 +Author: Zefram +Date: Thu May 20 21:48:03 2010 +0100 + + fully test package-version-block syntax + + Extend the exhaustive package-version tests in t/op/packagev.t + to test each case using package-block syntax in addition to the + package-declaration syntax. + +commit 3afb2f14ba09da7b54ce62a6f12d9703a7776666 +Author: Zefram +Date: Sat May 1 17:51:21 2010 +0100 + + additional tests for package block syntax + + Test that __PACKAGE__ propagates into string eval correctly. Test that + __LINE__ is correct. Test that goto into and out of package blocks + works correctly. + +commit af5050ac60ae083ebc5a0b2a1b4289c51c622f95 +Author: Zefram +Date: Sat May 1 17:30:26 2010 +0100 + + fix SEGV with eval("package Foo {") + + OPs relating to the package name and version were subject to double + freeing during error recovery from an incomplete package block. Fixed by + using the op_latefree mechanism to shift the op free time. + +commit 4e4da3acc11d96d134ed1dc0effd641e7bedb0ca +Author: Zefram +Date: Mon Apr 19 20:37:25 2010 +0100 + + support "package Foo { ... }" + + Package block syntax limits the scope of the package declaration to the + attached block. It's cleaner than requiring the declaration to come + inside the block. + +commit 39f3f7f442aed93239540238d19a15f6020da747 +Author: Nicholas Clark +Date: Tue Feb 23 20:35:29 2010 +0000 + + PL_endav can be NULL, so in S_ithread_create() no need to set it to newAV(). + +commit b1faab355535118c9fb99fcc343501012923ece2 +Author: Nicholas Clark +Date: Sat Feb 13 09:05:18 2010 +0000 + + Remove redundant hv_exists() calls from ithread_create()'s spec parser. + + hv_fetch(..., 0) won't create the element if it doesn't exist, returning a NULL + pointer, so hv_exists() and hv_fetch() is doing two hash lookups where one would + suffice. + + On this machine, reduces the object code by 3K, about 7%. Everyone's a winner. + +commit 4cf5eae5e58faebb6ae9e68e493cd85343f7a76c +Author: Nicholas Clark +Date: Sat Feb 13 08:31:55 2010 +0000 + + Change S_ithread_create() params from a single AV* to a pair of SV** pointers. + + This saves creating, duplicating and freeing and AV, which is only ever used for + an internal calling convention. + +commit 78b7eff23b1757f7fccef902e7e706080a997e2c +Author: Nicholas Clark +Date: Sat Feb 13 08:01:45 2010 +0000 + + In threads.xs, convert thread->params from RV to AV. + + Pass around and store the array directly, rather than creating, holding and + dereferencing a reference to it. + +commit e77da3b2183d0f9c5ea81dc5780d9a480fc4fa88 +Author: Nicholas Clark +Date: Tue Jan 26 12:00:56 2010 +0000 + + SvIVX() isn't valid on SVt_REGEXP + +commit 65ac1738675fbcf49a4c9d625c0c43dd73e6ff2f +Author: Nicholas Clark +Date: Mon Jan 25 10:53:33 2010 +0000 + + In sv.c, _all_ {new,del}_X* macros can be *_body_allocated. + + Previously those where bodies_by_type[sv_type].offset was zero were using + {new,del}_body_typed. However, the optimiser can spot this, and generates the + same object code. This allows simplification of the C code, and more + flexibility to rearrange the structures without generating bugs. + +commit ef01b67f31004ca818c73987384945a0fea605d6 +Author: Ricardo Signes +Date: Thu May 20 10:14:39 2010 -0400 + + update Ricardo Signes's email + +commit faee19b51573e81abe8811f1256a1d27777d6d04 +Author: Rafael Garcia-Suarez +Date: Wed May 19 20:36:12 2010 +0200 + + Do not try to load a feature bundle when doing "no VERSION"