3 perl584delta - what is new for perl v5.8.4
7 This document describes differences between the 5.8.3 release and
10 =head1 Incompatible Changes
12 Many minor bugs have been fixed. Scripts which happen to rely on previously
13 erroneous behaviour will consider these fixes as incompatible changes :-)
14 You are advised to perform sufficient acceptance testing on this release
15 to satisfy yourself that this does not affect you, before putting this
16 release into production.
18 The diagnostic output of Carp has been changed slightly, to add a space after
19 the comma between arguments. This makes it much easier for tools such as
20 web browsers to wrap it, but might confuse any automatic tools which perform
21 detailed parsing of Carp output.
23 The internal dump output has been improved, so that non-printable characters
24 such as newline and backspace are output in C<\x> notation, rather than
25 octal. This might just confuse non-robust tools which parse the output of
26 modules such as Devel::Peek.
28 =head1 Core Enhancements
30 =head2 Malloc wrapping
32 Perl can now be built to detect attempts to assign pathologically large chunks
33 of memory. Previously such assignments would suffer from integer wrap-around
34 during size calculations causing a misallocation, which would crash perl, and
35 could theoretically be used for "stack smashing" attacks. The wrapping
36 defaults to enabled on platforms where we know it works (most AIX
37 configurations, BSDi, Darwin, DEC OSF/1, FreeBSD, HP/UX, GNU Linux, OpenBSD,
38 Solaris, VMS and most Win32 compilers) and defaults to disabled on other
41 =head2 Unicode Character Database 4.0.1
43 The copy of the Unicode Character Database included in Perl 5.8 has
44 been updated to 4.0.1 from 4.0.0.
46 =head2 suidperl less insecure
48 Paul Szabo has analysed and patched C<suidperl> to remove existing known
49 insecurities. Currently there are no known holes in C<suidperl>, but previous
50 experience shows that we cannot be confident that these were the last. You may
51 no longer invoke the set uid perl directly, so to preserve backwards
52 compatibility with scripts that invoke #!/usr/bin/suidperl the only set uid
53 binary is now C<sperl5.8.>I<n> (C<sperl5.8.4> for this release). C<suidperl>
54 is installed as a hard link to C<perl>; both C<suidperl> and C<perl> will
55 invoke C<sperl5.8.4> automatically the set uid binary, so this change should
56 be completely transparent.
58 For new projects the core perl team would strongly recommend that you use
59 dedicated, single purpose security tools such as C<sudo> in preference to
64 In addition to bug fixes, C<format>'s features have been enhanced. See
67 =head1 Modules and Pragmata
69 The (mis)use of C</tmp> in core modules and documentation has been tidied up.
70 Some modules available both within the perl core and independently from CPAN
71 ("dual-life modules") have not yet had these changes applied; the changes
72 will be integrated into future stable perl releases as the modules are
75 =head2 Updated modules
79 =item Attribute::Handlers
117 There is experimental support for Linux abstract Unix domain sockets.
123 Synced with its CPAN version 2.10
127 C<syslog()> can now use numeric constants for facility names and priorities,
128 in addition to strings.
130 =item Term::ANSIColor
138 Win32.pm/Win32.xs has moved from the libwin32 module to core Perl
146 Detached threads are now also supported on Windows.
152 =head1 Performance Enhancements
158 Accelerated Unicode case mappings (C</i>, C<lc>, C<uc>, etc).
162 In place sort optimised (eg C<@a = sort @a>)
166 Unnecessary assignment optimised away in
174 Optimised C<map> in scalar context
178 =head1 Utility Changes
180 The Perl debugger (F<lib/perl5db.pl>) can now save all debugger commands for
181 sourcing later, and can display the parent inheritance tree of a given class.
183 =head1 Installation and Configuration Improvements
185 The build process on both VMS and Windows has had several minor improvements
186 made. On Windows Borland's C compiler can now compile perl with PerlIO and/or
187 USE_LARGE_FILES enabled.
189 C<perl.exe> on Windows now has a "Camel" logo icon. The use of a camel with
190 the topic of Perl is a trademark of O'Reilly and Associates Inc., and is used
191 with their permission (ie distribution of the source, compiling a Windows
192 executable from it, and using that executable locally). Use of the supplied
193 camel for anything other than a perl executable's icon is specifically not
194 covered, and anyone wishing to redistribute perl binaries I<with> the icon
195 should check directly with O'Reilly beforehand.
197 Perl should build cleanly on Stratus VOS once more.
199 =head1 Selected Bug Fixes
201 More utf8 bugs fixed, notably in how C<chomp>, C<chop>, C<send>, and
202 C<syswrite> and interact with utf8 data. Concatenation now works correctly
203 when C<use bytes;> is in scope.
205 Pragmata are now correctly propagated into (?{...}) constructions in regexps.
208 my $x = qr{ ... (??{ $x }) ... };
210 will now (correctly) fail under use strict. (As the inner C<$x> is and
211 has always referred to C<$::x>)
213 The "const in void context" warning has been suppressed for a constant in an
214 optimised-away boolean expression such as C<5 || print;>
216 C<perl -i> could C<fchmod(stdin)> by mistake. This is serious if stdin is
217 attached to a terminal, and perl is running as root. Now fixed.
219 =head1 New or Changed Diagnostics
221 C<Carp> and the internal diagnostic routines used by C<Devel::Peek> have been
222 made clearer, as described in L</Incompatible Changes>
224 =head1 Changed Internals
226 Some bugs have been fixed in the hash internals. Restricted hashes and
227 their place holders are now allocated and deleted at slightly different times,
228 but this should not be visible to user code.
230 =head1 Future Directions
232 Code freeze for the next maintenance release (5.8.5) will be on 30th June
233 2004, with release by mid July.
235 =head1 Platform Specific Problems
237 This release is known not to build on Windows 95.
239 =head1 Reporting Bugs
241 If you find what you think is a bug, you might check the articles
242 recently posted to the comp.lang.perl.misc newsgroup and the perl
243 bug database at http://bugs.perl.org. There may also be
244 information at http://www.perl.org, the Perl Home Page.
246 If you believe you have an unreported bug, please run the B<perlbug>
247 program included with your release. Be sure to trim your bug down
248 to a tiny but sufficient test case. Your bug report, along with the
249 output of C<perl -V>, will be sent off to perlbug@perl.org to be
250 analysed by the Perl porting team. You can browse and search
251 the Perl 5 bugs at http://bugs.perl.org/
255 The F<Changes> file for exhaustive details on what changed.
257 The F<INSTALL> file for how to build Perl.
259 The F<README> file for general stuff.
261 The F<Artistic> and F<Copying> files for copyright information.