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           panicking 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 "<>" quoting in "#include" statements.
624
625       ·   now generates correct code for "#if defined A || defined B" [RT
626           #39130]
627

New Documentation

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

Changes to Existing Documentation

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

Performance Enhancements

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

Installation and Configuration Improvements

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

Selected Bug Fixes

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

New or Changed Diagnostics

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

Changed Internals

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

New Tests

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

Known Problems

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

Platform Specific Notes

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

Obituary

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

Acknowledgements

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

Reporting Bugs

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

SEE ALSO

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