Commit | Line | Data |
---|---|---|
dc0b0fbe NC |
1 | =head1 NAME |
2 | ||
d3dc607d | 3 | perl583delta - what is new for perl v5.8.3 |
dc0b0fbe NC |
4 | |
5 | =head1 DESCRIPTION | |
6 | ||
7 | This document describes differences between the 5.8.2 release and | |
8 | the 5.8.3 release. | |
9 | ||
10 | If you are upgrading from an earlier release such as 5.6.1, first read | |
11 | the L<perl58delta>, which describes differences between 5.6.0 and | |
12 | 5.8.0, and the L<perl581delta> and L<perl582delta>, which describe differences | |
13 | between 5.8.0, 5.8.1 and 5.8.2 | |
14 | ||
15 | =head1 Incompatible Changes | |
16 | ||
17 | There are no changes incompatible with 5.8.2. | |
18 | ||
19 | =head1 Core Enhancements | |
20 | ||
21 | A C<SCALAR> method is now available for tied hashes. This is called when | |
22 | a tied hash is used in scalar context, such as | |
23 | ||
24 | if (%tied_hash) { | |
25 | ... | |
26 | } | |
27 | ||
28 | ||
29 | The old behaviour was that %tied_hash would return whatever would have been | |
30 | returned for that hash before the hash was tied (so usually 0). The new | |
31 | behaviour in the absence of a SCALAR method is to return TRUE if in the | |
32 | middle of an C<each> iteration, and otherwise call FIRSTKEY to check if the | |
33 | hash is empty (making sure that a subsequent C<each> will also begin by | |
34 | calling FIRSTKEY). Please see L<perltie/SCALAR> for the full details and | |
35 | caveats. | |
36 | ||
37 | =head1 Modules and Pragmata | |
38 | ||
39 | =over 4 | |
40 | ||
41 | =item CGI | |
42 | ||
43 | =item Cwd | |
44 | ||
45 | =item Digest | |
46 | ||
47 | =item Digest::MD5 | |
48 | ||
49 | =item Encode | |
50 | ||
51 | =item File::Spec | |
52 | ||
53 | =item FindBin | |
54 | ||
55 | A function C<again> is provided to resolve problems where modules in different | |
56 | directories wish to use FindBin. | |
57 | ||
58 | =item List::Util | |
59 | ||
60 | You can now weaken references to read only values. | |
61 | ||
62 | =item Math::BigInt | |
63 | ||
64 | =item PodParser | |
65 | ||
66 | =item Pod::Perldoc | |
67 | ||
68 | =item POSIX | |
69 | ||
70 | =item Unicode::Collate | |
71 | ||
72 | =item Unicode::Normalize | |
73 | ||
74 | =item Test::Harness | |
75 | ||
76 | =item threads::shared | |
77 | ||
78 | C<cond_wait> has a new two argument form. C<cond_timedwait> has been added. | |
79 | ||
80 | =back | |
81 | ||
82 | =head1 Utility Changes | |
83 | ||
84 | C<find2perl> now assumes C<-print> as a default action. Previously, it | |
85 | needed to be specified explicitly. | |
86 | ||
87 | A new utility, C<prove>, makes it easy to run an individual regression test | |
88 | at the command line. C<prove> is part of Test::Harness, which users of earlier | |
89 | Perl versions can install from CPAN. | |
90 | ||
91 | =head1 New Documentation | |
92 | ||
93 | The documentation has been revised in places to produce more standard manpages. | |
94 | ||
95 | The documentation for the special code blocks (BEGIN, CHECK, INIT, END) | |
96 | has been improved. | |
97 | ||
98 | =head1 Installation and Configuration Improvements | |
99 | ||
100 | Perl now builds on OpenVMS I64 | |
101 | ||
102 | =head1 Selected Bug Fixes | |
103 | ||
104 | Using substr() on a UTF8 string could cause subsequent accesses on that | |
105 | string to return garbage. This was due to incorrect UTF8 offsets being | |
106 | cached, and is now fixed. | |
107 | ||
108 | join() could return garbage when the same join() statement was used to | |
109 | process 8 bit data having earlier processed UTF8 data, due to the flags | |
110 | on that statement's temporary workspace not being reset correctly. This | |
111 | is now fixed. | |
112 | ||
113 | C<$a .. $b> will now work as expected when either $a or $b is C<undef> | |
114 | ||
115 | Using Unicode keys with tied hashes should now work correctly. | |
116 | ||
117 | Reading $^E now preserves $!. Previously, the C code implementing $^E | |
118 | did not preserve C<errno>, so reading $^E could cause C<errno> and therefore | |
119 | C<$!> to change unexpectedly. | |
120 | ||
121 | Reentrant functions will (once more) work with C++. 5.8.2 introduced a bugfix | |
122 | which accidentally broke the compilation of Perl extensions written in C++ | |
123 | ||
124 | =head1 New or Changed Diagnostics | |
125 | ||
126 | The fatal error "DESTROY created new reference to dead object" is now | |
127 | documented in L<perldiag>. | |
128 | ||
129 | =head1 Changed Internals | |
130 | ||
131 | The hash code has been refactored to reduce source duplication. The | |
132 | external interface is unchanged, and aside from the bug fixes described | |
133 | above, there should be no change in behaviour. | |
134 | ||
135 | C<hv_clear_placeholders> is now part of the perl API | |
136 | ||
137 | Some C macros have been tidied. In particular macros which create temporary | |
138 | local variables now name these variables more defensively, which should | |
139 | avoid bugs where names clash. | |
140 | ||
141 | <signal.h> is now always included. | |
142 | ||
143 | =head1 Configuration and Building | |
144 | ||
145 | C<Configure> now invokes callbacks regardless of the value of the variable | |
146 | they are called for. Previously callbacks were only invoked in the | |
147 | C<case $variable $define)> branch. This change should only affect platform | |
148 | maintainers writing configuration hints files. | |
149 | ||
150 | =head1 Platform Specific Problems | |
151 | ||
152 | The regression test ext/threads/shared/t/wait.t fails on early RedHat 9 | |
153 | and HP-UX 10.20 due to bugs in their threading implementations. | |
154 | RedHat users should see https://rhn.redhat.com/errata/RHBA-2003-136.html | |
155 | and consider upgrading their glibc. | |
156 | ||
157 | =head1 Known Problems | |
158 | ||
159 | Detached threads aren't supported on Windows yet, as they may lead to | |
160 | memory access violation problems. | |
161 | ||
162 | There is a known race condition opening scripts in C<suidperl>. C<suidperl> | |
163 | is neither built nor installed by default, and has been deprecated since | |
164 | perl 5.8.0. You are advised to replace use of suidperl with tools such | |
165 | as sudo ( http://www.courtesan.com/sudo/ ) | |
166 | ||
167 | We have a backlog of unresolved bugs. Dealing with bugs and bug reports | |
168 | is unglamorous work; not something ideally suited to volunteer labour, | |
169 | but that is all that we have. | |
170 | ||
171 | The perl5 development team are implementing changes to help address this | |
172 | problem, which should go live in early 2004. | |
173 | ||
174 | =head1 Future Directions | |
175 | ||
176 | Code freeze for the next maintenance release (5.8.4) is on March 31st 2004, | |
177 | with release expected by mid April. Similarly 5.8.5's freeze will be at | |
178 | the end of June, with release by mid July. | |
179 | ||
180 | =head1 Obituary | |
181 | ||
d3dc607d | 182 | Iain 'Spoon' Truskett, Perl hacker, author of L<perlreref> and |
dc0b0fbe NC |
183 | contributor to CPAN, died suddenly on 29th December 2003, aged 24. |
184 | He will be missed. | |
185 | ||
186 | =head1 Reporting Bugs | |
187 | ||
188 | If you find what you think is a bug, you might check the articles | |
189 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
190 | bug database at http://bugs.perl.org. There may also be | |
191 | information at http://www.perl.org, the Perl Home Page. | |
192 | ||
193 | If you believe you have an unreported bug, please run the B<perlbug> | |
194 | program included with your release. Be sure to trim your bug down | |
195 | to a tiny but sufficient test case. Your bug report, along with the | |
196 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
197 | analysed by the Perl porting team. You can browse and search | |
198 | the Perl 5 bugs at http://bugs.perl.org/ | |
199 | ||
200 | =head1 SEE ALSO | |
201 | ||
202 | The F<Changes> file for exhaustive details on what changed. | |
203 | ||
204 | The F<INSTALL> file for how to build Perl. | |
205 | ||
206 | The F<README> file for general stuff. | |
207 | ||
208 | The F<Artistic> and F<Copying> files for copyright information. | |
209 | ||
210 | =cut |