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 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
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 "<>" quoting in "#include" statements.
624
625 • now generates correct code for "#if defined A || defined B" [RT
626 #39130]
627
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
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
719 • The default since perl 5.000 has been for perl to create an empty
720 scalar with every new typeglob. The increased use of lexical
721 variables means that most are now unused. Thanks to Nicholas
722 Clark's efforts, Perl can now be compiled with
723 "-DPERL_DONT_CREATE_GVSV" to avoid creating these empty scalars.
724 This will significantly decrease the number of scalars allocated
725 for all configurations, and the number of scalars that need to be
726 copied for ithread creation. Whilst this option is binary
727 compatible with existing perl installations, it does change a long-
728 standing assumption about the internals, hence it is not enabled by
729 default, as some third party code may rely on the old behaviour.
730
731 We would recommend testing with this configuration on new
732 deployments of perl, particularly for multi-threaded servers, to
733 see whether all third party code is compatible with it, as this
734 configuration may give useful performance improvements. For
735 existing installations we would not recommend changing to this
736 configuration unless thorough testing is performed before
737 deployment.
738
739 • "diagnostics" no longer uses $&, which results in large speedups
740 for regexp matching in all code using it.
741
742 • Regular expressions classes of a single character are now treated
743 the same as if the character had been used as a literal, meaning
744 that code that uses char-classes as an escaping mechanism will see
745 a speedup. (Yves Orton)
746
747 • Creating anonymous array and hash references (ie. "[]" and "{}")
748 now incurs no more overhead than creating an anonymous list or
749 hash. Nicholas Clark provided changes with a saving of two ops and
750 one stack push, which was measured as a slightly better than 5%
751 improvement for these operations.
752
753 • Many calls to "strlen()" have been eliminated, either because the
754 length was already known, or by adopting or enhancing APIs that
755 pass lengths. This has been aided by the adoption of a
756 "my_sprintf()" wrapper, which returns the correct C89 value - the
757 length of the formatted string. Previously we could not rely on the
758 return value of "sprintf()", because on some ancient but extant
759 platforms it still returns "char *".
760
761 • "index" is now faster if the search string is stored in UTF-8 but
762 only contains characters in the Latin-1 range.
763
764 • The Unicode swatch cache inside the regexp engine is now used. (the
765 lookup had a key mismatch, present since the initial
766 implementation). [RT #42839]
767
769 Relocatable installations
770 There is now Configure support for creating a relocatable perl tree. If
771 you Configure with "-Duserelocatableinc", then the paths in @INC (and
772 everything else in %Config) can be optionally located via the path of
773 the perl executable.
774
775 At start time, if any paths in @INC or "Config" that Configure marked
776 as relocatable (by starting them with ".../"), then they are prefixed
777 the directory of $^X. This allows the relocation can be configured on a
778 per-directory basis, although the default with "-Duserelocatableinc" is
779 that everything is relocated. The initial install is done to the
780 original configured prefix.
781
782 Configuration improvements
783 Configure is now better at removing temporary files. Tom Callaway (from
784 RedHat) also contributed patches that complete the set of flags passed
785 to the compiler and the linker, in particular that "-fPIC" is now
786 enabled on Linux. It will also croak when your /dev/null isn't a
787 device.
788
789 A new configuration variable "d_pseudofork" has been to Configure, and
790 is available as $Config{d_pseudofork} in the "Config" module. This
791 distinguishes real "fork" support from the pseudofork emulation used on
792 Windows platforms.
793
794 Config.pod and config.sh are now placed correctly for cross-
795 compilation.
796
797 $Config{useshrplib} is now 'true' rather than 'yes' when using a shared
798 perl library.
799
800 Compilation improvements
801 Parallel makes should work properly now, although there may still be
802 problems if "make test" is instructed to run in parallel.
803
804 Many compilation warnings have been cleaned up. A very stubborn
805 compiler warning in "S_emulate_eaccess()" was killed after six
806 attempts. g++ support has been tuned, especially for FreeBSD.
807
808 mkppport has been integrated, and all ppport.h files in the core will
809 now be autogenerated at build time (and removed during cleanup).
810
811 Installation improvements.
812 installman now works with "-Duserelocatableinc" and "DESTDIR".
813
814 installperl no longer installs:
815
816 • static library files of statically linked extensions when a shared
817 perl library is being used. (They are not needed. See "Windows"
818 below).
819
820 • SIGNATURE and PAUSE*.pub (CPAN files)
821
822 • NOTES and PATCHING (ExtUtils files)
823
824 • perlld and ld2 (Cygwin files)
825
826 Platform Specific Changes
827 There are improved hints for AIX, Cygwin, DEC/OSF, FreeBSD, HP/UX, Irix
828 6 Linux, MachTen, NetBSD, OS/390, QNX, SCO, Solaris, SunOS, System V
829 Release 5.x (UnixWare 7, OpenUNIX 8), Ultrix, UMIPS, uts and VOS.
830
831 FreeBSD
832
833 • Drop "-std=c89" and "-ansi" if using "long long" as the main
834 integral type, else in FreeBSD 6.2 (and perhaps other releases),
835 system headers do not declare some functions required by perl.
836
837 Solaris
838
839 • Starting with Solaris 10, we do not want versioned shared
840 libraries, because those often indicate a private use only library.
841 These problems could often be triggered when SUNWbdb (Berkeley DB)
842 was installed. Hence if Solaris 10 is detected set
843 "ignore_versioned_solibs=y".
844
845 VMS
846
847 • Allow IEEE math to be deselected on OpenVMS I64 (but it remains the
848 default).
849
850 • Record IEEE usage in "config.h"
851
852 • Help older VMS compilers by using "ccflags" when building
853 "munchconfig.exe".
854
855 • Don't try to build old "Thread" extension on VMS when
856 "-Duseithreads" has been chosen.
857
858 • Passing a raw string of "NaN" to nawk causes a core dump - so the
859 string has been changed to "*NaN*"
860
861 • t/op/stat.t tests will now test hard links on VMS if they are
862 supported.
863
864 Windows
865
866 • When using a shared perl library installperl no longer installs
867 static library files, import library files and export library files
868 (of statically linked extensions) and empty bootstrap files (of
869 dynamically linked extensions). This fixes a problem building PAR-
870 Packer on Win32 with a debug build of perl.
871
872 • Various improvements to the win32 build process, including support
873 for Visual C++ 2005 Express Edition (aka Visual C++ 8.x).
874
875 • perl.exe will now have an icon if built with MinGW or Borland.
876
877 • Improvements to the perl-static.exe build process.
878
879 • Add Win32 makefile option to link all extensions statically.
880
881 • The WinCE directory has been merged into the Win32 directory.
882
883 • "setlocale" tests have been re-enabled for Windows XP onwards.
884
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}"; # „
912
913 PerlIO
914 Inconsistencies have been fixed in the reference counting PerlIO uses
915 to keep track of Unix file descriptors, and the API used by XS code to
916 manage getting and releasing "FILE *"s
917
918 Magic
919 Several bugs have been fixed in Magic, the internal system used to
920 implement features such as "tie", tainting and threads sharing.
921
922 "undef @array" on a tied array now correctly calls the "CLEAR" method.
923
924 Some of the bitwise ops were not checking whether their arguments were
925 magical before using them. [RT #24816]
926
927 Magic is no longer invoked twice by the expression "\&$x"
928
929 A bug with assigning large numbers and tainting has been resolved. [RT
930 #40708]
931
932 A new entry has been added to the MAGIC vtable - "svt_local". This is
933 used when copying magic to the new value during "local", allowing
934 certain problems with localising shared variables to be resolved.
935
936 For the implementation details, see "Magic Virtual Tables" in perlguts.
937
938 Reblessing overloaded objects now works
939 Internally, perl object-ness is on the referent, not the reference,
940 even though methods can only be called via a reference. However, the
941 original implementation of overloading stored flags related to
942 overloading on the reference, relying on the flags being copied when
943 the reference was copied, or set at the creation of a new reference.
944 This manifests in a bug - if you rebless an object from a class that
945 has overloading, into one that does not, then any other existing
946 references think that they (still) point to an overloaded object,
947 choose these C code paths, and then throw errors. Analogously,
948 blessing into an overloaded class when other references exist will
949 result in them not using overloading.
950
951 The implementation has been fixed for 5.10, but this fix changes the
952 semantics of flag bits, so is not binary compatible, so can't be
953 applied to 5.8.9. However, 5.8.9 has a work-around that implements the
954 same bug fix. If the referent has multiple references, then all the
955 other references are located and corrected. A full search is avoided
956 whenever possible by scanning lexicals outwards from the current
957 subroutine, and the argument stack.
958
959 A certain well known Linux vendor applied incomplete versions of this
960 bug fix to their /usr/bin/perl and then prematurely closed bug reports
961 about performance issues without consulting back upstream. This not
962 being enough, they then proceeded to ignore the necessary fixes to
963 these unreleased changes for 11 months, until massive pressure was
964 applied by their long-suffering paying customers, catalysed by the
965 failings being featured on a prominent blog and Slashdot.
966
967 "strict" now propagates correctly into string evals
968 Under 5.8.8 and earlier:
969
970 $ perl5.8.8 -e 'use strict; eval "use foo bar" or die $@'
971 Can't locate foo.pm in @INC (@INC contains: ... .) at (eval 1) line 2.
972 BEGIN failed--compilation aborted at (eval 1) line 2.
973
974 Under 5.8.9 and later:
975
976 $ perl5.8.9 -e 'use strict; eval "use foo bar" or die $@'
977 Bareword "bar" not allowed while "strict subs" in use at (eval 1) line 1.
978
979 This may cause problems with programs that parse the error message and
980 rely on the buggy behaviour.
981
982 Other fixes
983 • The tokenizer no longer treats "=cute" (and other words beginning
984 with "=cut") as a synonym for "=cut".
985
986 • Calling "CORE::require"
987
988 "CORE::require" and "CORE::do" were always parsed as "require" and
989 "do" when they were overridden. This is now fixed.
990
991 • Stopped memory leak on long /etc/groups entries.
992
993 • "while (my $x ...) { ...; redo }" shouldn't "undef $x".
994
995 In the presence of "my" in the conditional of a "while()",
996 "until()", or "for(;;)" loop, we now add an extra scope to the body
997 so that "redo" doesn't "undef" the lexical.
998
999 • The "encoding" pragma now correctly ignores anything following an
1000 "@" character in the "LC_ALL" and "LANG" environment variables. [RT
1001 # 49646]
1002
1003 • A segfault observed with some gcc 3.3 optimisations is resolved.
1004
1005 • A possible segfault when "unpack" used in scalar context with "()"
1006 groups is resolved. [RT #50256]
1007
1008 • Resolved issue where $! could be changed by a signal handler
1009 interrupting a "system" call.
1010
1011 • Fixed bug RT #37886, symbolic dereferencing was allowed in the
1012 argument of "defined" even under the influence of "use strict
1013 'refs'".
1014
1015 • Fixed bug RT #43207, where "lc"/"uc" inside "sort" affected the
1016 return value.
1017
1018 • Fixed bug RT #45607, where "*{"BONK"} = \&{"BONK"}" didn't work
1019 correctly.
1020
1021 • Fixed bug RT #35878, croaking from a XSUB called via "goto &xsub"
1022 corrupts perl internals.
1023
1024 • Fixed bug RT #32539, DynaLoader.o is moved into libperl.so to avoid
1025 the need to statically link DynaLoader into the stub perl
1026 executable. With this libperl.so provides everything needed to get
1027 a functional embedded perl interpreter to run.
1028
1029 • Fix bug RT #36267 so that assigning to a tied hash doesn't change
1030 the underlying hash.
1031
1032 • Fix bug RT #6006, regexp replaces using large replacement variables
1033 fail some of the time, i.e. when substitution contains something
1034 like "${10}" (note the bracket) instead of just $10.
1035
1036 • Fix bug RT #45053, "Perl_newCONSTSUB()" is now thread safe.
1037
1038 Platform Specific Fixes
1039 Darwin / MacOS X
1040
1041 • Various improvements to 64 bit builds.
1042
1043 • Mutex protection added in "PerlIOStdio_close()" to avoid race
1044 conditions. Hopefully this fixes failures in the threads tests
1045 free.t and blocks.t.
1046
1047 • Added forked terminal support to the debugger, with the ability to
1048 update the window title.
1049
1050 OS/2
1051
1052 • A build problem with specifying "USE_MULTI" and "USE_ITHREADS" but
1053 without "USE_IMP_SYS" has been fixed.
1054
1055 • "OS2::REXX" upgraded to version 1.04
1056
1057 Tru64
1058
1059 • Aligned floating point build policies for cc and gcc.
1060
1061 RedHat Linux
1062
1063 • Revisited a patch from 5.6.1 for RH7.2 for Intel's icc [RT #7916],
1064 added an additional check for $Config{gccversion}.
1065
1066 Solaris/i386
1067
1068 • Use "-DPTR_IS_LONG" when using 64 bit integers
1069
1070 VMS
1071
1072 • Fixed "PerlIO::Scalar" in-memory file record-style reads.
1073
1074 • pipe shutdown at process exit should now be more robust.
1075
1076 • Bugs in VMS exit handling tickled by "Test::Harness" 2.64 have been
1077 fixed.
1078
1079 • Fix "fcntl()" locking capability test in configure.com.
1080
1081 • Replaced "shrplib='define'" with "useshrplib='true'" on VMS.
1082
1083 Windows
1084
1085 • "File::Find" used to fail when the target directory is a bare drive
1086 letter and "no_chdir" is 1 (the default is 0). [RT #41555]
1087
1088 • A build problem with specifying "USE_MULTI" and "USE_ITHREADS" but
1089 without "USE_IMP_SYS" has been fixed.
1090
1091 • The process id is no longer truncated to 16 bits on some Windows
1092 platforms ( http://bugs.activestate.com/show_bug.cgi?id=72443 )
1093
1094 • Fixed bug RT #54828 in perlio.c where calling "binmode" on Win32
1095 and Cygwin may cause a segmentation fault.
1096
1097 Smaller fixes
1098 • It is now possible to overload "eq" when using "nomethod".
1099
1100 • Various problems using "overload" with 64 bit integers corrected.
1101
1102 • The reference count of "PerlIO" file descriptors is now correctly
1103 handled.
1104
1105 • On VMS, escaped dots will be preserved when converted to Unix
1106 syntax.
1107
1108 • "keys %+" no longer throws an 'ambiguous' warning.
1109
1110 • Using "#!perl -d" could trigger an assertion, which has been fixed.
1111
1112 • Don't stringify tied code references in @INC when calling
1113 "require".
1114
1115 • Code references in @INC report the correct file name when
1116 "__FILE__" is used.
1117
1118 • Width and precision in sprintf didn't handle characters above 255
1119 correctly. [RT #40473]
1120
1121 • List slices with indices out of range now work more consistently.
1122 [RT #39882]
1123
1124 • A change introduced with perl 5.8.1 broke the parsing of arguments
1125 of the form "-foo=bar" with the "-s" on the <#!> line. This has
1126 been fixed. See http://bugs.activestate.com/show_bug.cgi?id=43483
1127
1128 • "tr///" is now threadsafe. Previously it was storing a swash inside
1129 its OP, rather than in a pad.
1130
1131 • pod2html labels anchors more consistently and handles nested
1132 definition lists better.
1133
1134 • "threads" cleanup veto has been extended to include "perl_free()"
1135 and "perl_destruct()"
1136
1137 • On some systems, changes to $ENV{TZ} would not always be respected
1138 by the underlying calls to "localtime_r()". Perl now forces the
1139 inspection of the environment on these systems.
1140
1141 • The special variable $^R is now more consistently set when
1142 executing regexps using the "(?{...})" construct. In particular,
1143 it will still be set even if backreferences or optional sub-
1144 patterns "(?:...)?" are used.
1145
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
1198 The perl sources can now be compiled with a C++ compiler instead of a C
1199 compiler. A necessary implementation details is that under C++, the
1200 macro "XS" used to define XSUBs now includes an "extern "C""
1201 definition. A side effect of this is that C++ code that used the
1202 construction
1203
1204 typedef XS(SwigPerlWrapper);
1205
1206 now needs to be written
1207
1208 typedef XSPROTO(SwigPerlWrapper);
1209
1210 using the new "XSPROTO" macro, in order to compile. C extensions are
1211 unaffected, although C extensions are encouraged to use "XSPROTO" too.
1212 This change was present in the 5.10.0 release of perl, so any actively
1213 maintained code that happened to use this construction should already
1214 have been adapted. Code that needs changing will fail with a
1215 compilation error.
1216
1217 "set" magic on localizing/assigning to a magic variable will now only
1218 trigger for container magics, i.e. it will for %ENV or %SIG but not for
1219 $#array.
1220
1221 The new API macro "newSVpvs()" can be used in place of constructions
1222 such as "newSVpvn("ISA", 3)". It takes a single string constant, and at
1223 C compile time determines its length.
1224
1225 The new API function "Perl_newSV_type()" can be used as a more
1226 efficient replacement of the common idiom
1227
1228 sv = newSV(0);
1229 sv_upgrade(sv, type);
1230
1231 Similarly "Perl_newSVpvn_flags()" can be used to combine
1232 "Perl_newSVpv()" with "Perl_sv_2mortal()" or the equivalent
1233 "Perl_sv_newmortal()" with "Perl_sv_setpvn()"
1234
1235 Two new macros "mPUSHs()" and "mXPUSHs()" are added, to make it easier
1236 to push mortal SVs onto the stack. They were then used to fix several
1237 bugs where values on the stack had not been mortalised.
1238
1239 A "Perl_signbit()" function was added to test the sign of an "NV". It
1240 maps to the system one when available.
1241
1242 "Perl_av_reify()", "Perl_lex_end()", "Perl_mod()", "Perl_op_clear()",
1243 "Perl_pop_return()", "Perl_qerror()", "Perl_setdefout()",
1244 "Perl_vivify_defelem()" and "Perl_yylex()" are now visible to
1245 extensions. This was required to allow "Data::Alias" to work on
1246 Windows.
1247
1248 "Perl_find_runcv()" is now visible to perl core extensions. This was
1249 required to allow "Sub::Current" to work on Windows.
1250
1251 "ptr_table*" functions are now available in unthreaded perl. "Storable"
1252 takes advantage of this.
1253
1254 There have been many small cleanups made to the internals. In
1255 particular, "Perl_sv_upgrade()" has been simplified considerably, with
1256 a straight-through code path that uses "memset()" and "memcpy()" to
1257 initialise the new body, rather than assignment via multiple temporary
1258 variables. It has also benefited from simplification and de-duplication
1259 of the arena management code.
1260
1261 A lot of small improvements in the code base were made due to reports
1262 from the Coverity static code analyzer.
1263
1264 Corrected use and documentation of "Perl_gv_stashpv()",
1265 "Perl_gv_stashpvn()", "Perl_gv_stashsv()" functions (last parameter is
1266 a bitmask, not boolean).
1267
1268 "PERL_SYS_INIT", "PERL_SYS_INIT3" and "PERL_SYS_TERM" macros have been
1269 changed into functions.
1270
1271 "PERLSYS_TERM" no longer requires a context. "PerlIO_teardown()" is now
1272 called without a context, and debugging output in this function has
1273 been disabled because that required that an interpreter was present, an
1274 invalid assumption at termination time.
1275
1276 All compile time options which affect binary compatibility have been
1277 grouped together into a global variable ("PL_bincompat_options").
1278
1279 The values of "PERL_REVISION", "PERL_VERSION" and "PERL_SUBVERSION" are
1280 now baked into global variables (and hence into any shared perl
1281 library). Additionally under "MULTIPLICITY", the perl executable now
1282 records the size of the interpreter structure (total, and for this
1283 version). Coupled with "PL_bincompat_options" this will allow 5.8.10
1284 (and later), when compiled with a shared perl library, to perform
1285 sanity checks in "main()" to verify that the shared library is indeed
1286 binary compatible.
1287
1288 Symbolic references can now have embedded NULs. The new public function
1289 "Perl_get_cvn_flags()" can be used in extensions if you have to handle
1290 them.
1291
1292 Macro cleanups
1293 The core code, and XS code in ext that is not dual-lived on CPAN, no
1294 longer uses the macros "PL_na", "NEWSV()", "Null()", "Nullav",
1295 "Nullcv", "Nullhv", "Nullhv" etc. Their use is discouraged in new code,
1296 particularly "PL_na", which is a small performance hit.
1297
1299 Many modules updated from CPAN incorporate new tests. Some core
1300 specific tests have been added:
1301
1302 ext/DynaLoader/t/DynaLoader.t
1303 Tests for the "DynaLoader" module.
1304
1305 t/comp/fold.t
1306 Tests for compile-time constant folding.
1307
1308 t/io/pvbm.t
1309 Tests incorporated from 5.10.0 which check that there is no
1310 unexpected interaction between the internal types "PVBM" and
1311 "PVGV".
1312
1313 t/lib/proxy_constant_subs.t
1314 Tests for the new form of constant subroutines.
1315
1316 t/op/attrhand.t
1317 Tests for "Attribute::Handlers".
1318
1319 t/op/dbm.t
1320 Tests for "dbmopen".
1321
1322 t/op/inccode-tie.t
1323 Calls all tests in t/op/inccode.t after first tying @INC.
1324
1325 t/op/incfilter.t
1326 Tests for source filters returned from code references in @INC.
1327
1328 t/op/kill0.t
1329 Tests for RT #30970.
1330
1331 t/op/qrstack.t
1332 Tests for RT #41484.
1333
1334 t/op/qr.t
1335 Tests for the "qr//" construct.
1336
1337 t/op/regexp_qr_embed.t
1338 Tests for the "qr//" construct within another regexp.
1339
1340 t/op/regexp_qr.t
1341 Tests for the "qr//" construct.
1342
1343 t/op/rxcode.t
1344 Tests for RT #32840.
1345
1346 t/op/studytied.t
1347 Tests for "study" on tied scalars.
1348
1349 t/op/substT.t
1350 Tests for "subst" run under "-T" mode.
1351
1352 t/op/symbolcache.t
1353 Tests for "undef" and "delete" on stash entries that are bound to
1354 subroutines or methods.
1355
1356 t/op/upgrade.t
1357 Tests for "Perl_sv_upgrade()".
1358
1359 t/mro/package_aliases.t
1360 MRO tests for "isa" and package aliases.
1361
1362 t/pod/twice.t
1363 Tests for calling "Pod::Parser" twice.
1364
1365 t/run/cloexec.t
1366 Tests for inheriting file descriptors across "exec" (close-on-
1367 exec).
1368
1369 t/uni/cache.t
1370 Tests for the UTF-8 caching code.
1371
1372 t/uni/chr.t
1373 Test that strange encodings do not upset "Perl_pp_chr()".
1374
1375 t/uni/greek.t
1376 Tests for RT #40641.
1377
1378 t/uni/latin2.t
1379 Tests for RT #40641.
1380
1381 t/uni/overload.t
1382 Tests for returning Unicode from overloaded values.
1383
1384 t/uni/tie.t
1385 Tests for returning Unicode from tied variables.
1386
1388 There are no known new bugs.
1389
1390 However, programs that rely on bugs that have been fixed will have
1391 problems. Also, many bug fixes present in 5.10.0 can't be back-ported
1392 to the 5.8.x branch, because they require changes that are binary
1393 incompatible, or because the code changes are too large and hence too
1394 risky to incorporate.
1395
1396 We have only limited volunteer labour, and the maintenance burden is
1397 getting increasingly complex. Hence this will be the last significant
1398 release of the 5.8.x series. Any future releases of 5.8.x will likely
1399 only be to deal with security issues, and platform build failures.
1400 Hence you should look to migrating to 5.10.x, if you have not started
1401 already. Alternatively, if business requirements constrain you to
1402 continue to use 5.8.x, you may wish to consider commercial support from
1403 firms such as ActiveState.
1404
1406 Win32
1407 "readdir()", "cwd()", $^X and @INC now use the alternate (short)
1408 filename if the long name is outside the current codepage (Jan Dubois).
1409
1410 Updated Modules
1411
1412 • "Win32" upgraded to version 0.38. Now has a documented 'WinVista'
1413 response from "GetOSName" and support for Vista's privilege
1414 elevation in "IsAdminUser". Support for Unicode characters in path
1415 names. Improved cygwin and Win64 compatibility.
1416
1417 • "Win32API" updated to 0.1001_01
1418
1419 • "killpg()" support added to "MSWin32" (Jan Dubois).
1420
1421 • "File::Spec::Win32" upgraded to version 3.2701
1422
1423 OS/2
1424 Updated Modules
1425
1426 • "OS2::Process" upgraded to 1.03
1427
1428 Ilya Zakharevich has added and documented several "Window*" and
1429 "Clipbrd*" functions.
1430
1431 • "OS2::REXX::DLL", "OS2::REXX" updated to version 1.03
1432
1433 VMS
1434 Updated Modules
1435
1436 • "DCLsym" upgraded to version 1.03
1437
1438 • "Stdio" upgraded to version 2.4
1439
1440 • "VMS::XSSymSet" upgraded to 1.1.
1441
1443 Nick Ing-Simmons, long time Perl hacker, author of the "Tk" and
1444 "Encode" modules, perlio.c in the core, and 5.003_02 pumpking, died of
1445 a heart attack on 25th September 2006. He will be missed.
1446
1448 Some of the work in this release was funded by a TPF grant.
1449
1450 Steve Hay worked behind the scenes working out the causes of the
1451 differences between core modules, their CPAN releases, and previous
1452 core releases, and the best way to rectify them. He doesn't want to do
1453 it again. I know this feeling, and I'm very glad he did it this time,
1454 instead of me.
1455
1456 Paul Fenwick assembled a team of 18 volunteers, who broke the back of
1457 writing this document. In particular, Bradley Dean, Eddy Tan, and
1458 Vincent Pit provided half the team's contribution.
1459
1460 Schwern verified the list of updated module versions, correcting quite
1461 a few errors that I (and everyone else) had missed, both wrongly stated
1462 module versions, and changed modules that had not been listed.
1463
1464 The crack Berlin-based QA team of Andreas Koenig and Slaven Rezic
1465 tirelessly re-built snapshots, tested most everything CPAN against
1466 them, and then identified the changes responsible for any module
1467 regressions, ensuring that several show-stopper bugs were stomped
1468 before the first release candidate was cut.
1469
1470 The other core committers contributed most of the changes, and applied
1471 most of the patches sent in by the hundreds of contributors listed in
1472 AUTHORS.
1473
1474 And obviously, Larry Wall, without whom we wouldn't have Perl.
1475
1477 If you find what you think is a bug, you might check the articles
1478 recently posted to the comp.lang.perl.misc newsgroup and the perl bug
1479 database at http://bugs.perl.org. There may also be information at
1480 http://www.perl.org, the Perl Home Page.
1481
1482 If you believe you have an unreported bug, please run the perlbug
1483 program included with your release. Be sure to trim your bug down to a
1484 tiny but sufficient test case. Your bug report, along with the output
1485 of "perl -V", will be sent off to perlbug@perl.org to be analysed by
1486 the Perl porting team. You can browse and search the Perl 5 bugs at
1487 http://bugs.perl.org/
1488
1489 If the bug you are reporting has security implications, which make it
1490 inappropriate to send to a publicly archived mailing list, then please
1491 send it to perl5-security-report@perl.org. This points to a closed
1492 subscription unarchived mailing list, which includes all the core
1493 committers, who will be able to help assess the impact of issues,
1494 figure out a resolution, and help co-ordinate the release of patches to
1495 mitigate or fix the problem across all platforms on which Perl is
1496 supported. Please only use this address for security issues in the Perl
1497 core, not for modules independently distributed on CPAN.
1498
1500 The Changes file for exhaustive details on what changed.
1501
1502 The INSTALL file for how to build Perl.
1503
1504 The README file for general stuff.
1505
1506 The Artistic and Copying files for copyright information.
1507
1508
1509
1510perl v5.34.1 2022-03-15 PERL589DELTA(1)