[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/pod/ -> perl592delta.pod (source)

   1  =head1 NAME
   2  
   3  perl592delta - what is new for perl v5.9.2
   4  
   5  =head1 DESCRIPTION
   6  
   7  This document describes differences between the 5.9.1 and the 5.9.2
   8  development releases. See L<perl590delta> and L<perl591delta> for the
   9  differences between 5.8.0 and 5.9.1.
  10  
  11  =head1 Incompatible Changes
  12  
  13  =head2 Packing and UTF-8 strings
  14  
  15  The semantics of pack() and unpack() regarding UTF-8-encoded data has been
  16  changed. Processing is now by default character per character instead of
  17  byte per byte on the underlying encoding. Notably, code that used things
  18  like C<pack("a*", $string)> to see through the encoding of string will now
  19  simply get back the original $string. Packed strings can also get upgraded
  20  during processing when you store upgraded characters. You can get the old
  21  behaviour by using C<use bytes>.
  22  
  23  To be consistent with pack(), the C<C0> in unpack() templates indicates
  24  that the data is to be processed in character mode, i.e. character by
  25  character; on the contrary, C<U0> in unpack() indicates UTF-8 mode, where
  26  the packed string is processed in its UTF-8-encoded Unicode form on a byte
  27  by byte basis. This is reversed with regard to perl 5.8.X.
  28  
  29  Moreover, C<C0> and C<U0> can also be used in pack() templates to specify
  30  respectively character and byte modes.
  31  
  32  C<C0> and C<U0> in the middle of a pack or unpack format now switch to the
  33  specified encoding mode, honoring parens grouping. Previously, parens were
  34  ignored.
  35  
  36  Also, there is a new pack() character format, C<W>, which is intended to
  37  replace the old C<C>. C<C> is kept for unsigned chars coded as bytes in
  38  the strings internal representation. C<W> represents unsigned (logical)
  39  character values, which can be greater than 255. It is therefore more
  40  robust when dealing with potentially UTF-8-encoded data (as C<C> will wrap
  41  values outside the range 0..255, and not respect the string encoding).
  42  
  43  In practice, that means that pack formats are now encoding-neutral, except
  44  C<C>.
  45  
  46  For consistency, C<A> in unpack() format now trims all Unicode whitespace
  47  from the end of the string. Before perl 5.9.2, it used to strip only the
  48  classical ASCII space characters.
  49  
  50  =head2 Miscellaneous
  51  
  52  The internal dump output has been improved, so that non-printable characters
  53  such as newline and backspace are output in C<\x> notation, rather than
  54  octal.
  55  
  56  The B<-C> option can no longer be used on the C<#!> line. It wasn't
  57  working there anyway.
  58  
  59  =head1 Core Enhancements
  60  
  61  =head2 Malloc wrapping
  62  
  63  Perl can now be built to detect attempts to assign pathologically large chunks
  64  of memory.  Previously such assignments would suffer from integer wrap-around
  65  during size calculations causing a misallocation, which would crash perl, and
  66  could theoretically be used for "stack smashing" attacks.  The wrapping
  67  defaults to enabled on platforms where we know it works (most AIX
  68  configurations, BSDi, Darwin, DEC OSF/1, FreeBSD, HP-UX, GNU Linux, OpenBSD,
  69  Solaris, VMS and most Win32 compilers) and defaults to disabled on other
  70  platforms.
  71  
  72  =head2 Unicode Character Database 4.0.1
  73  
  74  The copy of the Unicode Character Database included in Perl 5.9 has
  75  been updated to 4.0.1 from 4.0.0.
  76  
  77  =head2 suidperl less insecure
  78  
  79  Paul Szabo has analysed and patched C<suidperl> to remove existing known
  80  insecurities. Currently there are no known holes in C<suidperl>, but previous
  81  experience shows that we cannot be confident that these were the last. You may
  82  no longer invoke the set uid perl directly, so to preserve backwards
  83  compatibility with scripts that invoke #!/usr/bin/suidperl the only set uid
  84  binary is now C<sperl5.9.>I<n> (C<sperl5.9.2> for this release). C<suidperl>
  85  is installed as a hard link to C<perl>; both C<suidperl> and C<perl> will
  86  invoke C<sperl5.9.2> automatically the set uid binary, so this change should
  87  be completely transparent.
  88  
  89  For new projects the core perl team would strongly recommend that you use
  90  dedicated, single purpose security tools such as C<sudo> in preference to
  91  C<suidperl>.
  92  
  93  =head2 PERLIO_DEBUG
  94  
  95  The C<PERLIO_DEBUG> environment variable has no longer any effect for
  96  setuid scripts and for scripts run with B<-T>.
  97  
  98  Moreover, with a thread-enabled perl, using C<PERLIO_DEBUG> could lead to
  99  an internal buffer overflow. This has been fixed.
 100  
 101  =head2 Formats
 102  
 103  In addition to bug fixes, C<format>'s features have been enhanced. See
 104  L<perlform>.
 105  
 106  =head2 Unicode Character Classes
 107  
 108  Perl's regular expression engine now contains support for matching on the
 109  intersection of two Unicode character classes. You can also now refer to
 110  user-defined character classes from within other user defined character
 111  classes.
 112  
 113  =head2 Byte-order modifiers for pack() and unpack()
 114  
 115  There are two new byte-order modifiers, C<E<gt>> (big-endian) and C<E<lt>>
 116  (little-endian), that can be appended to most pack() and unpack() template
 117  characters and groups to force a certain byte-order for that type or group.
 118  See L<perlfunc/pack> and L<perlpacktut> for details.
 119  
 120  =head2 Byte count feature in pack()
 121  
 122  A new pack() template character, C<".">, returns the number of characters
 123  read so far.
 124  
 125  =head2 New variables
 126  
 127  A new variable, ${^RE_DEBUG_FLAGS}, controls what debug flags are in
 128  effect for the regular expression engine when running under C<use re
 129  "debug">. See L<re> for details.
 130  
 131  A new variable ${^UTF8LOCALE} indicates where an UTF-8 locale was detected
 132  by perl at startup.
 133  
 134  =head1 Modules and Pragmata
 135  
 136  =head2 New modules
 137  
 138  =over 4
 139  
 140  =item *
 141  
 142  C<encoding::warnings>, by Audrey Tang, is a module to emit warnings
 143  whenever an ASCII character string containing high-bit bytes is implicitly
 144  converted into UTF-8.
 145  
 146  =item *
 147  
 148  C<Module::CoreList>, by Richard Clamp, is a small handy module that tells
 149  you what versions of core modules ship with any versions of Perl 5. It
 150  comes with a command-line frontend, C<corelist>.
 151  
 152  =back
 153  
 154  =head2 Updated And Improved Modules and Pragmata
 155  
 156  Dual-lived modules have been updated to be kept up-to-date with respect to
 157  CPAN.
 158  
 159  The dual-lived modules which contain an C<_> in their version number are
 160  actually I<ahead> of the corresponding CPAN release.
 161  
 162  =over 4
 163  
 164  =item B::Concise
 165  
 166  C<B::Concise> was significantly improved.
 167  
 168  =item Socket
 169  
 170  There is experimental support for Linux abstract Unix domain sockets.
 171  
 172  =item Sys::Syslog
 173  
 174  C<syslog()> can now use numeric constants for facility names and priorities,
 175  in addition to strings.
 176  
 177  =item threads
 178  
 179  Detached threads are now also supported on Windows.
 180  
 181  =back
 182  
 183  =head1 Utility Changes
 184  
 185  =over 4
 186  
 187  =item *
 188  
 189  The C<corelist> utility is now installed with perl (see L</"New modules">
 190  above).
 191  
 192  =item *
 193  
 194  C<h2ph> and C<h2xs> have been made a bit more robust with regard to
 195  "modern" C code.
 196  
 197  =item *
 198  
 199  Several bugs have been fixed in C<find2perl>, regarding C<-exec> and
 200  C<-eval>. Also the options C<-path>, C<-ipath> and C<-iname> have been
 201  added.
 202  
 203  =item *
 204  
 205  The Perl debugger can now save all debugger commands for sourcing later;
 206  notably, it can now emulate stepping backwards, by restarting and
 207  rerunning all bar the last command from a saved command history.
 208  
 209  It can also display the parent inheritance tree of a given class.
 210  
 211  Perl has a new -dt command-line flag, which enables threads support in the
 212  debugger.
 213  
 214  =back
 215  
 216  =head1 Performance Enhancements
 217  
 218  =over 4
 219  
 220  =item *
 221  
 222  Unicode case mappings (C</i>, C<lc>, C<uc>, etc) are faster.
 223  
 224  =item *
 225  
 226  C<@a = sort @a> was optimized to do in-place sort. Likewise, C<reverse
 227  sort ...> is now optimized to sort in reverse, avoiding the generation of
 228  a temporary intermediate list.
 229  
 230  =item *
 231  
 232  Unnecessary assignments are optimised away in
 233  
 234    my $s = undef;
 235    my @a = ();
 236    my %h = ();
 237  
 238  =item *
 239  
 240  C<map> in scalar context is now optimized.
 241  
 242  =item *
 243  
 244  The regexp engine now implements the trie optimization : it's able to
 245  factorize common prefixes and suffixes in regular expressions. A new
 246  special variable, ${^RE_TRIE_MAXBUF}, has been added to fine-tune this
 247  optimization.
 248  
 249  =back
 250  
 251  =head1 Installation and Configuration Improvements
 252  
 253  Run-time customization of @INC can be enabled by passing the
 254  C<-Dusesitecustomize> flag to configure. When enabled, this will make perl
 255  run F<$sitelibexp/sitecustomize.pl> before anything else.  This script can
 256  then be set up to add additional entries to @INC.
 257  
 258  There is alpha support for relocatable @INC entries.
 259  
 260  Perl should build on Interix and on GNU/kFreeBSD.
 261  
 262  =head1 Selected Bug Fixes
 263  
 264  Most of those bugs were reported in the perl 5.8.x maintenance track.
 265  Notably, quite a few utf8 bugs were fixed, and several memory leaks were
 266  suppressed. The perl58Xdelta manpages have more details on them.
 267  
 268  Development-only bug fixes include :
 269  
 270  C<$Foo::_> was wrongly forced as C<$main::_>.
 271  
 272  =head1 New or Changed Diagnostics
 273  
 274  A new warning, C<!=~ should be !~>, is emitted to prevent this misspelling
 275  of the non-matching operator.
 276  
 277  The warning I<Newline in left-justified string> has been removed.
 278  
 279  The error I<Too late for "-T" option> has been reformulated to be more
 280  descriptive.
 281  
 282  There is a new compilation error, I<Illegal declaration of subroutine>,
 283  for an obscure case of syntax errors.
 284  
 285  The diagnostic output of Carp has been changed slightly, to add a space after
 286  the comma between arguments. This makes it much easier for tools such as
 287  web browsers to wrap it, but might confuse any automatic tools which perform
 288  detailed parsing of Carp output.
 289  
 290  C<perl -V> has several improvements, making it more useable from shell
 291  scripts to get the value of configuration variables. See L<perlrun> for
 292  details.
 293  
 294  =head1 Changed Internals
 295  
 296  The perl core has been refactored and reorganised in several places.
 297  In short, this release will not be binary compatible with any previous
 298  perl release.
 299  
 300  =head1 Known Problems
 301  
 302  For threaded builds, F<ext/threads/shared/t/wait.t> has been reported to
 303  fail some tests on HP-UX 10.20.
 304  
 305  Net::Ping might fail some tests on HP-UX 11.00 with the latest OS
 306  upgrades.
 307  
 308  F<t/io/dup.t>, F<t/io/open.t> and F<lib/ExtUtils/t/Constant.t> fail some
 309  tests on some BSD flavours.
 310  
 311  =head1 Plans for the next release
 312  
 313  The current plan for perl 5.9.3 is to add CPANPLUS as a core module.
 314  More regular expression optimizations are also in the works.
 315  
 316  It is planned to release a development version of perl more frequently,
 317  i.e. each time something major changes.
 318  
 319  =head1 Reporting Bugs
 320  
 321  If you find what you think is a bug, you might check the articles
 322  recently posted to the comp.lang.perl.misc newsgroup and the perl
 323  bug database at http://bugs.perl.org/ .  There may also be
 324  information at http://www.perl.org/ , the Perl Home Page.
 325  
 326  If you believe you have an unreported bug, please run the B<perlbug>
 327  program included with your release.  Be sure to trim your bug down
 328  to a tiny but sufficient test case.  Your bug report, along with the
 329  output of C<perl -V>, will be sent off to perlbug@perl.org to be
 330  analysed by the Perl porting team.
 331  
 332  =head1 SEE ALSO
 333  
 334  The F<Changes> file for exhaustive details on what changed.
 335  
 336  The F<INSTALL> file for how to build Perl.
 337  
 338  The F<README> file for general stuff.
 339  
 340  The F<Artistic> and F<Copying> files for copyright information.
 341  
 342  =cut


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1