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 # NODOC 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 # NODOC 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 # DOCed 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 # NODOC 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 # NODOC 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 # NODOC Author: Karl Williamson Date: Thu Jan 14 21:21:37 2010 -0700 Clarify that count is bytes not unicode characters commit c2dc4c7d5e51c6211637044820c7a560da7e6268 # NODOC Author: Karl Williamson Date: Thu Jan 14 19:19:22 2010 -0700 Display characters as Unicode for clarity commit 35db910f236b637e47a514ee62ca3e5a98169ddd # NODOC Author: Karl Williamson Date: Thu Jan 14 17:36:46 2010 -0700 Add tested for corrupted regnode commit 525aa6214fa98872c8e7604a6b63bd6c7914f3a4 # NODOC 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 # NODOC Author: Karl Williamson Date: Thu Jan 14 16:01:13 2010 -0700 Typo commit 4c0f30d62c000e3bbbd4f45eb9fd4bd4b4015cf9 # DOCed 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # HALPHALP 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 # NODOC (verify needed) 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 # NODOC 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 # NODOC 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 # NBODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC Author: George Greer Date: Wed May 26 21:12:37 2010 -0400 Fix clang "incompatible operand types" error in ternary expressions. commit a6f87d8c282ba94b0308898be052d1ac956d0ea9 # HALPHALP 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 # NODOC 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 # NODOC 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 # ALREADY 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 # NODOC Author: H.Merijn Brand Date: Tue May 25 18:26:37 2010 +0200 Update rsync sources in perlhack commit 775f1d61966fb2c5300c9c08fa931980430ed0da # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # ALREADY 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 # ALREADY 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 # ALREADY 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 # ALREADY 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 # DOCed 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 # NODOC 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 # NODOC 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 # NODOC 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 # NODOC 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 # DOCed 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 # NODOC 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 # DOCed 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 # NODOC 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 # DOC (verify needed) 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 # NODOC 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 # NODOC 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 # NODOC (verify) 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 # HALPHALP 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 # NODOC 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 # NODOC Author: Zefram Date: Mon May 24 07:38:24 2010 -0400 Add package block syntax to perldelta commit c4a6534165d0545c5a1273d7febaa02f28023972 # NODOC Author: David Golden Date: Sun May 23 20:04:38 2010 -0400 Add perldelta entry for non-destructive substitution commit 196007d1d65f1413c42844a9656643290de75eb5 # NODOC 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 # ALREADY 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 # NODOC Author: David Mitchell Date: Sun May 23 15:04:37 2010 +0100 add perldelta entry for overload fixes commit 847428bd7826cc0cc873c7440aba67dffca8e984 # NODOC Author: David Golden Date: Sun May 23 07:51:04 2010 -0400 Format perlhist consistently by maint/dev track commit f83c51e56b41b58bf562b416ffc86a6548df8f88 # NODOC Author: David Golden Date: Sun May 23 07:22:32 2010 -0400 create perl5132delta commit 000c65fce914409ad42f49763dbced48187b5baf # ALREADY Author: David Golden Date: Sat May 22 22:46:50 2010 -0400 Rephrase perlop for non-destructive substitution commit 5901ab6e45f075cff484db49565241f42c2202a5 # NODOC Author: David Golden Date: Sat May 22 22:31:38 2010 -0400 Add David Caldwell to AUTHORS commit 4f4d7508b0c2c114e5f52420e0e87a853c5f642a # ALREADY 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 # NODOC 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 # HALPHALP 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 # NODOC (verify) 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 # NODOC 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 # DOCed 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 # DOCed Author: Nicholas Clark Date: Sun Jan 24 15:39:53 2010 +0000 Eliminate xhv_fill from struct xpvhv. commit 4d0fbddde6c5dcb972786d09de0cab6e93056b88 # DOCed 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 # DOCed 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 # ALREADY 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 # ALREADY 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 # HALPHALP 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 # HALPHALP 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 # HALPHALP 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 # HALPHALP 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 # HALPHALP Author: Nicholas Clark Date: Mon Jan 25 13:30:16 2010 +0000 Reinstate space optimisations to SV body structures. commit 6e1287864cd02fb6f429f12a995e1c08e03572b9 # HALPHALP 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 # HALPHALP Author: Nicholas Clark Date: Fri Jan 22 15:31:49 2010 +0000 Remove all space optimisations from SV body structures. commit 89c1d9143a1f7d921350481bd9e3f617a2988f9c # NODOC 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 # DOCed 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 # ALREADY 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 # ALREADY 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 # ALREADY 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 # ALREADY 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 # DOCed as perf enhancement 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 b1faab355535118c9fb99fcc343501012923ece # DOCed as perf enhancement 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 # DOCed as perf enhancement 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 # DOCed as perf enhancement 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 # DOCed (verify) Author: Nicholas Clark Date: Tue Jan 26 12:00:56 2010 +0000 SvIVX() isn't valid on SVt_REGEXP commit 65ac1738675fbcf49a4c9d625c0c43dd73e6ff2f # NODOC (verify) 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 # NODOC Author: Ricardo Signes Date: Thu May 20 10:14:39 2010 -0400 update Ricardo Signes's email commit faee19b51573e81abe8811f1256a1d27777d6d04 # DOCed 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"