1PERL588DELTA(1) Perl Programmers Reference Guide PERL588DELTA(1)
2
3
4
6 perl588delta - what is new for perl v5.8.8
7
9 This document describes differences between the 5.8.7 release and the
10 5.8.8 release.
11
13 There are no changes intentionally incompatible with 5.8.7. If any
14 exist, they are bugs and reports are welcome.
15
17 · "chdir", "chmod" and "chown" can now work on filehandles as well as
18 filenames, if the system supports respectively "fchdir", "fchmod"
19 and "fchown", thanks to a patch provided by Gisle Aas.
20
22 · "Attribute::Handlers" upgraded to version 0.78_02
23
24 · Documentation typo fix
25
26 · "attrs" upgraded to version 1.02
27
28 · Internal cleanup only
29
30 · "autouse" upgraded to version 1.05
31
32 · Simplified implementation
33
34 · "B" upgraded to version 1.09_01
35
36 · The inheritance hierarchy of the "B::" modules has been
37 corrected; "B::NV" now inherits from "B::SV" (instead of
38 "B::IV").
39
40 · "blib" upgraded to version 1.03
41
42 · Documentation typo fix
43
44 · "ByteLoader" upgraded to version 0.06
45
46 · Internal cleanup
47
48 · "CGI" upgraded to version 3.15
49
50 · Extraneous "?" from "self_url()" removed
51
52 · "scrolling_list()" select attribute fixed
53
54 · "virtual_port" now works properly with the https protocol
55
56 · "upload_hook()" and "append()" now works in function-oriented
57 mode
58
59 · "POST_MAX" doesn't cause the client to hang any more
60
61 · Automatic tab indexes are now disabled and new "-tabindex"
62 pragma has been added to turn automatic indexes back on
63
64 · "end_form()" doesn't emit empty (and non-validating) "<div>"
65
66 · "CGI::Carp" works better in certain mod_perl configurations
67
68 · Setting $CGI::TMPDIRECTORY is now effective
69
70 · Enhanced documentation
71
72 · "charnames" upgraded to version 1.05
73
74 · "viacode()" now accept hex strings and has been optimized.
75
76 · "CPAN" upgraded to version 1.76_02
77
78 · 1 minor bug fix for Win32
79
80 · "Cwd" upgraded to version 3.12
81
82 · "canonpath()" on Win32 now collapses foo\.. sections correctly.
83
84 · Improved behaviour on Symbian OS.
85
86 · Enhanced documentation and typo fixes
87
88 · Internal cleanup
89
90 · "Data::Dumper" upgraded to version 2.121_08
91
92 · A problem where "Data::Dumper" would sometimes update the
93 iterator state of hashes has been fixed
94
95 · Numeric labels now work
96
97 · Internal cleanup
98
99 · "DB" upgraded to version 1.01
100
101 · A problem where the state of the regexp engine would sometimes
102 get clobbered when running under the debugger has been fixed.
103
104 · "DB_File" upgraded to version 1.814
105
106 · Adds support for Berkeley DB 4.4.
107
108 · "Devel::DProf" upgraded to version 20050603.00
109
110 · Internal cleanup
111
112 · "Devel::Peek" upgraded to version 1.03
113
114 · Internal cleanup
115
116 · "Devel::PPPort" upgraded to version 3.06_01
117
118 · "--compat-version" argument checking has been improved
119
120 · Files passed on the command line are filtered by default
121
122 · "--nofilter" option to override the filtering has been added
123
124 · Enhanced documentation
125
126 · "diagnostics" upgraded to version 1.15
127
128 · Documentation typo fix
129
130 · "Digest" upgraded to version 1.14
131
132 · The constructor now knows which module implements SHA-224
133
134 · Documentation tweaks and typo fixes
135
136 · "Digest::MD5" upgraded to version 2.36
137
138 · "XSLoader" is now used for faster loading
139
140 · Enhanced documentation including MD5 weaknesses discovered
141 lately
142
143 · "Dumpvalue" upgraded to version 1.12
144
145 · Documentation fix
146
147 · "DynaLoader" upgraded but unfortunately we're not able to increment
148 its version number :-(
149
150 · Implements "dl_unload_file" on Win32
151
152 · Internal cleanup
153
154 · "XSLoader" 0.06 incorporated; small optimisation for calling
155 "bootstrap_inherit()" and documentation enhancements.
156
157 · "Encode" upgraded to version 2.12
158
159 · A coderef is now acceptable for "CHECK"!
160
161 · 3 new characters added to the ISO-8859-7 encoding
162
163 · New encoding "MIME-Header-ISO_2022_JP" added
164
165 · Problem with partial characters and "encoding(utf-8-strict)"
166 fixed.
167
168 · Documentation enhancements and typo fixes
169
170 · "English" upgraded to version 1.02
171
172 · the $COMPILING variable has been added
173
174 · "ExtUtils::Constant" upgraded to version 0.17
175
176 · Improved compatibility with older versions of perl
177
178 · "ExtUtils::MakeMaker" upgraded to version 6.30 (was 6.17)
179
180 · Too much to list here; see
181 http://search.cpan.org/dist/ExtUtils-MakeMaker/Changes
182 <http://search.cpan.org/dist/ExtUtils-MakeMaker/Changes>
183
184 · "File::Basename" upgraded to version 2.74, with changes contributed
185 by Michael Schwern.
186
187 · Documentation clarified and errors corrected.
188
189 · "basename" now strips trailing path separators before
190 processing the name.
191
192 · "basename" now returns "/" for parameter "/", to make
193 "basename" consistent with the shell utility of the same name.
194
195 · The suffix is no longer stripped if it is identical to the
196 remaining characters in the name, again for consistency with
197 the shell utility.
198
199 · Some internal code cleanup.
200
201 · "File::Copy" upgraded to version 2.09
202
203 · Copying a file onto itself used to fail.
204
205 · Moving a file between file systems now preserves the access and
206 modification time stamps
207
208 · "File::Find" upgraded to version 1.10
209
210 · Win32 portability fixes
211
212 · Enhanced documentation
213
214 · "File::Glob" upgraded to version 1.05
215
216 · Internal cleanup
217
218 · "File::Path" upgraded to version 1.08
219
220 · "mkpath" now preserves "errno" when "mkdir" fails
221
222 · "File::Spec" upgraded to version 3.12
223
224 · "File::Spec-"rootdir()> now returns "\" on Win32, instead of
225 "/"
226
227 · $^O could sometimes become tainted. This has been fixed.
228
229 · "canonpath" on Win32 now collapses "foo/.." (or "foo\..")
230 sections correctly, rather than doing the "misguided" work it
231 was previously doing. Note that "canonpath" on Unix still does
232 not collapse these sections, as doing so would be incorrect.
233
234 · Some documentation improvements
235
236 · Some internal code cleanup
237
238 · "FileCache" upgraded to version 1.06
239
240 · POD formatting errors in the documentation fixed
241
242 · "Filter::Simple" upgraded to version 0.82
243
244 · "FindBin" upgraded to version 1.47
245
246 · Now works better with directories where access rights are more
247 restrictive than usual.
248
249 · "GDBM_File" upgraded to version 1.08
250
251 · Internal cleanup
252
253 · "Getopt::Long" upgraded to version 2.35
254
255 · "prefix_pattern" has now been complemented by a new
256 configuration option "long_prefix_pattern" that allows the user
257 to specify what prefix patterns should have long option style
258 semantics applied.
259
260 · Options can now take multiple values at once (experimental)
261
262 · Various bug fixes
263
264 · "if" upgraded to version 0.05
265
266 · Give more meaningful error messages from "if" when invoked with
267 a condition in list context.
268
269 · Restore backwards compatibility with earlier versions of perl
270
271 · "IO" upgraded to version 1.22
272
273 · Enhanced documentation
274
275 · Internal cleanup
276
277 · "IPC::Open2" upgraded to version 1.02
278
279 · Enhanced documentation
280
281 · "IPC::Open3" upgraded to version 1.02
282
283 · Enhanced documentation
284
285 · "List::Util" upgraded to version 1.18 (was 1.14)
286
287 · Fix pure-perl version of "refaddr" to avoid blessing an un-
288 blessed reference
289
290 · Use "XSLoader" for faster loading
291
292 · Fixed various memory leaks
293
294 · Internal cleanup and portability fixes
295
296 · "Math::Complex" upgraded to version 1.35
297
298 · "atan2(0, i)" now works, as do all the (computable) complex
299 argument cases
300
301 · Fixes for certain bugs in "make" and "emake"
302
303 · Support returning the kth root directly
304
305 · Support "[2,-3pi/8]" in "emake"
306
307 · Support "inf" for "make"/"emake"
308
309 · Document "make"/"emake" more visibly
310
311 · "Math::Trig" upgraded to version 1.03
312
313 · Add more great circle routines: "great_circle_waypoint" and
314 "great_circle_destination"
315
316 · "MIME::Base64" upgraded to version 3.07
317
318 · Use "XSLoader" for faster loading
319
320 · Enhanced documentation
321
322 · Internal cleanup
323
324 · "NDBM_File" upgraded to version 1.06
325
326 · Enhanced documentation
327
328 · "ODBM_File" upgraded to version 1.06
329
330 · Documentation typo fixed
331
332 · Internal cleanup
333
334 · "Opcode" upgraded to version 1.06
335
336 · Enhanced documentation
337
338 · Internal cleanup
339
340 · "open" upgraded to version 1.05
341
342 · Enhanced documentation
343
344 · "overload" upgraded to version 1.04
345
346 · Enhanced documentation
347
348 · "PerlIO" upgraded to version 1.04
349
350 · "PerlIO::via" iterate over layers properly now
351
352 · "PerlIO::scalar" understands "$/ = """ now
353
354 · "encoding(utf-8-strict)" with partial characters now works
355
356 · Enhanced documentation
357
358 · Internal cleanup
359
360 · "Pod::Functions" upgraded to version 1.03
361
362 · Documentation typos fixed
363
364 · "Pod::Html" upgraded to version 1.0504
365
366 · HTML output will now correctly link to "=item"s on the same
367 page, and should be valid XHTML.
368
369 · Variable names are recognized as intended
370
371 · Documentation typos fixed
372
373 · "Pod::Parser" upgraded to version 1.32
374
375 · Allow files that start with "=head" on the first line
376
377 · Win32 portability fix
378
379 · Exit status of "pod2usage" fixed
380
381 · New "-noperldoc" switch for "pod2usage"
382
383 · Arbitrary URL schemes now allowed
384
385 · Documentation typos fixed
386
387 · "POSIX" upgraded to version 1.09
388
389 · Documentation typos fixed
390
391 · Internal cleanup
392
393 · "re" upgraded to version 0.05
394
395 · Documentation typo fixed
396
397 · "Safe" upgraded to version 2.12
398
399 · Minor documentation enhancement
400
401 · "SDBM_File" upgraded to version 1.05
402
403 · Documentation typo fixed
404
405 · Internal cleanup
406
407 · "Socket" upgraded to version 1.78
408
409 · Internal cleanup
410
411 · "Storable" upgraded to version 2.15
412
413 · This includes the "STORABLE_attach" hook functionality added by
414 Adam Kennedy, and more frugal memory requirements when storing
415 under "ithreads", by using the "ithreads" cloning tracking
416 code.
417
418 · "Switch" upgraded to version 2.10_01
419
420 · Documentation typos fixed
421
422 · "Sys::Syslog" upgraded to version 0.13
423
424 · Now provides numeric macros and meaningful "Exporter" tags.
425
426 · No longer uses "Sys::Hostname" as it may provide useless values
427 in unconfigured network environments, so instead uses
428 "INADDR_LOOPBACK" directly.
429
430 · "syslog()" now uses local timestamp.
431
432 · "setlogmask()" now behaves like its C counterpart.
433
434 · "setlogsock()" will now "croak()" as documented.
435
436 · Improved error and warnings messages.
437
438 · Improved documentation.
439
440 · "Term::ANSIColor" upgraded to version 1.10
441
442 · Fixes a bug in "colored" when $EACHLINE is set that caused it
443 to not color lines consisting solely of 0 (literal zero).
444
445 · Improved tests.
446
447 · "Term::ReadLine" upgraded to version 1.02
448
449 · Documentation tweaks
450
451 · "Test::Harness" upgraded to version 2.56 (was 2.48)
452
453 · The "Test::Harness" timer is now off by default.
454
455 · Now shows elapsed time in milliseconds.
456
457 · Various bug fixes
458
459 · "Test::Simple" upgraded to version 0.62 (was 0.54)
460
461 · "is_deeply()" no longer fails to work for many cases
462
463 · Various minor bug fixes
464
465 · Documentation enhancements
466
467 · "Text::Tabs" upgraded to version 2005.0824
468
469 · Provides a faster implementation of "expand"
470
471 · "Text::Wrap" upgraded to version 2005.082401
472
473 · Adds $Text::Wrap::separator2, which allows you to preserve
474 existing newlines but add line-breaks with some other string.
475
476 · "threads" upgraded to version 1.07
477
478 · "threads" will now honour "no warnings 'threads'"
479
480 · A thread's interpreter is now freed after "$t->join()" rather
481 than after "undef $t", which should fix some "ithreads" memory
482 leaks. (Fixed by Dave Mitchell)
483
484 · Some documentation typo fixes.
485
486 · "threads::shared" upgraded to version 0.94
487
488 · Documentation changes only
489
490 · Note: An improved implementation of "threads::shared" is
491 available on CPAN - this will be merged into 5.8.9 if it proves
492 stable.
493
494 · "Tie::Hash" upgraded to version 1.02
495
496 · Documentation typo fixed
497
498 · "Time::HiRes" upgraded to version 1.86 (was 1.66)
499
500 · "clock_nanosleep()" and "clock()" functions added
501
502 · Support for the POSIX "clock_gettime()" and "clock_getres()"
503 has been added
504
505 · Return "undef" or an empty list if the C "gettimeofday()"
506 function fails
507
508 · Improved "nanosleep" detection
509
510 · Internal cleanup
511
512 · Enhanced documentation
513
514 · "Unicode::Collate" upgraded to version 0.52
515
516 · Now implements UCA Revision 14 (based on Unicode 4.1.0).
517
518 · "Unicode::Collate-"new> method no longer overwrites user's $_
519
520 · Enhanced documentation
521
522 · "Unicode::UCD" upgraded to version 0.24
523
524 · Documentation typos fixed
525
526 · "User::grent" upgraded to version 1.01
527
528 · Documentation typo fixed
529
530 · "utf8" upgraded to version 1.06
531
532 · Documentation typos fixed
533
534 · "vmsish" upgraded to version 1.02
535
536 · Documentation typos fixed
537
538 · "warnings" upgraded to version 1.05
539
540 · Gentler messing with "Carp::" internals
541
542 · Internal cleanup
543
544 · Documentation update
545
546 · "Win32" upgraded to version 0.2601
547
548 · Provides Windows Vista support to "Win32::GetOSName"
549
550 · Documentation enhancements
551
552 · "XS::Typemap" upgraded to version 0.02
553
554 · Internal cleanup
555
557 "h2xs" enhancements
558 "h2xs" implements new option "--use-xsloader" to force use of
559 "XSLoader" even in backwards compatible modules.
560
561 The handling of authors' names that had apostrophes has been fixed.
562
563 Any enums with negative values are now skipped.
564
565 "perlivp" enhancements
566 "perlivp" implements new option "-a" and will not check for *.ph files
567 by default any more. Use the "-a" option to run all tests.
568
570 The perlglossary manpage is a glossary of terms used in the Perl
571 documentation, technical and otherwise, kindly provided by O'Reilly
572 Media, inc.
573
575 · Weak reference creation is now O(1) rather than O(n), courtesy of
576 Nicholas Clark. Weak reference deletion remains O(n), but if
577 deletion only happens at program exit, it may be skipped
578 completely.
579
580 · Salvador Fandin~o provided improvements to reduce the memory usage
581 of "sort" and to speed up some cases.
582
583 · Jarkko Hietaniemi and Andy Lester worked to mark as much data as
584 possible in the C source files as "static", to increase the
585 proportion of the executable file that the operating system can
586 share between process, and thus reduce real memory usage on multi-
587 user systems.
588
590 Parallel makes should work properly now, although there may still be
591 problems if "make test" is instructed to run in parallel.
592
593 Building with Borland's compilers on Win32 should work more smoothly.
594 In particular Steve Hay has worked to side step many warnings emitted
595 by their compilers and at least one C compiler internal error.
596
597 "Configure" will now detect "clearenv" and "unsetenv", thanks to a
598 patch from Alan Burlison. It will also probe for "futimes" and whether
599 "sprintf" correctly returns the length of the formatted string, which
600 will both be used in perl 5.8.9.
601
602 There are improved hints for next-3.0, vmesa, IX, Darwin, Solaris,
603 Linux, DEC/OSF, HP-UX and MPE/iX
604
605 Perl extensions on Windows now can be statically built into the Perl
606 DLL, thanks to a work by Vadim Konovalov. (This improvement was
607 actually in 5.8.7, but was accidentally omitted from perl587delta).
608
610 no warnings 'category' works correctly with -w
611 Previously when running with warnings enabled globally via "-w",
612 selective disabling of specific warning categories would actually turn
613 off all warnings. This is now fixed; now "no warnings 'io';" will only
614 turn off warnings in the "io" class. Previously it would erroneously
615 turn off all warnings.
616
617 This bug fix may cause some programs to start correctly issuing
618 warnings.
619
620 Remove over-optimisation
621 Perl 5.8.4 introduced a change so that assignments of "undef" to a
622 scalar, or of an empty list to an array or a hash, were optimised away.
623 As this could cause problems when "goto" jumps were involved, this
624 change has been backed out.
625
626 sprintf() fixes
627 Using the sprintf() function with some formats could lead to a buffer
628 overflow in some specific cases. This has been fixed, along with
629 several other bugs, notably in bounds checking.
630
631 In related fixes, it was possible for badly written code that did not
632 follow the documentation of "Sys::Syslog" to have formatting
633 vulnerabilities. "Sys::Syslog" has been changed to protect people from
634 poor quality third party code.
635
636 Debugger and Unicode slowdown
637 It had been reported that running under perl's debugger when processing
638 Unicode data could cause unexpectedly large slowdowns. The most likely
639 cause of this was identified and fixed by Nicholas Clark.
640
641 Smaller fixes
642 · "FindBin" now works better with directories where access rights are
643 more restrictive than usual.
644
645 · Several memory leaks in ithreads were closed. An improved
646 implementation of "threads::shared" is available on CPAN - this
647 will be merged into 5.8.9 if it proves stable.
648
649 · Trailing spaces are now trimmed from $! and $^E.
650
651 · Operations that require perl to read a process's list of groups,
652 such as reads of $( and $), now dynamically allocate memory rather
653 than using a fixed sized array. The fixed size array could cause C
654 stack exhaustion on systems configured to use large numbers of
655 groups.
656
657 · "PerlIO::scalar" now works better with non-default $/ settings.
658
659 · You can now use the "x" operator to repeat a "qw//" list. This used
660 to raise a syntax error.
661
662 · The debugger now traces correctly execution in eval("")uated code
663 that contains #line directives.
664
665 · The value of the "open" pragma is no longer ignored for three-
666 argument opens.
667
668 · The optimisation of "for (reverse @a)" introduced in perl 5.8.6
669 could misbehave when the array had undefined elements and was used
670 in LVALUE context. Dave Mitchell provided a fix.
671
672 · Some case insensitive matches between UTF-8 encoded data and 8 bit
673 regexps, and vice versa, could give malformed character warnings.
674 These have been fixed by Dave Mitchell and Yves Orton.
675
676 · "lcfirst" and "ucfirst" could corrupt the string for certain cases
677 where the length UTF-8 encoding of the string in lower case, upper
678 case or title case differed. This was fixed by Nicholas Clark.
679
680 · Perl will now use the C library calls "unsetenv" and "clearenv" if
681 present to delete keys from %ENV and delete %ENV entirely, thanks
682 to a patch from Alan Burlison.
683
685 Attempt to set length of freed array
686 This is a new warning, produced in situations such as this:
687
688 $r = do {my @a; \$#a};
689 $$r = 503;
690
691 Non-string passed as bitmask
692 This is a new warning, produced when number has been passed as a
693 argument to select(), instead of a bitmask.
694
695 # Wrong, will now warn
696 $rin = fileno(STDIN);
697 ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout);
698
699 # Should be
700 $rin = '';
701 vec($rin,fileno(STDIN),1) = 1;
702 ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout);
703
704 Search pattern not terminated or ternary operator parsed as search pattern
705 This syntax error indicates that the lexer couldn't find the final
706 delimiter of a "?PATTERN?" construct. Mentioning the ternary operator
707 in this error message makes it easier to diagnose syntax errors.
708
710 There has been a fair amount of refactoring of the "C" source code,
711 partly to make it tidier and more maintainable. The resulting object
712 code and the "perl" binary may well be smaller than 5.8.7, in
713 particular due to a change contributed by Dave Mitchell which reworked
714 the warnings code to be significantly smaller. Apart from being smaller
715 and possibly faster, there should be no user-detectable changes.
716
717 Andy Lester supplied many improvements to determine which function
718 parameters and local variables could actually be declared "const" to
719 the C compiler. Steve Peters provided new *_set macros and reworked the
720 core to use these rather than assigning to macros in LVALUE context.
721
722 Dave Mitchell improved the lexer debugging output under "-DT"
723
724 Nicholas Clark changed the string buffer allocation so that it is now
725 rounded up to the next multiple of 4 (or 8 on platforms with 64 bit
726 pointers). This should reduce the number of calls to "realloc" without
727 actually using any extra memory.
728
729 The "HV"'s array of "HE*"s is now allocated at the correct (minimal)
730 size, thanks to another change by Nicholas Clark. Compile with
731 "-DPERL_USE_LARGE_HV_ALLOC" to use the old, sloppier, default.
732
733 For XS or embedding debugging purposes, if perl is compiled with
734 "-DDEBUG_LEAKING_SCALARS_FORK_DUMP" in addition to
735 "-DDEBUG_LEAKING_SCALARS" then a child process is "fork"ed just before
736 global destruction, which is used to display the values of any scalars
737 found to have leaked at the end of global destruction. Without this,
738 the scalars have already been freed sufficiently at the point of
739 detection that it is impossible to produce any meaningful dump of their
740 contents. This feature was implemented by the indefatigable Nicholas
741 Clark, based on an idea by Mike Giroux.
742
744 The optimiser on HP-UX 11.23 (Itanium 2) is currently partly disabled
745 (scaled down to +O1) when using HP C-ANSI-C; the cause of problems at
746 higher optimisation levels is still unclear.
747
748 There are a handful of remaining test failures on VMS, mostly due to
749 test fixes and minor module tweaks with too many dependencies to
750 integrate into this release from the development stream, where they
751 have all been corrected. The following is a list of expected failures
752 with the patch number of the fix where that is known:
753
754 ext/Devel/PPPort/t/ppphtest.t #26913
755 ext/List/Util/t/p_tainted.t #26912
756 lib/ExtUtils/t/PL_FILES.t #26813
757 lib/ExtUtils/t/basic.t #26813
758 t/io/fs.t
759 t/op/cmp.t
760
762 If you find what you think is a bug, you might check the articles
763 recently posted to the comp.lang.perl.misc newsgroup and the perl bug
764 database at http://bugs.perl.org. There may also be information at
765 http://www.perl.org, the Perl Home Page.
766
767 If you believe you have an unreported bug, please run the perlbug
768 program included with your release. Be sure to trim your bug down to a
769 tiny but sufficient test case. Your bug report, along with the output
770 of "perl -V", will be sent off to perlbug@perl.org to be analysed by
771 the Perl porting team. You can browse and search the Perl 5 bugs at
772 http://bugs.perl.org/
773
775 The Changes file for exhaustive details on what changed.
776
777 The INSTALL file for how to build Perl.
778
779 The README file for general stuff.
780
781 The Artistic and Copying files for copyright information.
782
783
784
785perl v5.16.3 2013-03-04 PERL588DELTA(1)