X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/4d1face807dfa10023aa90e871c1203a85eb4d90..56ca34cada940c7f6aae9a59da266e541530041e:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index badba25..3f0d2d8 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -5,16 +5,16 @@ [ this is a template for a new perldelta file. Any text flagged as XXX needs to be processed before release. ] -perldelta - what is new for perl v5.13.9 +perldelta - what is new for perl v5.13.10 =head1 DESCRIPTION -This document describes differences between the 5.13.8 release and -the 5.13.9 release. +This document describes differences between the 5.XXX.XXX release and +the 5.XXX.XXX release. -If you are upgrading from an earlier release such as 5.13.7, first read -L, which describes differences between 5.13.7 and -5.13.8. +If you are upgrading from an earlier release such as 5.YYY.YYY, first read +L, which describes differences between 5.ZZZ.ZZZ and +5.YYY.YYY. =head1 Notice @@ -28,47 +28,11 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] -=head2 New regular expression modifier C - -The C regular expression modifier restricts C<\s> to match precisely -the five characters C<[ \f\n\r\t]>, C<\d> to match precisely the 10 -characters C<[0-9]>, C<\w> to match precisely the 63 characters -C<[A-Za-z0-9_]>, and the Posix (C<[[:posix:]]>) character classes to -match only the appropriate ASCII characters. The complements, of -course, match everything but; and C<\b> and C<\B> are correspondingly -affected. Otherwise, C behaves like the C modifier, in that -case-insensitive matching uses Unicode semantics; for example, "k" will -match the Unicode C<\N{KELVIN SIGN}> under C matching, and code -points in the Latin1 range, above ASCII will have Unicode semantics when -it comes to case-insensitive matching. Like its cousins (C, C, -and C), and in spite of the terminology, C in 5.14 will not -actually be able to be used as a suffix at the end of a regular -expression (this restriction is planned to be lifted in 5.16). It must -occur either as an infix modifier, such as C<(?a:...)> or (C<(?a)...>, -or it can be turned on within the lexical scope of C. -Turning on C turns off the other "character set" modifiers. - -=head2 Any unsigned value can be encoded as a character - -With this release, Perl is adopting a model that any unsigned value can -be treated as a code point and encoded internally (as utf8) without -warnings -- not just the code points that are legal in Unicode. -However, unless utf8 warnings have been -explicitly lexically turned off, outputting or performing a -Unicode-defined operation (such as upper-casing) on such a code point -will generate a warning. Attempting to input these using strict rules -(such as with the C<:encoding('UTF-8')> layer) will continue to fail. -Prior to this release the handling was very inconsistent, and incorrect -in places. Also, the Unicode non-characters, some of which previously were -erroneously considered illegal in places by Perl, contrary to the Unicode -standard, are now always legal internally. But inputting or outputting -them will work the same as for the non-legal Unicode code points, as the -Unicode standard says they are illegal for "open interchange". - -=head2 Regular expression debugging output improvement - -Regular expression debugging output (turned on by C) now -uses hexadecimal when escaping non-ASCII characters, instead of octal. +=head2 Add C<\p{Titlecase}> as a synonym for C<\p{Title}> + +This synyom is added for symmetry with the Unicode property names +C<\p{Uppercase}> and C<\p{Lowercase}>. + =head1 Security @@ -87,17 +51,29 @@ XXX For a release on a stable branch, this section aspires to be: [ List each incompatible change as a =head2 entry ] -=head2 All objects are destroyed +=head2 Most C<\p{}> properties are now immune from case-insensitive matching + +For most Unicode properties, it doesn't make sense to have them match +differently under C case-insensitive matching than not. And doing +so leads to unexpected results and potential security holes. For +example -It used to be possible to prevent a destructor from being called during -global destruction by artificially increasing the reference count of an -object. + m/\p{ASCII_Hex_Digit}+/i -Now such objects I will be destroyed, as a result of a bug fix -L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>. +could previously match non-ASCII characters because of the Unicode +matching rules. There were a number of bugs in this feature until an +earlier release in the 5.13 series. Now this release reverts, and +removes the feature completely except for the few properties where +people have come to expect it, namely the ones where casing is an +integral part of their functionality, such as C and +C, both of which match the exact same code points, +namely those matched by C. Details are in +L. -This has the potential to break some XS modules. (In fact, it break some. -See L, below.) +User-defined property handlers that need to match differently under +C must change to read the new boolean parameter passed it which is +non-zero if case-insensitive matching is in effect; 0 if not. See +L. =head1 Deprecations @@ -140,40 +116,7 @@ cribbed. =item * -L 0.003 has been added as a dual-life module. It supports a -subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files -included with CPAN distributions or generated by the module installation -toolchain. It should not be used for any other general YAML parsing or -generation task. - -=item * - -L 0.009 has been added as a dual-life module. It is a very -small, simple HTTP/1.1 client designed for simple GET requests and file -mirroring. It has has been added to enable CPAN.pm and CPANPLUS to -"bootstrap" HTTP access to CPAN using pure Perl without relying on external -binaries like F or F. - -=item * - -L 2.27103 has been added as a dual-life module, for the sake of -reading F files in CPAN distributions. - -=item * - -L 1.000003 has been added as a dual-life module. It gathers -package and POD information from Perl module files. It is a standalone module -based on Module::Build::ModuleInfo for use by other module installation -toolchain components. Module::Build::ModuleInfo has been deprecated in -favor of this module instead. - -=item * - -L 1.002 has been added as a dual-life module. It maps Perl -operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types -with standardized names (e.g. "Unix" or "Windows"). It has been refactored -out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into -a single location for easier maintenance. +XXX =back @@ -183,113 +126,32 @@ a single location for easier maintenance. =item * -C has been upgraded from version 0.46 to 0.48 - -=item * - -C has been upgraded from version 1.74 to 1.76 - -=item * - -C has been upgraded from version 3.50 to 3.51 - -Further improvements have been made to guard against newline injections -in headers. - -=item * - -C has been upgraded from version 2.031 to 2.033 - -=item * - -C has been upgraded from version 2.030 to 2.033 - -=item * - -C has been upgraded from version 1.94_62 to 1.94_63 - -=item * - -C has been upgraded from version 0.9010 to 0.9011 - -=item * - -C has been upgraded from version 0.50 to 0.52 - -=item * - -C has been upgraded from version 1.820 to 1.821 - -=item * - -C has been upgraded from version 2.40 to 2.42. -Now, all 66 Unicode non-characters are treated the same way U+FFFF has -always been treated; if it was disallowed, all 66 are disallowed; if it -warned, all 66 warn. - -=item * - -C has been upgraded from version 0.28 to 0.32 - -=item * - -C has been upgraded from version 2.030 to 2.033 - -=item * - -C has been upgraded from version 0.66 to 0.68 - -=item * - -C has been upgraded from version 0.02 to 0.04 +C has been upgraded from version 3.51 to 3.52 =item * -C has been upgraded from version 0.06 to 0.08 +C has been upgraded from version 0.68 to 0.70 =item * -C has been upgraded from version 0.38 to 0.40 +C has been upgraded from version 0.3607 to 0.3622. -=item * - -C has been upgraded from version 0.36 to 0.38 +A notable change is the deprecation of several modules. +Module::Build::Version has been deprecated and Module::Build now relies +directly upon L. Module::Build::ModuleInfo has been deprecated in +favor of a standalone copy of it called L. +Module::Build::YAML has been deprecated in favor of L. =item * -C has been upgraded from version 0.26 to 0.28 - -=item * - -C has been upgraded from version 0.58 to 0.59 - -=item * - -C has been upgraded from version 0.20 to 0.24 - -=item * - -C has been upgraded from version 2.11 to 2.12. - -=item * - -C has been upgraded from version 2.11 to 2.12. - -=item * - -C has been upgraded from version 1.81_03 to 1.82 - -=item * - -C has been upgraded from version 1.35 to 1.36 - -=item * +C has been upgraded from version 0.68 to 0.72 -C has been upgraded from version 1.1901_01 to 1.2000. +This also sees the switch from using the pure-perl version of this +module to the XS version.` =item * -C has been upgraded from version 1.07 to 1.10 +XXX =back @@ -322,13 +184,13 @@ XXX Changes which significantly change existing files in F go here. However, any changes to F should go in the L section. -=head3 L +=head3 L =over 4 =item * -It has now been documented that C returns 0 for an empty string. +XXX Description of the change here =back @@ -376,14 +238,13 @@ here. Most of these are built within the directories F and F. entries for each change Use L with program names to get proper documentation linking. ] -=head3 L +=head3 L =over 4 =item * -C did not previously generate a From: header, potentially -resulting in dropped mail. Now it does include that header. +XXX =back @@ -418,8 +279,7 @@ that they represent may be covered elsewhere. =item * -A new test script, C, makes sure that filenames and -paths are reasonably portable. +XXX =back @@ -466,11 +326,16 @@ L section. =over 4 -=item Solaris +=item Windows + +=over 4 + +=item * + +The C build target now depends on F to allow the +F test to run successfully. -DTrace is now supported on Solaris. There used to be build failures, but -these have been fixed -L<[perl #73630]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=73630>. +=back =back @@ -486,44 +351,7 @@ be noted as well. =item * -The opcode bodies for C and C and for C and C have -been merged. The implementation functions C and -C, never part of the public API, have been merged and moved to -a static function in F. This shrinks the perl binary slightly, and should -not affect any code outside the core (unless it is relying on the order of side -effects when C is passed a I of values). - -=item * - -Some of the flags parameters to the uvuni_to_utf8_flags() and -utf8n_to_uvuni() have changed. This is a result of Perl now allowing -internal storage and manipulation of code points that are problematic -in some situations. Hence, the default actions for these functions has -been complemented to allow these code points. The new flags are -documented in L. Code that requires the problematic code -points to be rejected needs to change to use these flags. Some flag -names are retained for backward source compatibility, though they do -nothing, as they are now the default. However the flags -C, C, C, and -C have been removed, as they stem from a -fundamentally broken model of how the Unicode non-character code points -should be handled, which is now described in -L. See also L. - -=item * - -Certain shared flags in the C and C -structures have been removed. These are: C, -C, and C. Instead there are encodes and -three static in-line functions for accessing the information: -C, C, and C, -which are defined in the places where the orginal flags were. - -=item * - -A new option has been added to C to dump all characters above -ASCII in hexadecimal. Before, one could get all characters as hexadecimal -or the Latin1 non-ASCII as octal +XXX =back @@ -539,53 +367,8 @@ L. =item * -The handling of Unicode non-characters has changed. -Previously they were mostly considered illegal, except that only one of -the 66 of them was known about in places. The Unicode standard -considers them legal, but forbids the "open interchange" of them. -This is part of the change to allow the internal use of any code point -(see L). Together, these changes resolve -L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>, -L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>, -L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>, -L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446> - -=item * - -Sometimes magic (ties, tainted, etc.) attached to variables could cause an -object to last longer than it should, or cause a crash if a tied variable -were freed from within a tie method. These have been fixed -L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>. - -=item * - -Most I/O functions were not warning for unopened handles unless the -'closed' and 'unopened' warnings categories were both enabled. Now only -C is necessary to trigger these warnings (as was -always meant to be the case. - -=item * - -C<< >> always respects overloading now if the expression is -overloaded. - -Due to the way that '<> as glob' was parsed differently from -'<> as filehandle' from 5.6 onwards, something like C<< <$foo[0]> >> did -not handle overloading, even if C<$foo[0]> was an overloaded object. This -was contrary to the documentation for overload, and meant that C<< <> >> -could not be used as a general overloaded iterator operator. - -=item * - -Destructors on objects were not called during global destruction on objects -that were not referenced by any scalars. This could happen if an array -element were blessed (e.g., C) or if a closure referenced a -blessed variable (C). - -Now there is an extra pass during global destruction to fire destructors on -any objects that might be left after the usual passes that check for -objects referenced by scalars -L<[perl #36347]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=36347>. +A Unicode C<\p{}> property match in a regular rexpression pattern will +now force Unicode rules for the rest of the regular expression =back @@ -604,8 +387,7 @@ from either 5.XXX.XXX or 5.XXX.XXX. =item * -The fix for [perl #81230] causes test failures for C version 804.029. -This is still being investigated. +XXX =back @@ -653,633 +435,3 @@ The F file for general stuff. The F and F files for copyright information. =cut - -=for later - -Below, you'll find a cut-down version of the git log from 5.13.8 to 1b9043bb. -Jesse went through and took a first pass at cutting out non-changelog items. He may have been over-(or under-)zealous. - -It hasn't yet been deduped with the entries that _are_ in the perldelta. - - - Major spell-checking pass throughout the core - - Remove references to compat3.sym and interp.sym, deleted over 10 years ago. - - Remove Mac OS classic code from numerous places throughout the core - -commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e -Author: Leon Timmermans -Date: Tue Jan 18 16:40:07 2011 +0100 - - Also unblock signal handlers throwing an exception - - Also handle and test the edge case of a signal handler throwing an - exception - - - - -Numberous POD warnings fixed - - - - Update Unicode-Collate to CPAN version 0.71 - - -internals - - - regexec.c: Remove break statements from macros - - This is so future coders won't be tempted to rely on them. - - regexec.c: Don't rely on break stmts in macros - - It is safer and clearer to have the break statement in each case statement at - the source level - -commit b57e41186b2ceb48bef4f0588dcd19e105cc8a38 -Author: Karl Williamson -Date: Tue Jan 18 15:03:41 2011 -0700 - - regcomp: Disallow multi-char folds in lookbehind - - The addition of the ANYOFV regnode to treat multi-char folds in a bracketed - character class has exposed a bug, in which those classes have long been able - to be varying length (due to the multi-char fold), but the compiler wasn't - aware of it. Now it is, and hence won't allow those which have multi-char - folds to be part of a lookbehind pattern, which requires a constant length. - - This patch disallows multi-char folds in a lookbehind bracketed character - class. - -Author: Nicholas Clark -Date: Tue Jan 18 16:14:43 2011 +0000 - - Remove Mac OS classic code from scripts in utils/ - - - Convert DosGlob.t to Test::More. - -commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e -Author: Nicholas Clark -Date: Tue Jan 18 13:08:11 2011 +0000 - - Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find} - - The documentation for the different behaviour on Mac OS Classic was not - removed when the relevant code was removed in 862f843bac3434c2. That commit - also remove all callers to several Mac OS classic support functions, but not - the functions themselves. Rectify this. - -commit 8254cbf193c939338449097a80163197fc755150 -Author: Nicholas Clark -Date: Tue Jan 18 11:10:41 2011 +0000 - - Build perltoc.pod with pragmata sorted by name. - - Previously they were actually sorted by full pathname, which isn't logical. - I presume that this is an artefact of all pragmata being in lib/ when - pod/buildtoc was originally written. - -commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6 -Author: Father Chrysostomos -Date: Mon Jan 17 22:32:52 2011 -0800 - - perlcall: Fixes for various grammatical errors - -commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce -Author: Leon Timmermans -Date: Mon Jan 17 17:59:33 2011 +0100 - - Clarify limitation in safe signals. - -commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95 -Author: Leon Timmermans -Date: Mon Jan 17 16:29:11 2011 +0100 - - Added tests for conditional unblocking - -commit 555344425f04e96a72e4d29eab96b34bff8f96ae -Author: Leon Timmermans -Date: Thu Jan 13 18:30:29 2011 +0100 - - Conditionally unblock after signal handler[#82040] - - Only unblock signal after a safe-signal handler is executed if that signal was - also unblocked before the handler. -commit 435aa301127ed481169903cb35187bde1ea44928 -Author: David Golden -Date: Mon Jan 17 20:39:14 2011 -0500 - - Update HTTP::Tiny to CPAN version 0.009 - -commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5 -Author: David Mitchell -Date: Tue Jan 18 00:46:30 2011 +0000 - - vastly speed up t/porting/diag.t - - This used to take about 3 minutes of CPU. Reduce this to around - 6 seconds (!!) by coalescing and pre-compiling various patterns - that get applied to nearly every line of every source file. - -commit cfaf538b6276c6a8ef80ff6c66e106c6a4f1caaa -Author: Karl Williamson -Date: Mon Jan 17 08:58:53 2011 -0700 - - Add /a regex modifier - - This restricts certain constructs, like \w, to matching in the ASCII range only. - -commit 56ae17b45d2513d65903d13468e8f6a16b20f916 -Author: Karl Williamson -Date: Sun Jan 16 17:41:30 2011 -0700 - - regcomp.c: Convert \d \D to a switch{} - -commit eee47ba661717bca7751443be1b6ac8f8f64585a -Author: Chris 'BinGOs' Williams -Date: Mon Jan 17 12:35:54 2011 +0000 - - Update File-Fetch to CPAN version 0.32 - -commit e66820012d29519f903709f005e56a2c334ae183 -Author: Tony Cook -Date: Mon Jan 17 19:22:08 2011 +1100 - - test_prep now depends on the pods needed for porting/buildtoc.t - - In the other makefiles test_prep (or test-prep) depends on all, so - they shouldn't need updating. - - -commit a52237f3a547cdefddd4c4be6224bfdf67c84263 -Author: David Golden -Date: Sun Jan 16 21:32:21 2011 -0500 - - Update CPAN to CPAN version 1.94_63 - -commit 63ac0dadb1aafcf0c171d3c1422c1923b611b2fc -Author: Karl Williamson -Date: Tue Dec 28 16:13:49 2010 -0700 - - regex: Use BOUNDU regnodes - - This refactors one area in regexec.c to use BOUNDU, NBOUNDU for - efficiciency, and easier adding of the future BOUNDA. - -commit 980866de2cf8ecdb4bb72b7f9294763057008f50 -Author: Karl Williamson -Date: Mon Dec 27 12:04:58 2010 -0700 - - regex: Separate nodes for Unicode semantics \s \w - - This patch converts the \s, \w and complements Unicode semantics to - instead of using the flags field of their nodes to instead use separate - nodes. This gains some efficiency, especially useful in tight loops and - backtracking of regexec.c, and prepares the way for easily adding other - semantic variations, such as /a. - - It refactors the CCC_TRY... macros. I tried to break this piece up into - smaller chunks, but found it much easier to get to this in one step. - Further patches will do some more refactoring of these. - - As part of the CCC_TRY macro refactoring, the lines that include the - test if (! nextchr) are changed to just look for the end-of-string by - position instead of it being NUL. In locales, it could be (however - unlikely), that NUL is a real alphabetic, digit, or space character. -commit 50e911483ad5c29e25c54c9f81f92df974dd2cc0 -Author: Karl Williamson -Date: Sun Dec 26 10:35:58 2010 -0700 - - Change name of /d to DEPENDS - - I much prefer David Golden's name for /d whose meaning 'depends' on - circumstances, instead of 'dual' meaning it could be one or another. - Change it before this gets out in a stable release, and we're stuck with - the old name. - -commit 73134a2eb4055c76fe5b154da95e09118f716fd8 -Author: Karl Williamson -Date: Sun Dec 26 10:35:20 2010 -0700 - - CH] Change usage of regex/op common to common names - - This patch changes the core functions to use the common names for the - fields that are shared between op.c and regcomp.c, just for consistency - of using one name throughout the core for the same thing. - - A grep of cpan shows that both names are used in various modules; so - both names must be retained. - -commit a3ab329f3fc9494e700f51c38cef42021c130b6e -Author: David Golden -Date: Sun Jan 16 20:57:02 2011 -0500 - - Add HTTP::Tiny as a dual-life core module - - HTTP::Tiny has been added as a dual-life module. It is a very - small, simple HTTP/1.1 client designed for simple GET requests and file - mirroring. It has has been added to enable CPAN.pm and CPANPLUS to - "bootstrap" HTTP access to CPAN using pure Perl without relying on external - binaries like F or F. - -commit 211cc5012284f4bd900fcaa630adbcac69ca6112 -Author: Chris 'BinGOs' Williams -Date: Sun Jan 16 23:23:03 2011 +0000 - - Update Unicode-Collate to CPAN version 0.70 and enable XS version - -commit a62b1201c068dc7b099bcb7182e188c4d2fbf34c -Author: Karl Williamson -Date: Sun Dec 26 10:31:16 2010 -0700 - - Use multi-bit field for regex character set - - The /d, /l, and /u regex modifiers are mutually exclusive. This patch - changes the field that stores the character set to use more than one bit - with an enum determining which one. This data structure more - closely follows the semantics of their being mutually exclusive, and - conserves bits as well, and is better expandable. - - A small API is added to set and query the bit field. - - This patch is not .xs source backwards compatible. A handful of cpan - programs are affected. - - -tools - - Significant updates to buildtoc - - Update Unicode-Normalize to CPAN version 1.10 - -commit 11454c594f22abc5945e69a46fc965363dbf326e -Author: Karl Williamson -Date: Sat Jan 15 13:42:58 2011 -0700 - - Fix \xa0 matching both [\s] [\S], et.al. - - This bug stemmed from Latin1 characters not matching any (non-complemented) - character class in /d semantics when the target string is no utf8; but having - unicode semantics when it isn't. The solution here is to add a special flag. - - There were several tests that relied on the broken behavior, specifically they - tested that \xff isn't a printable word character even in utf8. I changed the - deparse test to instead use a non-printable code point, and I changed the ones - in re_tests to be TODOs, and will change them back using /a when that is - shortly added. - - -SECURITY - - restrict \p{IsUserDefined} to In\w+ and In\w+ - - In L, it says you can - create custom properties by defining subroutines whose names begin with - "In" or "Is". However, perl doesn't actually enforce that naming - restriction, so \p{foo::bar} will call foo::Bar() if it exists. - - This commit finally enforces this convention. Note that this broke a - number of existing tests for properties, since they didn't always use an - Is/In prefix. - -TESTING - - test that perl.pod, pod.lst, MANIFEST and the file system are consistent - -commit f56b6394f7cf57733135f56e4e4ac49abe9ac9cc -Author: Karl Williamson -Date: Thu Jan 13 22:36:36 2011 -0700 - - regex: Use ANYOFV - - This patch restructures the regex ANYOF code to generate ANYOFV nodes instead - when there is a possibility that it could match more than one character. Note - that this doesn't affect the optimizer, as it essentially ignores things that - fit into this category. (But it means that the optimizer will no longer reject - these when it shouldn't have.) - - The handling of the LATIN SHARP s is modified to correspond with this new node - type. - - The initial handling of ANYOFV is placed in regexec.c. More analysis will come - on that. But there was significant change to the part that handles matching - multi-char strings. This has long been buggy, with it previously comparing a - folded-version on one side with a non-folded version on the other. - - This patch fixes about 60% of the problems that my undelivered test suite gives - for multi-char folds. But there are still 17K test failures left, so I'm still - not delivering that. The TODOs that this fixes will be cleaned up in a later commit - - - Update Pod-LaTeX to CPAN version 0.59 - -commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62 -Author: Nicholas Clark -Date: Thu Jan 13 16:24:52 2011 +0000 - - ithread_create() was relying on the stack not moving. Fix this. - - 4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by - passing the thread creation arguments as pointers to a block of memory - holding SVs. Unfortunately, this inadvertently introduced a subtle bug, - because the block of memory is on the Perl stack, which can move as a side - effect of being reallocated to extend it. Hence pass in the offset on the - stack instead, read the current value of the relevant interpreter's stack - at the point of access, and copy all the SVs away before making any further - calls which might cause reallocation. - - Update to Win32-0.44 from CPAN - Update Term-UI to CPAN version 0.24 - Update IO-Compress to CPAN version 2.033 - Update Compress-Raw-Zlib to CPAN version 2.033 - Update Compress-Raw-Bzip2 to CPAN version 2.033 - Update DB_File to CPAN version 1.821 - -DIAGNOSTICS - Correct the "unimplemented" message for get{host,net,proto,serv}ent aliases. - - Previously, if all of gethost{byaddr,byname,ent} were unimplemented on a - platform, they would all return 'Unsupported socket function "gethostent" - called', with the analogous results for getnet{byaddr,byname,ent}, - getproto{byname,bynumber,ent} and getserv{byname,byport,ent}. This bug was - introduced by change af51a00e97d5c559 - prior to this, all 12 functions would - report their own name when unimplemented. - -commit 9ae3ac1a84c63b0eadf5baf47ce7096482280f32 -Author: Karl Williamson -Date: Sun Jan 9 15:33:28 2011 -0700 - - Add warnings for use of problematic code points - - The non-Unicode code points have no Unicode semantics, so applying operations - such as casing on them warns. - - This patch also includes the changes to test the warnings added by recent - commits for handling the surrogates and above-Unicode code points - -commit 949cf4983af707fbd15e422845f4f3df20505f97 -Author: Karl Williamson -Date: Sun Jan 9 13:50:18 2011 -0700 - - utf8.c(): Default to allow problematic code points - - Surrogates, non-character code points, and code points that aren't in Unicode - are now allowed by default, instead of having to specify a flag to allow them. - (Most code did specify those flags anyway.) - - This affects uvuni_to_utf8_flags(), utf8n_to_uvuni() and various routines that - are specialized interfaces to them. - - Now there is a new set of flags to disallow those code points. Further, all 66 - of the non-character code points are known about and handled consistently, - instead of just U+FFFF. - - Code that requires these code points to be forbidden will have to change to use - the new flags. I have looked at all the (few) instances in CPAN where these - routines are used, and the only one I found that appears to have need to do - this, Encode, has already been patched to accommodate this change. Of course, - I may have overlooked some subtleties. - - -commit 7627e6d0fe772ac90fce9e03fea273109521e261 -Author: Nicholas Clark -Date: Sat Jan 8 15:56:22 2011 +0000 - - Generate "Unsupported socket function" stubs using PL_ppaddr. - - Instead of having each socket op conditionally compile as either the - implementation or a DIE() depending on #HAS_SOCKET - - 1: remove the conditional code from the ops themselves - 2: only compile the ops if HAS_SOCKET is defined - 3: general conditional code for the intialisation of PL_ppaddr - as appropriate - either the ops, or Perl_unimplemented_op - 4: Amend Perl_unimplemented_op to generate the appropriate DIE() for socket - ops (ie not the "panic"... message) - - Whilst this complicates the support code in regen/opcode.pl, it's already a - net saving of 5 lines in the C code. - -commit 897d398936dd2fc088a265fba2a7b62fa97ed458 -Author: Nicholas Clark -Date: Sun Jan 9 10:54:58 2011 +0000 - - Generate pp_* prototypes in pp_proto.h, and remove pp.sym - - Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13 - locations that relied on them. - - regen/opcode.pl now generates prototypes for the PP functions directly, into - pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads - this, removing the only ordering dependency in the regen scripts. opcode.pl - is now responsible for prototypes for pp_* functions. (embed.pl remains - responsible for ck_* functions, reading from regen/opcodes) - -commit f1aaabf80b19a3cc6dc435510732b561ab46361e -Author: Chris 'BinGOs' Williams -Date: Sun Jan 9 00:16:46 2011 +0000 - - Update CPANPLUS to CPAN version 0.9011 - Update CPANPLUS-Dist-Build to CPAN version 0.52 - Update Term-UI to CPAN version 0.22 - Update Params-Check to CPAN version 0.28 - -commit a4a4c9e2c086dd5f7b7b05789161614dbbe8385b -Author: Karl Williamson -Date: Sat Jan 8 14:44:05 2011 -0700 - - perldiag.pod: Add missing message severities - -commit 0019012ad86d597fb507f71577d70ecd4c416bba -Author: Chris 'BinGOs' Williams -Date: Sat Jan 8 23:09:04 2011 +0000 - - Update Object-Accessor to CPAN version 0.38 - Update Module-Load-Conditional to CPAN version 0.40 - Update Log-Message to CPAN version 0.04 - Update IPC-Cmd to CPAN version 0.68 - - -TESTING - add test for split without a pattern - - Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables. - - modernise t/cmd/while.t - - Add t/base/while.t testing the basic of a while loop with minimal dependencies. Change t/cmd/while.t into a non-base test using "test.pl". - -commit ac066c2ab5bc31260104aeee778921b186894769 - - Update File-Fetch to CPAN version 0.30 - Update Archive-Tar to CPAN version 1.76 - Update Archive-Extract to CPAN version 0.48 - -commit b86b68b4eefa1069dabc8ea0401d712b24a67857 -Author: Jesse Vincent -Date: Sat Jan 8 00:14:29 2011 +0800 - - Update the policy on doc patches to maint - - -commit e8b333e679eb9a7a62c1d86b647515f01821eb60 -Author: David Golden -Date: Wed Jan 5 22:47:41 2011 -0500 - - Add Module::Metadata as a dual-life core module - - This commit adds Module::Metadata 1.000002 as a dual-life module. It - gathers package and POD information from Perl module files. It is a - standalone module based on Module::Build::ModuleInfo for use by other - module installation toolchain components. Module::Build::ModuleInfo - has been deprecated in favor of this module instead. - -commit a8fb8d791b74ff90850140d94407aad99ec86fe3 -Author: John Peacock -Date: Thu Jan 6 20:02:37 2011 -0500 - - Sync with version 0.88 on CPAN - -commit c1b879e57aecbfe520b3f44dd28472d1862f037d -Author: Craig A. Berry -Date: Wed Jan 5 19:14:06 2011 -0600 - - Make newline on last record explicit. - - On VMS, the last line written to a file will get a trailing newline - willy nilly. This has its advantages insofar as you never get the - "no newline at end of file" warnings from various utilities, but - reality conflicts with expectations when you explicitly test for - the last (or only) line *not* ending with newline, which is what - the recent addtion to ref.t (5e3072707906cc4cb8a364c4cf7c487df0300caa) - was doing. Adding an explicit newline makes everyone happy. - -commit 935c8d19ecf9ad3ea7589ffd1721e6ba1c671ed9 -Author: David Golden -Date: Wed Jan 5 22:25:23 2011 -0500 - - Add Perl::OSType as a dual-life core module - - This commit adds Perl::OSType 1.002 as a dual-life module. It maps Perl - operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic - types with standardized names (e.g. "Unix" or "Windows"). It has been - refactored out of Module::Build and ExtUtils::CBuilder and consolidates - such mappings into a single location for easier maintenance. - - c.f. - http://www.nntp.perl.org/group/perl.perl5.porters/2010/05/msg160280.html - -commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b -Author: Reini Urban -Date: Tue Sep 14 18:04:22 2010 +0200 - - build man pages on cygwin too - -commit 172830635ea7813c85e51e4ae2b4bed56ddbab83 -Author: Reini Urban -Date: Tue Sep 14 17:54:15 2010 +0200 - - Improve cygwin rebase behaviour - - If a dll is updated on cygwin reuse the old imagebase address. - This solves most rebase errors, esp when updating on core dll's. - See http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README - - -Platforms - - Actually excise 'Apollo DomainOS' support. We officially killed it in 5.11.0. It - hadn't worked for years before that. - -commit cc7e77fd5a0ee9f1498e54dddf566117da62754b -Author: Reini Urban -Date: Tue Sep 14 17:48:32 2010 +0200 - - CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix - - part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's. - Ctypes and C::DynaLib use DynaLoader to find dlls. - - part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed - symbol names for the .dll.a importlib, but we need to link against the - symbols directly. We don't link Dynaloader against libperl.dll.a. - - Otherwise: - $ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o DynaLoader.o -ldl -lcrypt - Creating library file: libperl.dll.a - DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols': - ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp' - ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr' - ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base' - -commit c0a149a90b8b6e1c18de7294ca974265fb559cf5 -Author: Reini Urban -Date: Tue Sep 14 18:06:38 2010 +0200 - - Update cygwin hints - do not use usemymalloc (double size + slow) - remove deprecated libcygipc info - remove overlarge stack size - -commit 2831a86cee065b53b74fd19ddcc6a4257484646d -Author: Zsbán Ambrus -Date: Sun Jan 2 20:25:55 2011 -0800 - - [perl #81032] Overhaul Porting/epigraphs.pod - - This patch makes multiple changes to Porting/epigraphs.pod and - pod/perlhist.pod. - - For those that don't know, Porting/epigraphs.pod is a new document that - collects the quotes (chosen by Pumpkins) in perl release announcements. - - The changes are the following. - - 1. Add a link pointing to each release announcement in the mailing - list archives. These are from ysth's list, the source from which - Porting/epigraphs.pod was originally compiled, but they weren't in - Porting/epigraphs.pod so far. - 2. Reorder Porting/epigraphs.pod chronologically, because I believe - that makes more sense -- pod/perlhist.pod is still sorted by version numbers. - 3. Incidentally, some missing releases are added to pod/perlhist.pod too. - 4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number. - 5. Add some epigraphs that appear in ysth's list but not in - Porting/epigraphs.pod. - 6. I did some research in perl history before the part that ysth's list - covers, and added older perl announcements I found. This work is not - complete: I stopped somewhere in 2000. - -commit eccda089fc3dcaafc1ae0aac6b428f799231b824 -Author: Paul "LeoNerd" Evans -Date: Mon Dec 13 17:50:06 2010 +0000 - - Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants - -commit edcf105d70e5423fd928c776e086fe31a4a543f4 -Author: Jesse Vincent -Date: Sat Jan 1 18:46:20 2011 +0800 - - Document 'test_porting' and start a section on how committing to blead - -commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4 -Author: David Golden -Date: Mon Dec 13 17:36:33 2010 -0500 - - Reorganize perlhack.pod - - Following on an IRC conversation, I've attempted to reorganize - perlhack for greater clarity. I have only cut and paste blocks - of text and amended section titles and levels. (I have not addressed - any of the numerous factual issues which remain.) - - The resulting guide should be clearer for those trying to skim the - table of contents to understand what is covered in perlhack and - whether it is worth an in-depth read. - - I see this change as the first step towards future improvements. - -=cut