argra****@users*****
argra****@users*****
2010年 4月 15日 (木) 19:49:33 JST
Index: docs/perl/5.12.0/perl5120delta.pod diff -u docs/perl/5.12.0/perl5120delta.pod:1.1 docs/perl/5.12.0/perl5120delta.pod:1.2 --- docs/perl/5.12.0/perl5120delta.pod:1.1 Thu Apr 15 04:53:50 2010 +++ docs/perl/5.12.0/perl5120delta.pod Thu Apr 15 19:49:33 2010 @@ -29,6 +29,9 @@ =end original +Many of the bug fixes in 5.12.0 are already included in the 5.10.1 +maintenance release. +(TBT) =begin original @@ -37,6 +40,9 @@ =end original +You can see the list of those changes in the 5.10.1 release notes +(L<perl5101delta>). +(TBT) =head1 Core Enhancements @@ -51,6 +57,10 @@ =end original +This new syntax allows a module author to set the $VERSION of a namespace +when the namespace is declared with 'package'. It eliminates the need +for C<our $VERSION = ...> and similar constructs. E.g. +(TBT) package Foo::Bar 1.23; # $Foo::Bar::VERSION == 1.23 @@ -61,6 +71,8 @@ =end original +There are several advantages to this: +(TBT) =over @@ -72,6 +84,8 @@ =end original +C<$VERSION> is parsed in exactly the same way as C<use NAME VERSION> +(TBT) =item * @@ -81,6 +95,8 @@ =end original +C<$VERSION> is set at compile time +(TBT) =item * @@ -92,6 +108,10 @@ =end original +C<$VERSION> is a version object that provides proper overloading of +comparison operators so comparing C<$VERSION> to decimal (1.23) or +dotted-decimal (v1.2.3) version numbers works correctly. +(TBT) =item * @@ -101,6 +121,8 @@ =end original +Eliminates C<$VERSION = ...> and C<eval $VERSION> clutter +(TBT) =item * @@ -112,6 +134,10 @@ =end original +As it requires VERSION to be a numeric literal or v-string +literal, it can be statically parsed by toolchain modules +without C<eval> the way MM-E<gt>parse_version does for C<$VERSION = ...> +(TBT) =back @@ -125,6 +151,12 @@ =end original +It does not break old code with only C<package NAME>, but code that uses +C<package NAME VERSION> will need to be restricted to perl 5.12.0 or newer +This is analogous to the change to C<open> from two-args to three-args. +Users requiring the latest Perl will benefit, and perhaps after several +years, it will become a standard practice. +(TBT) =begin original @@ -134,6 +166,9 @@ =end original +However, C<package NAME VERSION> requires a new, 'strict' version +number format. See L<"Version number formats"> for details. +(TBT) =head2 The C<...> operator @@ -146,6 +181,10 @@ =end original +A new operator, C<...>, nicknamed the Yada Yada operator, has been added. +It is intended to mark placeholder code that is not yet implemented. +See L<perlop/"Yada Yada Operator">. +(TBT) =head2 Implicit strictures @@ -157,6 +196,10 @@ =end original +Using the C<use VERSION> syntax with a version number greater or equal +to 5.11.0 will lexically enable strictures just like C<use strict> +would do (in addition to enabling features.) The following: +(TBT) use 5.12.0; @@ -166,6 +209,8 @@ =end original +means: +(TBT) use strict; use feature ':5.12'; @@ -183,6 +228,13 @@ =end original +Perl 5.12 comes with Unicode 5.2, the latest version available to +us at the time of release. This version of Unicode was released in +October 2009. See L<http://www.unicode.org/versions/Unicode5.2.0> for +further details about what's changed in this version of the standard. +See L<perlunicode> for instructions on installing and using other versions +of Unicode. +(TBT) =begin original @@ -191,6 +243,9 @@ =end original +Additionally, Perl's developers have significantly improved Perl's Unicode +implementation. For full details, see L</Unicode overhaul> below. +(TBT) =head2 Y2038 compliance @@ -200,6 +255,8 @@ =end original +Perl's core time-related functions are now Y2038 compliant. (It may not mean much to you, but your kids will love it!) +(TBT) =head2 qr overloading @@ -213,6 +270,12 @@ =end original +It is now possible to overload the C<qr//> operator, that is, +conversion to regexp, like it was already possible to overload +conversion to boolean, string or number of objects. It is invoked when +an object appears on the right hand side of the C<=~> operator or when +it is interpolated into a regexp. See L<overload>. +(TBT) =head2 Pluggable keywords @@ -226,6 +289,12 @@ =end original +Extension modules can now cleanly hook into the Perl parser to define +new kinds of keyword-headed expression and compound statement. The +syntax following the keyword is defined entirely by the extension. This +allow a completely non-Perl sublanguage to be parsed inline, with the +correct ops cleanly generated. +(TBT) =begin original @@ -238,6 +307,13 @@ =end original +See L<perlapi/PL_keyword_plugin> for the mechanism. The Perl core +source distribution also includes a new module +L<XS::APItest::KeywordRPN>, which implements reverse Polish notation +arithmetic via pluggable keywords. This module is mainly used for test +purposes, and is not normally installed, but also serves as an example +of how to use the new mechanism. +(TBT) =begin original @@ -246,6 +322,9 @@ =end original +Perl's developers consider this feature to be experimental. We may remove +it or change it in a backwards-incompatible way in Perl 5.14. +(TBT) =head2 APIs for more internals @@ -261,6 +340,14 @@ =end original +The lowest layers of the lexer and parts of the pad system now have C +APIs available to XS extensions. These are necessary to support proper +use of pluggable keywords, but have other uses too. The new APIs are +experimental, and only cover a small proportion of what would be +necessary to take full advantage of the core's facilities in these +areas. It is intended that the Perl 5.13 development cycle will see the +addition of a full range of clean, supported interfaces. +(TBT) =begin original @@ -269,6 +356,9 @@ =end original +Perl's developers consider this feature to be experimental. We may remove +it or change it in a backwards-incompatible way in Perl 5.14. +(TBT) =head2 Overridable function lookup @@ -284,6 +374,14 @@ =end original +Where an extension module hooks the creation of rv2cv ops to modify the +subroutine lookup process, this now works correctly for bareword +subroutine calls. This means that prototypes on subroutines referenced +this way will be processed correctly. (Previously bareword subroutine +names were initially looked up, for parsing purposes, by an unhookable +mechanism, so extensions could only properly influence subroutine names +that appeared with an C<&> sigil.) +(TBT) =head2 A proper interface for pluggable Method Resolution Orders @@ -319,6 +417,14 @@ =end original +Perl now supports C<\N>, a new regex escape which you can think of as +the inverse of C<\n>. It will match any character that is not a newline, +independently from the presence or absence of the single line match +modifier C</s>. It is not usable within a character class. C<\N{3}> +means to match 3 non-newlines; C<\N{5,}> means to match at least 5. +C<\N{NAME}> still means the character or sequence named C<NAME>, but +C<NAME> no longer can be things like C<3>, or C<5,>. +(TBT) =begin original @@ -330,6 +436,12 @@ =end original +This will break a L<custom charnames translator|charnames/CUSTOM +TRANSLATORS> which allows numbers for character names, as C<\N{3}> will +now mean to match 3 non-newline characters, and not the character whose +name is C<3>. (No name defined by the Unicode standard is a number, +so only custom translators might be affected.) +(TBT) =begin original @@ -340,6 +452,11 @@ =end original +Perl's developers are somewhat concerned about possible user confusion +with the existing C<\N{...}> construct which matches characters by their +Unicode name. Consequently, this feature is experimental. We may remove +it or change it in a backwards-incompatible way in Perl 5.14. +(TBT) =head2 DTrace support @@ -393,6 +510,8 @@ =end original +The C<each> function can now operate on arrays. +(TBT) =head2 C<when> as a statement modifier @@ -402,6 +521,8 @@ =end original +C<when> is now allowed to be used as a statement modifier. +(TBT) =head2 C<$,> flexibility @@ -411,6 +532,8 @@ =end original +The variable C<$,> may now be tied. +(TBT) =head2 // in when clauses @@ -420,6 +543,8 @@ =end original +// now behaves like || in when clauses +(TBT) =head2 Enabling warnings from your shell environment @@ -429,6 +554,8 @@ =end original +You can now set C<-W> from the C<PERL5OPT> environment variable +(TBT) =head2 C<delete local> @@ -438,6 +565,8 @@ =end original +C<delete local> now allows you to locally delete a hash entry. +(TBT) =head2 New support for Abstract namespace sockets @@ -451,6 +580,12 @@ =end original +Abstract namespace sockets are Linux-specific socket type that live in +AF_UNIX family, slightly abusing it to be able to use arbitrary +character arrays as addresses: They start with nul byte and are not +terminated by nul byte, but with the length passed to the socket() +system call. +(TBT) =head2 32-bit limit on substr arguments removed @@ -462,6 +597,10 @@ =end original +The 32-bit limit on C<substr> arguments has now been removed. The full +range of the system's signed and unsigned integers is now available for +the C<pos> and C<len> arguments. +(TBT) =head1 Potentially Incompatible Changes @@ -478,6 +617,13 @@ =end original +Over the years, Perl's developers have deprecated a number of language +features for a variety of reasons. Perl now defaults to issuing a +warning if a deprecated language feature is used. Many of the deprecations +Perl now warns you about have been deprecated for many years. You can +find a list of what was deprecated in a given release of Perl in the +C<perl5xxdelta.pod> file for that release. +(TBT) =begin original @@ -489,6 +635,12 @@ =end original +To disable this feature in a given lexical scope, you should use C<no +warnings 'deprecated';> For information about which language features +are deprecated and explanations of various deprecation warnings, please +see L<perldiag.pod>. See L</Deprecations> below for the list of features +and modules Perl's developers have deprecated as part of this release. +(TBT) =head2 Version number formats @@ -504,6 +656,14 @@ =end original +Acceptable version number formats have been formalized into "strict" and +"lax" rules. C<package NAME VERSION> takes a strict version number. +C<UNIVERSAL::VERSION> and the L<version> object constructors take lax +version numbers. Providing an invalid version will result in a fatal +error. The version argument in C<use NAME VERSION> is first parsed as a +numeric literal or v-string and then passed to C<UNIVERSAL::VERSION> +(and must then pass the "lax" format test). +(TBT) =begin original @@ -519,6 +679,16 @@ =end original +These formats are documented fully in the L<version> module. To a first +approximation, a "strict" version number is a positive decimal number +(integer or decimal-fraction) without exponentiation or else a +dotted-decimal v-string with a leading 'v' character and at least three +components. A "lax" version number allows v-strings with fewer than +three components or without a leading 'v'. Under "lax" rules, both +decimal and dotted-decimal versions may have a trailing "alpha" +component separated by an underscore character after a fractional or +dotted-decimal component. +(TBT) =begin original @@ -527,6 +697,9 @@ =end original +The L<version> module adds C<version::is_strict> and C<version::is_lax> +functions to check a scalar against these rules. +(TBT) =head2 @INC reorganization @@ -539,6 +712,11 @@ =end original +In C<@INC>, C<ARCHLIB> and C<PRIVLIB> now occur after after the current +version's C<site_perl> and C<vendor_perl>. Modules installed into +C<site_perl> and C<vendor_perl> will now be loaded in preference to +those installed in C<ARCHLIB> and C<PRIVLIB>. +(TBT) =head2 REGEXPs are now first class @@ -553,6 +731,12 @@ =end original +Internally, Perl now treates compiled regular expressions (such as +those created with C<qr//>) as first class entities. Perl modules which +serialize, deserialize or otherwise have deep interaction with Perl's +internal data structures need to be updated for this change. Most +affected CPAN modules have already been updated as of this writing. +(TBT) =head2 Switch statement changes @@ -837,6 +1021,11 @@ =end original +The definitions of a number of Unicode properties have changed to match +those of the current Unicode standard. These are listed above under +L</Unicode overhaul>. This change may break code that expects the old +definitions. +(TBT) =item * @@ -847,6 +1036,9 @@ =end original +The boolkeys op has moved to the group of hash ops. This breaks binary +compatibility. +(TBT) =item * @@ -856,6 +1048,8 @@ =end original +Filehandles are now always blessed into C<IO::File>. +(TBT) =begin original @@ -865,6 +1059,10 @@ =end original +The previous behaviour was to bless Filehandles into L<FileHandle> +(an empty proxy class) if it was loaded into memory and otherwise +to bless them into C<IO::Handle>. +(TBT) =item * @@ -946,6 +1144,8 @@ =end original +C<length undef> now returns undef. +(TBT) =item * @@ -956,6 +1156,9 @@ =end original +Unsupported private C API functions are now declared "static" to prevent +leakage to Perl's public API. +(TBT) =item * @@ -966,6 +1169,9 @@ =end original +To support the bootstrapping process, F<miniperl> no longer builds with +UTF-8 support in the regexp engine. +(TBT) =begin original @@ -975,6 +1181,10 @@ =end original +This allows a build to complete with PERL_UNICODE set and a UTF-8 locale. +Without this there's a bootstrapping problem, as miniperl can't load +the UTF-8 components of the regexp engine, because they're not yet built. +(TBT) =item * @@ -985,6 +1195,9 @@ =end original +F<miniperl>'s @INC is now restricted to just C<-I...>, the split of +C<$ENV{PERL5LIB}>, and "C<.>" +(TBT) =item * @@ -994,6 +1207,8 @@ =end original +A space or a newline is now required after a C<"#line XXX"> directive. +(TBT) =item * @@ -1004,6 +1219,9 @@ =end original +Tied filehandles now have an additional method EOF which provides the +EOF type. +(TBT) =item * @@ -1014,6 +1232,9 @@ =end original +To better match all other flow control statements, C<foreach> may no +longer be used as an attribute. +(TBT) =item * @@ -1024,6 +1245,9 @@ =end original +Perl's command-line switch "-P", which was deprecated in version 5.10.0, has +now been removed. +(TBT) =back @@ -1099,6 +1323,9 @@ =end original +An accident of Perl's parser meant that these constructions were all +equivalent: +(TBT) my $pi := 4; my $pi : = 4; @@ -1113,6 +1340,11 @@ =end original +with the C<:> being treated as the start of an attribute list, which +ends before the C<=>. As whitespace is not significant here, all are +parsed as an empty attribute list, hence all the above are equivalent +to, and better written as +(TBT) my $pi = 4; @@ -1122,6 +1354,8 @@ =end original +because no attribute processing is done for an empty list. +(TBT) =begin original @@ -1134,6 +1368,13 @@ =end original +As is, this meant that C<:=> cannot be used as a new token, without +silently changing the meaning of existing code. Hence that particular +form is now deprecated, and will become a syntax error. If it is +absolutely necessary to have empty attribute lists (for example, +because of a code generator) then avoid the warning by adding a space +before the C<=>. +(TBT) =item C<< UNIVERSAL->import() >> @@ -1145,7 +1386,8 @@ =end original - +C<< UNIVERSAL->import() >> ã¡ã½ããã¯éæ¨å¥¨ã¨ãªãã¾ããã +ã¤ã³ãã¼ãå¼æ°ã C<use UNIVERSAL> æã«æ¸¡ããã¨ããã¨éæ¨å¥¨è¦åãåºã¾ãã =item Use of "goto" to jump into a construct @@ -1157,6 +1399,9 @@ =end original +C<goto> ãå¤å´ã®ã¹ã³ã¼ãããå å´ã®ã¹ã³ã¼ãã¸ã¸ã£ã³ãããããã«ä½¿ãã®ã¯ +éæ¨å¥¨ã¨ãªãã¾ããã +ãã®å¸ãªã¦ã¼ã¹ã±ã¼ã¹ã¯ã¹ã³ã¼ãã®å®è£ ã«åé¡ãå¼ãèµ·ããã¾ãã =item Custom character names in \N{name} that don't look like names @@ -1175,6 +1420,17 @@ =end original +In C<\N{I<name>}>, I<name> can be just about anything. The standard +Unicode names have a very limited domain, but a custom name translator +could create names that are, for example, made up entirely of punctuation +symbols. It is now deprecated to make names that don't begin with an +alphabetic character, and aren't alphanumeric or contain other than +a very few other characters, namely spaces, dashes, parentheses +and colons. Because of the added meaning of C<\N> (See L</C<\N> +experimental regex escape>), names that look like curly brace -enclosed +quantifiers won't work. For example, C<\N{3,4}> now means to match 3 to +4 non-newlines; before a custom name C<3,4> could have been created. +(TBT) =item Deprecated Modules @@ -1187,6 +1443,11 @@ =end original +The following modules will be removed from the core distribution in a +future release, and should be installed from CPAN instead. Distributions +on CPAN which require these should add them to their prerequisites. The +core versions of these modules warnings will issue a deprecation warning. +(TBT) =begin original @@ -1199,6 +1460,13 @@ =end original +If you ship a packaged version of Perl, either alone or as part of a +larger system, then you should carefully consider the reprecussions of +core module deprecations. You may want to consider shipping your default +build of Perl with packages for some or all deprecated modules which +install into C<vendor> or C<site> perl library directories. This will +inhibit the deprecation warnings. +(TBT) =begin original @@ -1212,6 +1480,14 @@ =end original +Alternatively, you may want to consider patching F<lib/deprecate.pm> +to provide deprecation warnings specific to your packaging system +or distribution of Perl, consistent with how your packaging system +or distribution manages a staged transition from a release where the +installation of a single package provides the given functionality, to +a later release where the system administrator needs to know to install +multiple packages to get that same functionality. +(TBT) =begin original @@ -1221,6 +1497,10 @@ =end original +You can silence these deprecation warnings by installing the modules +in question from CPAN. To install the latest version of all of them, +just install C<Task::Deprecations::5_12>. +(TBT) =over @@ -1268,6 +1548,12 @@ =end original +C<Perl_pmflag> is no longer part of Perl's public API. Calling it now +generates a deprecation warning, and it will be removed in a future +release. Although listed as part of the API, it was never documented, +and only ever used in F<toke.c>, and prior to 5.10, F<regcomp.c>. In +core, it has been replaced by a static function. +(TBT) =item Numerous Perl 4-era libraries @@ -1284,6 +1570,15 @@ =end original +F<termcap.pl>, F<tainted.pl>, F<stat.pl>, F<shellwords.pl>, F<pwd.pl>, +F<open3.pl>, F<open2.pl>, F<newgetopt.pl>, F<look.pl>, F<find.pl>, +F<finddepth.pl>, F<importenv.pl>, F<hostname.pl>, F<getopts.pl>, +F<getopt.pl>, F<getcwd.pl>, F<flush.pl>, F<fastcwd.pl>, F<exceptions.pl>, +F<ctime.pl>, F<complete.pl>, F<cacheout.pl>, F<bigrat.pl>, F<bigint.pl>, +F<bigfloat.pl>, F<assert.pl>, F<abbrev.pl>, F<dotsh.pl>, and +F<timelocal.pl> are all now deprecated. Earlier, Perl's developers +intended to remove these libraries from Perl's core for the 5.14.0 release. +(TBT) =begin original @@ -1295,6 +1590,12 @@ =end original +During final testing before the release of 5.12.0, several developers +discovered current production code using these ancient libraries, some +inside the Perl core itself. Accordingly, the pumpking granted them +a stay of execution. They will begin to warn about their deprecation +in the 5.14.0 release and will be removed in the 5.16.0 release. +(TBT) =back @@ -1308,6 +1609,9 @@ =end original +Perl's developers have made a concerted effort to update Perl to be in +sync with the latest Unicode standard. Changes for this include: +(TBT) =begin original @@ -1319,6 +1623,12 @@ =end original +Perl can now handle every Unicode character property. New documentation, +L<perluniprops>, lists all available non-Unihan character properties. By +default, perl does not expose Unihan, deprecated or Unicode-internal +properties. See below for more details on these; there is also a section +in the pod listing them, and explaining why they are not exposed. +(TBT) =begin original @@ -1328,6 +1638,10 @@ =end original +Perl now fully supports the Unicode compound-style of using C<=> +and C<:> in writing regular expressions: C<\p{property=value}> and +C<\p{property:value}> (both of which mean the same thing). +(TBT) =begin original @@ -1337,6 +1651,10 @@ =end original +Perl now fully supports the Unicode loose matching rules for text between +the braces in C<\p{...}> constructs. In addition, Perl allows underscores +between digits of numbers. +(TBT) =begin original @@ -1345,6 +1663,9 @@ =end original +Perl now accepts all the Unicode-defined synonyms for properties and +property values. +(TBT) =begin original @@ -1356,6 +1677,12 @@ =end original +C<qr/\X/>, which matches a Unicode logical character, has +been expanded to work better with various Asian languages. It +now is defined as an I<extended grapheme cluster>. (See +L<http://www.unicode.org/reports/tr29/>). Anything matched previously +and that made sense will continue to be accepted. Additionally: +(TBT) =over @@ -1367,6 +1694,8 @@ =end original +C<\X> will not break apart a C<S<CR LF>> sequence. +(TBT) =item * @@ -1377,6 +1706,9 @@ =end original +C<\X> will now match a sequence which includes the C<ZWJ> and C<ZWNJ> +characters. +(TBT) =item * @@ -1392,6 +1724,14 @@ =end original +C<\X> will now always match at least one character, including an initial +mark. Marks generally come after a base character, but it is possible in +Unicode to have them in isolation, and C<\X> will now handle that case, +for example at the beginning of a line, or after a C<ZWSP>. And this is +the part where C<\X> doesn't match the things that it used to that don't +make sense. Formerly, for example, you could have the nonsensical case +of an accented LF. +(TBT) =item * @@ -1402,6 +1742,9 @@ =end original +C<\X> will now match a (Korean) Hangul syllable sequence, and the Thai +and Lao exception cases. +(TBT) =back @@ -1412,6 +1755,9 @@ =end original +Otherwise, this change should be transparent for the non-affected +languages. +(TBT) =begin original @@ -1421,6 +1767,10 @@ =end original +C<\p{...}> matches using the Canonical_Combining_Class property were +completely broken in previous releases of Perl. They should now work +correctly. +(TBT) =begin original @@ -1435,6 +1785,15 @@ =end original +Before Perl 5.12, the Unicode C<Decomposition_Type=Compat> property +and a Perl extension had the same name, which led to neither matching +all the correct values (with more than 100 mistakes in one, and several +thousand in the other). The Perl extension has now been renamed to be +C<Decomposition_Type=Noncanonical> (short: C<dt=noncanon>). It has the +same meaning as was previously intended, namely the union of all the +non-canonical Decomposition types, with Unicode C<Compat> being just +one of those. +(TBT) =begin original @@ -1442,6 +1801,8 @@ =end original +C<\p{Decomposition_Type=Canonical}> now includes the Hangul syllables. +(TBT) =begin original @@ -1451,6 +1812,10 @@ =end original +C<\p{Uppercase}> and C<\p{Lowercase}> now work as the Unicode standard +says they should. This means they each match a few more characters than +they used to. +(TBT) =begin original @@ -1464,6 +1829,14 @@ =end original +C<\p{Cntrl}> now matches the same characters as C<\p{Control}>. This +means it no longer will match Private Use (gc=co), Surrogates (gc=cs), +nor Format (gc=cf) code points. The Format code points represent the +biggest possible problem. All but 36 of them are either officially +deprecated or strongly discouraged from being used. Of those 36, likely +the most widely used are the soft hyphen (U+00AD), and BOM, ZWSP, ZWNJ, +WJ, and similar characters, plus bidirectional controls. +(TBT) =begin original @@ -1475,6 +1848,12 @@ =end original +C<\p{Alpha}> now matches the same characters as C<\p{Alphabetic}>. Before +5.12, Perl's definition definition included a number of things that aren't +really alpha (all marks) while omitting many that were. The definitions +of C<\p{Alnum}> and C<\p{Word}> depend on Alpha's definition and have +changed accordingly. +(TBT) =begin original @@ -1483,6 +1862,9 @@ =end original +C<\p{Word}> no longer incorrectly matches non-word characters such +as fractions. +(TBT) =begin original @@ -1492,6 +1874,10 @@ =end original +C<\p{Print}> no longer matches the line control characters: Tab, LF, +CR, FF, VT, and NEL. This brings it in line with standards and the +documentation. +(TBT) =begin original @@ -1502,6 +1888,11 @@ =end original +C<\p{XDigit}> now matches the same characters as C<\p{Hex_Digit}>. This +means that in addition to the characters it currently matches, +C<[A-Fa-f0-9]>, it will also match the 22 fullwidth equivalents, for +example U+FF10: FULLWIDTH DIGIT ZERO. +(TBT) =begin original @@ -1510,6 +1901,9 @@ =end original +The Numeric type property has been extended to include the Unihan +characters. +(TBT) =begin original @@ -1521,6 +1915,12 @@ =end original +There is a new Perl extension, the 'Present_In', or simply 'In', +property. This is an extension of the Unicode Age property, but +C<\p{In=5.0}> matches any code point whose usage has been determined +I<as of> Unicode version 5.0. The C<\p{Age=5.0}> only matches code points +added in I<precisely> version 5.0. +(TBT) =begin original @@ -1531,6 +1931,11 @@ =end original +A number of properties now have the correct values for unassigned +code points. The affected properties are Bidi_Class, East_Asian_Width, +Joining_Type, Decomposition_Type, Hangul_Syllable_Type, Numeric_Type, +and Line_Break. +(TBT) =begin original @@ -1539,6 +1944,9 @@ =end original +The Default_Ignorable_Code_Point, ID_Continue, and ID_Start properties +are now up to date with current Unicode definitions. +(TBT) =begin original @@ -1551,6 +1959,13 @@ =end original +Earlier versions of Perl erroneously exposed certain properties that +are supposed to be Unicode internal-only. Use of these in regular +expressions will now generate, if enabled, a deprecation warning message. +The properties are: Other_Alphabetic, Other_Default_Ignorable_Code_Point, +Other_Grapheme_Extend, Other_ID_Continue, Other_ID_Start, Other_Lowercase, +Other_Math, and Other_Uppercase. +(TBT) =begin original @@ -1562,6 +1977,12 @@ =end original +It is now possible to change which Unicode properties Perl understands +on a per-installation basis. As mentioned above, certain properties +are turned off by default. These include all the Unihan properties +(which should be accessible via the CPAN module Unicode::Unihan) and any +deprecated or Unicode internal-only property that Perl has never exposed. +(TBT) =begin original @@ -1574,6 +1995,13 @@ =end original +The generated files in the C<lib/unicore/To> directory are now more +clearly marked as being stable, directly usable by applications. New hash +entries in them give the format of the normal entries, which allows for +easier machine parsing. Perl can generate files in this directory for +any property, though most are suppressed. You can find instructions +for changing which are written in L<perluniprops>. +(TBT) =head1 Modules and Pragmata @@ -1610,8 +2038,7 @@ =end original -Version 2.06_01 has been added to the Perl core. -(TBT) +ãã¼ã¸ã§ã³ 2.06_01 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =item C<Compress::Raw::Bzip2> @@ -1621,8 +2048,7 @@ =end original -Version 2.024 has been added to the Perl core. -(TBT) +ãã¼ã¸ã§ã³ 2.024 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =item C<overloading> @@ -1642,6 +2068,7 @@ =end original +ãã¼ã¸ã§ã³ 0.001 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =item C<parent> @@ -1663,6 +2090,7 @@ =end original +ãã¼ã¸ã§ã³ 0.223 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =item C<Parse::CPAN::Meta> @@ -1672,6 +2100,7 @@ =end original +ãã¼ã¸ã§ã³ 1.40 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =item C<VMS::DCLsym> @@ -1681,6 +2110,7 @@ =end original +ãã¼ã¸ã§ã³ 1.03 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =item C<VMS::Stdio> @@ -1690,6 +2120,7 @@ =end original +ãã¼ã¸ã§ã³ 2.4 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =item C<XS::APItest::KeywordRPN> @@ -1699,6 +2130,7 @@ =end original +ãã¼ã¸ã§ã³ 0.003 ã Perl ã³ã¢ã«è¿½å ããã¾ããã =back @@ -1714,6 +2146,7 @@ =end original +ãã¼ã¸ã§ã³ 2.13 ãã 2.15 ã«æ´æ°ããã¾ããã =item C<bignum> @@ -1723,6 +2156,7 @@ =end original +ãã¼ã¸ã§ã³ 0.22 ãã 0.23 ã«æ´æ°ããã¾ããã =item C<charnames> @@ -1746,6 +2180,7 @@ =end original +ãã¼ã¸ã§ã³ 1.06 ãã 1.07 ã«æ´æ°ããã¾ããã =item C<constant> @@ -1755,6 +2190,7 @@ =end original +ãã¼ã¸ã§ã³ 1.13 ãã 1.20 ã«æ´æ°ããã¾ããã =item C<diagnostics> @@ -1764,6 +2200,8 @@ =end original +C<diagnostics> now supports %.0f formatting internally. +(TBT) =begin original @@ -1772,6 +2210,9 @@ =end original +C<diagnostics> no longer suppresses C<Use of uninitialized value in range +(or flip)> warnings. [perl #71204] +(TBT) =begin original @@ -1779,6 +2220,7 @@ =end original +ãã¼ã¸ã§ã³ 1.17 ãã 1.19 ã«æ´æ°ããã¾ããã =item C<feature> @@ -1807,6 +2249,8 @@ =end original +C<feature> now includes the C<unicode_strings> feature: +(TBT) use feature "unicode_strings"; @@ -1819,6 +2263,11 @@ =end original +This pragma turns on Unicode semantics for the case-changing operations +(C<uc>, C<lc>, C<ucfirst>, C<lcfirst>) on strings that don't have the +internal UTF-8 flag set, but that contain single-byte characters between +128 and 255. +(TBT) =begin original @@ -1826,6 +2275,7 @@ =end original +ãã¼ã¸ã§ã³ 1.11 ãã 1.16 ã«æ´æ°ããã¾ããã =item C<less> @@ -1836,6 +2286,9 @@ =end original +C<less> now includes the C<stash_name> method to allow subclasses of +C<less> to pick where in %^H to store their stash. +(TBT) =begin original @@ -1843,6 +2296,7 @@ =end original +ãã¼ã¸ã§ã³ 0.02 ãã 0.03 ã«æ´æ°ããã¾ããã =item C<lib> @@ -1852,6 +2306,7 @@ =end original +ãã¼ã¸ã§ã³ 0.5565 ãã 0.62 ã«æ´æ°ããã¾ããã =item C<mro> @@ -1863,6 +2318,10 @@ =end original +C<mro> is now implemented as an XS extension. The documented interface has +not changed. Code relying on the implementation detail that some C<mro::> +methods happened to be available at all times gets to "keep both pieces". +(TBT) =begin original @@ -1870,6 +2329,7 @@ =end original +ãã¼ã¸ã§ã³ 1.00 ãã 1.02 ã«æ´æ°ããã¾ããã =item C<overload> @@ -1879,6 +2339,8 @@ =end original +C<overload> now allow overloading of 'qr'. +(TBT) =begin original @@ -1886,6 +2348,7 @@ =end original +ãã¼ã¸ã§ã³ 1.06 ãã 1.10 ã«æ´æ°ããã¾ããã =item C<threads> @@ -1895,6 +2358,7 @@ =end original +ãã¼ã¸ã§ã³ 1.67 ãã 1.75 ã«æ´æ°ããã¾ããã =item C<threads::shared> @@ -1904,6 +2368,7 @@ =end original +ãã¼ã¸ã§ã³ 1.14 ãã 1.32 ã«æ´æ°ããã¾ããã =item C<version> @@ -1914,6 +2379,9 @@ =end original +C<version> now has support for L</Version number formats> as described +earlier in this document and in its own documentation. +(TBT) =begin original @@ -1921,6 +2389,7 @@ =end original +ãã¼ã¸ã§ã³ 0.74 ãã 0.82 ã«æ´æ°ããã¾ããã =item C<warnings> @@ -1932,6 +2401,10 @@ =end original +C<warnings> has a new C<warnings::fatal_enabled()> function. It also +includes a new C<illegalproto> warning category. See also L</New or +Changed Diagnostics> for this change. +(TBT) =begin original @@ -1939,6 +2412,7 @@ =end original +ãã¼ã¸ã§ã³ 1.06 ãã 1.09 ã«æ´æ°ããã¾ããã =back @@ -1956,6 +2430,7 @@ =end original +ãã¼ã¸ã§ã³ 0.24 ãã 0.38 ã«æ´æ°ããã¾ããã =item C<Archive::Tar> @@ -1965,6 +2440,7 @@ =end original +ãã¼ã¸ã§ã³ 1.38 ãã 1.54 ã«æ´æ°ããã¾ããã =item C<Attribute::Handlers> @@ -1974,6 +2450,7 @@ =end original +ãã¼ã¸ã§ã³ 0.79 ãã 0.87 ã«æ´æ°ããã¾ããã =item C<AutoLoader> @@ -1983,6 +2460,7 @@ =end original +ãã¼ã¸ã§ã³ 5.63 ãã 5.70 ã«æ´æ°ããã¾ããã =item C<B::Concise> @@ -1992,6 +2470,7 @@ =end original +ãã¼ã¸ã§ã³ 0.74 ãã 0.78 ã«æ´æ°ããã¾ããã =item C<B::Debug> @@ -2001,6 +2480,7 @@ =end original +ãã¼ã¸ã§ã³ 1.05 ãã 1.12 ã«æ´æ°ããã¾ããã =item C<B::Deparse> @@ -2010,6 +2490,7 @@ =end original +ãã¼ã¸ã§ã³ 0.83 ãã 0.96 ã«æ´æ°ããã¾ããã =item C<B::Lint> @@ -2019,6 +2500,7 @@ =end original +ãã¼ã¸ã§ã³ 1.09 ãã 1.11_01 ã«æ´æ°ããã¾ããã =item C<CGI> @@ -2028,6 +2510,7 @@ =end original +ãã¼ã¸ã§ã³ 3.29 ãã 3.48 ã«æ´æ°ããã¾ããã =item C<Class::ISA> @@ -2037,6 +2520,7 @@ =end original +ãã¼ã¸ã§ã³ 0.33 ãã 0.36 ã«æ´æ°ããã¾ããã =begin original @@ -2045,6 +2529,9 @@ =end original +NOTE: C<Class::ISA> is deprecated and may be removed from a future +version of Perl. +(TBT) =item C<Compress::Raw::Zlib> @@ -2054,6 +2541,7 @@ =end original +ãã¼ã¸ã§ã³ 2.008 ãã 2.024 ã«æ´æ°ããã¾ããã =item C<CPAN> @@ -2063,6 +2551,7 @@ =end original +ãã¼ã¸ã§ã³ 1.9205 ãã 1.94_56 ã«æ´æ°ããã¾ããã =item C<CPANPLUS> @@ -2072,6 +2561,7 @@ =end original +ãã¼ã¸ã§ã³ 0.84 ãã 0.90 ã«æ´æ°ããã¾ããã =item C<CPANPLUS::Dist::Build> @@ -2081,6 +2571,7 @@ =end original +ãã¼ã¸ã§ã³ 0.06_02 ãã 0.46 ã«æ´æ°ããã¾ããã =item C<Data::Dumper> @@ -2090,6 +2581,7 @@ =end original +ãã¼ã¸ã§ã³ 2.121_14 ãã 2.125 ã«æ´æ°ããã¾ããã =item C<DB_File> @@ -2099,6 +2591,7 @@ =end original +ãã¼ã¸ã§ã³ 1.816_1 ãã 1.820 ã«æ´æ°ããã¾ããã =item C<Devel::PPPort> @@ -2108,6 +2601,7 @@ =end original +ãã¼ã¸ã§ã³ 3.13 ãã 3.19 ã«æ´æ°ããã¾ããã =item C<Digest> @@ -2117,6 +2611,7 @@ =end original +ãã¼ã¸ã§ã³ 1.15 ãã 1.16 ã«æ´æ°ããã¾ããã =item C<Digest::MD5> @@ -2126,6 +2621,7 @@ =end original +ãã¼ã¸ã§ã³ 2.36_01 ãã 2.39 ã«æ´æ°ããã¾ããã =item C<Digest::SHA> @@ -2135,6 +2631,7 @@ =end original +ãã¼ã¸ã§ã³ 5.45 ãã 5.47 ã«æ´æ°ããã¾ããã =item C<Encode> @@ -2144,6 +2641,7 @@ =end original +ãã¼ã¸ã§ã³ 2.23 ãã 2.39 ã«æ´æ°ããã¾ããã =item C<Exporter> @@ -2153,6 +2651,7 @@ =end original +ãã¼ã¸ã§ã³ 5.62 ãã 5.64_01 ã«æ´æ°ããã¾ããã =item C<ExtUtils::CBuilder> @@ -2162,6 +2661,7 @@ =end original +ãã¼ã¸ã§ã³ 0.21 ãã 0.27 ã«æ´æ°ããã¾ããã =item C<ExtUtils::Command> @@ -2171,6 +2671,7 @@ =end original +ãã¼ã¸ã§ã³ 1.13 ãã 1.16 ã«æ´æ°ããã¾ããã =item C<ExtUtils::Constant> @@ -2180,6 +2681,7 @@ =end original +ãã¼ã¸ã§ã³ 0.2 ãã 0.22 ã«æ´æ°ããã¾ããã =item C<ExtUtils::Install> @@ -2189,6 +2691,7 @@ =end original +ãã¼ã¸ã§ã³ 1.44 ãã 1.55 ã«æ´æ°ããã¾ããã =item C<ExtUtils::MakeMaker> @@ -2198,6 +2701,7 @@ =end original +ãã¼ã¸ã§ã³ 6.42 ãã 6.56 ã«æ´æ°ããã¾ããã =item C<ExtUtils::Manifest> @@ -2207,6 +2711,7 @@ =end original +ãã¼ã¸ã§ã³ 1.51_01 ãã 1.57 ã«æ´æ°ããã¾ããã =item C<ExtUtils::ParseXS> @@ -2216,6 +2721,7 @@ =end original +ãã¼ã¸ã§ã³ 2.18_02 ãã 2.21 ã«æ´æ°ããã¾ããã =item C<File::Fetch> @@ -2225,6 +2731,7 @@ =end original +ãã¼ã¸ã§ã³ 0.14 ãã 0.24 ã«æ´æ°ããã¾ããã =item C<File::Path> @@ -2234,6 +2741,7 @@ =end original +ãã¼ã¸ã§ã³ 2.04 ãã 2.08_01 ã«æ´æ°ããã¾ããã =item C<File::Temp> @@ -2243,6 +2751,7 @@ =end original +ãã¼ã¸ã§ã³ 0.18 ãã 0.22 ã«æ´æ°ããã¾ããã =item C<Filter::Simple> @@ -2252,6 +2761,7 @@ =end original +ãã¼ã¸ã§ã³ 0.82 ãã 0.84 ã«æ´æ°ããã¾ããã =item C<Filter::Util::Call> @@ -2261,6 +2771,7 @@ =end original +ãã¼ã¸ã§ã³ 1.07 ãã 1.08 ã«æ´æ°ããã¾ããã =item C<Getopt::Long> @@ -2270,6 +2781,7 @@ =end original +ãã¼ã¸ã§ã³ 2.37 ãã 2.38 ã«æ´æ°ããã¾ããã =item C<IO> @@ -2279,6 +2791,7 @@ =end original +ãã¼ã¸ã§ã³ 1.23_01 ãã 1.25_02 ã«æ´æ°ããã¾ããã =item C<IO::Zlib> @@ -2288,6 +2801,7 @@ =end original +ãã¼ã¸ã§ã³ 1.07 ãã 1.10 ã«æ´æ°ããã¾ããã =item C<IPC::Cmd> @@ -2297,6 +2811,7 @@ =end original +ãã¼ã¸ã§ã³ 0.40_1 ãã 0.54 ã«æ´æ°ããã¾ããã =item C<IPC::SysV> @@ -2306,6 +2821,7 @@ =end original +ãã¼ã¸ã§ã³ 1.05 ãã 2.01 ã«æ´æ°ããã¾ããã =item C<Locale::Maketext> @@ -2315,6 +2831,7 @@ =end original +ãã¼ã¸ã§ã³ 1.12 ãã 1.14 ã«æ´æ°ããã¾ããã =item C<Locale::Maketext::Simple> @@ -2324,6 +2841,7 @@ =end original +ãã¼ã¸ã§ã³ 0.18 ãã 0.21 ã«æ´æ°ããã¾ããã =item C<Log::Message> @@ -2333,6 +2851,7 @@ =end original +ãã¼ã¸ã§ã³ 0.01 ãã 0.02 ã«æ´æ°ããã¾ããã =item C<Log::Message::Simple> @@ -2342,6 +2861,7 @@ =end original +ãã¼ã¸ã§ã³ 0.04 ãã 0.06 ã«æ´æ°ããã¾ããã =item C<Math::BigInt> @@ -2351,6 +2871,7 @@ =end original +ãã¼ã¸ã§ã³ 1.88 ãã 1.89_01 ã«æ´æ°ããã¾ããã =item C<Math::BigInt::FastCalc> @@ -2360,6 +2881,7 @@ =end original +ãã¼ã¸ã§ã³ 0.16 ãã 0.19 ã«æ´æ°ããã¾ããã =item C<Math::BigRat> @@ -2369,6 +2891,7 @@ =end original +ãã¼ã¸ã§ã³ 0.21 ãã 0.24 ã«æ´æ°ããã¾ããã =item C<Math::Complex> @@ -2378,6 +2901,7 @@ =end original +ãã¼ã¸ã§ã³ 1.37 ãã 1.56 ã«æ´æ°ããã¾ããã =item C<Memoize> @@ -2387,6 +2911,7 @@ =end original +ãã¼ã¸ã§ã³ 1.01_02 ãã 1.01_03 ã«æ´æ°ããã¾ããã =item C<MIME::Base64> @@ -2396,6 +2921,7 @@ =end original +ãã¼ã¸ã§ã³ 3.07_01 ãã 3.08 ã«æ´æ°ããã¾ããã =item C<Module::Build> @@ -2405,6 +2931,7 @@ =end original +ãã¼ã¸ã§ã³ 0.2808_01 ãã 0.3603 ã«æ´æ°ããã¾ããã =item C<Module::CoreList> @@ -2414,6 +2941,7 @@ =end original +ãã¼ã¸ã§ã³ 2.12 ãã 2.29 ã«æ´æ°ããã¾ããã =item C<Module::Load> @@ -2423,6 +2951,7 @@ =end original +ãã¼ã¸ã§ã³ 0.12 ãã 0.16 ã«æ´æ°ããã¾ããã =item C<Module::Load::Conditional> @@ -2432,6 +2961,7 @@ =end original +ãã¼ã¸ã§ã³ 0.22 ãã 0.34 ã«æ´æ°ããã¾ããã =item C<Module::Loaded> @@ -2441,6 +2971,7 @@ =end original +ãã¼ã¸ã§ã³ 0.01 ãã 0.06 ã«æ´æ°ããã¾ããã =item C<Module::Pluggable> @@ -2450,6 +2981,7 @@ =end original +ãã¼ã¸ã§ã³ 3.6 ãã 3.9 ã«æ´æ°ããã¾ããã =item C<Net::Ping> @@ -2459,6 +2991,7 @@ =end original +ãã¼ã¸ã§ã³ 2.33 ãã 2.36 ã«æ´æ°ããã¾ããã =item C<NEXT> @@ -2468,6 +3001,7 @@ =end original +ãã¼ã¸ã§ã³ 0.60_01 ãã 0.64 ã«æ´æ°ããã¾ããã =item C<Object::Accessor> @@ -2477,6 +3011,7 @@ =end original +ãã¼ã¸ã§ã³ 0.32 ãã 0.36 ã«æ´æ°ããã¾ããã =item C<Package::Constants> @@ -2486,6 +3021,7 @@ =end original +ãã¼ã¸ã§ã³ 0.01 ãã 0.02 ã«æ´æ°ããã¾ããã =item C<PerlIO> @@ -2495,6 +3031,7 @@ =end original +ãã¼ã¸ã§ã³ 1.04 ãã 1.06 ã«æ´æ°ããã¾ããã =item C<Pod::Parser> @@ -2504,6 +3041,7 @@ =end original +ãã¼ã¸ã§ã³ 1.35 ãã 1.37 ã«æ´æ°ããã¾ããã =item C<Pod::Perldoc> @@ -2513,6 +3051,7 @@ =end original +ãã¼ã¸ã§ã³ 3.14_02 ãã 3.15_02 ã«æ´æ°ããã¾ããã =item C<Pod::Plainer> @@ -2522,6 +3061,7 @@ =end original +ãã¼ã¸ã§ã³ 0.01 ãã 1.02 ã«æ´æ°ããã¾ããã =begin original @@ -2530,6 +3070,9 @@ =end original +NOTE: C<Pod::Plainer> is deprecated and may be removed from a future +version of Perl. +(TBT) =item C<Pod::Simple> @@ -2539,6 +3082,7 @@ =end original +ãã¼ã¸ã§ã³ 3.05 ãã 3.13 ã«æ´æ°ããã¾ããã =item C<Safe> @@ -2548,6 +3092,7 @@ =end original +ãã¼ã¸ã§ã³ 2.12 ãã 2.22 ã«æ´æ°ããã¾ããã =item C<SelfLoader> @@ -2557,6 +3102,7 @@ =end original +ãã¼ã¸ã§ã³ 1.11 ãã 1.17 ã«æ´æ°ããã¾ããã =item C<Storable> @@ -2566,6 +3112,7 @@ =end original +ãã¼ã¸ã§ã³ 2.18 ãã 2.22 ã«æ´æ°ããã¾ããã =item C<Switch> @@ -2575,6 +3122,7 @@ =end original +ãã¼ã¸ã§ã³ 2.13 ãã 2.16 ã«æ´æ°ããã¾ããã =begin original @@ -2583,6 +3131,9 @@ =end original +NOTE: C<Switch> is deprecated and may be removed from a future version +of Perl. +(TBT) =item C<Sys::Syslog> @@ -2592,6 +3143,7 @@ =end original +ãã¼ã¸ã§ã³ 0.22 ãã 0.27 ã«æ´æ°ããã¾ããã =item C<Term::ANSIColor> @@ -2601,6 +3153,7 @@ =end original +ãã¼ã¸ã§ã³ 1.12 ãã 2.02 ã«æ´æ°ããã¾ããã =item C<Term::UI> @@ -2610,6 +3163,7 @@ =end original +ãã¼ã¸ã§ã³ 0.18 ãã 0.20 ã«æ´æ°ããã¾ããã =item C<Test> @@ -2619,6 +3173,7 @@ =end original +ãã¼ã¸ã§ã³ 1.25 ãã 1.25_02 ã«æ´æ°ããã¾ããã =item C<Test::Harness> @@ -2628,6 +3183,7 @@ =end original +ãã¼ã¸ã§ã³ 2.64 ãã 3.17 ã«æ´æ°ããã¾ããã =item C<Test::Simple> @@ -2637,6 +3193,7 @@ =end original +ãã¼ã¸ã§ã³ 0.72 ãã 0.94 ã«æ´æ°ããã¾ããã =item C<Text::Balanced> @@ -2646,6 +3203,7 @@ =end original +ãã¼ã¸ã§ã³ 2.0.0 ãã 2.02 ã«æ´æ°ããã¾ããã =item C<Text::ParseWords> @@ -2655,6 +3213,7 @@ =end original +ãã¼ã¸ã§ã³ 3.26 ãã 3.27 ã«æ´æ°ããã¾ããã =item C<Text::Soundex> @@ -2664,6 +3223,7 @@ =end original +ãã¼ã¸ã§ã³ 3.03 ãã 3.03_01 ã«æ´æ°ããã¾ããã =item C<Thread::Queue> @@ -2673,6 +3233,7 @@ =end original +ãã¼ã¸ã§ã³ 2.00 ãã 2.11 ã«æ´æ°ããã¾ããã =item C<Thread::Semaphore> @@ -2682,6 +3243,7 @@ =end original +ãã¼ã¸ã§ã³ 2.01 ãã 2.09 ã«æ´æ°ããã¾ããã =item C<Tie::RefHash> @@ -2691,6 +3253,7 @@ =end original +ãã¼ã¸ã§ã³ 1.37 ãã 1.38 ã«æ´æ°ããã¾ããã =item C<Time::HiRes> @@ -2700,6 +3263,7 @@ =end original +ãã¼ã¸ã§ã³ 1.9711 ãã 1.9719 ã«æ´æ°ããã¾ããã =item C<Time::Local> @@ -2709,6 +3273,7 @@ =end original +ãã¼ã¸ã§ã³ 1.18 ãã 1.1901_01 ã«æ´æ°ããã¾ããã =item C<Time::Piece> @@ -2718,6 +3283,7 @@ =end original +ãã¼ã¸ã§ã³ 1.12 ãã 1.15 ã«æ´æ°ããã¾ããã =item C<Unicode::Collate> @@ -2727,6 +3293,7 @@ =end original +ãã¼ã¸ã§ã³ 0.52 ãã 0.52_01 ã«æ´æ°ããã¾ããã =item C<Unicode::Normalize> @@ -2736,6 +3303,7 @@ =end original +ãã¼ã¸ã§ã³ 1.02 ãã 1.03 ã«æ´æ°ããã¾ããã =item C<Win32> @@ -2745,6 +3313,7 @@ =end original +ãã¼ã¸ã§ã³ 0.34 ãã 0.39 ã«æ´æ°ããã¾ããã =item C<Win32API::File> @@ -2754,6 +3323,7 @@ =end original +ãã¼ã¸ã§ã³ 0.1001_01 ãã 0.1101 ã«æ´æ°ããã¾ããã =item C<XSLoader> @@ -2763,6 +3333,7 @@ =end original +ãã¼ã¸ã§ã³ 0.08 ãã 0.10 ã«æ´æ°ããã¾ããã =back @@ -2778,6 +3349,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 1.02 ã§ããã =item C<CPAN::API::HOWTO> @@ -2787,6 +3360,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 'undef' ã§ããã =item C<CPAN::DeferedCode> @@ -2796,6 +3371,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 5.50 ã§ããã =item C<CPANPLUS::inc> @@ -2805,6 +3382,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 'undef' ã§ããã =item C<DCLsym> @@ -2814,6 +3393,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 1.03 ã§ããã =item C<ExtUtils::MakeMaker::bytes> @@ -2823,6 +3404,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 6.42 ã§ããã =item C<ExtUtils::MakeMaker::vmsish> @@ -2832,6 +3415,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 6.42 ã§ããã =item C<Stdio> @@ -2841,6 +3426,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 2.3 ã§ããã =item C<Test::Harness::Assert> @@ -2850,6 +3437,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 0.02 ã§ããã =item C<Test::Harness::Iterator> @@ -2859,6 +3448,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 0.02 ã§ããã =item C<Test::Harness::Point> @@ -2868,6 +3459,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 0.01 ã§ããã =item C<Test::Harness::Results> @@ -2877,6 +3470,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 0.01 ã§ããã =item C<Test::Harness::Straps> @@ -2886,6 +3481,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 0.26_01 ã§ããã =item C<Test::Harness::Util> @@ -2895,6 +3492,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 0.01 ã§ããã =item C<XSSymSet> @@ -2904,6 +3503,8 @@ =end original +Perl ã³ã¢ããåé¤ããã¾ããã +以åã®ãã¼ã¸ã§ã³ã¯ 1.1 ã§ããã =back @@ -2915,6 +3516,8 @@ =end original +See L</Deprecated Modules> above. +(TBT) =head1 Documentation @@ -2986,6 +3589,9 @@ =end original +L<perlpolicy> extends the "Social contract about contributed modules" into +the beginnings of a document on Perl porting policies. +(TBT) =back @@ -3037,6 +3643,11 @@ =end original +The syntax C<unless (EXPR) BLOCK else BLOCK> is now documented as valid, +as is the syntax C<unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else +BLOCK>, although actually using the latter may not be the best idea for +the readability of your source code. +(TBT) =item * @@ -3047,6 +3658,8 @@ =end original +Documented -X overloading. +(TBT) =item * @@ -3056,6 +3669,8 @@ =end original +Documented that C<when()> treats specially most of the filetest operators +(TBT) =item * @@ -3065,6 +3680,8 @@ =end original +Documented C<when> as a syntax modifier. +(TBT) =item * @@ -3074,6 +3691,8 @@ =end original +Eliminated "Old Perl threads tutorial", which described 5005 threads. +(TBT) =begin original @@ -3081,6 +3700,8 @@ =end original +F<pod/perlthrtut.pod> is the same material reworked for ithreads. +(TBT) =item * @@ -3090,6 +3711,8 @@ =end original +Correct previous documentation: v-strings are not deprecated +(TBT) =begin original @@ -3098,6 +3721,9 @@ =end original +With version objects, we need them to use MODULE VERSION syntax. This +patch removes the deprecation notice. +(TBT) =item * @@ -3107,6 +3733,8 @@ =end original +Security contact information is now part of L<perlsec>. +(TBT) =item * @@ -3117,6 +3745,9 @@ =end original +A significant fraction of the core documentation has been updated to +clarify the behavior of Perl's Unicode handling. +(TBT) =begin original @@ -3126,6 +3757,10 @@ =end original +Much of the remaining core documentation has been reviewed and edited +for clarity, consistent use of language, and to fix the spelling of Tom +Christiansen's name. +(TBT) =item * @@ -3140,6 +3775,13 @@ =end original +The Pod specification (L<perlpodspec>) has been updated to bring the +specification in line with modern usage already supported by most Pod +systems. A parameter string may now follow the format name in a +"begin/end" region. Links to URIs with a text description are now +allowed. The usage of C<LE<lt>"section"E<gt>> has been marked as +deprecated. +(TBT) =item * @@ -3151,6 +3793,10 @@ =end original +L<if.pm|if> has been documented in L<perlfunc/use> as a means to get +conditional loading of modules despite the implicit BEGIN block around +C<use>. +(TBT) =item * @@ -3160,6 +3806,8 @@ =end original +The documentation for C<$1> in perlvar.pod has been clarified. +(TBT) =item * @@ -3169,12 +3817,14 @@ =end original +C<\N{U+I<wide hex char>}> is now documented. +(TBT) =back =head1 Selected Performance Enhancements -(ããã©ã¼ãã³ã¹ã®åä¸ã®ä¸é¨) +(ããã©ã¼ãã³ã¹ã®åä¸ã®æç²) =over 4 @@ -3198,6 +3848,10 @@ =end original +The implementation of C<C3> Method Resolution Order has been +optimised - linearisation for classes with single inheritance is 40% +faster. Performance for multiple inheritance is unchanged. +(TBT) =item * @@ -3234,6 +3888,8 @@ =end original +C<Perl_sv_utf8_upgrade()> is now faster. +(TBT) =item * @@ -3243,6 +3899,8 @@ =end original +C<keys> on empty hash is now faster. +(TBT) =item * @@ -3252,6 +3910,8 @@ =end original +C<if (%foo)> has been optimized to be faster than C<if (keys %foo)>. +(TBT) =item * @@ -3262,6 +3922,9 @@ =end original +The string repetition operator (C<$str x $num>) is now several times +faster when C<$str> has length one or C<$num> is large. +(TBT) =item * @@ -3275,6 +3938,12 @@ =end original +Reversing an array to itself (as in C<@a = reverse @a>) in void context +now happens in-place and is several orders of magnitude faster than +it used to be. It will also preserve non-existent elements whenever +possible, i.e. for non magical arrays or tied arrays with C<EXISTS> +and C<DELETE> methods. +(TBT) =back @@ -3375,6 +4044,9 @@ =end original +Perl now supports SystemTap's C<dtrace> compatibility layer and an +issue with linking C<miniperl> has been fixed in the process. +(TBT) =item * @@ -3385,6 +4057,9 @@ =end original +perldoc now uses C<less -R> instead of C<less> for improved behaviour +in the face of C<groff>'s new usage of ANSI escape codes. +(TBT) =item * @@ -3396,6 +4071,9 @@ =end original +C<perl -V> now reports use of the compile-time options C<USE_PERL_ATOF> and +C<USE_ATTRIBUTES_FOR_PERLIO>. +(TBT) =item * @@ -3427,6 +4105,10 @@ =end original +Each release of Perl sees numerous internal changes which shouldn't +affect day to day usage but may still be notable for developers working +with Perl's source code. +(TBT) =over @@ -3453,6 +4135,11 @@ =end original +The internal structure of the dual-life modules traditionally found in +the F<lib/> and F<ext/> directories in the perl source has changed +significantly. Where possible, dual-lifed modules have been extracted +from F<lib/> and F<ext/>. +(TBT) =begin original @@ -3464,6 +4151,12 @@ =end original +Dual-lifed modules maintained by Perl's developers as part of the Perl +core now live in F<dist/>. Dual-lifed modules maintained primarily on +CPAN now live in F<cpan/>. When reporting a bug in a module located +under F<cpan/>, please send your bug report directly to the module's +bug tracker or author, rather than Perl's bug tracker. +(TBT) =item * @@ -3473,6 +4166,8 @@ =end original +C<\N{...}> now compiles better, always forces UTF-8 internal representation +(TBT) =begin original @@ -3485,6 +4180,13 @@ =end original +Perl's developers have fixed several problems with the recognition of +C<\N{...}> constructs. As part of this, perl will store any scalar +or regex containing C<\N{I<name>}> or C<\N{U+I<wide hex char>}> in its +definition in UTF-8 format. (This was true previously for all occurences +of C<\N{I<name>}> that did not use a custom translator, but now it's +always true.) +(TBT) =item * @@ -3494,6 +4196,8 @@ =end original +Perl_magic_setmglob now knows about globs, fixing RT #71254. +(TBT) =item * @@ -3503,6 +4207,8 @@ =end original +C<SVt_RV> no longer exists. RVs are now stored in IVs. +(TBT) =item * @@ -3850,6 +4556,8 @@ =end original +It's now possible to override C<PERL5OPT> and friends in F<t/TEST> +(TBT) =item Test watchdog @@ -3881,6 +4589,10 @@ =end original +Perl's developers have added a number of new tests to the core. +In addition to the items listed below, many modules updated from CPAN +incorporate new tests. +(TBT) =over 4 @@ -3893,6 +4605,9 @@ =end original +Significant cleanups to core tests to ensure that language and +interpreter features are not used before they're tested. +(TBT) =item * @@ -3903,6 +4618,9 @@ =end original +C<make test_porting> now runs a number of important pre-commit checks +which might be of use to anyone working on the Perl core. +(TBT) =item * @@ -3914,6 +4632,10 @@ =end original +F<t/porting/podcheck.t> automatically checks the well-formedness of +POD found in all .pl, .pm and .pod files in the F<MANIFEST>, other than in +dual-lifed modules which are primarily maintained outside the Perl core. +(TBT) =item * @@ -3924,6 +4646,9 @@ =end original +F<t/porting/manifest.t> now tests that all files listed in MANIFEST +are present. +(TBT) =item * @@ -3933,6 +4658,8 @@ =end original +F<t/op/while_readdir.t> tests that a bare readdir in while loop sets $_. +(TBT) =item * @@ -4205,6 +4932,8 @@ =end original +F<t/comp/final_line_num.t> tests whether line numbers are correct at EOF +(TBT) =item * @@ -4214,6 +4943,8 @@ =end original +F<t/comp/form_scope.t> tests format scoping. +(TBT) =item * @@ -4223,6 +4954,8 @@ =end original +F<t/comp/line_debug.t> tests whether C<< @{"_<$file"} >> works. +(TBT) =item * @@ -4232,6 +4965,8 @@ =end original +F<t/op/filetest_t.t> tests if -t file test works. +(TBT) =item * @@ -4241,6 +4976,8 @@ =end original +F<t/op/qr.t> tests C<qr>. +(TBT) =item * @@ -4250,6 +4987,8 @@ =end original +F<t/op/utf8cache.t> tests malfunctions of the utf8 cache. +(TBT) =item * @@ -4259,6 +4998,8 @@ =end original +F<t/re/uniprops.t> test unicodes C<\p{}> regex constructs. +(TBT) =item * @@ -4270,6 +5011,10 @@ =end original +F<t/op/filehandle.t> tests some suitably portable filetest operators +to check that they work as expected, particularly in the light of some +internal changes made in how filehandles are blessed. +(TBT) =item * @@ -4281,6 +5026,10 @@ =end original +F<t/op/time_loop.t> tests that unix times greater than C<2**63>, which +can now be handed to C<gmtime> and C<localtime>, do not cause an internal +overflow or an excessively long loop. +(TBT) =back @@ -4318,6 +5067,9 @@ =end original +Smartmatch resolution tracing has been added as a new diagnostic. Use +C<-DM> to enable it. +(TBT) =item * @@ -4328,6 +5080,9 @@ =end original +A new debugging flag C<-DB> now dumps subroutine definitions, leaving +C<-Dx> for its original purpose of dumping syntax trees. +(TBT) =item * @@ -4338,90 +5093,48 @@ =end original +Perl 5.12 provides a number of new diagnostic messages to help you write +better code. See L<perldiag> for details of these new messages. +(TBT) =over 4 =item * -=begin original - C<Bad plugin affecting keyword '%s'> -=end original - - =item * -=begin original - C<gmtime(%.0f) too large> -=end original - - =item * -=begin original - C<Lexing code attempted to stuff non-Latin-1 character into Latin-1 input> -=end original - - =item * -=begin original - C<Lexing code internal error (%s)> -=end original - - =item * -=begin original - C<localtime(%.0f) too large> -=end original - - =item * -=begin original - C<Overloaded dereference did not return a reference> -=end original - - =item * -=begin original - C<Overloaded qr did not return a REGEXP> -=end original - - =item * -=begin original - C<Perl_pmflag() is deprecated, and will be removed from the XS API> -=end original - - =item * -=begin original - C<lvalue attribute ignored after the subroutine has been defined> -=end original - - =begin original This new warning is issued when one attempts to mark a subroutine as @@ -4429,6 +5142,9 @@ =end original +This new warning is issued when one attempts to mark a subroutine as +lvalue after it has been defined. +(TBT) =item * @@ -4439,6 +5155,9 @@ =end original +Perl now warns you if C<++> or C<--> are unable to change the value +because it's beyond the limit of representation. +(TBT) =begin original @@ -4446,43 +5165,25 @@ =end original +This uses a new warnings category: "imprecision". +(TBT) =item * -=begin original - C<lc>, C<uc>, C<lcfirst>, and C<ucfirst> warn when passed undef. -=end original - - =item * -=begin original - C<Show constant in "Useless use of a constant in void context"> -=end original - - =item * -=begin original - C<Prototype after '%s'> -=end original - - =item * -=begin original - C<panic: sv_chop %s> -=end original - - =begin original This new fatal error occurs when the C routine C<Perl_sv_chop()> was @@ -4506,6 +5207,9 @@ =end original +The fatal error C<Malformed UTF-8 returned by \N> is now produced if the +C<charnames> handler returns malformed UTF-8. +(TBT) =item * @@ -4519,6 +5223,12 @@ =end original +If an unresolved named character or sequence was encountered when +compiling a regex pattern then the fatal error C<\N{NAME} must be resolved +by the lexer> is now produced. This can happen, for example, when using a +single-quotish context like C<$re = '\N{SPACE}'; /$re/;>. See L<perldiag> +for more examples of how the lexer can get bypassed. +(TBT) =item * @@ -4530,6 +5240,10 @@ =end original +C<Invalid hexadecimal number in \N{U+...}> is a new fatal error +triggered when the character constant represented by C<...> is not a +valid hexadecimal number. +(TBT) =item * @@ -4542,6 +5256,11 @@ =end original +The new meaning of C<\N> as C<[^\n]> is not valid in a bracketed character +class, just like C<.> in a character class loses its special meaning, +and will cause the fatal error C<\N in a character class must be a named +character: \N{...}>. +(TBT) =item * @@ -4555,6 +5274,12 @@ =end original +The rules on what is legal for the C<...> in C<\N{...}> have been +tightened up so that unless the C<...> begins with an alphabetic +character and continues with a combination of alphanumerics, dashes, +spaces, parentheses or colons then the warning C<Deprecated character(s) +in \N{...} starting at '%s'> is now issued. +(TBT) =item * @@ -4567,6 +5292,11 @@ =end original +The warning C<Using just the first characters returned by \N{}> will +be issued if the C<charnames> handler returns a sequence of characters +which exceeds the limit of the number of characters that can be used. The +message will indicate which characters were used and which were discarded. +(TBT) =back @@ -4574,12 +5304,15 @@ =head2 Changed Diagnostics +(å¤æ´ããã診æã¡ãã»ã¼ã¸) + =begin original A number of existing diagnostic messages have been improved or corrected: =end original +æ¢ã«ããå¤ãã®è¨ºæã¡ãã»ã¼ã¸ãæ¹è¯ããããä¿®æ£ãããããã¾ãã: =over @@ -4592,6 +5325,9 @@ =end original +A new warning category C<illegalproto> allows finer-grained control of +warnings around function prototypes. +(TBT) =begin original @@ -4599,6 +5335,7 @@ =end original +äºã¤ã®è¦å: =over @@ -4617,6 +5354,11 @@ =end original +have been moved from the C<syntax> top-level warnings category into a new +first-level category, C<illegalproto>. These two warnings are currently +the only ones emitted during parsing of an invalid/illegal prototype, +so one can now use +(TBT) no warnings 'illegalproto'; @@ -4628,16 +5370,15 @@ =end original +to suppress only those, but not other syntax-related warnings. Warnings +where prototypes are changed, ignored, or not met are still in the +C<prototype> category as before. +(TBT) =item * -=begin original - C<Deep recursion on subroutine "%s"> -=end original - - =begin original It is now possible to change the depth threshold for this warning from the @@ -4659,6 +5400,9 @@ =end original +C<Illegal character in prototype> warning is now more precise +when reporting illegal characters after _ +(TBT) =item * @@ -4669,6 +5413,9 @@ =end original +mro merging error messages are now very similar to those produced by +L<Algorithm::C3>. +(TBT) =item * @@ -4678,6 +5425,8 @@ =end original +Amelioration of the error message "Unrecognized character %s in column %d" +(TBT) =begin original @@ -4687,6 +5436,10 @@ =end original +Changes the error message to "Unrecognized character %s; marked by E<lt>-- +HERE after %sE<lt>-- HERE near column %d". This should make it a little +simpler to spot and correct the suspicious character. +(TBT) =item * @@ -4697,16 +5450,14 @@ =end original +Perl now explicitly points to C<$.> when it causes an uninitialized +warning for ranges in scalar context. +(TBT) =item * -=begin original - C<split> now warns when called in void context. -=end original - - =item * =begin original @@ -4716,6 +5467,9 @@ =end original +C<printf>-style functions called with too few arguments will now issue the +warning C<"Missing argument in %s"> [perl #71000] +(TBT) =item * @@ -4726,6 +5480,9 @@ =end original +Perl now properly returns a syntax error instead of segfaulting +if C<each>, C<keys>, or C<values> is used without an argument. +(TBT) =item * @@ -4736,6 +5493,9 @@ =end original +C<tell()> now fails properly if called without an argument and when no +previous file was read. +(TBT) =begin original @@ -4744,6 +5504,9 @@ =end original +C<tell()> now returns C<-1>, and sets errno to C<EBADF>, thus restoring +the 5.8.x behaviour. +(TBT) =item * @@ -4754,6 +5517,9 @@ =end original +C<overload> no longer implicitly unsets fallback on repeated 'use +overload' lines. +(TBT) =item * @@ -4763,6 +5529,8 @@ =end original +POSIX::strftime() can now handle Unicode characters in the format string. +(TBT) =item * @@ -4773,6 +5541,9 @@ =end original +The C<syntax> category was removed from 5 warnings that should only be in +C<deprecated>. +(TBT) =item * @@ -4783,6 +5554,9 @@ =end original +Three fatal C<pack>/C<unpack> error messages have been normalized to +C<panic: %s> +(TBT) =item * @@ -4792,6 +5566,8 @@ =end original +C<Unicode character is illegal> has been rephrased to be more accurate +(TBT) =begin original @@ -4800,6 +5576,9 @@ =end original +It now reads C<Unicode non-character is illegal in interchange> and the +perldiag documentation has been expanded a bit. +(TBT) =item * @@ -4813,6 +5592,12 @@ =end original +Currently, all but the first of the several characters that the +C<charnames> handler may return are discarded when used in a regular +expression pattern bracketed character class. If this happens then the +warning C<Using just the first character returned by \N{} in character +class> will be issued. +(TBT) =item * @@ -4829,6 +5614,15 @@ =end original +The warning C<Missing right brace on \N{} or unescaped left brace after +\N. Assuming the latter> will be issued if Perl encounters a C<\N{> +but doesn't find a matching C<}>. In this case Perl doesn't know if it +was mistakenly omitted, or if "match non-newline" followed by "match +a C<{>" was desired. It assumes the latter because that is actually a +valid interpretation as written, unlike the other case. If you meant +the former, you need to add the matching right brace. If you did mean +the latter, you can silence this warning by writing instead C<\N\{>. +(TBT) =item * @@ -4840,6 +5634,10 @@ =end original +C<gmtime> and C<localtime> called with numbers smaller than they can +reliably handle will now issue the warnings C<gmtime(%.0f) too small> +and C<localtime(%.0f) too small>. +(TBT) =back @@ -4849,26 +5647,18 @@ =end original +The following diagnostic messages have been removed: +(TBT) =over 4 =item * -=begin original - C<Runaway format> -=end original - - -=item * - -=begin original - -C<Can't locate package %s for the parents of %s> - -=end original +=item * +C<Can't locate package %s for the parents of %s> =begin original @@ -4883,13 +5673,8 @@ =item * -=begin original - C<v-string in use/require is non-portable> -=end original - - =back =head1 Utility Changes @@ -4952,6 +5737,13 @@ =end original +F<perlbug> now uses C<%Module::CoreList::bug_tracker> to print out +upstream bug tracker URLs. If a user identifies a particular module +as the topic of their bug report and we're able to divine the URL for +its upstream bug tracker, perlbug now provide a message to the user +explaining that the core copies the CPAN version directly, and provide +the URL for reporting the bug directly to the upstream author. +(TBT) =begin original @@ -4960,6 +5752,9 @@ =end original +F<perlbug> no longer reports "Message sent" when it hasn't actually sent +the message +(TBT) =item * @@ -4990,6 +5785,10 @@ =end original +Perl's developers have fixed bugs in F<a2p> having to do with the +C<match()> operator in list context. Additionally, F<a2p> no longer +generates code that uses the C<$[> variable. +(TBT) =back @@ -5007,6 +5806,8 @@ =end original +U+0FFFF is now a legal character in regular expressions. +(TBT) =item * @@ -5016,6 +5817,8 @@ =end original +pp_qr now always returns a new regexp SV. Resolves RT #69852. +(TBT) =begin original @@ -5028,6 +5831,13 @@ =end original +Instead of returning a(nother) reference to the (pre-compiled) regexp +in the optree, use reg_temp_copy() to create a copy of it, and return a +reference to that. This resolves issues about Regexp::DESTROY not being +called in a timely fashion (the original bug tracked by RT #69852), as +well as bugs related to blessing regexps, and of assigning to regexps, +as described in correspondence added to the ticket. +(TBT) =begin original @@ -5040,6 +5850,13 @@ =end original +It transpires that we also need to undo the SvPVX() sharing when ithreads +cloning a Regexp SV, because mother_re is set to NULL, instead of a +cloned copy of the mother_re. This change might fix bugs with regexps +and threads in certain other situations, but as yet neither tests nor +bug reports have indicated any problems, so it might not actually be an +edge case that it's possible to reach. +(TBT) =item * @@ -5050,6 +5867,9 @@ =end original +Several compilation errors and segfaults when perl was built with C<-Dmad> +were fixed. +(TBT) =item * @@ -5059,6 +5879,8 @@ =end original +Fixes for lexer API changes in 5.11.2 which broke NYTProf's savesrc option. +(TBT) =item * @@ -5068,6 +5890,8 @@ =end original +C<-t> should only return TRUE for file handles connected to a TTY +(TBT) =begin original @@ -5077,6 +5901,10 @@ =end original +The Microsoft C version of C<isatty()> returns TRUE for all character mode +devices, including the F</dev/null>-style "nul" device and printers like +"lpt1". +(TBT) =item * @@ -5087,6 +5915,9 @@ =end original +Fixed a regression caused by commit fafafbaf which caused a panic during +parameter passing [perl #70171] +(TBT) =item * @@ -5097,6 +5928,9 @@ =end original +On systems which in-place edits without backup files, -i'*' now works as +the documentation says it does [perl #70802] +(TBT) =item * @@ -5106,6 +5940,8 @@ =end original +Saving and restoring magic flags no longer loses readonly flag. +(TBT) =item * @@ -5116,6 +5952,9 @@ =end original +The malformed syntax C<grep EXPR LIST> (note the missing comma) no longer +causes abrupt and total failure. +(TBT) =item * @@ -5126,6 +5965,9 @@ =end original +Regular expressions compiled with C<qr{}> literals properly set C<$'> when +matching again. +(TBT) =item * @@ -5136,6 +5978,9 @@ =end original +Using named subroutines with C<sort> should no longer lead to bus errors +[perl #71076] +(TBT) =item * @@ -5145,6 +5990,8 @@ =end original +Numerous bugfixes catch small issues caused by the recently-added Lexer API. +(TBT) =item * @@ -5154,6 +6001,8 @@ =end original +Smart match against C<@_> sometimes gave false negatives. [perl #71078] +(TBT) =item * @@ -5164,6 +6013,9 @@ =end original +C<$@> may now be assigned a read-only value (without error or busting +the stack). +(TBT) =item * @@ -5174,6 +6026,9 @@ =end original +C<sort> called recursively from within an active comparison subroutine no +longer causes a bus error if run multiple times. [perl #71076] +(TBT) =item * @@ -5183,6 +6038,8 @@ =end original +Tie::Hash::NamedCapture::* will not abort if passed bad input (RT #71828) +(TBT) =item * @@ -5193,6 +6050,9 @@ =end original + @ _ and $_ no longer leak under threads (RT #34342 and #41138, also +#70602, #70974) +(TBT) =item * @@ -5203,6 +6063,9 @@ =end original +C<-I> on shebang line now adds directories in front of @INC +as documented, and as does C<-I> when specified on the command-line. +(TBT) =item * @@ -5216,6 +6079,12 @@ =end original +C<kill> is now fatal when called on non-numeric process identifiers. +Previously, an C<undef> process identifier would be interpreted as a +request to kill process 0, which would terminate the current process +group on POSIX systems. Since process identifiers are always integers, +killing a non-numeric process is now fatal. +(TBT) =item * @@ -5844,6 +6713,9 @@ =end original +Perl now includes previously missing files from the Unicode Character +Database. +(TBT) =item * @@ -5853,6 +6725,8 @@ =end original +Perl now honors C<TMPDIR> when opening an anonymous temporary file. +(TBT) =back @@ -5870,6 +6744,11 @@ =end original +Perl is incredibly portable. In general, if a platform has a C compiler, +someone has ported Perl to it (or will soon). We're happy to announce +that Perl 5.12 includes support for several new platforms. At the same +time, it's time to bid farewell to some (very) old friends. +(TBT) =head2 New Platforms @@ -5970,6 +6849,8 @@ =end original +Perl now supports IPv6 on Cygwin 1.7 and newer. +(TBT) =item * @@ -6000,6 +6881,9 @@ =end original +Skip testing the be_BY.CP1131 locale on Darwin 10 (Mac OS X 10.6), +as it's still buggy. +(TBT) =item * @@ -6010,6 +6894,9 @@ =end original +Correct infelicities in the regexp used to identify buggy locales +on Darwin 8 and 9 (Mac OS X 10.4 and 10.5, respectively). +(TBT) =back @@ -6025,6 +6912,8 @@ =end original +Fix thread library selection [perl #69686] +(TBT) =back @@ -6094,6 +6983,8 @@ =end original +C<-UDEBUGGING> is now the default on VMS. +(TBT) =begin original @@ -6104,6 +6995,11 @@ =end original +Like it has been everywhere else for ages and ages. Also make command-line +selection of -UDEBUGGING and -DDEBUGGING work in configure.com; before +the only way to turn it off was by saying no in answer to the interactive +question. +(TBT) =item * @@ -6114,6 +7010,9 @@ =end original +The default pipe buffer size on VMS has been updated to 8192 on 64-bit +systems. +(TBT) =item * @@ -6176,6 +7075,8 @@ =end original +C<File::Copy> now detects Unix compatibility mode on VMS. +(TBT) =back @@ -6225,6 +7126,10 @@ =end original +Perl 5.12 supports Windows 2000 and later. The supporting code for +legacy versions of Windows is still included, but will be removed +during the next development cycle. +(TBT) =item * @@ -6234,6 +7139,8 @@ =end original +Initial support for building Perl with MinGW-w64 is now available. +(TBT) =item * @@ -6248,6 +7155,13 @@ =end original +F<perl.exe> now includes a manifest resource to specify the C<trustInfo> +settings for Windows Vista and later. Without this setting Windows +would treat F<perl.exe> as a legacy application and apply various +heuristics like redirecting access to protected file system areas +(like the "Program Files" folder) to the users "VirtualStore" +instead of generating a proper "permission denied" error. +(TBT) =begin original @@ -6258,6 +7172,11 @@ =end original +The manifest resource also requests the Microsoft Common-Controls +version 6.0 (themed controls introduced in Windows XP). Check out the +Win32::VisualStyles module on CPAN to switch back to old style +unthemed controls for legacy applications. +(TBT) =item * @@ -6270,6 +7189,11 @@ =end original +The C<-t> filetest operator now only returns true if the filehandle +is connected to a console window. In previous versions of Perl it +would return true for all character mode devices, including F<NUL> +and F<LPT1>. +(TBT) =item * @@ -6283,6 +7207,12 @@ =end original +The C<-p> filetest operator now works correctly, and the +Fcntl::S_IFIFO constant is defined when Perl is compiled with +Microsoft Visual C. In previous Perl versions C<-p> always +returned a false value, and the Fcntl::S_IFIFO constant +was not defined. +(TBT) =begin original @@ -6291,6 +7221,9 @@ =end original +This bug is specific to Microsoft Visual C and never affected +Perl binaries built with MinGW. +(TBT) =item * @@ -6303,6 +7236,11 @@ =end original +The socket error codes are now more widely supported: The POSIX +module will define the symbolic names, like POSIX::EWOULDBLOCK, +and stringification of socket error codes in $! works as well +now; +(TBT) C:\>perl -MPOSIX -E "$!=POSIX::EWOULDBLOCK; say $!" A non-blocking socket operation could not be completed immediately. @@ -6316,6 +7254,9 @@ =end original +flock() will now set sensible error codes in $!. Previous Perl versions +copied the value of $^E into $!, which caused much confusion. +(TBT) =item * @@ -6325,6 +7266,8 @@ =end original +select() now supports all empty C<fd_set>s more correctly. +(TBT) =item * @@ -6360,6 +7303,10 @@ =end original +Various bits of Perl's build infrastructure are no longer converted to +win32 line endings at release time. If this hurts you, please report the +problem with the L<perlbug> program included with perl. +(TBT) =back @@ -6392,6 +7339,12 @@ =end original +Some CPANPLUS tests may fail if there is a functioning file +F<../../cpanp-run-perl> outside your build directory. The failure +shouldn't imply there's a problem with the actual functional +software. The bug is already fixed in [RT #74188] and is scheduled for +inclusion in perl-v5.12.1. +(TBT) =item * @@ -6442,6 +7395,9 @@ =end original +Things like C<"\N{LATIN SMALL LIGATURE FF}" =~ /\N{LATIN SMALL LETTER F}+/> +will appear to hang as they get into a very long running loop [RT #72998]. +(TBT) =item * @@ -6453,6 +7409,10 @@ =end original +Several porters have reported mysterious crashes when Perl's entire +test suite is run after a build on certain Windows 2000 systems. When +run by hand, the individual tests reportedly work fine. +(TBT) =back @@ -6497,6 +7457,10 @@ =end original +Perl 5.12.0 represents approximately two years of development since +Perl 5.10.0 and contains over 750,000 lines of changes across over +3,000 files from over 200 authors and committers. +(TBT) =begin original @@ -6506,6 +7470,10 @@ =end original +Perl continues to flourish into its third decade thanks to a vibrant +community of users and developers. The following people are known to +have contributed the improvements that became Perl 5.12.0: +(TBT) =begin original @@ -6552,6 +7520,47 @@ =end original +Aaron Crane, Abe Timmerman, Abhijit Menon-Sen, Abigail, Adam Russell, +Adriano Ferreira, Ãvar Arnfjörð Bjarmason, Alan Grover, Alexandr +Ciornii, Alex Davies, Alex Vandiver, Andreas Koenig, Andrew Rodland, +andr****@sunda*****, Andy Armstrong, Andy Dougherty, Jose AUGUSTE-ETIENNE, +Benjamin Smith, Ben Morrow, bharanee rathna, Bo Borgerson, Bo Lindbergh, +Brad Gilbert, Bram, Brendan O'Dea, brian d foy, Charles Bailey, +Chip Salzenberg, Chris 'BinGOs' Williams, Christoph Lamprecht, Chris +Williams, chromatic, Claes Jakobsson, Craig A. Berry, Dan Dascalescu, +Daniel Frederick Crisman, Daniel M. Quinlan, Dan Jacobson, Dan Kogai, +Dave Mitchell, Dave Rolsky, David Cantrell, David Dick, David Golden, +David Mitchell, David M. Syzdek, David Nicol, David Wheeler, Dennis +Kaarsemaker, Dintelmann, Peter, Dominic Dunlop, Dr.Ruud, Duke Leto, +Enrico Sorcinelli, Eric Brine, Father Chrysostomos, Florian Ragwitz, +Frank Wiegand, Gabor Szabo, Gene Sullivan, Geoffrey T. Dairiki, George +Greer, Gerard Goossen, Gisle Aas, Goro Fuji, Graham Barr, Green, Paul, +Hans Dieter Pearcey, Harmen, H. Merijn Brand, Hugo van der Sanden, +Ian Goodacre, Igor Sutton, Ingo Weinhold, James Bence, James Mastros, +Jan Dubois, Jari Aalto, Jarkko Hietaniemi, Jay Hannah, Jerry Hedden, +Jesse Vincent, Jim Cromie, Jody Belka, John E. Malmberg, John Malmberg, +John Peacock, John Peacock via RT, John P. Linderman, John Wright, +Josh ben Jore, Jos I. Boumans, Karl Williamson, Kenichi Ishigaki, Ken +Williams, Kevin Brintnall, Kevin Ryde, Kurt Starsinic, Leon Brocard, +Lubomir Rintel, Luke Ross, Marcel Gr端nauer, Marcus Holland-Moritz, Mark +Jason Dominus, Marko Asplund, Martin Hasch, Mashrab Kuvatov, Matt Kraai, +Matt S Trout, Max Maischein, Michael Breen, Michael Cartmell, Michael +G Schwern, Michael Witten, Mike Giroux, Milosz Tanski, Moritz Lenz, +Nicholas Clark, Nick Cleaton, Niko Tyni, Offer Kaye, Osvaldo Villalon, +Paul Fenwick, Paul Gaborit, Paul Green, Paul Johnson, Paul Marquess, +Philip Hazel, Philippe Bruhat, Rafael Garcia-Suarez, Rainer Tammer, +Rajesh Mandalemula, Reini Urban, Ren辿e B辰cker, Ricardo Signes, +Ricardo SIGNES, Richard Foley, Rich Rauenzahn, Rick Delaney, Risto +Kankkunen, Robert May, Roberto C. Sanchez, Robin Barker, SADAHIRO +Tomoyuki, Salvador Ortiz Garcia, Sam Vilain, Scott Lanning, S辿bastien +Aperghis-Tramoni, S辿rgio Durigan J炭nior, Shlomi Fish, Simon 'corecode' +Schubert, Sisyphus, Slaven Rezic, Smylers, Steffen M端ller, Steffen +Ullrich, Stepan Kasal, Steve Hay, Steven Schubiger, Steve Peters, Tels, +The Doctor, Tim Bunce, Tim Jenness, Todd Rinaldo, Tom Christiansen, +Tom Hukins, Tom Wyant, Tony Cook, Torsten Schoenfeld, Tye McQueen, +Vadim Konovalov, Vincent Pit, Hio YAMASHINA, Yasuhiro Matsumoto, +Yitzchak Scott-Thoennes, Yuval Kogman, Yves Orton, Zefram, Zsban Ambrus +(TBT) =begin original @@ -6564,6 +7573,13 @@ =end original +This is woefully incomplete as it's automatically generated from version +control history. In particular, it doesn't include the names of the +(very much appreciated) contributors who reported issues in previous +versions of Perl that helped make Perl 5.12.0 better. For a more complete +list of all of Perl's historical contributors, please see the C<AUTHORS> +file in the Perl 5.12.0 distribution. +(TBT) =begin original @@ -6579,6 +7595,16 @@ =end original +Our "retired" pumpkings Nicholas Clark and Rafael Garcia-Suarez +deserve special thanks for their brilliant and substantive ongoing +contributions. Nicholas personally authored over 30% of the patches +since 5.10.0. Rafael comes in second in patch authorship with 11%, +but is first by a long shot in committing patches authored by others, +pushing 44% of the commits since 5.10.0 in this category, often after +providing considerable coaching to the patch authors. These statistics +in no way comprise all of their contributions, but express in shorthand +that we couldn't have done it without them. +(TBT) =begin original @@ -6588,6 +7614,10 @@ =end original +Many of the changes included in this version originated in the CPAN +modules included in Perl's core. We're grateful to the entire CPAN +community for helping Perl to flourish. +(TBT) =head1 Reporting Bugs @@ -6690,5 +7720,9 @@ =end original +L<http://dev.perl.org/perl5/errata.html> for a list of issues +found after this release, as well as a list of CPAN modules known +to be incompatible with this release. +(TBT) =cut