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, such
271               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 König 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 my_sprintf()
756           wrapper, which returns the correct C89 value - the length of the
757           formatted string. Previously we could not rely on the return value
758           of sprintf(), because on some ancient but extant platforms it still
759           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 attempts.
806       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
820SIGNATURE and PAUSE*.pub (CPAN files)
821
822NOTES and PATCHING (ExtUtils files)
823
824perlld 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
861t/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
875perl.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(), until(),
996           or for(;;) loop, we now add an extra scope to the body so that
997           "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
1131pod2html labels anchors more consistently and handles nested
1132           definition lists better.
1133
1134       •   "threads" cleanup veto has been extended to include perl_free() and
1135           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 such
1222       as "newSVpvn("ISA", 3)". It takes a single string constant, and at C
1223       compile time determines its length.
1224
1225       The new API function Perl_newSV_type() can be used as a more efficient
1226       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 Perl_newSVpv()
1232       with Perl_sv_2mortal() or the equivalent Perl_sv_newmortal() with
1233       Perl_sv_setpvn()
1234
1235       Two new macros mPUSHs() and mXPUSHs() are added, to make it easier to
1236       push mortal SVs onto the stack. They were then used to fix several bugs
1237       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 extensions.
1245       This was required to allow "Data::Alias" to work on Windows.
1246
1247       Perl_find_runcv() is now visible to perl core extensions. This was
1248       required to allow "Sub::Current" to work on Windows.
1249
1250       "ptr_table*" functions are now available in unthreaded perl. "Storable"
1251       takes advantage of this.
1252
1253       There have been many small cleanups made to the internals. In
1254       particular, Perl_sv_upgrade() has been simplified considerably, with a
1255       straight-through code path that uses memset() and memcpy() to
1256       initialise the new body, rather than assignment via multiple temporary
1257       variables. It has also benefited from simplification and de-duplication
1258       of the arena management code.
1259
1260       A lot of small improvements in the code base were made due to reports
1261       from the Coverity static code analyzer.
1262
1263       Corrected use and documentation of Perl_gv_stashpv(),
1264       Perl_gv_stashpvn(), Perl_gv_stashsv() functions (last parameter is a
1265       bitmask, not boolean).
1266
1267       "PERL_SYS_INIT", "PERL_SYS_INIT3" and "PERL_SYS_TERM" macros have been
1268       changed into functions.
1269
1270       "PERLSYS_TERM" no longer requires a context. PerlIO_teardown() is now
1271       called without a context, and debugging output in this function has
1272       been disabled because that required that an interpreter was present, an
1273       invalid assumption at termination time.
1274
1275       All compile time options which affect binary compatibility have been
1276       grouped together into a global variable ("PL_bincompat_options").
1277
1278       The values of "PERL_REVISION", "PERL_VERSION" and "PERL_SUBVERSION" are
1279       now baked into global variables (and hence into any shared perl
1280       library).  Additionally under "MULTIPLICITY", the perl executable now
1281       records the size of the interpreter structure (total, and for this
1282       version). Coupled with "PL_bincompat_options" this will allow 5.8.10
1283       (and later), when compiled with a shared perl library, to perform
1284       sanity checks in main() to verify that the shared library is indeed
1285       binary compatible.
1286
1287       Symbolic references can now have embedded NULs. The new public function
1288       Perl_get_cvn_flags() can be used in extensions if you have to handle
1289       them.
1290
1291   Macro cleanups
1292       The core code, and XS code in ext that is not dual-lived on CPAN, no
1293       longer uses the macros "PL_na", NEWSV(), Null(), "Nullav", "Nullcv",
1294       "Nullhv", "Nullhv" etc. Their use is discouraged in new code,
1295       particularly "PL_na", which is a small performance hit.
1296

New Tests

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

Known Problems

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

Platform Specific Notes

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

Obituary

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

Acknowledgements

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

Reporting Bugs

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

SEE ALSO

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