1PERL584DELTA(1)        Perl Programmers Reference Guide        PERL584DELTA(1)
2
3
4

NAME

6       perl584delta - what is new for perl v5.8.4
7

DESCRIPTION

9       This document describes differences between the 5.8.3 release and the
10       5.8.4 release.
11

Incompatible Changes

13       Many minor bugs have been fixed. Scripts which happen to rely on previ‐
14       ously erroneous behaviour will consider these fixes as incompatible
15       changes :-) You are advised to perform sufficient acceptance testing on
16       this release to satisfy yourself that this does not affect you, before
17       putting this release into production.
18
19       The diagnostic output of Carp has been changed slightly, to add a space
20       after the comma between arguments. This makes it much easier for tools
21       such as web browsers to wrap it, but might confuse any automatic tools
22       which perform detailed parsing of Carp output.
23
24       The internal dump output has been improved, so that non-printable char‐
25       acters such as newline and backspace are output in "\x" notation,
26       rather than octal. This might just confuse non-robust tools which parse
27       the output of modules such as Devel::Peek.
28

Core Enhancements

30       Malloc wrapping
31
32       Perl can now be built to detect attempts to assign pathologically large
33       chunks of memory.  Previously such assignments would suffer from inte‐
34       ger wrap-around during size calculations causing a misallocation, which
35       would crash perl, and could theoretically be used for "stack smashing"
36       attacks.  The wrapping defaults to enabled on platforms where we know
37       it works (most AIX configurations, BSDi, Darwin, DEC OSF/1, FreeBSD,
38       HP/UX, GNU Linux, OpenBSD, Solaris, VMS and most Win32 compilers) and
39       defaults to disabled on other platforms.
40
41       Unicode Character Database 4.0.1
42
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.
45
46       suidperl less insecure
47
48       Paul Szabo has analysed and patched "suidperl" to remove existing known
49       insecurities. Currently there are no known holes in "suidperl", but
50       previous experience shows that we cannot be confident that these were
51       the last. You may no longer invoke the set uid perl directly, so to
52       preserve backwards compatibility with scripts that invoke
53       #!/usr/bin/suidperl the only set uid binary is now "sperl5.8."n
54       ("sperl5.8.4" for this release). "suidperl" is installed as a hard link
55       to "perl"; both "suidperl" and "perl" will invoke "sperl5.8.4" automat‐
56       ically the set uid binary, so this change should be completely trans‐
57       parent.
58
59       For new projects the core perl team would strongly recommend that you
60       use dedicated, single purpose security tools such as "sudo" in prefer‐
61       ence to "suidperl".
62
63       format
64
65       In addition to bug fixes, "format"'s features have been enhanced. See
66       perlform
67

Modules and Pragmata

69       The (mis)use of "/tmp" in core modules and documentation has been
70       tidied up.  Some modules available both within the perl core and inde‐
71       pendently from CPAN ("dual-life modules") have not yet had these
72       changes applied; the changes will be integrated into future stable perl
73       releases as the modules are updated on CPAN.
74
75       Updated modules
76
77       Attribute::Handlers
78       B
79       Benchmark
80       CGI
81       Carp
82       Cwd
83       Exporter
84       File::Find
85       IO
86       IPC::Open3
87       Local::Maketext
88       Math::BigFloat
89       Math::BigInt
90       Math::BigRat
91       MIME::Base64
92       ODBM_File
93       POSIX
94       Shell
95       Socket
96           There is experimental support for Linux abstract Unix domain sock‐
97           ets.
98
99       Storable
100       Switch
101           Synced with its CPAN version 2.10
102
103       Sys::Syslog
104           "syslog()" can now use numeric constants for facility names and
105           priorities, in addition to strings.
106
107       Term::ANSIColor
108       Time::HiRes
109       Unicode::UCD
110       Win32
111           Win32.pm/Win32.xs has moved from the libwin32 module to core Perl
112
113       base
114       open
115       threads
116           Detached threads are now also supported on Windows.
117
118       utf8
119

Performance Enhancements

121       ·   Accelerated Unicode case mappings ("/i", "lc", "uc", etc).
122
123       ·   In place sort optimised (eg "@a = sort @a")
124
125       ·   Unnecessary assignment optimised away in
126
127             my $s = undef;
128             my @a = ();
129             my %h = ();
130
131       ·   Optimised "map" in scalar context
132

Utility Changes

134       The Perl debugger (lib/perl5db.pl) can now save all debugger commands
135       for sourcing later, and can display the parent inheritance tree of a
136       given class.
137

Installation and Configuration Improvements

139       The build process on both VMS and Windows has had several minor
140       improvements made. On Windows Borland's C compiler can now compile perl
141       with PerlIO and/or USE_LARGE_FILES enabled.
142
143       "perl.exe" on Windows now has a "Camel" logo icon. The use of a camel
144       with the topic of Perl is a trademark of O'Reilly and Associates Inc.,
145       and is used with their permission (ie distribution of the source, com‐
146       piling a Windows executable from it, and using that executable
147       locally). Use of the supplied camel for anything other than a perl exe‐
148       cutable's icon is specifically not covered, and anyone wishing to
149       redistribute perl binaries with the icon should check directly with
150       O'Reilly beforehand.
151
152       Perl should build cleanly on Stratus VOS once more.
153

Selected Bug Fixes

155       More utf8 bugs fixed, notably in how "chomp", "chop", "send", and
156       "syswrite" and interact with utf8 data. Concatenation now works cor‐
157       rectly when "use bytes;" is in scope.
158
159       Pragmata are now correctly propagated into (?{...}) constructions in
160       regexps.  Code such as
161
162          my $x = qr{ ... (??{ $x }) ... };
163
164       will now (correctly) fail under use strict. (As the inner $x is and has
165       always referred to $::x)
166
167       The "const in void context" warning has been suppressed for a constant
168       in an optimised-away boolean expression such as "5 ⎪⎪ print;"
169
170       "perl -i" could "fchmod(stdin)" by mistake. This is serious if stdin is
171       attached to a terminal, and perl is running as root. Now fixed.
172

New or Changed Diagnostics

174       "Carp" and the internal diagnostic routines used by "Devel::Peek" have
175       been made clearer, as described in "Incompatible Changes"
176

Changed Internals

178       Some bugs have been fixed in the hash internals. Restricted hashes and
179       their place holders are now allocated and deleted at slightly different
180       times, but this should not be visible to user code.
181

Future Directions

183       Code freeze for the next maintenance release (5.8.5) will be on 30th
184       June 2004, with release by mid July.
185

Platform Specific Problems

187       This release is known not to build on Windows 95.
188

Reporting Bugs

190       If you find what you think is a bug, you might check the articles
191       recently posted to the comp.lang.perl.misc newsgroup and the perl bug
192       database at http://bugs.perl.org.  There may also be information at
193       http://www.perl.org, the Perl Home Page.
194
195       If you believe you have an unreported bug, please run the perlbug pro‐
196       gram included with your release.  Be sure to trim your bug down to a
197       tiny but sufficient test case.  Your bug report, along with the output
198       of "perl -V", will be sent off to perlbug@perl.org to be analysed by
199       the Perl porting team.  You can browse and search the Perl 5 bugs at
200       http://bugs.perl.org/
201

SEE ALSO

203       The Changes file for exhaustive details on what changed.
204
205       The INSTALL file for how to build Perl.
206
207       The README file for general stuff.
208
209       The Artistic and Copying files for copyright information.
210
211
212
213perl v5.8.8                       2006-01-07                   PERL584DELTA(1)
Impressum