1PERL589DELTA(1)        Perl Programmers Reference Guide        PERL589DELTA(1)
2
3
4

NAME

6       perl589delta - what is new for perl v5.8.9
7

DESCRIPTION

9       This document describes differences between the 5.8.8 release and the
10       5.8.9 release.
11

Notice

13       The 5.8.9 release will be the last significant release of the 5.8.x
14       series. Any future releases of 5.8.x will likely only be to deal with
15       security issues, and platform build failures. Hence you should look to
16       migrating to 5.10.x, if you have not started already.  See "Known
17       Problems" for more information.
18

Incompatible Changes

20       A particular construction in the source code of extensions written in
21       C++ may need changing. See "Changed Internals" for more details. All
22       extensions written in C, most written in C++, and all existing compiled
23       extensions are unaffected. This was necessary to improve C++ support.
24
25       Other than this, there are no changes intentionally incompatible with
26       5.8.8.  If any exist, they are bugs and reports are welcome.
27

Core Enhancements

29   Unicode Character Database 5.1.0.
30       The copy of the Unicode Character Database included in Perl 5.8 has
31       been updated to 5.1.0 from 4.1.0. See
32       <http://www.unicode.org/versions/Unicode5.1.0/#NotableChanges> for the
33       notable changes.
34
35   stat and -X on directory handles
36       It is now possible to call "stat" and the "-X" filestat operators on
37       directory handles. As both directory and file handles are barewords,
38       there can be ambiguities over which was intended. In these situations
39       the file handle semantics are preferred. Both also treat *FILE{IO}
40       filehandles like *FILE filehandles.
41
42   Source filters in @INC
43       It's possible to enhance the mechanism of subroutine hooks in @INC by
44       adding a source filter on top of the filehandle opened and returned by
45       the hook. This feature was planned a long time ago, but wasn't quite
46       working until now. See "require" in perlfunc for details. (Nicholas
47       Clark)
48
49   Exceptions in constant folding
50       The constant folding routine is now wrapped in an exception handler,
51       and if folding throws an exception (such as attempting to evaluate
52       0/0), perl now retains the current optree, rather than aborting the
53       whole program.  Without this change, programs would not compile if they
54       had expressions that happened to generate exceptions, even though those
55       expressions were in code that could never be reached at runtime.
56       (Nicholas Clark, Dave Mitchell)
57
58   "no VERSION"
59       You can now use "no" followed by a version number to specify that you
60       want to use a version of perl older than the specified one.
61
62   Improved internal UTF-8 caching code
63       The code that caches calculated UTF-8 byte offsets for character
64       offsets for a string has been re-written. Several bugs have been
65       located and eliminated, and the code now makes better use of the
66       information it has, so should be faster. In particular, it doesn't scan
67       to the end of a string before calculating an offset within the string,
68       which should speed up some operations on long strings. It is now
69       possible to disable the caching code at run time, to verify that it is
70       not the cause of suspected problems.
71
72   Runtime relocatable installations
73       There is now Configure support for creating a perl tree that is
74       relocatable at run time. see "Relocatable installations".
75
76   New internal variables
77       "${^CHILD_ERROR_NATIVE}"
78           This variable gives the native status returned by the last pipe
79           close, backtick command, successful call to "wait" or "waitpid", or
80           from the "system" operator. See perlvar for details. (Contributed
81           by Gisle Aas.)
82
83       "${^UTF8CACHE}"
84           This variable controls the state of the internal UTF-8 offset
85           caching code.  1 for on (the default), 0 for off, -1 to debug the
86           caching code by checking all its results against linear scans, and
87           panicing on any discrepancy.
88
89   "readpipe" is now overridable
90       The built-in function "readpipe" is now overridable. Overriding it
91       permits also to override its operator counterpart, "qx//" (also known
92       as "``").
93
94   simple exception handling macros
95       Perl 5.8.9 (and 5.10.0 onwards) now provides a couple of macros to do
96       very basic exception handling in XS modules. You can use these macros
97       if you call code that may "croak", but you need to do some cleanup
98       before giving control back to Perl. See "Exception Handling" in
99       perlguts for more details.
100
101   -D option enhancements
102       ·   "-Dq" suppresses the EXECUTING... message when running under "-D"
103
104       ·   "-Dl" logs runops loop entry and exit, and jump level popping.
105
106       ·   "-Dv" displays the process id as part of the trace output.
107
108   XS-assisted SWASHGET
109       Some pure-perl code that the regexp engine was using to retrieve
110       Unicode properties and transliteration mappings has been reimplemented
111       in XS for faster execution.  (SADAHIRO Tomoyuki)
112
113   Constant subroutines
114       The interpreter internals now support a far more memory efficient form
115       of inlineable constants. Storing a reference to a constant value in a
116       symbol table is equivalent to a full typeglob referencing a constant
117       subroutine, but using about 400 bytes less memory. This proxy constant
118       subroutine is automatically upgraded to a real typeglob with subroutine
119       if necessary.  The approach taken is analogous to the existing space
120       optimisation for subroutine stub declarations, which are stored as
121       plain scalars in place of the full typeglob.
122
123       However, to aid backwards compatibility of existing code, which
124       (wrongly) does not expect anything other than typeglobs in symbol
125       tables, nothing in core uses this feature, other than the regression
126       tests.
127
128       Stubs for prototyped subroutines have been stored in symbol tables as
129       plain strings, and stubs for unprototyped subroutines as the number -1,
130       since 5.005, so code which assumes that the core only places typeglobs
131       in symbol tables has been making incorrect assumptions for over 10
132       years.
133

New Platforms

135       Compile support added for:
136
137       ·   DragonFlyBSD
138
139       ·   MidnightBSD
140
141       ·   MirOS BSD
142
143       ·   RISC OS
144
145       ·   Cray XT4/Catamount
146

Modules and Pragmata

