1PERL589DELTA(1) Perl Programmers Reference Guide PERL589DELTA(1)
2
3
4
6 perl589delta - what is new for perl v5.8.9
7
9 This document describes differences between the 5.8.8 release and the
10 5.8.9 release.
11
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
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
29 Unicode Character Database 5.1.0.
30 The copy of the Unicode Character Database included in Perl 5.8 has
31 been updated to 5.1.0 from 4.1.0. See
32 <http://www.unicode.org/versions/Unicode5.1.0/#NotableChanges> for the
33 notable changes.
34
35 stat and -X on directory handles
36 It is now possible to call "stat" and the "-X" filestat operators on
37 directory handles. As both directory and file handles are barewords,
38 there can be ambiguities over which was intended. In these situations
39 the file handle semantics are preferred. Both also treat *FILE{IO}
40 filehandles like *FILE filehandles.
41
42 Source filters in @INC
43 It's possible to enhance the mechanism of subroutine hooks in @INC by
44 adding a source filter on top of the filehandle opened and returned by
45 the hook. This feature was planned a long time ago, but wasn't quite
46 working until now. See "require" in perlfunc for details. (Nicholas
47 Clark)
48
49 Exceptions in constant folding
50 The constant folding routine is now wrapped in an exception handler,
51 and if folding throws an exception (such as attempting to evaluate
52 0/0), perl now retains the current optree, rather than aborting the
53 whole program. Without this change, programs would not compile if they
54 had expressions that happened to generate exceptions, even though those
55 expressions were in code that could never be reached at runtime.
56 (Nicholas Clark, Dave Mitchell)
57
58 "no VERSION"
59 You can now use "no" followed by a version number to specify that you
60 want to use a version of perl older than the specified one.
61
62 Improved internal UTF-8 caching code
63 The code that caches calculated UTF-8 byte offsets for character
64 offsets for a string has been re-written. Several bugs have been
65 located and eliminated, and the code now makes better use of the
66 information it has, so should be faster. In particular, it doesn't scan
67 to the end of a string before calculating an offset within the string,
68 which should speed up some operations on long strings. It is now
69 possible to disable the caching code at run time, to verify that it is
70 not the cause of suspected problems.
71
72 Runtime relocatable installations
73 There is now Configure support for creating a perl tree that is
74 relocatable at run time. see "Relocatable installations".
75
76 New internal variables
77 "${^CHILD_ERROR_NATIVE}"
78 This variable gives the native status returned by the last pipe
79 close, backtick command, successful call to "wait" or "waitpid", or
80 from the "system" operator. See perlvar for details. (Contributed
81 by Gisle Aas.)
82
83 "${^UTF8CACHE}"
84 This variable controls the state of the internal UTF-8 offset
85 caching code. 1 for on (the default), 0 for off, -1 to debug the
86 caching code by checking all its results against linear scans, and
87 panicing on any discrepancy.
88
89 "readpipe" is now overridable
90 The built-in function "readpipe" is now overridable. Overriding it
91 permits also to override its operator counterpart, "qx//" (also known
92 as "``").
93
94 simple exception handling macros
95 Perl 5.8.9 (and 5.10.0 onwards) now provides a couple of macros to do
96 very basic exception handling in XS modules. You can use these macros
97 if you call code that may "croak", but you need to do some cleanup
98 before giving control back to Perl. See "Exception Handling" in
99 perlguts for more details.
100
101 -D option enhancements
102 · "-Dq" suppresses the EXECUTING... message when running under "-D"
103
104 · "-Dl" logs runops loop entry and exit, and jump level popping.
105
106 · "-Dv" displays the process id as part of the trace output.
107
108 XS-assisted SWASHGET
109 Some pure-perl code that the regexp engine was using to retrieve
110 Unicode properties and transliteration mappings has been reimplemented
111 in XS for faster execution. (SADAHIRO Tomoyuki)
112
113 Constant subroutines
114 The interpreter internals now support a far more memory efficient form
115 of inlineable constants. Storing a reference to a constant value in a
116 symbol table is equivalent to a full typeglob referencing a constant
117 subroutine, but using about 400 bytes less memory. This proxy constant
118 subroutine is automatically upgraded to a real typeglob with subroutine
119 if necessary. The approach taken is analogous to the existing space
120 optimisation for subroutine stub declarations, which are stored as
121 plain scalars in place of the full typeglob.
122
123 However, to aid backwards compatibility of existing code, which
124 (wrongly) does not expect anything other than typeglobs in symbol
125 tables, nothing in core uses this feature, other than the regression
126 tests.
127
128 Stubs for prototyped subroutines have been stored in symbol tables as
129 plain strings, and stubs for unprototyped subroutines as the number -1,
130 since 5.005, so code which assumes that the core only places typeglobs
131 in symbol tables has been making incorrect assumptions for over 10
132 years.
133
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
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
595 debugger upgraded to version 1.31
596 · Andreas Koenig contributed two functions to save and load the
597 debugger history.
598
599 · "NEXT::AUTOLOAD" no longer emits warnings under the debugger.
600
601 · The debugger should now correctly find tty the device on OS X 10.5
602 and VMS when the program "fork"s.
603
604 · LVALUE subs now work inside the debugger.
605
606 perlthanks
607 Perl 5.8.9 adds a new utility perlthanks, which is a variant of
608 perlbug, but for sending non-bug-reports to the authors and maintainers
609 of Perl. Getting nothing but bug reports can become a bit demoralising
610 - we'll see if this changes things.
611
612 perlbug
613 perlbug now checks if you're reporting about a non-core module and
614 suggests you report it to the CPAN author instead.
615
616 h2xs
617 · won't define an empty string as a constant [RT #25366]
618
619 · has examples for "h2xs -X"
620
621 h2ph
622 · now attempts to deal sensibly with the difference in path
623 implications between "" and "E<lt>E<gt>" quoting in "#include"
624 statements.
625
626 · now generates correct correct code for "#if defined A || defined B"
627 [RT #39130]
628
630 As usual, the documentation received its share of corrections,
631 clarifications and other nitfixes. More "X<...>" tags were added for
632 indexing.
633
634 perlunitut is a tutorial written by Juerd Waalboer on Unicode-related
635 terminology and how to correctly handle Unicode in Perl scripts.
636
637 perlunicode is updated in section user defined properties.
638
639 perluniintro has been updated in the example of detecting data that is
640 not valid in particular encoding.
641
642 perlcommunity provides an overview of the Perl Community along with
643 further resources.
644
645 CORE documents the pseudo-namespace for Perl's core routines.
646
648 perlglossary adds deprecated modules and features and to be dropped
649 modules.
650
651 perlhack has been updated and added resources on smoke testing.
652
653 The Perl FAQs (perlfaq1..perlfaq9) have been updated.
654
655 perlcheat is updated with better details on "\w", "\d", and "\s".
656
657 perldebug is updated with information on how to call the debugger.
658
659 perldiag documentation updated with subroutine with an ampersand on the
660 argument to "exists" and "delete" and also several terminology updates
661 on warnings.
662
663 perlfork documents the limitation of "exec" inside pseudo-processes.
664
665 perlfunc:
666
667 · Documentation is fixed in section "caller" and "pop".
668
669 · Function "alarm" now mentions "Time::HiRes::ualarm" in preference
670 to "select".
671
672 · Regarding precedence in "-X", filetest operators are the same as
673 unary operators, but not regarding parsing and parentheses (spotted
674 by Eirik Berg Hanssen).
675
676 · reverse function documentation received scalar context examples.
677
678 perllocale documentation is adjusted for number localization and
679 "POSIX::setlocale" to fix Debian bug #379463.
680
681 perlmodlib is updated with "CPAN::API::HOWTO" and
682 "Sys::Syslog::win32::Win32"
683
684 perlre documentation updated to reflect the differences between
685 "[[:xxxxx:]]" and "\p{IsXxxxx}" matches. Also added section on "/g" and
686 "/c" modifiers.
687
688 perlreguts describe the internals of the regular expressions engine. It
689 has been contributed by Yves Orton.
690
691 perlrebackslash describes all perl regular expression backslash and
692 escape sequences.
693
694 perlrecharclass describes the syntax and use of character classes in
695 Perl Regular Expressions.
696
697 perlrun is updated to clarify on the hash seed PERL_HASH_SEED. Also
698 more information in options "-x" and "-u".
699
700 perlsub example is updated to use a lexical variable for "opendir"
701 syntax.
702
703 perlvar fixes confusion about real GID $( and effective GID $).
704
705 Perl thread tutorial example is fixed in section "Queues: Passing Data
706 Around" in perlthrtut and perlothrtut.
707
708 perlhack documentation extensively improved by Jarkko Hietaniemi and
709 others.
710
711 perltoot provides information on modifying @UNIVERSAL::ISA.
712
713 perlport documentation extended to include different "kill(-9, ...)"
714 semantics on Windows. It also clearly states "dump" is not supported on
715 Win32 and cygwin.
716
717 INSTALL has been updated and modernised.
718
720 · The default since perl 5.000 has been for perl to create an empty
721 scalar with every new typeglob. The increased use of lexical
722 variables means that most are now unused. Thanks to Nicholas
723 Clark's efforts, Perl can now be compiled with
724 "-DPERL_DONT_CREATE_GVSV" to avoid creating these empty scalars.
725 This will significantly decrease the number of scalars allocated
726 for all configurations, and the number of scalars that need to be
727 copied for ithread creation. Whilst this option is binary
728 compatible with existing perl installations, it does change a long-
729 standing assumption about the internals, hence it is not enabled by
730 default, as some third party code may rely on the old behaviour.
731
732 We would recommend testing with this configuration on new
733 deployments of perl, particularly for multi-threaded servers, to
734 see whether all third party code is compatible with it, as this
735 configuration may give useful performance improvements. For
736 existing installations we would not recommend changing to this
737 configuration unless thorough testing is performed before
738 deployment.
739
740 · "diagnostics" no longer uses $&, which results in large speedups
741 for regexp matching in all code using it.
742
743 · Regular expressions classes of a single character are now treated
744 the same as if the character had been used as a literal, meaning
745 that code that uses char-classes as an escaping mechanism will see
746 a speedup. (Yves Orton)
747
748 · Creating anonymous array and hash references (ie. "[]" and "{}")
749 now incurs no more overhead than creating an anonymous list or
750 hash. Nicholas Clark provided changes with a saving of two ops and
751 one stack push, which was measured as a slightly better than 5%
752 improvement for these operations.
753
754 · Many calls to "strlen()" have been eliminated, either because the
755 length was already known, or by adopting or enhancing APIs that
756 pass lengths. This has been aided by the adoption of a
757 "my_sprintf()" wrapper, which returns the correct C89 value - the
758 length of the formatted string. Previously we could not rely on the
759 return value of "sprintf()", because on some ancient but extant
760 platforms it still returns "char *".
761
762 · "index" is now faster if the search string is stored in UTF-8 but
763 only contains characters in the Latin-1 range.
764
765 · The Unicode swatch cache inside the regexp engine is now used. (the
766 lookup had a key mismatch, present since the initial
767 implementation). [RT #42839]
768
770 Relocatable installations
771 There is now Configure support for creating a relocatable perl tree. If
772 you Configure with "-Duserelocatableinc", then the paths in @INC (and
773 everything else in %Config) can be optionally located via the path of
774 the perl executable.
775
776 At start time, if any paths in @INC or "Config" that Configure marked
777 as relocatable (by starting them with ".../"), then they are prefixed
778 the directory of $^X. This allows the relocation can be configured on a
779 per-directory basis, although the default with "-Duserelocatableinc" is
780 that everything is relocated. The initial install is done to the
781 original configured prefix.
782
783 Configuration improvements
784 Configure is now better at removing temporary files. Tom Callaway (from
785 RedHat) also contributed patches that complete the set of flags passed
786 to the compiler and the linker, in particular that "-fPIC" is now
787 enabled on Linux. It will also croak when your /dev/null isn't a
788 device.
789
790 A new configuration variable "d_pseudofork" has been to Configure, and
791 is available as $Config{d_pseudofork} in the "Config" module. This
792 distinguishes real "fork" support from the pseudofork emulation used on
793 Windows platforms.
794
795 Config.pod and config.sh are now placed correctly for cross-
796 compilation.
797
798 $Config{useshrplib} is now 'true' rather than 'yes' when using a shared
799 perl library.
800
801 Compilation improvements
802 Parallel makes should work properly now, although there may still be
803 problems if "make test" is instructed to run in parallel.
804
805 Many compilation warnings have been cleaned up. A very stubborn
806 compiler warning in "S_emulate_eaccess()" was killed after six
807 attempts. g++ support has been tuned, especially for FreeBSD.
808
809 mkppport has been integrated, and all ppport.h files in the core will
810 now be autogenerated at build time (and removed during cleanup).
811
812 Installation improvements.
813 installman now works with "-Duserelocatableinc" and "DESTDIR".
814
815 installperl no longer installs:
816
817 · static library files of statically linked extensions when a shared
818 perl library is being used. (They are not needed. See "Windows"
819 below).
820
821 · SIGNATURE and PAUSE*.pub (CPAN files)
822
823 · NOTES and PATCHING (ExtUtils files)
824
825 · perlld and ld2 (Cygwin files)
826
827 Platform Specific Changes
828 There are improved hints for AIX, Cygwin, DEC/OSF, FreeBSD, HP/UX, Irix
829 6 Linux, MachTen, NetBSD, OS/390, QNX, SCO, Solaris, SunOS, System V
830 Release 5.x (UnixWare 7, OpenUNIX 8), Ultrix, UMIPS, uts and VOS.
831
832 FreeBSD
833
834 · Drop "-std=c89" and "-ansi" if using "long long" as the main
835 integral type, else in FreeBSD 6.2 (and perhaps other releases),
836 system headers do not declare some functions required by perl.
837
838 Solaris
839
840 · Starting with Solaris 10, we do not want versioned shared
841 libraries, because those often indicate a private use only library.
842 These problems could often be triggered when SUNWbdb (Berkeley DB)
843 was installed. Hence if Solaris 10 is detected set
844 "ignore_versioned_solibs=y".
845
846 VMS
847
848 · Allow IEEE math to be deselected on OpenVMS I64 (but it remains the
849 default).
850
851 · Record IEEE usage in "config.h"
852
853 · Help older VMS compilers by using "ccflags" when building
854 "munchconfig.exe".
855
856 · Don't try to build old "Thread" extension on VMS when
857 "-Duseithreads" has been chosen.
858
859 · Passing a raw string of "NaN" to nawk causes a core dump - so the
860 string has been changed to "*NaN*"
861
862 · t/op/stat.t tests will now test hard links on VMS if they are
863 supported.
864
865 Windows
866
867 · When using a shared perl library installperl no longer installs
868 static library files, import library files and export library files
869 (of statically linked extensions) and empty bootstrap files (of
870 dynamically linked extensions). This fixes a problem building PAR-
871 Packer on Win32 with a debug build of perl.
872
873 · Various improvements to the win32 build process, including support
874 for Visual C++ 2005 Express Edition (aka Visual C++ 8.x).
875
876 · perl.exe will now have an icon if built with MinGW or Borland.
877
878 · Improvements to the perl-static.exe build process.
879
880 · Add Win32 makefile option to link all extensions statically.
881
882 · The WinCE directory has been merged into the Win32 directory.
883
884 · "setlocale" tests have been re-enabled for Windows XP onwards.
885
887 Unicode
888 Many many bugs related to the internal Unicode implementation (UTF-8)
889 have been fixed. In particular, long standing bugs related to returning
890 Unicode via "tie", overloading or $@ are now gone, some of which were
891 never reported.
892
893 "unpack" will internally convert the string back from UTF-8 on numeric
894 types. This is a compromise between the full consistency now in 5.10,
895 and the current behaviour, which is often used as a "feature" on string
896 types.
897
898 Using ":crlf" and "UTF-16" IO layers together will now work.
899
900 Fixed problems with "split", Unicode "/\s+/" and "/ \0/".
901
902 Fixed bug RT #40641 - encoding of Unicode characters in regular
903 expressions.
904
905 Fixed a bug where using certain patterns in a regexp led to a panic.
906 [RT #45337]
907
908 Perl no longer segfaults (due to infinite internal recursion) if the
909 locale's character is not UTF-8 [RT #41442]:
910
911 use open ':locale';
912 print STDERR "\x{201e}"; # „
913
914 PerlIO
915 Inconsistencies have been fixed in the reference counting PerlIO uses
916 to keep track of Unix file descriptors, and the API used by XS code to
917 manage getting and releasing "FILE *"s
918
919 Magic
920 Several bugs have been fixed in Magic, the internal system used to
921 implement features such as "tie", tainting and threads sharing.
922
923 "undef @array" on a tied array now correctly calls the "CLEAR" method.
924
925 Some of the bitwise ops were not checking whether their arguments were
926 magical before using them. [RT #24816]
927
928 Magic is no longer invoked twice by the expression "\&$x"
929
930 A bug with assigning large numbers and tainting has been resolved. [RT
931 #40708]
932
933 A new entry has been added to the MAGIC vtable - "svt_local". This is
934 used when copying magic to the new value during "local", allowing
935 certain problems with localising shared variables to be resolved.
936
937 For the implementation details, see "Magic Virtual Tables" in perlguts.
938
939 Reblessing overloaded objects now works
940 Internally, perl object-ness is on the referent, not the reference,
941 even though methods can only be called via a reference. However, the
942 original implementation of overloading stored flags related to
943 overloading on the reference, relying on the flags being copied when
944 the reference was copied, or set at the creation of a new reference.
945 This manifests in a bug - if you rebless an object from a class that
946 has overloading, into one that does not, then any other existing
947 references think that they (still) point to an overloaded object,
948 choose these C code paths, and then throw errors. Analogously,
949 blessing into an overloaded class when other references exist will
950 result in them not using overloading.
951
952 The implementation has been fixed for 5.10, but this fix changes the
953 semantics of flag bits, so is not binary compatible, so can't be
954 applied to 5.8.9. However, 5.8.9 has a work-around that implements the
955 same bug fix. If the referent has multiple references, then all the
956 other references are located and corrected. A full search is avoided
957 whenever possible by scanning lexicals outwards from the current
958 subroutine, and the argument stack.
959
960 A certain well known Linux vendor applied incomplete versions of this
961 bug fix to their /usr/bin/perl and then prematurely closed bug reports
962 about performance issues without consulting back upstream. This not
963 being enough, they then proceeded to ignore the necessary fixes to
964 these unreleased changes for 11 months, until massive pressure was
965 applied by their long-suffering paying customers, catalysed by the
966 failings being featured on a prominent blog and Slashdot.
967
968 "strict" now propagates correctly into string evals
969 Under 5.8.8 and earlier:
970
971 $ perl5.8.8 -e 'use strict; eval "use foo bar" or die $@'
972 Can't locate foo.pm in @INC (@INC contains: ... .) at (eval 1) line 2.
973 BEGIN failed--compilation aborted at (eval 1) line 2.
974
975 Under 5.8.9 and later:
976
977 $ perl5.8.9 -e 'use strict; eval "use foo bar" or die $@'
978 Bareword "bar" not allowed while "strict subs" in use at (eval 1) line 1.
979
980 This may cause problems with programs that parse the error message and
981 rely on the buggy behaviour.
982
983 Other fixes
984 · The tokenizer no longer treats "=cute" (and other words beginning
985 with "=cut") as a synonym for "=cut".
986
987 · Calling "CORE::require"
988
989 "CORE::require" and "CORE::do" were always parsed as "require" and
990 "do" when they were overridden. This is now fixed.
991
992 · Stopped memory leak on long /etc/groups entries.
993
994 · "while (my $x ...) { ...; redo }" shouldn't "undef $x".
995
996 In the presence of "my" in the conditional of a "while()",
997 "until()", or "for(;;)" loop, we now add an extra scope to the body
998 so that "redo" doesn't "undef" the lexical.
999
1000 · The "encoding" pragma now correctly ignores anything following an
1001 "@" character in the "LC_ALL" and "LANG" environment variables. [RT
1002 # 49646]
1003
1004 · A segfault observed with some gcc 3.3 optimisations is resolved.
1005
1006 · A possible segfault when "unpack" used in scalar context with "()"
1007 groups is resolved. [RT #50256]
1008
1009 · Resolved issue where $! could be changed by a signal handler
1010 interrupting a "system" call.
1011
1012 · Fixed bug RT #37886, symbolic deferencing was allowed in the
1013 argument of "defined" even under the influence of "use strict
1014 'refs'".
1015
1016 · Fixed bug RT #43207, where "lc"/"uc" inside "sort" affected the
1017 return value.
1018
1019 · Fixed bug RT #45607, where "*{"BONK"} = \&{"BONK"}" didn't work
1020 correctly.
1021
1022 · Fixed bug RT #35878, croaking from a XSUB called via "goto &xsub"
1023 corrupts perl internals.
1024
1025 · Fixed bug RT #32539, DynaLoader.o is moved into libperl.so to avoid
1026 the need to statically link DynaLoader into the stub perl
1027 executable. With this libperl.so provides everything needed to get
1028 a functional embedded perl interpreter to run.
1029
1030 · Fix bug RT #36267 so that assigning to a tied hash doesn't change
1031 the underlying hash.
1032
1033 · Fix bug RT #6006, regexp replaces using large replacement variables
1034 fail some of the time, i.e. when substitution contains something
1035 like "${10}" (note the bracket) instead of just $10.
1036
1037 · Fix bug RT #45053, "Perl_newCONSTSUB()" is now thread safe.
1038
1039 Platform Specific Fixes
1040 Darwin / MacOS X
1041
1042 · Various improvements to 64 bit builds.
1043
1044 · Mutex protection added in "PerlIOStdio_close()" to avoid race
1045 conditions. Hopefully this fixes failures in the threads tests
1046 free.t and blocks.t.
1047
1048 · Added forked terminal support to the debugger, with the ability to
1049 update the window title.
1050
1051 OS/2
1052
1053 · A build problem with specifying "USE_MULTI" and "USE_ITHREADS" but
1054 without "USE_IMP_SYS" has been fixed.
1055
1056 · "OS2::REXX" upgraded to version 1.04
1057
1058 Tru64
1059
1060 · Aligned floating point build policies for cc and gcc.
1061
1062 RedHat Linux
1063
1064 · Revisited a patch from 5.6.1 for RH7.2 for Intel's icc [RT #7916],
1065 added an additional check for $Config{gccversion}.
1066
1067 Solaris/i386
1068
1069 · Use "-DPTR_IS_LONG" when using 64 bit integers
1070
1071 VMS
1072
1073 · Fixed "PerlIO::Scalar" in-memory file record-style reads.
1074
1075 · pipe shutdown at process exit should now be more robust.
1076
1077 · Bugs in VMS exit handling tickled by "Test::Harness" 2.64 have been
1078 fixed.
1079
1080 · Fix "fcntl()" locking capability test in configure.com.
1081
1082 · Replaced "shrplib='define'" with "useshrplib='true'" on VMS.
1083
1084 Windows
1085
1086 · "File::Find" used to fail when the target directory is a bare drive
1087 letter and "no_chdir" is 1 (the default is 0). [RT #41555]
1088
1089 · A build problem with specifying "USE_MULTI" and "USE_ITHREADS" but
1090 without "USE_IMP_SYS" has been fixed.
1091
1092 · The process id is no longer truncated to 16 bits on some Windows
1093 platforms ( http://bugs.activestate.com/show_bug.cgi?id=72443 )
1094
1095 · Fixed bug RT #54828 in perlio.c where calling "binmode" on Win32
1096 and Cgywin may cause a segmentation fault.
1097
1098 Smaller fixes
1099 · It is now possible to overload "eq" when using "nomethod".
1100
1101 · Various problems using "overload" with 64 bit integers corrected.
1102
1103 · The reference count of "PerlIO" file descriptors is now correctly
1104 handled.
1105
1106 · On VMS, escaped dots will be preserved when converted to UNIX
1107 syntax.
1108
1109 · "keys %+" no longer throws an 'ambiguous' warning.
1110
1111 · Using "#!perl -d" could trigger an assertion, which has been fixed.
1112
1113 · Don't stringify tied code references in @INC when calling
1114 "require".
1115
1116 · Code references in @INC report the correct file name when
1117 "__FILE__" is used.
1118
1119 · Width and precision in sprintf didn't handle characters above 255
1120 correctly. [RT #40473]
1121
1122 · List slices with indices out of range now work more consistently.
1123 [RT #39882]
1124
1125 · A change introduced with perl 5.8.1 broke the parsing of arguments
1126 of the form "-foo=bar" with the "-s" on the <#!> line. This has
1127 been fixed. See http://bugs.activestate.com/show_bug.cgi?id=43483
1128
1129 · "tr///" is now threadsafe. Previously it was storing a swash inside
1130 its OP, rather than in a pad.
1131
1132 · pod2html labels anchors more consistently and handles nested
1133 definition lists better.
1134
1135 · "threads" cleanup veto has been extended to include "perl_free()"
1136 and "perl_destruct()"
1137
1138 · On some systems, changes to $ENV{TZ} would not always be respected
1139 by the underlying calls to "localtime_r()". Perl now forces the
1140 inspection of the environment on these systems.
1141
1142 · The special variable $^R is now more consistently set when
1143 executing regexps using the "(?{...})" construct. In particular,
1144 it will still be set even if backreferences or optional sub-
1145 patterns "(?:...)?" are used.
1146
1148 panic: sv_chop %s
1149 This new fatal error occurs when the C routine "Perl_sv_chop()" was
1150 passed a position that is not within the scalar's string buffer. This
1151 is caused by buggy XS code, and at this point recovery is not possible.
1152
1153 Maximal count of pending signals (%s) exceeded
1154 This new fatal error occurs when the perl process has to abort due to
1155 too many pending signals, which is bound to prevent perl from being
1156 able to handle further incoming signals safely.
1157
1158 panic: attempt to call %s in %s
1159 This new fatal error occurs when the ACL version file test operator is
1160 used where it is not available on the current platform. Earlier checks
1161 mean that it should never be possible to get this.
1162
1163 FETCHSIZE returned a negative value
1164 New error indicating that a tied array has claimed to have a negative
1165 number of elements.
1166
1167 Can't upgrade %s (%d) to %d
1168 Previously the internal error from the SV upgrade code was the less
1169 informative Can't upgrade that kind of scalar. It now reports the
1170 current internal type, and the new type requested.
1171
1172 %s argument is not a HASH or ARRAY element or a subroutine
1173 This error, thrown if an invalid argument is provided to "exists" now
1174 correctly includes "or a subroutine". [RT #38955]
1175
1176 Cannot make the non-overridable builtin %s fatal
1177 This error in "Fatal" previously did not show the name of the builtin
1178 in question (now represented by %s above).
1179
1180 Unrecognized character '%s' in column %d
1181 This error previously did not state the column.
1182
1183 Offset outside string
1184 This can now also be generated by a "seek" on a file handle using
1185 "PerlIO::scalar".
1186
1187 Invalid escape in the specified encoding in regexp; marked by <-- HERE in
1188 m/%s/
1189 New error, introduced as part of the fix to RT #40641 to handle
1190 encoding of Unicode characters in regular expression comments.
1191
1192 Your machine doesn't support dump/undump.
1193 A more informative fatal error issued when calling "dump" on Win32 and
1194 Cygwin. (Given that the purpose of "dump" is to abort with a core dump,
1195 and core dumps can't be produced on these platforms, this is more
1196 useful than silently exiting.)
1197
1199 The perl sources can now be compiled with a C++ compiler instead of a C
1200 compiler. A necessary implementation details is that under C++, the
1201 macro "XS" used to define XSUBs now includes an "extern "C""
1202 definition. A side effect of this is that C++ code that used the
1203 construction
1204
1205 typedef XS(SwigPerlWrapper);
1206
1207 now needs to be written
1208
1209 typedef XSPROTO(SwigPerlWrapper);
1210
1211 using the new "XSPROTO" macro, in order to compile. C extensions are
1212 unaffected, although C extensions are encouraged to use "XSPROTO" too.
1213 This change was present in the 5.10.0 release of perl, so any actively
1214 maintained code that happened to use this construction should already
1215 have been adapted. Code that needs changing will fail with a
1216 compilation error.
1217
1218 "set" magic on localizing/assigning to a magic variable will now only
1219 trigger for container magics, i.e. it will for %ENV or %SIG but not for
1220 $#array.
1221
1222 The new API macro "newSVpvs()" can be used in place of constructions
1223 such as "newSVpvn("ISA", 3)". It takes a single string constant, and at
1224 C compile time determines its length.
1225
1226 The new API function "Perl_newSV_type()" can be used as a more
1227 efficient replacement of the common idiom
1228
1229 sv = newSV(0);
1230 sv_upgrade(sv, type);
1231
1232 Similarly "Perl_newSVpvn_flags()" can be used to combine
1233 "Perl_newSVpv()" with "Perl_sv_2mortal()" or the equivalent
1234 "Perl_sv_newmortal()" with "Perl_sv_setpvn()"
1235
1236 Two new macros "mPUSHs()" and "mXPUSHs()" are added, to make it easier
1237 to push mortal SVs onto the stack. They were then used to fix several
1238 bugs where values on the stack had not been mortalised.
1239
1240 A "Perl_signbit()" function was added to test the sign of an "NV". It
1241 maps to the system one when available.
1242
1243 "Perl_av_reify()", "Perl_lex_end()", "Perl_mod()", "Perl_op_clear()",
1244 "Perl_pop_return()", "Perl_qerror()", "Perl_setdefout()",
1245 "Perl_vivify_defelem()" and "Perl_yylex()" are now visible to
1246 extensions. This was required to allow "Data::Alias" to work on
1247 Windows.
1248
1249 "Perl_find_runcv()" is now visible to perl core extensions. This was
1250 required to allow "Sub::Current" to work on Windows.
1251
1252 "ptr_table*" functions are now available in unthreaded perl. "Storable"
1253 takes advantage of this.
1254
1255 There have been many small cleanups made to the internals. In
1256 particular, "Perl_sv_upgrade()" has been simplified considerably, with
1257 a straight-through code path that uses "memset()" and "memcpy()" to
1258 initialise the new body, rather than assignment via multiple temporary
1259 variables. It has also benefited from simplification and de-duplication
1260 of the arena management code.
1261
1262 A lot of small improvements in the code base were made due to reports
1263 from the Coverity static code analyzer.
1264
1265 Corrected use and documentation of "Perl_gv_stashpv()",
1266 "Perl_gv_stashpvn()", "Perl_gv_stashsv()" functions (last parameter is
1267 a bitmask, not boolean).
1268
1269 "PERL_SYS_INIT", "PERL_SYS_INIT3" and "PERL_SYS_TERM" macros have been
1270 changed into functions.
1271
1272 "PERLSYS_TERM" no longer requires a context. "PerlIO_teardown()" is now
1273 called without a context, and debugging output in this function has
1274 been disabled because that required that an interpreter was present, an
1275 invalid assumption at termination time.
1276
1277 All compile time options which affect binary compatibility have been
1278 grouped together into a global variable ("PL_bincompat_options").
1279
1280 The values of "PERL_REVISION", "PERL_VERSION" and "PERL_SUBVERSION" are
1281 now baked into global variables (and hence into any shared perl
1282 library). Additionally under "MULTIPLICITY", the perl executable now
1283 records the size of the interpreter structure (total, and for this
1284 version). Coupled with "PL_bincompat_options" this will allow 5.8.10
1285 (and later), when compiled with a shared perl library, to perform
1286 sanity checks in "main()" to verify that the shared library is indeed
1287 binary compatible.
1288
1289 Symbolic references can now have embedded NULs. The new public function
1290 "Perl_get_cvn_flags()" can be used in extensions if you have to handle
1291 them.
1292
1293 Macro cleanups
1294 The core code, and XS code in ext that is not dual-lived on CPAN, no
1295 longer uses the macros "PL_na", "NEWSV()", "Null()", "Nullav",
1296 "Nullcv", "Nullhv", "Nullhv" etc. Their use is discouraged in new code,
1297 particularly "PL_na", which is a small performance hit.
1298
1300 Many modules updated from CPAN incorporate new tests. Some core
1301 specific tests have been added:
1302
1303 ext/DynaLoader/t/DynaLoader.t
1304 Tests for the "DynaLoader" module.
1305
1306 t/comp/fold.t
1307 Tests for compile-time constant folding.
1308
1309 t/io/pvbm.t
1310 Tests incorporated from 5.10.0 which check that there is no
1311 unexpected interaction between the internal types "PVBM" and
1312 "PVGV".
1313
1314 t/lib/proxy_constant_subs.t
1315 Tests for the new form of constant subroutines.
1316
1317 t/op/attrhand.t
1318 Tests for "Attribute::Handlers".
1319
1320 t/op/dbm.t
1321 Tests for "dbmopen".
1322
1323 t/op/inccode-tie.t
1324 Calls all tests in t/op/inccode.t after first tying @INC.
1325
1326 t/op/incfilter.t
1327 Tests for for source filters returned from code references in @INC.
1328
1329 t/op/kill0.t
1330 Tests for RT #30970.
1331
1332 t/op/qrstack.t
1333 Tests for RT #41484.
1334
1335 t/op/qr.t
1336 Tests for the "qr//" construct.
1337
1338 t/op/regexp_qr_embed.t
1339 Tests for the "qr//" construct within another regexp.
1340
1341 t/op/regexp_qr.t
1342 Tests for the "qr//" construct.
1343
1344 t/op/rxcode.t
1345 Tests for RT #32840.
1346
1347 t/op/studytied.t
1348 Tests for "study" on tied scalars.
1349
1350 t/op/substT.t
1351 Tests for "subst" run under "-T" mode.
1352
1353 t/op/symbolcache.t
1354 Tests for "undef" and "delete" on stash entries that are bound to
1355 subroutines or methods.
1356
1357 t/op/upgrade.t
1358 Tests for "Perl_sv_upgrade()".
1359
1360 t/mro/package_aliases.t
1361 MRO tests for "isa" and package aliases.
1362
1363 t/pod/twice.t
1364 Tests for calling "Pod::Parser" twice.
1365
1366 t/run/cloexec.t
1367 Tests for inheriting file descriptors across "exec" (close-on-
1368 exec).
1369
1370 t/uni/cache.t
1371 Tests for the UTF-8 caching code.
1372
1373 t/uni/chr.t
1374 Test that strange encodings do not upset "Perl_pp_chr()".
1375
1376 t/uni/greek.t
1377 Tests for RT #40641.
1378
1379 t/uni/latin2.t
1380 Tests for RT #40641.
1381
1382 t/uni/overload.t
1383 Tests for returning Unicode from overloaded values.
1384
1385 t/uni/tie.t
1386 Tests for returning Unicode from tied variables.
1387
1389 There are no known new bugs.
1390
1391 However, programs that rely on bugs that have been fixed will have
1392 problems. Also, many bug fixes present in 5.10.0 can't be back-ported
1393 to the 5.8.x branch, because they require changes that are binary
1394 incompatible, or because the code changes are too large and hence too
1395 risky to incorporate.
1396
1397 We have only limited volunteer labour, and the maintenance burden is
1398 getting increasingly complex. Hence this will be the last significant
1399 release of the 5.8.x series. Any future releases of 5.8.x will likely
1400 only be to deal with security issues, and platform build failures.
1401 Hence you should look to migrating to 5.10.x, if you have not started
1402 already. Alternatively, if business requirements constrain you to
1403 continue to use 5.8.x, you may wish to consider commercial support from
1404 firms such as ActiveState.
1405
1407 Win32
1408 "readdir()", "cwd()", $^X and @INC now use the alternate (short)
1409 filename if the long name is outside the current codepage (Jan Dubois).
1410
1411 Updated Modules
1412
1413 · "Win32" upgraded to version 0.38. Now has a documented 'WinVista'
1414 response from "GetOSName" and support for Vista's privilege
1415 elevation in "IsAdminUser". Support for Unicode characters in path
1416 names. Improved cygwin and Win64 compatibility.
1417
1418 · "Win32API" updated to 0.1001_01
1419
1420 · "killpg()" support added to "MSWin32" (Jan Dubois).
1421
1422 · "File::Spec::Win32" upgraded to version 3.2701
1423
1424 OS/2
1425 Updated Modules
1426
1427 · "OS2::Process" upgraded to 1.03
1428
1429 Ilya Zakharevich has added and documented several "Window*" and
1430 "Clipbrd*" functions.
1431
1432 · "OS2::REXX::DLL", "OS2::REXX" updated to version 1.03
1433
1434 VMS
1435 Updated Modules
1436
1437 · "DCLsym" upgraded to version 1.03
1438
1439 · "Stdio" upgraded to version 2.4
1440
1441 · "VMS::XSSymSet" upgraded to 1.1.
1442
1444 Nick Ing-Simmons, long time Perl hacker, author of the "Tk" and
1445 "Encode" modules, perlio.c in the core, and 5.003_02 pumpking, died of
1446 a heart attack on 25th September 2006. He will be missed.
1447
1449 Some of the work in this release was funded by a TPF grant.
1450
1451 Steve Hay worked behind the scenes working out the causes of the
1452 differences between core modules, their CPAN releases, and previous
1453 core releases, and the best way to rectify them. He doesn't want to do
1454 it again. I know this feeling, and I'm very glad he did it this time,
1455 instead of me.
1456
1457 Paul Fenwick assembled a team of 18 volunteers, who broke the back of
1458 writing this document. In particular, Bradley Dean, Eddy Tan, and
1459 Vincent Pit provided half the team's contribution.
1460
1461 Schwern verified the list of updated module versions, correcting quite
1462 a few errors that I (and everyone else) had missed, both wrongly stated
1463 module versions, and changed modules that had not been listed.
1464
1465 The crack Berlin-based QA team of Andreas Koenig and Slaven Rezic
1466 tirelessly re-built snapshots, tested most everything CPAN against
1467 them, and then identified the changes responsible for any module
1468 regressions, ensuring that several show-stopper bugs were stomped
1469 before the first release candidate was cut.
1470
1471 The other core committers contributed most of the changes, and applied
1472 most of the patches sent in by the hundreds of contributors listed in
1473 AUTHORS.
1474
1475 And obviously, Larry Wall, without whom we wouldn't have Perl.
1476
1478 If you find what you think is a bug, you might check the articles
1479 recently posted to the comp.lang.perl.misc newsgroup and the perl bug
1480 database at http://bugs.perl.org. There may also be information at
1481 http://www.perl.org, the Perl Home Page.
1482
1483 If you believe you have an unreported bug, please run the perlbug
1484 program included with your release. Be sure to trim your bug down to a
1485 tiny but sufficient test case. Your bug report, along with the output
1486 of "perl -V", will be sent off to perlbug@perl.org to be analysed by
1487 the Perl porting team. You can browse and search the Perl 5 bugs at
1488 http://bugs.perl.org/
1489
1490 If the bug you are reporting has security implications, which make it
1491 inappropriate to send to a publicly archived mailing list, then please
1492 send it to perl5-security-report@perl.org. This points to a closed
1493 subscription unarchived mailing list, which includes all the core
1494 committers, who be able to help assess the impact of issues, figure out
1495 a resolution, and help co-ordinate the release of patches to mitigate
1496 or fix the problem across all platforms on which Perl is supported.
1497 Please only use this address for security issues in the Perl core, not
1498 for modules independently distributed on CPAN.
1499
1501 The Changes file for exhaustive details on what changed.
1502
1503 The INSTALL file for how to build Perl.
1504
1505 The README file for general stuff.
1506
1507 The Artistic and Copying files for copyright information.
1508
1509
1510
1511perl v5.10.1 2009-05-12 PERL589DELTA(1)