X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/b0c3724fd32f6a8853be1bfebef69c9053a74450..26b3f08895a54ead6eb9aea00c9e0aa7b230937b:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index aa59bcd..ea85093 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,911 +2,1176 @@ =head1 NAME -perldelta - what is new for perl v5.13.8 +[ 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 =head1 DESCRIPTION -This document describes differences between the 5.13.7 release and -the 5.13.8 release. +This document describes differences between the 5.13.8 release and +the 5.13.9 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. + +=head1 Notice -If you are upgrading from an earlier release such as 5.13.6, first read -L, which describes differences between 5.13.6 and -5.13.7. +XXX Any important notices here =head1 Core Enhancements -=head2 C<-d:-foo> calls C +XXX New core language features go here. Summarise user-visible core language +enhancements. Particularly prominent performance optimisations could go +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. + +=head1 Security + +XXX Any security-related notices go here. In particular, any security +vulnerabilities closed should be noted here rather than in the +L section. + +[ List each security issue as a =head2 entry ] -The syntax C<-dIfoo>> was extended in 5.6.1 to make C<-dI<:fooB<=bar>>> -equivalent to C<-MDevel::foo=bar>, which expands -internally to C. -F now allows prefixing the module name with C<->, with the same -semantics as C<-M>, I +=head1 Incompatible Changes -=over 4 +XXX For a release on a stable branch, this section aspires to be: -=item C<-d:-foo> + There are no changes intentionally incompatible with 5.XXX.XXX. If any + exist, they are bugs and reports are welcome. -Equivalent to C<-M-Devel::foo>, expands to -C, calls C<< Devel::foo->unimport() >> -if the method exists. +[ List each incompatible change as a =head2 entry ] -=item C<-d:-foo=bar> +=head2 All objects are destroyed -Equivalent to C<-M-Devel::foo=bar>, expands to C, -calls C<< Devel::foo->unimport('bar') >> if the method exists. +It used to be possible to prevent a destructor from being called during +global destruction by artificially increasing the reference count of an +object. -=back +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>. -This is particularly useful to suppresses the default actions of a -C module's C method whilst still loading it for debugging. +This has the potential to break some XS modules. (In fact, it break some. +See L, below.) -=head2 Filehandle method calls load L on demand +=head1 Deprecations -When a method call on a filehandle would die because the method cannot -be resolved, and L has not been loaded, Perl now loads L -via C and attempts method resolution again: +XXX Any deprecated features, syntax, modules etc. should be listed here. +In particular, deprecated modules should be listed here even if they are +listed as an updated module in the L section. - open my $fh, ">", $file; - $fh->binmode(":raw"); # loads IO::File and succeeds +[ List each deprecation as a =head2 entry ] -This also works for globs like STDOUT, STDERR and STDIN: +=head1 Performance Enhancements - STDOUT->autoflush(1); +XXX Changes which enhance performance without changing behaviour go here. There +may well be none in a stable release. -Because this on-demand load only happens if method resolution fails, the -legacy approach of manually loading an L parent class for partial -method support still works as expected: +[ List each enhancement as a =item entry ] - use IO::Handle; - open my $fh, ">", $file; - $fh->autoflush(1); # IO::File not loaded +=over 4 -=head2 Full functionality for C +=item * -This release provides full functionality for C. Under its scope, all string operations executed and -regular expressions compiled (even if executed outside its scope) have -Unicode semantics. See L. +XXX -This feature avoids most forms of the "Unicode Bug" (See -L for details.) If there is a -possibility that your code will process Unicode strings, you are -B encouraged to use this subpragma to avoid nasty surprises. +=back -The availability of this should strongly affect the whole tone of -various documents, such as L and L, but this -work has not been done yet. +=head1 Modules and Pragmata -=head2 Exception Handling Backcompat Hack +XXX All changes to installed files in F, F, F and F +go here. If Module::CoreList is updated, generate an initial draft of the +following sections using F, which prints stub +entries to STDOUT. Results can be pasted in place of the '=head2' entries +below. A paragraph summary for important changes should then be added by hand. +In an ideal world, dual-life modules would have a F file that could be +cribbed. -When an exception is thrown in an C, C<$@> is now set before -unwinding, as well as being set after unwinding as the eval block exits. This -early setting supports code that has historically treated C<$@> during unwinding -as an indicator of whether the unwinding was due to an exception. These modules -had been broken by 5.13.1's change from setting C<$@> early to setting it late. -This double setting arrangement is a stopgap until the reason for unwinding can -be made properly introspectable. C<$@> has never been a reliable indicator of -the reason for unwinding. +[ Within each section, list entries as a =item entry ] -=head2 printf-like functions understand post-1980 size modifiers +=head2 New Modules and Pragmata -Perl's printf and sprintf operators, and Perl's internal printf replacement -function, now understand the C90 size modifiers "hh" (C), "z" -(C), and "t" (C). Also, when compiled with a C99 -compiler, Perl now understands the size modifier "j" (C). +=over 4 -So, for example, on any modern machine, C returns '1'. +=item * -=head2 DTrace probes now include package name +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. -The DTrace probes now include an additional argument (C) which contains -the package the subroutine being entered or left was compiled in. +=item * -For example using the following DTrace script: +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. - perl$target:::sub-entry - { - printf("%s::%s\n", copyinstr(arg0), copyinstr(arg3)); - } +=item * -and then running: +L 2.27103 has been added as a dual-life module, for the sake of +reading F files in CPAN distributions. - perl -e'sub test { }; test' +=item * -DTrace will print: +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. - main::test +=item * -=head2 Stacked labels +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. -Multiple statement labels can now appear before a single statement. +=back -=head1 Incompatible Changes +=head2 Updated Modules and Pragmata -=head2 C<:=> is now a syntax error +=over 4 -Previously C was exactly equivalent to C, -with the C<:> being treated as the start of an attribute list, ending before -the C<=>. The use of C<:=> to mean C<: => was deprecated in 5.12.0, and is now -a syntax error. This will allow the future use of C<:=> as a new token. +=item * -We find no Perl 5 code on CPAN using this construction, outside the core's -tests for it, so we believe that this change will have very little impact on -real-world codebases. +C has been upgraded from version 0.46 to 0.48 -If it is absolutely necessary to have empty attribute lists (for example, -because of a code generator) then avoid the error by adding a space before -the C<=>. +=item * -=head2 Run-time code block in regular expressions +C has been upgraded from version 1.74 to 1.76 -Code blocks in regular expressions (C<(?{...})> and C<(??{...})>) used not -to inherit any pragmata (strict, warnings, etc.) if the regular expression -was compiled at run time as happens in cases like these two: +=item * - use re 'eval'; - $foo =~ $bar; # when $bar contains (?{...}) - $foo =~ /$bar(?{ $finished = 1 })/; +C has been upgraded from version 3.50 to 3.51 -This was a bug, which has now been fixed. But it has the potential to break -any code that was relying on this bug. +Further improvements have been made to guard against newline injections +in headers. -=head1 Deprecations +=item * -=head2 C is deprecated +C has been upgraded from version 2.031 to 2.033 -C (without the initial m) has been deprecated and now produces -a warning. This is to allow future use of C in new operators. -The match-once functionality is still available in the form of C. +=item * -=head2 C is now deprecated +C has been upgraded from version 2.030 to 2.033 -The C API function is now deprecated. Searches suggest -that nothing on CPAN is using it, so this should have zero impact. +=item * -It attempted to provide an API to compile code down to an optree, but failed -to bind correctly to lexicals in the enclosing scope. It's not possible to -fix this problem within the constraints of its parameters and return value. +C has been upgraded from version 1.94_62 to 1.94_63 -=head2 Tie functions on scalars holding typeglobs +=item * -Calling a tie function (C, C, C) with a scalar argument -acts on a file handle if the scalar happens to hold a typeglob. +C has been upgraded from version 0.9010 to 0.9011 -This is a long-standing bug that will be removed in Perl 5.16, as -there is currently no way to tie the scalar itself when it holds -a typeglob, and no way to untie a scalar that has had a typeglob -assigned to it. +=item * -This bug was fixed in 5.13.7 but, because of the breakage it caused, the -fix has been reverted. Now there is a deprecation warning whenever a tie -function is used on a handle without an explicit C<*>. +C has been upgraded from version 0.50 to 0.52 -=head1 Modules and Pragmata +=item * -=head2 Updated Modules and Pragmata +C has been upgraded from version 1.820 to 1.821 -=over 4 +=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 1.72 to 1.74. +C has been upgraded from version 0.28 to 0.32 + +=item * -Skip extracting pax extended headers. +C has been upgraded from version 2.030 to 2.033 =item * -C has been upgraded from version 2.10 to 2.1001. +C has been upgraded from version 0.66 to 0.68 -Test fix in blead for VMS. +=item * + +C has been upgraded from version 0.02 to 0.04 =item * -C has been upgraded from version 1.26 to 1.27. +C has been upgraded from version 0.06 to 0.08 + +=item * -Avoid compiler warnings. +C has been upgraded from version 0.38 to 0.40 =item * -C has been upgraded from version 0.81 to 0.82. +C has been upgraded from version 0.36 to 0.38 -It no longer produces mangled output with the C<-tree> option -L<[perl #80632]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=80632>. +=item * + +C has been upgraded from version 0.26 to 0.28 =item * -C has been upgraded from version 1.01 to 1.02. +C has been upgraded from version 0.58 to 0.59 + +=item * -Test improvements. +C has been upgraded from version 0.20 to 0.24 =item * -C has been upgraded from version 3.34 to 3.35. +C has been upgraded from version 2.11 to 2.12. -Avoid compiler warnings. +=item * + +C has been upgraded from version 2.11 to 2.12. =item * -C has been upgraded from version 2.130_01 to 2.130_02. +C has been upgraded from version 1.81_03 to 1.82 + +=item * -Avoid compiler warnings. +C has been upgraded from version 1.35 to 1.36 =item * -C has been upgraded from version 1.05 to 1.06. +C has been upgraded from version 1.1901_01 to 1.2000. -Avoid compiler warnings. +=item * -Test improvements. +C has been upgraded from version 1.07 to 1.10 =item * -C has been upgraded from version 1.03 to 1.05. +C has been upgraded from 0.86 to 0.88. + +=back + +=head2 Removed Modules and Pragmata -Whitespace changes. +=over 4 =item * -C has been upgraded from 5.48 to 5.50. +XXX -C now more closely mimics C/C. +=back -C accepts all POSIX filenames. +=head1 Documentation -=item * +XXX Changes to files in F go here. Consider grouping entries by +file and be sure to link to the appropriate page, e.g. L. -C has been upgraded from version 1.14 to 1.15. +=head2 New Documentation -Test improvements. +XXX Changes which create B files in F go here. -=item * +=head3 L -C has been upgraded from version 1.11 to 1.12. +XXX Description of the purpose of the new file here -Remove obsolete RCS keywords. +=head2 Changes to Existing Documentation -=item * +XXX Changes which significantly change existing files in F go here. +However, any changes to F should go in the L +section. -C has been upgraded from version 1.01 to 1.02. +=head3 L -Test improvements. +=over 4 =item * -C has been upgraded from 0.2703 to 0.280201. +It has now been documented that C returns 0 for an empty string. -Handle C and C++ compilers separately. +=back -Preserves exit status on VMS. +=head1 Diagnostics -Test improvements. +The following additions or changes have been made to diagnostic output, +including warnings and fatal error messages. For the complete list of +diagnostic messages, see L. -=item * +XXX New or changed warnings emitted by the core's C code go here. Also +include any changes in L that reconcile it to the C code. -C has been upgraded from 0.02 to 0.03. +[ Within each section, list entries as a =item entry ] -Refactoring and fixing of backcompat code, preparing for resynchronisation -with CPAN. +=head2 New Diagnostics + +XXX Newly added diagnostic messages go here + +=over 4 =item * -C has been upgraded from 1.29 to 1.30. +Performing an operation requiring Unicode semantics (such as case-folding) +on a Unicode surrogate or a non-Unicode character now triggers a warning: +'Operation "%s" returns its argument for ...'. -Remove obsolete RCS keywords. +=back -=item * +=head2 Changes to Existing Diagnostics -C has been upgraded from 2.2207 to 2.2208. +XXX Changes (i.e. rewording) of diagnostic messages go here -Avoid compiler warnings. +=over 4 =item * -C has been upgraded from 1.10 to 1.11. +XXX -Avoid compiler warnings. +=back -Test improvements. +=head1 Utility Changes -=item * +XXX Changes to installed programs such as F and F go +here. Most of these are built within the directories F and F. + +[ List utility changes as a =head3 entry for each utility and =item +entries for each change +Use L with program names to get proper documentation linking. ] -C has been upgraded from 1.18 to 1.19. +=head3 L -Documentation and test updates for the C feature. -See L>. +=over 4 =item * -C has been upgraded from 4.4 to 4.41. +C did not previously generate a From: header, potentially +resulting in dropped mail. Now it does include that header. -Whitespace changes. +=back -=item * +=head1 Configuration and Compilation -C has been upgraded from 1.10 to 1.11. +XXX Changes to F, F, F, and analogous tools +go here. Any other changes to the Perl build process should be listed here. +However, any platform-specific changes should be listed in the +L section, instead. -Avoid compiler warnings. +[ List changes as a =item entry ]. -Test improvements. +=over 4 =item * -C has been upgraded from 1.12 to 1.13. +XXX -Test improvements. +=back -Remove obsolete RCS keywords. +=head1 Testing -=item * +XXX Any significant changes to the testing of a freshly built perl should be +listed here. Changes which create B files in F go here as do any +large changes to the testing harness (e.g. when parallel testing was added). +Changes to existing files in F aren't worth summarising, although the bugs +that they represent may be covered elsewhere. -C has been upgraded from 1.06 to 1.07. +[ List each test improvement as a =item entry ] -Avoid compiler warnings. +=over 4 =item * -C has been upgraded from 1.01 to 1.02. +A new test script, C, makes sure that filenames and +paths are reasonably portable. -Whitespace changes. +=back -Test improvements. +=head1 Platform Support -=item * +XXX Any changes to platform support should be listed in the sections below. -C has been upgraded from 0.06 to 0.0601. +[ Within the sections, list each platform as a =item entry with specific +changes as paragraphs below it. ] -Test improvements. +=head2 New Platforms -=item * +XXX List any platforms that this version of perl compiles on, that previous +versions did not. These will either be enabled by new files in the F +directories, or new subdirectories and F files at the top level of the +source tree. -C has been upgraded from 1.25_02 to 1.25_03. +=over 4 -Avoid compiler warnings. +=item XXX-some-platform -=item * +XXX -C has been upgraded from 0.64 to 0.66. +=back -Resolves an issue with splitting Win32 command lines. +=head2 Discontinued Platforms -Documentation enhancements. +XXX List any platforms that this version of perl no longer compiles on. -=item * +=over 4 -C has been upgraded from 1.07 to 1.08. +=item Apollo DomainOS -Remove obsolete RCS keywords. +The last vestiges of support for this platform have been excised from the +Perl distribution. It was officially discontinued in version 5.12.0. It had +not worked for years before that. -Test improvements. +=back -=item * +=head2 Platform-Specific Notes -C has been upgraded from version 3.14 to 3.15. +XXX List any changes for specific platforms. This could include configuration +and compilation changes or changes in portability/compatibility. However, +changes within modules for platforms should generally be listed in the +L section. -Adds some codes. +=over 4 -=item * +=item Solaris -C has been upgraded from 1.99_01 to 1.99_02. +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>. -Documentation and comment spelling fixes. +=back -=item * +=head1 Internal Changes -C has been upgraded from version 1.01_03 to 1.02. +XXX Changes which affect the interface available to C code go here. +Other significant internal changes for future core maintainers should +be noted as well. -Remove obsolete RCS keywords. +[ List each test improvement as a =item entry ] -Whitespace changes. +=over 4 =item * -C has been upgraded from 3.10 to 3.13. - -Now provides C and C functions to process -the base64 scheme for "URL applications". +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 * -C has been upgraded from version 1.05 to 1.06. +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 * -C I now take into account that every class inherits -from UNIVERSAL -L<[perl #68654]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=68654>. +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 * -C has been upgraded from 1.10 to 1.11. +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 -Remove obsolete RCS keywords. +=back -Test improvements. +=head1 Selected Bug Fixes -=item * +XXX Important bug fixes in the core language are summarised here. +Bug fixes in files in F and F are best summarised in +L. -C has been upgraded from 2.36 to 2.37. +[ List each fix as a =item entry ] -Remove obsolete RCS keywords. +=over 4 =item * -C has been upgraded from 1.09 to 1.10. +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> -Remove obsolete RCS keywords. +=item * -Test improvements. +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 * -C has been upgraded from 1.17 to 1.18. +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 * -Avoid compiler warnings. +C<< >> always respects overloading now if the expression is +overloaded. -Test improvements. +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 * -C has been upgraded from 1.11 to 1.12. +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). -Avoid a taint problem in use of sprintf. +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>. -Test asymmetric fallback cases -L<[perl #71286]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=71286>. +=back -=item * +=head1 Known Problems -C has been upgraded from 0.13 to 0.14. +XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any +tests that had to be Ced for the release would be noted here, unless +they were specific to a particular platform (see below). -Avoid compiler warnings. +This is a list of some significant unfixed bugs, which are regressions +from either 5.XXX.XXX or 5.XXX.XXX. -Remove obsolete RCS keywords. +[ List each fix as a =item entry ] -Test improvements. +=over 4 =item * -C has been upgraded from 0.10 to 0.11. +The fix for [perl #81230] causes test failures for C version 804.029. +This is still being investigated. -A C after a C beyond the end of the string no longer thinks it -has data to read -L<[perl #78716]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78716>. +=back -Avoid compiler warnings. +=head1 Obituary -=item * +XXX If any significant core contributor has died, we've added a short obituary +here. -C has been upgraded from 0.10 to 0.11. +=head1 Acknowledgements -Avoid compiler warnings. +XXX The list of people to thank goes here. -=item * +=head1 Reporting Bugs -C has been upgraded from 1.22 to 1.23. +If you find what you think is a bug, you might check the articles +recently posted to the comp.lang.perl.misc newsgroup and the perl +bug database at http://rt.perl.org/perlbug/ . There may also be +information at http://www.perl.org/ , the Perl Home Page. -Avoid compiler warnings. +If you believe you have an unreported bug, please run the L +program included with your release. Be sure to trim your bug down +to a tiny but sufficient test case. Your bug report, along with the +output of C, will be sent off to perlbug@perl.org to be +analysed by the Perl porting team. -=item * +If the bug you are reporting has security implications, which make it +inappropriate to send to a publicly archived mailing list, then please send +it to perl5-security-report@perl.org. This points to a closed subscription +unarchived mailing list, which includes all the core committers, who be able +to help assess the impact of issues, figure out a resolution, and help +co-ordinate the release of patches to mitigate or fix the problem across all +platforms on which Perl is supported. Please only use this address for +security issues in the Perl core, not for modules independently +distributed on CPAN. -C has been upgraded from 0.14 to 0.15. +=head1 SEE ALSO -Enforce that C, C, and C are mutually exclusive. +The F file for an explanation of how to view exhaustive details +on what changed. -=item * +The F file for how to build Perl. -C has been upgraded from 1.08 to 1.09. +The F file for general stuff. -Avoid compiler warnings. +The F and F files for copyright information. -Remove obsolete RCS keywords. +=cut -Test improvements. +=for later -=item * +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. -C has been upgraded from 1.91 to 1.92. +It hasn't yet been deduped with the entries that _are_ in the perldelta. -It has several new functions for handling IPv6 addresses. -=item * + Major spell-checking pass throughout the core -C has been upgraded from 2.24 to 2.25. + Remove references to compat3.sym and interp.sym, deleted over 10 years ago. -This adds support for serialising code references that contain UTF-8 strings -correctly. The Storable minor version number changed as a result, meaning that -Storable users who set C<$Storable::accept_future_minor> to a C value -will see errors (see L for more details). + Remove Mac OS classic code from numerous places throughout the core -Freezing no longer gets confused if the Perl stack gets reallocated -during freezing -L<[perl #80074]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=80074>. +commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e +Author: Leon Timmermans +Date: Tue Jan 18 16:40:07 2011 +0100 -Avoid compiler warnings. + Also unblock signal handlers throwing an exception -=item * + Also handle and test the edge case of a signal handler throwing an + exception -C has been upgraded from 1.81_02 to 1.81_03. -Avoid compiler warnings. -=item * -C has been upgraded from 1.34 to 1.35. +Numberous POD warnings fixed -Avoid compiler warnings. -=item * -C has been upgraded from 1.9721 to 1.9721_01. + Update Unicode-Collate to CPAN version 0.71 -Build fix in blead for VMS. -=item * +internals -C has been upgraded from 0.67 to 0.6801. -Documentation clarification. + regexec.c: Remove break statements from macros -Test improvements. + This is so future coders won't be tempted to rely on them. -=item * + regexec.c: Don't rely on break stmts in macros -C has been upgraded from 1.07 to 1.08. + It is safer and clearer to have the break statement in each case statement at + the source level -Avoid compiler warnings. +commit b57e41186b2ceb48bef4f0588dcd19e105cc8a38 +Author: Karl Williamson +Date: Tue Jan 18 15:03:41 2011 -0700 -=item * + regcomp: Disallow multi-char folds in lookbehind -C has been upgraded from 0.29 to 0.30. + 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. -Add info about named sequence alternatives. + This patch disallows multi-char folds in a lookbehind bracketed character + class. -Don't use C. +Author: Nicholas Clark +Date: Tue Jan 18 16:14:43 2011 +0000 -=item * + Remove Mac OS classic code from scripts in utils/ -C has been upgraded from 0.82 to 0.86. -Modify export logic for C and C. + Convert DosGlob.t to Test::More. -Various backcompat fixes. +commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e +Author: Nicholas Clark +Date: Tue Jan 18 13:08:11 2011 +0000 -=item * + Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find} -C has been upgraded from 0.39 to 0.41. + 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. -Add several functions. +commit 8254cbf193c939338449097a80163197fc755150 +Author: Nicholas Clark +Date: Tue Jan 18 11:10:41 2011 +0000 -Corrections to names returned by C and -C. + Build perltoc.pod with pragmata sorted by name. -=item * + 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. -C has been upgraded from 0.26 to 0.27. +commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6 +Author: Father Chrysostomos +Date: Mon Jan 17 22:32:52 2011 -0800 -Test new API functions. + perlcall: Fixes for various grammatical errors -Avoid compiler warnings. +commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce +Author: Leon Timmermans +Date: Mon Jan 17 17:59:33 2011 +0100 -=back + Clarify limitation in safe signals. -=head2 Dual-life Modules and Pragmata +commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95 +Author: Leon Timmermans +Date: Mon Jan 17 16:29:11 2011 +0100 -These modules were formerly distributed only in the Perl core -distribution, and are now dual-lifed (meaning they are now also available -separately on CPAN): + Added tests for conditional unblocking -=over 4 +commit 555344425f04e96a72e4d29eab96b34bff8f96ae +Author: Leon Timmermans +Date: Thu Jan 13 18:30:29 2011 +0100 -=item * + Conditionally unblock after signal handler[#82040] -C + 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 -=item * + Update HTTP::Tiny to CPAN version 0.009 -C +commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5 +Author: David Mitchell +Date: Tue Jan 18 00:46:30 2011 +0000 -=item * + vastly speed up t/porting/diag.t -C + 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. -=item * +commit cfaf538b6276c6a8ef80ff6c66e106c6a4f1caaa +Author: Karl Williamson +Date: Mon Jan 17 08:58:53 2011 -0700 -C + Add /a regex modifier -=item * + This restricts certain constructs, like \w, to matching in the ASCII range only. -C +commit 56ae17b45d2513d65903d13468e8f6a16b20f916 +Author: Karl Williamson +Date: Sun Jan 16 17:41:30 2011 -0700 -=item * + regcomp.c: Convert \d \D to a switch{} -C +commit e66820012d29519f903709f005e56a2c334ae183 +Author: Tony Cook +Date: Mon Jan 17 19:22:08 2011 +1100 -=back + test_prep now depends on the pods needed for porting/buildtoc.t -=head1 Diagnostics + In the other makefiles test_prep (or test-prep) depends on all, so + they shouldn't need updating. -The following additions or changes have been made to diagnostic output, -including warnings and fatal error messages. For the complete list of -diagnostic messages, see L. -=head2 New Diagnostics +commit a52237f3a547cdefddd4c4be6224bfdf67c84263 +Author: David Golden +Date: Sun Jan 16 21:32:21 2011 -0500 -=over 4 + Update CPAN to CPAN version 1.94_63 -=item * +commit 63ac0dadb1aafcf0c171d3c1422c1923b611b2fc +Author: Karl Williamson +Date: Tue Dec 28 16:13:49 2010 -0700 -There is a new "Closure prototype called" error -L<[perl #68560]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=68560>. + regex: Use BOUNDU regnodes -=back + This refactors one area in regexec.c to use BOUNDU, NBOUNDU for + efficiciency, and easier adding of the future BOUNDA. -=head2 Changes to Existing Diagnostics +commit 980866de2cf8ecdb4bb72b7f9294763057008f50 +Author: Karl Williamson +Date: Mon Dec 27 12:04:58 2010 -0700 -=over 4 + regex: Separate nodes for Unicode semantics \s \w -=item * + 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. -The "Found = in conditional" warning that is emitted when a constant is -assigned to a variable in a condition is now withheld if the constant is -actually a subroutine or one generated by C, since the value -of the constant may not be known at the time the program is written -L<[perl #77762]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77762>. + 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. -=back + 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 -=head1 Configuration and Compilation + Change name of /d to DEPENDS -=over 4 + 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. -=item * +commit 73134a2eb4055c76fe5b154da95e09118f716fd8 +Author: Karl Williamson +Date: Sun Dec 26 10:35:20 2010 -0700 -The C module can now (once again) be included in a static Perl -build. The special-case handling for this situation got broken in Perl -5.11.0, and has now been repaired. + CH] Change usage of regex/op common to common names -=back + 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. -=head1 Testing + A grep of cpan shows that both names are used in various modules; so + both names must be retained. -=over 4 +commit a3ab329f3fc9494e700f51c38cef42021c130b6e +Author: David Golden +Date: Sun Jan 16 20:57:02 2011 -0500 -=item * + Add HTTP::Tiny as a dual-life core module -Tests for C, C, C, C, -C, C, C, C, C, -and C now use the L framework. + 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. -=back +commit 211cc5012284f4bd900fcaa630adbcac69ca6112 +Author: Chris 'BinGOs' Williams +Date: Sun Jan 16 23:23:03 2011 +0000 -=head1 Platform Support + Update Unicode-Collate to CPAN version 0.70 and enable XS version -=head2 Platform-Specific Notes +commit a62b1201c068dc7b099bcb7182e188c4d2fbf34c +Author: Karl Williamson +Date: Sun Dec 26 10:31:16 2010 -0700 -=over 4 + Use multi-bit field for regex character set -=item NetBSD + 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. -The NetBSD hints file has been changed to make the system's malloc the -default. + A small API is added to set and query the bit field. -=item Windows + This patch is not .xs source backwards compatible. A handful of cpan + programs are affected. -The option to use an externally-supplied C, or to build with no -C at all, has been removed. Perl supplies its own C -implementation for Windows, and the political situation that required -this part of the distribution to sometimes be omitted is long gone. -=back +tools -=head1 Internal Changes + Significant updates to buildtoc -=over 4 + Update Unicode-Normalize to CPAN version 1.10 -=item * +commit 11454c594f22abc5945e69a46fc965363dbf326e +Author: Karl Williamson +Date: Sat Jan 15 13:42:58 2011 -0700 -The L|perlapi/mg_findext> and -L|perlapi/sv_unmagicext> -functions have been added to the API. -They allow extension authors to find and remove magic attached to -scalars based on both the magic type and the magic virtual table, similar to how -C attaches magic of a certain type and with a given virtual table -to a scalar. This eliminates the need for extensions to walk the list of -C pointers of an C to find the magic that belongs to them. + Fix \xa0 matching both [\s] [\S], et.al. -=item * + 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. -The -L|perlapi/parse_fullexpr>, -L|perlapi/parse_listexpr>, -L|perlapi/parse_termexpr>, and -L|perlapi/parse_arithexpr> -functions have been added to the API. They perform -recursive-descent parsing of expressions at various precedence levels. -They are expected to be used by syntax plugins. + 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. -=back -=head1 Selected Bug Fixes +SECURITY -=over 4 + restrict \p{IsUserDefined} to In\w+ and In\w+ -=item * + 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. -C now behaves as documented, rather than behaving -identically to C. Previously, C in a C block -was erroneously executing the C and -C behaviour, which only C was documented to -provide -L<[perl #69050]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=69050>. + 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. -=item * +TESTING -C -L<[perl #69050]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=69050>, -C and C no longer leak memory. + test that perl.pod, pod.lst, MANIFEST and the file system are consistent -=item * +commit f56b6394f7cf57733135f56e4e4ac49abe9ac9cc +Author: Karl Williamson +Date: Thu Jan 13 22:36:36 2011 -0700 -C no longer leaks memory on non-threaded builds. + regex: Use ANYOFV -=item * + 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.) -PerlIO no longer crashes when called recursively, e.g., from a signal -handler. Now it just leaks memory -L<[perl #75556]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75556>. + The handling of the LATIN SHARP s is modified to correspond with this new node + type. -=item * + 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. -Defining a constant with the same name as one of perl's special blocks -(e.g., INIT) stopped working in 5.12.0, but has now been fixed -L<[perl #78634]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78634>. + 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 -=item * -A reference to a literal value used as a hash key (C<$hash{\"foo"}>) used -to be stringified, even if the hash was tied -L<[perl #79178]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79178>. + Update Pod-LaTeX to CPAN version 0.59 -=item * +commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62 +Author: Nicholas Clark +Date: Thu Jan 13 16:24:52 2011 +0000 -A closure containing an C statement followed by a constant or variable -is no longer treated as a constant -L<[perl #63540]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=63540>. + ithread_create() was relying on the stack not moving. Fix this. -=item * + 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. -Calling a closure prototype (what is passed to an attribute handler for a -closure) now results in a "Closure prototype called" error message instead -of a crash -L<[perl #68560]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=68560>. + Update to Win32-0.44 from CPAN + 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 -=item * +DIAGNOSTICS + Correct the "unimplemented" message for get{host,net,proto,serv}ent aliases. -A regular expression optimisation would sometimes cause a match with a -C<{n,m}> quantifier to fail when it should match -L<[perl #79152]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79152>. + 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. -=item * -What has become known as the "Unicode Bug" is mostly resolved in this release. -Under C, the internal storage format of a -string no longer affects the external semantics. There are two known -exceptions. User-defined case changing functions, which are planned to -be deprecated in 5.14, require utf8-encoded strings to function; and the -character C in regular expression -case-insensitive matching has a somewhat different set of bugs depending -on the internal storage format. Case-insensitive matching of all -characters that have multi-character matches, as this one does, is -problematical in Perl. -L<[perl #58182]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=58182>. +commit 7627e6d0fe772ac90fce9e03fea273109521e261 +Author: Nicholas Clark +Date: Sat Jan 8 15:56:22 2011 +0000 -=item * + Generate "Unsupported socket function" stubs using PL_ppaddr. -Mentioning a read-only lexical variable from the enclosing scope in a -string C no longer causes the variable to become writable -L<[perl #19135]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=19135>. + Instead of having each socket op conditionally compile as either the + implementation or a DIE() depending on #HAS_SOCKET -=item * + 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) -C can now be used with attributes. It used to mean the same thing as -C if attributes were present -L<[perl #68658]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=68658>. + Whilst this complicates the support code in regen/opcode.pl, it's already a + net saving of 5 lines in the C code. -=item * +commit 897d398936dd2fc088a265fba2a7b62fa97ed458 +Author: Nicholas Clark +Date: Sun Jan 9 10:54:58 2011 +0000 -Expressions like C<< @$a > 3 >> no longer cause C<$a> to be mentioned in -the "Use of uninitialized value in numeric gt" warning when C<$a> is -undefined (since it is not part of the C> expression, but the operand -of the C<@>) -L<[perl #72090]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=72090>. + Generate pp_* prototypes in pp_proto.h, and remove pp.sym -=item * + Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13 + locations that relied on them. -C no longer causes C to return the wrong file name for -the scope that called C and other scopes higher up that had the -same file name -L<[perl #68712]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=68712>. + 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) -=item * +commit a4a4c9e2c086dd5f7b7b05789161614dbbe8385b +Author: Karl Williamson +Date: Sat Jan 8 14:44:05 2011 -0700 -The ref types in the typemap for XS bindings now support magical variables -L<[perl #72684]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=72684>. + perldiag.pod: Add missing message severities -=item * -Match variables (e.g., C<$1>) no longer persist between calls to a sort -subroutine -L<[perl #76026]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=76026>. +TESTING + add test for split without a pattern -=item * + Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables. -The C module was returning Cs instead of Cs for C -L<[perl #80622]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=80622>. -This was due to a bug in the perl core, not in C itself. + modernise t/cmd/while.t -=item * + 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". -Some numeric operators were converting integers to floating point, -resulting in loss of precision on 64-bit platforms -L<[perl #77456]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77456>. +commit b86b68b4eefa1069dabc8ea0401d712b24a67857 +Author: Jesse Vincent +Date: Sat Jan 8 00:14:29 2011 +0800 -=item * + Update the policy on doc patches to maint -The fallback behaviour of overloading on binary operators was asymmetric -L<[perl #71286]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=71286>. -=back +commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b +Author: Reini Urban +Date: Tue Sep 14 18:04:22 2010 +0200 -=head1 Acknowledgements + build man pages on cygwin too -Perl 5.13.8 represents approximately one month of development since -Perl 5.13.7 and contains 38714 lines of changes across 546 files from -38 authors and committers. +commit 172830635ea7813c85e51e4ae2b4bed56ddbab83 +Author: Reini Urban +Date: Tue Sep 14 17:54:15 2010 +0200 -Thank you to the following for contributing to this release: + Improve cygwin rebase behaviour -Abhijit Menon-Sen, Abigail, Andreas KE<0xf6>nig, Ben Morrow, Brad Gilbert, -brian d foy, Chip Salzenberg, Chris 'BinGOs' Williams, Craig A. Berry, -David Golden, David Leadbeater, David Mitchell, Father Chrysostomos, -Florian Ragwitz, Goro Fuji, H.Merijn Brand, Jan Dubois, Jerry D. Hedden, -Jesse Vincent, John Peacock, Karl Williamson, Lukas Mai, Marvin Humphrey, -Max Maischein, Michael Breen, Michael Fig, Nicholas Clark, Nick Cleaton, -Paul Evans, Peter J. Holzer, Peter John Acklam, Rafael Garcia-Suarez, -Reini Urban, Renee Baecker, Ricardo Signes, Tony Cook, Yves Orton, Zefram + 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 -=head1 Reporting Bugs -If you find what you think is a bug, you might check the articles -recently posted to the comp.lang.perl.misc newsgroup and the perl -bug database at http://rt.perl.org/perlbug/ . There may also be -information at http://www.perl.org/ , the Perl Home Page. +Platforms -If you believe you have an unreported bug, please run the L -program included with your release. Be sure to trim your bug down -to a tiny but sufficient test case. Your bug report, along with the -output of C, will be sent off to perlbug@perl.org to be -analysed by the Perl porting team. +commit cc7e77fd5a0ee9f1498e54dddf566117da62754b +Author: Reini Urban +Date: Tue Sep 14 17:48:32 2010 +0200 -If the bug you are reporting has security implications, which make it -inappropriate to send to a publicly archived mailing list, then please send -it to perl5-security-report@perl.org. This points to a closed subscription -unarchived mailing list, which includes all the core committers, who be able -to help assess the impact of issues, figure out a resolution, and help -co-ordinate the release of patches to mitigate or fix the problem across all -platforms on which Perl is supported. Please only use this address for -security issues in the Perl core, not for modules independently -distributed on CPAN. + CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix -=head1 SEE ALSO + part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's. + Ctypes and C::DynaLib use DynaLoader to find dlls. -The F file for an explanation of how to view exhaustive details -on what changed. + 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. -The F file for how to build Perl. + 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' -The F file for general stuff. +commit c0a149a90b8b6e1c18de7294ca974265fb559cf5 +Author: Reini Urban +Date: Tue Sep 14 18:06:38 2010 +0200 -The F and F files for copyright information. + 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