148   New Modules
149       ·   "Module::Pluggable" is a simple framework to create modules that
150           accept pluggable sub-modules. The bundled version is 3.8
151
152       ·   "Module::CoreList" is a hash of hashes that is keyed on perl
153           version as indicated in $]. The bundled version is 2.17
154
155       ·   "Win32API::File" now available in core on Microsoft Windows. The
156           bundled version is 0.1001_01
157
158       ·   "Devel::InnerPackage" finds all the packages defined by a single
159           file. It is part of the "Module::Pluggable" distribution. The
160           bundled version is 0.3
161
162   Updated Modules
163       ·   "attributes" upgraded to version 0.09
164
165       ·   "AutoLoader" upgraded to version 5.67
166
167       ·   "AutoSplit" upgraded to 1.06
168
169       ·   "autouse" upgraded to version 1.06
170
171       ·   "B" upgraded from 1.09_01 to 1.19
172
173           ·   provides new pad related abstraction macros
174               "B::NV::COP_SEQ_RANGE_LOW", "B::NV::COP_SEQ_RANGE_HIGH",
175               "B::NV::PARENT_PAD_INDEX", "B::NV::PARENT_FAKELEX_FLAGS", which
176               hides the difference in storage in 5.10.0 and later.
177
178           ·   provides "B::sub_generation", which exposes "PL_sub_generation"
179
180           ·   provides "B::GV::isGV_with_GP", which on pre-5.10 perls always
181               returns true.
182
183           ·   New type "B::HE" added with methods "VAL", "HASH" and
184               "SVKEY_force"
185
186           ·   The "B::GVf_IMPORTED_CV" flag is now set correctly when a proxy
187               constant subroutine is imported.
188
189           ·   bugs fixed in the handling of "PMOP"s.
190
191           ·   "B::BM::PREVIOUS" returns now "U32", not "U16".  "B::CV::START"
192               and "B:CV::ROOT" return now "NULL" on an XSUB, "B::CV::XSUB"
193               and "B::CV::XSUBANY" return 0 on a non-XSUB.
194
195       ·   "B::C" upgraded to 1.05
196
197       ·   "B::Concise" upgraded to 0.76
198
199           ·   new option "-src" causes the rendering of each statement
200               (starting with the nextstate OP) to be preceded by the first
201               line of source code that generates it.
202
203           ·   new option "-stash="somepackage"", "require"s "somepackage",
204               and then renders each function defined in its namespace.
205
206           ·   now has documentation of detailed hint symbols.
207
208       ·   "B::Debug" upgraded to version 1.05
209
210       ·   "B::Deparse" upgraded to version 0.87
211
212           ·   properly deparse "print readpipe $x, $y".
213
214           ·   now handles "''-"()>, "::()", "sub :: {}", etc. correctly [RT
215               #43010].  All bugs in parsing these kinds of syntax are now
216               fixed:
217
218                   perl -MO=Deparse -e '"my %h = "->()'
219                   perl -MO=Deparse -e '::->()'
220                   perl -MO=Deparse -e 'sub :: {}'
221                   perl -MO=Deparse -e 'package a; sub a::b::c {}'
222                   perl -MO=Deparse -e 'sub the::main::road {}'
223
224           ·   does not deparse $^H{v_string}, which is automatically set by
225               the internals.
226
227       ·   "B::Lint" upgraded to version 1.11
228
229       ·   "B::Terse" upgraded to version 1.05
230
231       ·   "base" upgraded to version 2.13
232
233           ·   loading a module via base.pm would mask a global $SIG{__DIE__}
234               in that module.
235
236           ·   push all classes at once in @ISA
237
238       ·   "Benchmark" upgraded to version 1.10
239
240       ·   "bigint" upgraded to 0.23
241
242       ·   "bignum" upgraded to 0.23
243
244       ·   "bigrat" upgraded to 0.23
245
246       ·   "blib" upgraded to 0.04
247
248       ·   "Carp" upgraded to version 1.10
249
250           The argument backtrace code now shows "undef" as "undef", instead
251           of a string "undef".
252
253       ·   "CGI" upgraded to version 3.42
254
255       ·   "charnames" upgraded to 1.06
256
257       ·   "constant" upgraded to version 1.17
258
259       ·   "CPAN" upgraded to version 1.9301
260
261       ·   "Cwd" upgraded to version 3.29 with some platform specific
262           improvements (including for VMS).
263
264       ·   "Data::Dumper" upgraded to version 2.121_17
265
266           ·   Fixes hash iterator current position with the pure Perl version
267               [RT #40668]
268
269           ·   Performance enhancements, which will be most evident on
270               platforms where repeated calls to C's "realloc()" are slow,
271               such as Win32.
272
273       ·   "DB_File" upgraded to version 1.817
274
275       ·   "DB_Filter" upgraded to version 0.02
276
277       ·   "Devel::DProf" upgraded to version 20080331.00
278
279       ·   "Devel::Peek" upgraded to version 1.04
280
281       ·   "Devel::PPPort" upgraded to version 3.14
282
283       ·   "diagnostics" upgraded to version 1.16
284
285       ·   "Digest" upgraded to version 1.15
286
287       ·   "Digest::MD5" upgraded to version 2.37
288
289       ·   "DirHandle" upgraded to version 1.02
290
291           ·   now localises $., $@, $!, $^E, and $? before closing the
292               directory handle to suppress leaking any side effects of
293               warnings about it already being closed.
294
295       ·   "DynaLoader" upgraded to version 1.09
296
297           "DynaLoader" can now dynamically load a loadable object from a file
298           with a non-default file extension.
299
300       ·   "Encode" upgraded to version 2.26
301
302           "Encode::Alias" includes a fix for encoding "646" on Solaris
303           (better known as ASCII).
304
305       ·   "English" upgraded to version 1.03
306
307       ·   "Errno" upgraded to version 1.10
308
309       ·   "Exporter" upgraded to version 5.63
310
311       ·   "ExtUtils::Command" upgraded to version 1.15
312
313       ·   "ExtUtils::Constant" upgraded to version 0.21
314
315       ·   "ExtUtils::Embed" upgraded to version 1.28
316
317       ·   "ExtUtils::Install" upgraded to version 1.50_01
318
319       ·   "ExtUtils::Installed" upgraded to version 1.43
320
321       ·   "ExtUtils::MakeMaker" upgraded to version 6.48
322
323           ·   support for "INSTALLSITESCRIPT" and "INSTALLVENDORSCRIPT"
324               configuration.
325
326       ·   "ExtUtils::Manifest" upgraded to version 1.55
327
328       ·   "ExtUtils::ParseXS" upgraded to version 2.19
329
330       ·   "Fatal" upgraded to version 1.06
331
332           ·   allows built-ins in "CORE::GLOBAL" to be made fatal.
333
334       ·   "Fcntl" upgraded to version 1.06
335
336       ·   "fields" upgraded to version 2.12
337
338       ·   "File::Basename" upgraded to version 2.77
339
340       ·   "FileCache" upgraded to version 1.07
341
342       ·   "File::Compare" upgraded to 1.1005
343
344       ·   "File::Copy" upgraded to 2.13
345
346           ·   now uses 3-arg open.
347
348       ·   "File::DosGlob" upgraded to 1.01
349
350       ·   "File::Find" upgraded to version 1.13
351
352       ·   "File::Glob" upgraded to version 1.06
353
354           ·   fixes spurious results with brackets inside braces.
355
356       ·   "File::Path" upgraded to version 2.07_02
357
358       ·   "File::Spec" upgraded to version 3.29
359
360           ·   improved handling of bad arguments.
361
362           ·   some platform specific improvements (including for VMS and
363               Cygwin), with an optimisation on "abs2rel" when handling both
364               relative arguments.
365
366       ·   "File::stat" upgraded to version 1.01
367
368       ·   "File::Temp" upgraded to version 0.20
369
370       ·   "filetest" upgraded to version 1.02
371
372       ·   "Filter::Util::Call" upgraded to version 1.07
373
374       ·   "Filter::Simple" upgraded to version 0.83
375
376       ·   "FindBin" upgraded to version 1.49
377
378       ·   "GDBM_File" upgraded to version 1.09
379
380       ·   "Getopt::Long" upgraded to version 2.37
381
382       ·   "Getopt::Std" upgraded to version 1.06
383
384       ·   "Hash::Util" upgraded to version 0.06
385
386       ·   "if" upgraded to version 0.05
387
388       ·   "IO" upgraded to version 1.23
389
390           Reduced number of calls to "getpeername" in "IO::Socket"
391
392       ·   "IPC::Open" upgraded to version 1.03
393
394       ·   "IPC::Open3" upgraded to version 1.03
395
396       ·   "IPC::SysV" upgraded to version 2.00
397
398       ·   "lib" upgraded to version 0.61
399
400           ·   avoid warning about loading .par files.
401
402       ·   "libnet" upgraded to version 1.22
403
404       ·   "List::Util" upgraded to 1.19
405
406       ·   "Locale::Maketext" upgraded to 1.13
407
408       ·   "Math::BigFloat" upgraded to version 1.60
409
410       ·   "Math::BigInt" upgraded to version 1.89
411
412       ·   "Math::BigRat" upgraded to version 0.22
413
414           ·   implements new "as_float" method.
415
416       ·   "Math::Complex" upgraded to version 1.54.
417
418       ·   "Math::Trig" upgraded to version 1.18.
419
420       ·   "NDBM_File" upgraded to version 1.07
421
422           ·   improve g++ handling for systems using GDBM compatibility
423               headers.
424
425       ·   "Net::Ping" upgraded to version 2.35
426
427       ·   "NEXT" upgraded to version 0.61
428
429           ·   fix several bugs with "NEXT" when working with "AUTOLOAD",
430               "eval" block, and within overloaded stringification.
431
432       ·   "ODBM_File" upgraded to 1.07
433
434       ·   "open" upgraded to 1.06
435
436       ·   "ops" upgraded to 1.02
437
438       ·   "PerlIO::encoding" upgraded to version 0.11
439
440       ·   "PerlIO::scalar" upgraded to version 0.06
441
442           ·   [RT #40267] "PerlIO::scalar" doesn't respect readonly-ness.
443
444       ·   "PerlIO::via" upgraded to version 0.05
445
446       ·   "Pod::Html" upgraded to version 1.09
447
448       ·   "Pod::Parser" upgraded to version 1.35
449
450       ·   "Pod::Usage" upgraded to version 1.35
451
452       ·   "POSIX" upgraded to version 1.15
453
454           ·   "POSIX" constants that duplicate those in "Fcntl" are now
455               imported from "Fcntl" and re-exported, rather than being
456               duplicated by "POSIX"
457
458           ·   "POSIX::remove" can remove empty directories.
459
460           ·   "POSIX::setlocale" safer to call multiple times.
461
462           ·   "POSIX::SigRt" added, which provides access to POSIX realtime
463               signal functionality on systems that support it.
464
465       ·   "re" upgraded to version 0.06_01
466
467       ·   "Safe" upgraded to version 2.16
468
469       ·   "Scalar::Util" upgraded to 1.19
470
471       ·   "SDBM_File" upgraded to version 1.06
472
473       ·   "SelfLoader" upgraded to version 1.17
474
475       ·   "Shell" upgraded to version 0.72
476
477       ·   "sigtrap" upgraded to version 1.04
478
479       ·   "Socket" upgraded to version 1.81
480
481           ·   this fixes an optimistic use of "gethostbyname"
482
483       ·   "Storable" upgraded to 2.19
484
485       ·   "Switch" upgraded to version 2.13
486
487       ·   "Sys::Syslog" upgraded to version 0.27
488
489       ·   "Term::ANSIColor" upgraded to version 1.12
490
491       ·   "Term::Cap" upgraded to version 1.12
492
493       ·   "Term::ReadLine" upgraded to version 1.03
494
495       ·   "Test::Builder" upgraded to version 0.80
496
497       ·   "Test::Harness" upgraded version to 2.64
498
499           ·   this makes it able to handle newlines.
500
501       ·   "Test::More" upgraded to version 0.80
502
503       ·   "Test::Simple" upgraded to version 0.80
504
505       ·   "Text::Balanced" upgraded to version 1.98
506
507       ·   "Text::ParseWords" upgraded to version 3.27
508
509       ·   "Text::Soundex" upgraded to version 3.03
510
511       ·   "Text::Tabs" upgraded to version 2007.1117
512
513       ·   "Text::Wrap" upgraded to version 2006.1117
514
515       ·   "Thread" upgraded to version 2.01
516
517       ·   "Thread::Semaphore" upgraded to version 2.09
518
519       ·   "Thread::Queue" upgraded to version 2.11
520
521           ·   added capability to add complex structures (e.g., hash of
522               hashes) to queues.
523
524           ·   added capability to dequeue multiple items at once.
525
526           ·   added new methods to inspect and manipulate queues:  "peek",
527               "insert" and "extract"
528
529       ·   "Tie::Handle" upgraded to version 4.2
530
531       ·   "Tie::Hash" upgraded to version 1.03
532
533       ·   "Tie::Memoize" upgraded to version 1.1
534
535           ·   "Tie::Memoize::EXISTS" now correctly caches its results.
536
537       ·   "Tie::RefHash" upgraded to version 1.38
538
539       ·   "Tie::Scalar" upgraded to version 1.01
540
541       ·   "Tie::StdHandle" upgraded to version 4.2
542
543       ·   "Time::gmtime" upgraded to version 1.03
544
545       ·   "Time::Local" upgraded to version 1.1901
546
547       ·   "Time::HiRes" upgraded to version 1.9715 with various build
548           improvements (including VMS) and minor platform-specific bug fixes
549           (including for HP-UX 11 ia64).
550
551       ·   "threads" upgraded to 1.71
552
553           ·   new thread state information methods: "is_running",
554               "is_detached" and "is_joinable".  "list" method enhanced to
555               return running or joinable threads.
556
557           ·   new thread signal method: "kill"
558
559           ·   added capability to specify thread stack size.
560
561           ·   added capability to control thread exiting behavior.  Added a
562               new "exit" method.
563
564       ·   "threads::shared" upgraded to version 1.27
565
566           ·   smaller and faster implementation that eliminates one internal
567               structure and the consequent level of indirection.
568
569           ·   user locks are now stored in a safer manner.
570
571           ·   new function "shared_clone" creates a copy of an object leaving
572               shared elements as-is and deep-cloning non-shared elements.
573
574           ·   added new "is_shared" method.
575
576       ·   "Unicode::Normalize" upgraded to version 1.02
577
578       ·   "Unicode::UCD" upgraded to version 0.25
579
580       ·   "warnings" upgraded to version 1.05_01
581
582       ·   "Win32" upgraded to version 0.38
583
584           ·   added new function "GetCurrentProcessId" which returns the
585               regular Windows process identifier of the current process, even
586               when called from within a fork.
587
588       ·   "XSLoader" upgraded to version 0.10
589
590       ·   "XS::APItest" and "XS::Typemap" are for internal use only and hence
591           no longer installed. Many more tests have been added to
592           "XS::APItest".
593

Utility Changes

595   debugger upgraded to version 1.31
596       ·   Andreas Koenig contributed two functions to save and load the
597           debugger history.
598
599       ·   "NEXT::AUTOLOAD" no longer emits warnings under the debugger.
600
601       ·   The debugger should now correctly find tty the device on OS X 10.5
602           and VMS when the program "fork"s.
603
604       ·   LVALUE subs now work inside the debugger.
605
606   perlthanks
607       Perl 5.8.9 adds a new utility perlthanks, which is a variant of
608       perlbug, but for sending non-bug-reports to the authors and maintainers
609       of Perl.  Getting nothing but bug reports can become a bit demoralising
610       - we'll see if this changes things.
611
612   perlbug
613       perlbug now checks if you're reporting about a non-core module and
614       suggests you report it to the CPAN author instead.
615
616   h2xs
617       ·   won't define an empty string as a constant [RT #25366]
618
619       ·   has examples for "h2xs -X"
620
621   h2ph
622       ·   now attempts to deal sensibly with the difference in path
623           implications between "" and "E<lt>E<gt>" quoting in "#include"
624           statements.
625
626       ·   now generates correct correct code for "#if defined A || defined B"
627           [RT #39130]
628

New Documentation

630       As usual, the documentation received its share of corrections,
631       clarifications and other nitfixes. More "X<...>" tags were added for
632       indexing.
633
634       perlunitut is a tutorial written by Juerd Waalboer on Unicode-related
635       terminology and how to correctly handle Unicode in Perl scripts.
636
637       perlunicode is updated in section user defined properties.
638
639       perluniintro has been updated in the example of detecting data that is
640       not valid in particular encoding.
641
642       perlcommunity provides an overview of the Perl Community along with
643       further resources.
644
645       CORE documents the pseudo-namespace for Perl's core routines.
646

Changes to Existing Documentation

648       perlglossary adds deprecated modules and features and to be dropped
649       modules.
650
651       perlhack has been updated and added resources on smoke testing.
652
653       The Perl FAQs (perlfaq1..perlfaq9) have been updated.
654
655       perlcheat is updated with better details on "\w", "\d", and "\s".
656
657       perldebug is updated with information on how to call the debugger.
658
659       perldiag documentation updated with subroutine with an ampersand on the
660       argument to "exists" and "delete" and also several terminology updates
661       on warnings.
662
663       perlfork documents the limitation of "exec" inside pseudo-processes.
664
665       perlfunc:
666
667       ·   Documentation is fixed in section "caller" and "pop".
668
669       ·   Function "alarm" now mentions "Time::HiRes::ualarm" in preference
670           to "select".
671
672       ·   Regarding precedence in "-X", filetest operators are the same as
673           unary operators, but not regarding parsing and parentheses (spotted
674           by Eirik Berg Hanssen).
675
676       ·   reverse function documentation received scalar context examples.
677
678       perllocale documentation is adjusted for number localization and
679       "POSIX::setlocale" to fix Debian bug #379463.
680
681       perlmodlib is updated with "CPAN::API::HOWTO" and
682       "Sys::Syslog::win32::Win32"
683
684       perlre documentation updated to reflect the differences between
685       "[[:xxxxx:]]" and "\p{IsXxxxx}" matches. Also added section on "/g" and
686       "/c" modifiers.
687
688       perlreguts describe the internals of the regular expressions engine. It
689       has been contributed by Yves Orton.
690
691       perlrebackslash describes all perl regular expression backslash and
692       escape sequences.
693
694       perlrecharclass describes the syntax and use of character classes in
695       Perl Regular Expressions.
696
697       perlrun is updated to clarify on the hash seed PERL_HASH_SEED. Also
698       more information in options "-x" and "-u".
699
700       perlsub example is updated to use a lexical variable for "opendir"
701       syntax.
702
703       perlvar fixes confusion about real GID $( and effective GID $).
704
705       Perl thread tutorial example is fixed in section "Queues: Passing Data
706       Around" in perlthrtut and perlothrtut.
707
708       perlhack documentation extensively improved by Jarkko Hietaniemi and
709       others.
710
711       perltoot provides information on modifying @UNIVERSAL::ISA.
712
713       perlport documentation extended to include different "kill(-9, ...)"
714       semantics on Windows. It also clearly states "dump" is not supported on
715       Win32 and cygwin.
716
717       INSTALL has been updated and modernised.
718

Performance Enhancements

720       ·   The default since perl 5.000 has been for perl to create an empty
721           scalar with every new typeglob. The increased use of lexical
722           variables means that most are now unused. Thanks to Nicholas
723           Clark's efforts, Perl can now be compiled with
724           "-DPERL_DONT_CREATE_GVSV" to avoid creating these empty scalars.
725           This will significantly decrease the number of scalars allocated
726           for all configurations, and the number of scalars that need to be
727           copied for ithread creation. Whilst this option is binary
728           compatible with existing perl installations, it does change a long-
729           standing assumption about the internals, hence it is not enabled by
730           default, as some third party code may rely on the old behaviour.
731
732           We would recommend testing with this configuration on new
733           deployments of perl, particularly for multi-threaded servers, to
734           see whether all third party code is compatible with it, as this
735           configuration may give useful performance improvements. For
736           existing installations we would not recommend changing to this
737           configuration unless thorough testing is performed before
738           deployment.
739
740       ·   "diagnostics" no longer uses $&, which results in large speedups
741           for regexp matching in all code using it.
742
743       ·   Regular expressions classes of a single character are now treated
744           the same as if the character had been used as a literal, meaning
745           that code that uses char-classes as an escaping mechanism will see
746           a speedup. (Yves Orton)
747
748       ·   Creating anonymous array and hash references (ie. "[]" and "{}")
749           now incurs no more overhead than creating an anonymous list or
750           hash. Nicholas Clark provided changes with a saving of two ops and
751           one stack push, which was measured as a slightly better than 5%
752           improvement for these operations.
753
754       ·   Many calls to "strlen()" have been eliminated, either because the
755           length was already known, or by adopting or enhancing APIs that
756           pass lengths. This has been aided by the adoption of a
757           "my_sprintf()" wrapper, which returns the correct C89 value - the
758           length of the formatted string. Previously we could not rely on the
759           return value of "sprintf()", because on some ancient but extant
760           platforms it still returns "char *".
761
762       ·   "index" is now faster if the search string is stored in UTF-8 but
763           only contains characters in the Latin-1 range.
764
765       ·   The Unicode swatch cache inside the regexp engine is now used. (the
766           lookup had a key mismatch, present since the initial
767           implementation). [RT #42839]
768

Installation and Configuration Improvements

770   Relocatable installations
771       There is now Configure support for creating a relocatable perl tree. If
772       you Configure with "-Duserelocatableinc", then the paths in @INC (and
773       everything else in %Config) can be optionally located via the path of
774       the perl executable.
775
776       At start time, if any paths in @INC or "Config" that Configure marked
777       as relocatable (by starting them with ".../"), then they are prefixed
778       the directory of $^X. This allows the relocation can be configured on a
779       per-directory basis, although the default with "-Duserelocatableinc" is
780       that everything is relocated. The initial install is done to the
781       original configured prefix.
782
783   Configuration improvements
784       Configure is now better at removing temporary files. Tom Callaway (from
785       RedHat) also contributed patches that complete the set of flags passed
786       to the compiler and the linker, in particular that "-fPIC" is now
787       enabled on Linux. It will also croak when your /dev/null isn't a
788       device.
789
790       A new configuration variable "d_pseudofork" has been to Configure, and
791       is available as  $Config{d_pseudofork} in the "Config" module. This
792       distinguishes real "fork" support from the pseudofork emulation used on
793       Windows platforms.
794
795       Config.pod and config.sh are now placed correctly for cross-
796       compilation.
797
798       $Config{useshrplib} is now 'true' rather than 'yes' when using a shared
799       perl library.
800
801   Compilation improvements
802       Parallel makes should work properly now, although there may still be
803       problems if "make test" is instructed to run in parallel.
804
805       Many compilation warnings have been cleaned up. A very stubborn
806       compiler warning in "S_emulate_eaccess()" was killed after six
807       attempts.  g++ support has been tuned, especially for FreeBSD.
808
809       mkppport has been integrated, and all ppport.h files in the core will
810       now be autogenerated at build time (and removed during cleanup).
811
812   Installation improvements.
813       installman now works with "-Duserelocatableinc" and "DESTDIR".
814
815       installperl no longer installs:
816
817       ·   static library files of statically linked extensions when a shared
818           perl library is being used. (They are not needed. See "Windows"
819           below).
820
821       ·   SIGNATURE and PAUSE*.pub (CPAN files)
822
823       ·   NOTES and PATCHING (ExtUtils files)
824
825       ·   perlld and ld2 (Cygwin files)
826
827   Platform Specific Changes
828       There are improved hints for AIX, Cygwin, DEC/OSF, FreeBSD, HP/UX, Irix
829       6 Linux, MachTen, NetBSD, OS/390, QNX, SCO, Solaris, SunOS, System V
830       Release 5.x (UnixWare 7, OpenUNIX 8), Ultrix, UMIPS, uts and VOS.
831
832       FreeBSD
833
834       ·   Drop "-std=c89" and "-ansi" if using "long long" as the main
835           integral type, else in FreeBSD 6.2 (and perhaps other releases),
836           system headers do not declare some functions required by perl.
837
838       Solaris
839
840       ·   Starting with Solaris 10, we do not want versioned shared
841           libraries, because those often indicate a private use only library.
842           These problems could often be triggered when SUNWbdb (Berkeley DB)
843           was installed. Hence if Solaris 10 is detected set
844           "ignore_versioned_solibs=y".
845
846       VMS
847
848       ·   Allow IEEE math to be deselected on OpenVMS I64 (but it remains the
849           default).
850
851       ·   Record IEEE usage in "config.h"
852
853       ·   Help older VMS compilers by using "ccflags" when building
854           "munchconfig.exe".
855
856       ·   Don't try to build old "Thread" extension on VMS when
857           "-Duseithreads" has been chosen.
858
859       ·   Passing a raw string of "NaN" to nawk causes a core dump - so the
860           string has been changed to "*NaN*"
861
862       ·   t/op/stat.t tests will now test hard links on VMS if they are
863           supported.
864
865       Windows
866
867       ·   When using a shared perl library installperl no longer installs
868           static library files, import library files and export library files
869           (of statically linked extensions) and empty bootstrap files (of
870           dynamically linked extensions). This fixes a problem building PAR-
871           Packer on Win32 with a debug build of perl.
872
873       ·   Various improvements to the win32 build process, including support
874           for Visual C++ 2005 Express Edition (aka Visual C++ 8.x).
875
876       ·   perl.exe will now have an icon if built with MinGW or Borland.
877
878       ·   Improvements to the perl-static.exe build process.
879
880       ·   Add Win32 makefile option to link all extensions statically.
881
882       ·   The WinCE directory has been merged into the Win32 directory.
883
884       ·   "setlocale" tests have been re-enabled for Windows XP onwards.
885

Selected Bug Fixes

887   Unicode
888       Many many bugs related to the internal Unicode implementation (UTF-8)
889       have been fixed. In particular, long standing bugs related to returning
890       Unicode via "tie", overloading or $@ are now gone, some of which were
891       never reported.
892
893       "unpack" will internally convert the string back from UTF-8 on numeric
894       types.  This is a compromise between the full consistency now in 5.10,
895       and the current behaviour, which is often used as a "feature" on string
896       types.
897
898       Using ":crlf" and "UTF-16" IO layers together will now work.
899
900       Fixed problems with "split", Unicode "/\s+/" and "/ \0/".
901
902       Fixed bug RT #40641 - encoding of Unicode characters in regular
903       expressions.
904
905       Fixed a bug where using certain patterns in a regexp led to a panic.
906       [RT #45337]
907
908       Perl no longer segfaults (due to infinite internal recursion) if the
909       locale's character is not UTF-8 [RT #41442]:
910
911           use open ':locale';
912           print STDERR "\x{201e}"; # &bdquo;
913
914   PerlIO
915       Inconsistencies have been fixed in the reference counting PerlIO uses
916       to keep track of Unix file descriptors, and the API used by XS code to
917       manage getting and releasing "FILE *"s
918
919   Magic
920       Several bugs have been fixed in Magic, the internal system used to
921       implement features such as "tie", tainting and threads sharing.
922
923       "undef @array" on a tied array now correctly calls the "CLEAR" method.
924
925       Some of the bitwise ops were not checking whether their arguments were
926       magical before using them. [RT #24816]
927
928       Magic is no longer invoked twice by the expression "\&$x"
929
930       A bug with assigning large numbers and tainting has been resolved.  [RT
931       #40708]
932
933       A new entry has been added to the MAGIC vtable - "svt_local". This is
934       used when copying magic to the new value during "local", allowing
935       certain problems with localising shared variables to be resolved.
936
937       For the implementation details, see "Magic Virtual Tables" in perlguts.
938
939   Reblessing overloaded objects now works
940       Internally, perl object-ness is on the referent, not the reference,
941       even though methods can only be called via a reference. However, the
942       original implementation of overloading stored flags related to
943       overloading on the reference, relying on the flags being copied when
944       the reference was copied, or set at the creation of a new reference.
945       This manifests in a bug - if you rebless an object from a class that
946       has overloading, into one that does not, then any other existing
947       references think that they (still) point to an overloaded object,
948       choose these C code paths, and then throw errors.  Analogously,
949       blessing into an overloaded class when other references exist will
950       result in them not using overloading.
951
952       The implementation has been fixed for 5.10, but this fix changes the
953       semantics of flag bits, so is not binary compatible, so can't be
954       applied to 5.8.9.  However, 5.8.9 has a work-around that implements the
955       same bug fix. If the referent has multiple references, then all the
956       other references are located and corrected. A full search is avoided
957       whenever possible by scanning lexicals outwards from the current
958       subroutine, and the argument stack.
959
960       A certain well known Linux vendor applied incomplete versions of this
961       bug fix to their /usr/bin/perl and then prematurely closed bug reports
962       about performance issues without consulting back upstream. This not
963       being enough, they then proceeded to ignore the necessary fixes to
964       these unreleased changes for 11 months, until massive pressure was
965       applied by their long-suffering paying customers, catalysed by the
966       failings being featured on a prominent blog and Slashdot.
967
968   "strict" now propagates correctly into string evals
969       Under 5.8.8 and earlier:
970
971           $ perl5.8.8 -e 'use strict; eval "use foo bar" or die $@'
972           Can't locate foo.pm in @INC (@INC contains: ... .) at (eval 1) line 2.
973           BEGIN failed--compilation aborted at (eval 1) line 2.
974
975       Under 5.8.9 and later:
976
977           $ perl5.8.9 -e 'use strict; eval "use foo bar" or die $@'
978           Bareword "bar" not allowed while "strict subs" in use at (eval 1) line 1.
979
980       This may cause problems with programs that parse the error message and
981       rely on the buggy behaviour.
982
983   Other fixes
984       ·   The tokenizer no longer treats "=cute" (and other words beginning
985           with "=cut") as a synonym for "=cut".
986
987       ·   Calling "CORE::require"
988
989           "CORE::require" and "CORE::do" were always parsed as "require" and
990           "do" when they were overridden. This is now fixed.
991
992       ·   Stopped memory leak on long /etc/groups entries.
993
994       ·   "while (my $x ...) { ...; redo }" shouldn't "undef $x".
995
996           In the presence of "my" in the conditional of a "while()",
997           "until()", or "for(;;)" loop, we now add an extra scope to the body
998           so that "redo" doesn't "undef" the lexical.
999
1000       ·   The "encoding" pragma now correctly ignores anything following an
1001           "@" character in the "LC_ALL" and "LANG" environment variables. [RT
1002           # 49646]
1003
1004       ·   A segfault observed with some gcc 3.3 optimisations is resolved.
1005
1006       ·   A possible segfault when "unpack" used in scalar context with "()"
1007           groups is resolved. [RT #50256]
1008
1009       ·   Resolved issue where $! could be changed by a signal handler
1010           interrupting a "system" call.
1011
1012       ·   Fixed bug RT #37886, symbolic deferencing was allowed in the
1013           argument of "defined" even under the influence of "use strict
1014           'refs'".
1015
1016       ·   Fixed bug RT #43207, where "lc"/"uc" inside "sort" affected the
1017           return value.
1018
1019       ·   Fixed bug RT #45607, where "*{"BONK"} = \&{"BONK"}" didn't work
1020           correctly.
1021
1022       ·   Fixed bug RT #35878, croaking from a XSUB called via "goto &xsub"
1023           corrupts perl internals.
1024
1025       ·   Fixed bug RT #32539, DynaLoader.o is moved into libperl.so to avoid
1026           the need to statically link DynaLoader into the stub perl
1027           executable. With this libperl.so provides everything needed to get
1028           a functional embedded perl interpreter to run.
1029
1030       ·   Fix bug RT #36267 so that assigning to a tied hash doesn't change
1031           the underlying hash.
1032
1033       ·   Fix bug RT #6006, regexp replaces using large replacement variables
1034           fail some of the time, i.e. when substitution contains something
1035           like "${10}" (note the bracket) instead of just $10.
1036
1037       ·   Fix bug RT #45053, "Perl_newCONSTSUB()" is now thread safe.
1038
1039   Platform Specific Fixes
1040       Darwin / MacOS X
1041
1042       ·   Various improvements to 64 bit builds.
1043
1044       ·   Mutex protection added in "PerlIOStdio_close()" to avoid race
1045           conditions.  Hopefully this fixes failures in the threads tests
1046           free.t and blocks.t.
1047
1048       ·   Added forked terminal support to the debugger, with the ability to
1049           update the window title.
1050
1051       OS/2
1052
1053       ·   A build problem with specifying "USE_MULTI" and "USE_ITHREADS" but
1054           without "USE_IMP_SYS" has been fixed.
1055
1056       ·   "OS2::REXX" upgraded to version 1.04
1057
1058       Tru64
1059
1060       ·   Aligned floating point build policies for cc and gcc.
1061
1062       RedHat Linux
1063
1064       ·   Revisited a patch from 5.6.1 for RH7.2 for Intel's icc [RT #7916],
1065           added an additional check for $Config{gccversion}.
1066
1067       Solaris/i386
1068
1069       ·   Use "-DPTR_IS_LONG" when using 64 bit integers
1070
1071       VMS
1072
1073       ·   Fixed "PerlIO::Scalar" in-memory file record-style reads.
1074
1075       ·   pipe shutdown at process exit should now be more robust.
1076
1077       ·   Bugs in VMS exit handling tickled by "Test::Harness" 2.64 have been
1078           fixed.
1079
1080       ·   Fix "fcntl()" locking capability test in configure.com.
1081
1082       ·   Replaced "shrplib='define'" with "useshrplib='true'" on VMS.
1083
1084       Windows
1085
1086       ·   "File::Find" used to fail when the target directory is a bare drive
1087           letter and "no_chdir" is 1 (the default is 0). [RT #41555]
1088
1089       ·   A build problem with specifying "USE_MULTI" and "USE_ITHREADS" but
1090           without "USE_IMP_SYS" has been fixed.
1091
1092       ·   The process id is no longer truncated to 16 bits on some Windows
1093           platforms ( http://bugs.activestate.com/show_bug.cgi?id=72443 )
1094
1095       ·   Fixed bug RT #54828 in perlio.c where calling "binmode" on Win32
1096           and Cgywin may cause a segmentation fault.
1097
1098   Smaller fixes
1099       ·   It is now possible to overload "eq" when using "nomethod".
1100
1101       ·   Various problems using "overload" with 64 bit integers corrected.
1102
1103       ·   The reference count of "PerlIO" file descriptors is now correctly
1104           handled.
1105
1106       ·   On VMS, escaped dots will be preserved when converted to UNIX
1107           syntax.
1108
1109       ·   "keys %+" no longer throws an 'ambiguous' warning.
1110
1111       ·   Using "#!perl -d" could trigger an assertion, which has been fixed.
1112
1113       ·   Don't stringify tied code references in @INC when calling
1114           "require".
1115
1116       ·   Code references in @INC report the correct file name when
1117           "__FILE__" is used.
1118
1119       ·   Width and precision in sprintf didn't handle characters above 255
1120           correctly.  [RT #40473]
1121
1122       ·   List slices with indices out of range now work more consistently.
1123           [RT #39882]
1124
1125       ·   A change introduced with perl 5.8.1 broke the parsing of arguments
1126           of the form "-foo=bar" with the "-s" on the <#!> line. This has
1127           been fixed. See http://bugs.activestate.com/show_bug.cgi?id=43483
1128
1129       ·   "tr///" is now threadsafe. Previously it was storing a swash inside
1130           its OP, rather than in a pad.
1131
1132       ·   pod2html labels anchors more consistently and handles nested
1133           definition lists better.
1134
1135       ·   "threads" cleanup veto has been extended to include "perl_free()"
1136           and "perl_destruct()"
1137
1138       ·   On some systems, changes to $ENV{TZ} would not always be respected
1139           by the underlying calls to "localtime_r()".  Perl now forces the
1140           inspection of the environment on these systems.
1141
1142       ·   The special variable $^R is now more consistently set when
1143           executing regexps using the "(?{...})" construct.  In particular,
1144           it will still be set even if backreferences or optional sub-
1145           patterns "(?:...)?" are used.
1146

New or Changed Diagnostics

1148   panic: sv_chop %s
1149       This new fatal error occurs when the C routine "Perl_sv_chop()" was
1150       passed a position that is not within the scalar's string buffer. This
1151       is caused by buggy XS code, and at this point recovery is not possible.
1152
1153   Maximal count of pending signals (%s) exceeded
1154       This new fatal error occurs when the perl process has to abort due to
1155       too many pending signals, which is bound to prevent perl from being
1156       able to handle further incoming signals safely.
1157
1158   panic: attempt to call %s in %s
1159       This new fatal error occurs when the ACL version file test operator is
1160       used where it is not available on the current platform. Earlier checks
1161       mean that it should never be possible to get this.
1162
1163   FETCHSIZE returned a negative value
1164       New error indicating that a tied array has claimed to have a negative
1165       number of elements.
1166
1167   Can't upgrade %s (%d) to %d
1168       Previously the internal error from the SV upgrade code was the less
1169       informative Can't upgrade that kind of scalar. It now reports the
1170       current internal type, and the new type requested.
1171
1172   %s argument is not a HASH or ARRAY element or a subroutine
1173       This error, thrown if an invalid argument is provided to "exists" now
1174       correctly includes "or a subroutine". [RT #38955]
1175
1176   Cannot make the non-overridable builtin %s fatal
1177       This error in "Fatal" previously did not show the name of the builtin
1178       in question (now represented by %s above).
1179
1180   Unrecognized character '%s' in column %d
1181       This error previously did not state the column.
1182
1183   Offset outside string
1184       This can now also be generated by a "seek" on a file handle using
1185       "PerlIO::scalar".
1186
1187   Invalid escape in the specified encoding in regexp; marked by <-- HERE in
1188       m/%s/
1189       New error, introduced as part of the fix to RT #40641 to handle
1190       encoding of Unicode characters in regular expression comments.
1191
1192   Your machine doesn't support dump/undump.
1193       A more informative fatal error issued when calling "dump" on Win32 and
1194       Cygwin. (Given that the purpose of "dump" is to abort with a core dump,
1195       and core dumps can't be produced on these platforms, this is more
1196       useful than silently exiting.)
1197

Changed Internals

1199       The perl sources can now be compiled with a C++ compiler instead of a C
1200       compiler. A necessary implementation details is that under C++, the
1201       macro "XS" used to define XSUBs now includes an "extern "C""
1202       definition. A side effect of this is that C++ code that used the
1203       construction
1204
1205           typedef XS(SwigPerlWrapper);
1206
1207       now needs to be written
1208
1209           typedef XSPROTO(SwigPerlWrapper);
1210
1211       using the new "XSPROTO" macro, in order to compile. C extensions are
1212       unaffected, although C extensions are encouraged to use "XSPROTO" too.
1213       This change was present in the 5.10.0 release of perl, so any actively
1214       maintained code that happened to use this construction should already
1215       have been adapted. Code that needs changing will fail with a
1216       compilation error.
1217
1218       "set" magic on localizing/assigning to a magic variable will now only
1219       trigger for container magics, i.e. it will for %ENV or %SIG but not for
1220       $#array.
1221
1222       The new API macro "newSVpvs()" can be used in place of constructions
1223       such as "newSVpvn("ISA", 3)". It takes a single string constant, and at
1224       C compile time determines its length.
1225
1226       The new API function "Perl_newSV_type()" can be used as a more
1227       efficient replacement of the common idiom
1228
1229           sv = newSV(0);
1230           sv_upgrade(sv, type);
1231
1232       Similarly "Perl_newSVpvn_flags()" can be used to combine
1233       "Perl_newSVpv()" with "Perl_sv_2mortal()" or the equivalent
1234       "Perl_sv_newmortal()" with "Perl_sv_setpvn()"
1235
1236       Two new macros "mPUSHs()" and "mXPUSHs()" are added, to make it easier
1237       to push mortal SVs onto the stack. They were then used to fix several
1238       bugs where values on the stack had not been mortalised.
1239
1240       A "Perl_signbit()" function was added to test the sign of an "NV". It
1241       maps to the system one when available.
1242
1243       "Perl_av_reify()", "Perl_lex_end()", "Perl_mod()", "Perl_op_clear()",
1244       "Perl_pop_return()", "Perl_qerror()", "Perl_setdefout()",
1245       "Perl_vivify_defelem()" and "Perl_yylex()" are now visible to
1246       extensions.  This was required to allow "Data::Alias" to work on
1247       Windows.
1248
1249       "Perl_find_runcv()" is now visible to perl core extensions. This was
1250       required to allow "Sub::Current" to work on Windows.
1251
1252       "ptr_table*" functions are now available in unthreaded perl. "Storable"
1253       takes advantage of this.
1254
1255       There have been many small cleanups made to the internals. In
1256       particular, "Perl_sv_upgrade()" has been simplified considerably, with
1257       a straight-through code path that uses "memset()" and "memcpy()" to
1258       initialise the new body, rather than assignment via multiple temporary
1259       variables. It has also benefited from simplification and de-duplication
1260       of the arena management code.
1261
1262       A lot of small improvements in the code base were made due to reports
1263       from the Coverity static code analyzer.
1264
1265       Corrected use and documentation of "Perl_gv_stashpv()",
1266       "Perl_gv_stashpvn()", "Perl_gv_stashsv()" functions (last parameter is
1267       a bitmask, not boolean).
1268
1269       "PERL_SYS_INIT", "PERL_SYS_INIT3" and "PERL_SYS_TERM" macros have been
1270       changed into functions.
1271
1272       "PERLSYS_TERM" no longer requires a context. "PerlIO_teardown()" is now
1273       called without a context, and debugging output in this function has
1274       been disabled because that required that an interpreter was present, an
1275       invalid assumption at termination time.
1276
1277       All compile time options which affect binary compatibility have been
1278       grouped together into a global variable ("PL_bincompat_options").
1279
1280       The values of "PERL_REVISION", "PERL_VERSION" and "PERL_SUBVERSION" are
1281       now baked into global variables (and hence into any shared perl
1282       library).  Additionally under "MULTIPLICITY", the perl executable now
1283       records the size of the interpreter structure (total, and for this
1284       version). Coupled with "PL_bincompat_options" this will allow 5.8.10
1285       (and later), when compiled with a shared perl library, to perform
1286       sanity checks in "main()" to verify that the shared library is indeed
1287       binary compatible.
1288
1289       Symbolic references can now have embedded NULs. The new public function
1290       "Perl_get_cvn_flags()" can be used in extensions if you have to handle
1291       them.
1292
1293   Macro cleanups
1294       The core code, and XS code in ext that is not dual-lived on CPAN, no
1295       longer uses the macros "PL_na", "NEWSV()", "Null()", "Nullav",
1296       "Nullcv", "Nullhv", "Nullhv" etc. Their use is discouraged in new code,
1297       particularly "PL_na", which is a small performance hit.
1298

New Tests

1300       Many modules updated from CPAN incorporate new tests. Some core
1301       specific tests have been added:
1302
1303       ext/DynaLoader/t/DynaLoader.t
1304           Tests for the "DynaLoader" module.
1305
1306       t/comp/fold.t
1307           Tests for compile-time constant folding.
1308
1309       t/io/pvbm.t
1310           Tests incorporated from 5.10.0 which check that there is no
1311           unexpected interaction between the internal types "PVBM" and
1312           "PVGV".
1313
1314       t/lib/proxy_constant_subs.t
1315           Tests for the new form of constant subroutines.
1316
1317       t/op/attrhand.t
1318           Tests for "Attribute::Handlers".
1319
1320       t/op/dbm.t
1321           Tests for "dbmopen".
1322
1323       t/op/inccode-tie.t
1324           Calls all tests in t/op/inccode.t after first tying @INC.
1325
1326       t/op/incfilter.t
1327           Tests for for source filters returned from code references in @INC.
1328
1329       t/op/kill0.t
1330           Tests for RT #30970.
1331
1332       t/op/qrstack.t
1333           Tests for RT #41484.
1334
1335       t/op/qr.t
1336           Tests for the "qr//" construct.
1337
1338       t/op/regexp_qr_embed.t
1339           Tests for the "qr//" construct within another regexp.
1340
1341       t/op/regexp_qr.t
1342           Tests for the "qr//" construct.
1343
1344       t/op/rxcode.t
1345           Tests for RT #32840.
1346
1347       t/op/studytied.t
1348           Tests for "study" on tied scalars.
1349
1350       t/op/substT.t
1351           Tests for "subst" run under "-T" mode.
1352
1353       t/op/symbolcache.t
1354           Tests for "undef" and "delete" on stash entries that are bound to
1355           subroutines or methods.
1356
1357       t/op/upgrade.t
1358           Tests for "Perl_sv_upgrade()".
1359
1360       t/mro/package_aliases.t
1361           MRO tests for "isa" and package aliases.
1362
1363       t/pod/twice.t
1364           Tests for calling "Pod::Parser" twice.
1365
1366       t/run/cloexec.t
1367           Tests for inheriting file descriptors across "exec" (close-on-
1368           exec).
1369
1370       t/uni/cache.t
1371           Tests for the UTF-8 caching code.
1372
1373       t/uni/chr.t
1374           Test that strange encodings do not upset "Perl_pp_chr()".
1375
1376       t/uni/greek.t
1377           Tests for RT #40641.
1378
1379       t/uni/latin2.t
1380           Tests for RT #40641.
1381
1382       t/uni/overload.t
1383           Tests for returning Unicode from overloaded values.
1384
1385       t/uni/tie.t
1386           Tests for returning Unicode from tied variables.
1387

Known Problems

1389       There are no known new bugs.
1390
1391       However, programs that rely on bugs that have been fixed will have
1392       problems.  Also, many bug fixes present in 5.10.0 can't be back-ported
1393       to the 5.8.x branch, because they require changes that are binary
1394       incompatible, or because the code changes are too large and hence too
1395       risky to incorporate.
1396
1397       We have only limited volunteer labour, and the maintenance burden is
1398       getting increasingly complex. Hence this will be the last significant
1399       release of the 5.8.x series. Any future releases of 5.8.x will likely
1400       only be to deal with security issues, and platform build failures.
1401       Hence you should look to migrating to 5.10.x, if you have not started
1402       already. Alternatively, if business requirements constrain you to
1403       continue to use 5.8.x, you may wish to consider commercial support from
1404       firms such as ActiveState.
1405

Platform Specific Notes

1407   Win32
1408       "readdir()", "cwd()", $^X and @INC now use the alternate (short)
1409       filename if the long name is outside the current codepage (Jan Dubois).
1410
1411       Updated Modules
1412
1413       ·   "Win32" upgraded to version 0.38. Now has a documented 'WinVista'
1414           response from "GetOSName" and support for Vista's privilege
1415           elevation in "IsAdminUser".  Support for Unicode characters in path
1416           names. Improved cygwin and Win64 compatibility.
1417
1418       ·   "Win32API" updated to 0.1001_01
1419
1420       ·   "killpg()" support added to "MSWin32" (Jan Dubois).
1421
1422       ·   "File::Spec::Win32" upgraded to version 3.2701
1423
1424   OS/2
1425       Updated Modules
1426
1427       ·   "OS2::Process" upgraded to 1.03
1428
1429           Ilya Zakharevich has added and documented several "Window*" and
1430           "Clipbrd*" functions.
1431
1432       ·   "OS2::REXX::DLL", "OS2::REXX" updated to version 1.03
1433
1434   VMS
1435       Updated Modules
1436
1437       ·   "DCLsym" upgraded to version 1.03
1438
1439       ·   "Stdio" upgraded to version 2.4
1440
1441       ·   "VMS::XSSymSet" upgraded to 1.1.
1442

Obituary

1444       Nick Ing-Simmons, long time Perl hacker, author of the "Tk" and
1445       "Encode" modules, perlio.c in the core, and 5.003_02 pumpking, died of
1446       a heart attack on 25th September 2006. He will be missed.
1447

Acknowledgements

1449       Some of the work in this release was funded by a TPF grant.
1450
1451       Steve Hay worked behind the scenes working out the causes of the
1452       differences between core modules, their CPAN releases, and previous
1453       core releases, and the best way to rectify them. He doesn't want to do
1454       it again. I know this feeling, and I'm very glad he did it this time,
1455       instead of me.
1456
1457       Paul Fenwick assembled a team of 18 volunteers, who broke the back of
1458       writing this document. In particular, Bradley Dean, Eddy Tan, and
1459       Vincent Pit provided half the team's contribution.
1460
1461       Schwern verified the list of updated module versions, correcting quite
1462       a few errors that I (and everyone else) had missed, both wrongly stated
1463       module versions, and changed modules that had not been listed.
1464
1465       The crack Berlin-based QA team of Andreas Koenig and Slaven Rezic
1466       tirelessly re-built snapshots, tested most everything CPAN against
1467       them, and then identified the changes responsible for any module
1468       regressions, ensuring that several show-stopper bugs were stomped
1469       before the first release candidate was cut.
1470
1471       The other core committers contributed most of the changes, and applied
1472       most of the patches sent in by the hundreds of contributors listed in
1473       AUTHORS.
1474
1475       And obviously, Larry Wall, without whom we wouldn't have Perl.
1476

Reporting Bugs

1478       If you find what you think is a bug, you might check the articles
1479       recently posted to the comp.lang.perl.misc newsgroup and the perl bug
1480       database at http://bugs.perl.org.  There may also be information at
1481       http://www.perl.org, the Perl Home Page.
1482
1483       If you believe you have an unreported bug, please run the perlbug
1484       program included with your release.  Be sure to trim your bug down to a
1485       tiny but sufficient test case.  Your bug report, along with the output
1486       of "perl -V", will be sent off to perlbug@perl.org to be analysed by
1487       the Perl porting team.  You can browse and search the Perl 5 bugs at
1488       http://bugs.perl.org/
1489
1490       If the bug you are reporting has security implications, which make it
1491       inappropriate to send to a publicly archived mailing list, then please
1492       send it to perl5-security-report@perl.org. This points to a closed
1493       subscription unarchived mailing list, which includes all the core
1494       committers, who be able to help assess the impact of issues, figure out
1495       a resolution, and help co-ordinate the release of patches to mitigate
1496       or fix the problem across all platforms on which Perl is supported.
1497       Please only use this address for security issues in the Perl core, not
1498       for modules independently distributed on CPAN.
1499

SEE ALSO

1501       The Changes file for exhaustive details on what changed.
1502
1503       The INSTALL file for how to build Perl.
1504
1505       The README file for general stuff.
1506
1507       The Artistic and Copying files for copyright information.
1508
1509
1510
1511perl v5.10.1                      2009-05-12                   PERL589DELTA(1)
Impressum