This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update IO-Compress to CPAN version 2.040
[perl5.git] / pod / perl5153delta.pod
CommitLineData
3432e5a1
SL
1=encoding utf8
2
3=head1 NAME
4
5perl5153delta - what is new for perl v5.15.3
6
7=head1 DESCRIPTION
8
9This document describes differences between the 5.15.2 release and
10the 5.15.3 release.
11
12If you are upgrading from an earlier release such as 5.15.1, first read
13L<perl5152delta>, which describes differences between 5.15.1 and
145.15.2.
15
16=head1 Notice
17
18This release includes a rewrite of the perl OO docs which represent
19a significant modernization of the OO documentation. All of the old OO
20tutorials (perltoot, perlboot, etc.) have been replaced with pointers
21to the new docs.
22
23=head1 Core Enhancements
24
25=head2 More CORE subs are callable through references
26
27Perl 5.15.2 introduced subroutines in the CORE namespace. Most of them
28could only be called as barewords; i.e., they could be aliased at compile
29time and then inlined under new names.
30
31Almost all of these functions can now be called through references and via
32C<&foo()> syntax, bypassing the prototype. See L<CORE> for a list of the
33exceptions.
34
35=head2 New debugger commands
36
37The debugger now has C<disable> and C<enable> commands for disabling
38existing breakpoints and reënabling them. See L<perldebug>.
39
40=head1 Security
41
42=head2 C<File::Glob::bsd_glob()> memory error with GLOB_ALTDIRFUNC (CVE-2011-2728).
43
44Calling C<File::Glob::bsd_glob> with the unsupported flag GLOB_ALTDIRFUNC would
45cause an access violation / segfault. A Perl program that accepts a flags value from
46an external source could expose itself to denial of service or arbitrary code
47execution attacks. There are no known exploits in the wild. The problem has been
48corrected by explicitly disabling all unsupported flags and setting unused function
49pointers to null. Bug reported by Clément Lecigne.
50
51=head1 Incompatible Changes
52
53=head2 $[ has been removed
54
55The array/string index offsetting mechanism, controlled by the C<$[> magic
56variable, has been removed. C<$[> now always reads as zero. Writing a
57zero to it is still permitted, but writing a non-zero value causes an
58exception. Those hopelessly addicted to FORTRAN-style 1-based indexing
59may wish to use the module L<Array::Base>, which provides an independent
60implementation of the index offsetting concept, or L<Classic::Perl>,
61which allows L<Array::Base> to be controlled through assignment to C<$[>.
62
63=head2 User-defined case changing operations.
64
65This feature was deprecated in Perl 5.14, and has now been removed.
66The CPAN module L<Unicode::Casing> provides better functionality without
67the drawbacks that this feature had, as are detailed in the 5.14
68documentation:
69L<http://perldoc.perl.org/5.14.0/perlunicode.html#User-Defined-Case-Mappings-%28for-serious-hackers-only%29>
70
71=head2 XSUBs are now 'static'
72
73XSUB C functions are now 'static', that is, they are not visible from
74outside the compilation unit. Users can use the new C<XS_EXTERNAL(name)>
75and C<XS_INTERNAL(name)> macros to pick the desired linking behaviour.
76The ordinary C<XS(name)> declaration for XSUBs will continue to declare
77non-'static' XSUBs for compatibility, but the XS compiler,
78C<ExtUtils::ParseXS> (C<xsubpp>) will emit 'static' XSUBs by default.
79C<ExtUtils::ParseXS>'s behaviour can be reconfigured from XS using the
80C<EXPORT_XSUB_SYMBOLS> keyword, see L<perlxs> for details.
81
82=head2 Borland compiler
83
84All support for the Borland compiler has been dropped. The code had not
85worked for a long time anyway.
86
87=head2 Weakening read-only references
88
89Weakening read-only references is no longer permitted. It should never
90hove worked anyway, and in some cases could result in crashes.
91
92=head1 Modules and Pragmata
93
94=head2 Updated Modules and Pragmata
95
96=over 4
97
98=item *
99
100L<AnyDBM_File> has been upgraded from version 1.00 to version 1.01.
101
102This is only a minor documentation update.
103
104=item *
105
106L<Archive::Extract> has been upgraded from version 0.52 to version 0.56.
107
108Resolved an issue where C<unzip> executable was present in C<PATH> on MSWin32
109
110=item *
111
112L<Archive::Tar> has been upgraded from version 1.76 to version 1.78.
113
114=item *
115
116L<attributes> has been upgraded from version 0.15 to version 0.16.
117
118=item *
119
120L<Attribute::Handlers> has been upgraded from version 0.92 to version 0.93.
121
122=item *
123
124L<B::Deparse> has been upgraded from version 1.07 to 1.08.
125
126It now correctly deparses C<$#{/}> and C<qq(${#}a)>.
127
128=item *
129
130L<Carp> has been upgraded from version 1.21 to 1.23.
131
132L<Carp> is now a dual life module and several fixes have been make to make
133it more portable to older versions of perl.
134
135=item *
136
137L<CPAN::Meta> has been upgraded from version 2.112150 to version 2.112621.
138
139=item *
140
141L<CPAN::Meta::YAML> has been upgraded from version 0.003 to version 0.004.
142
143=item *
144
145L<CPANPLUS> has been upgraded from version 0.9109 to version 0.9111.
146
147=item *
148
149L<CPANPLUS::Dist::Build> has been upgraded from version 0.56 to version 0.58.
150
151=item *
152
153L<Devel::PPPort> has been upgraded from version 3.19 to version 3.20.
154
155=item *
156
157L<diagnostics> has been upgraded from version 1.24 to version 1.25.
158
159It now strips out C<SZE<lt>E<gt>E<lt>...E<gt>> formatting codes before displaying
160descriptions [perl #94488].
161
162=item *
163
164L<Data::Dumper> has been upgraded from version 2.133 to version 2.134.
165
166The XS code for sorting hash keys has been simplified slightly.
167
168=item *
169
170L<Exporter> has been upgraded from version 5.64_03 to version 5.65.
171
172=item *
173
174L<ExtUtils::ParseXS> has been upgraded from version 3.03_01 to version 3.04_04.
175
176The handling of C<dVAR> in the generated XS code has been simplified.
177
178The previously broken "INCLUDE: ... |" functionality has been repaired
179(CPAN RT #70213).
180
181A compatibility-workaround for modules that cannot
182live with the new XSUB staticness (see I<XSUBs are now static> above)
183has been implemented with the C<PERL_EUPXS_ALWAYS_EXPORT> and
184C<PERL_EUPXS_NEVER_EXPORT> preprocessor defines.
185
186The compiler warnings when -except option is used with F<xsubpp>
187have been fixed.
188
189The XSUB.h changes to make C<XS(name)> use C<XS_INTERNAL(name)>
190by default (which were in the 5.15.2 dev release of perl)
191have been reverted since too many CPAN modules expect to
192be able to refer to XSUBs declared with C<XS(name)>.
193Instead, C<ExtUtils::ParseXS> will define a copy of the
194C<XS_INTERNAL>/C<XS_EXTERNAL> macros as necessary going back to
195perl 5.10.0. By default, ExtUtils::ParseXS will use
196C<XS_INTERNAL(name)> instead of C<XS(name)>.
197
198Fixed regression for input-typemap override in XS argument
199list (CPAN RT #70448).
200
201C<ExtUtils::Typemaps> now properly strips trailing semicolons
202from inputmaps. These could previously trigger warnings (errors
203in strict C89 compilers) due to additional semicolons being
204interpreted as empty statements.
205
206Now detects and throws a warning if there is a C<CODE> section using
207C<RETVAL>, but no C<OUTPUT> section (CPAN RT #69536).
208
209=item *
210
211L<Locale::Codes> has been upgraded from version 3.17 to version 3.18.
212
213The CIA world added non-standard values, so this is no longer used as a source
214of data.
215
216=item *
217
218L<File::Glob> has been upgraded from version 1.12 to version 1.13.
219
220On Windows, tilde (~) expansion now checks the C<USERPROFILE> environment
221variable, after checking C<HOME>.
222
223See also L</Security>.
224
225=item *
226
227L<Filter::Simple> has been upgrade from version 0.87 to 0.88.
228
229It is now better at detecting the end of a pod section. It always checks
230for =cut, instead of checking for =end (if the pod begins with =begin) or
231the end of the paragraph (if the pod begins with =for) [perl #92436].
232
233It is also better at detecting variables. A method call on a variable is
234no longer considered part of the variable name, so strings passed to a
235method are now hidden from filters that do not want to deal with strings
236[perl #92436].
237
238=item *
239
240L<IO> has been upgraded from version 1.25_05 to 1.25_06, and L<IO::Handle>
241from version 1.32 to 1.33.
242
243Together, these upgrades fix a problem with IO::Handle's C<getline> and
244C<getlines> methods. When these methods are called on the special ARGV
245handle, the next file is automatically opened, as happens with the built-in
246C<E<lt>E<gt>> and C<readline> functions. But, unlike the built-ins, these
247methods were not respecting the caller's use of the L<open> pragma and
248applying the approprate I/O layers to the newly-opened file
249[rt.cpan.org #66474].
250
251=item *
252
253L<Math::BigFloat> has been upgraded from version 1.995 to version 1.997.
254
255=item *
256
257L<Math::BigInt> has been upgraded from version 1.996 to version 1.997.
258
259=item *
260
261L<Math::BigInt::FastCalc> has been upgraded from version 0.29 to 0.30.
262
263=item *
264
265L<Math::BigRat> has been upgraded from version 0.2602 to version 0.2603.
266
267C<int()> on a Math::BigRat object containing -1/2 now creates a
268Math::BigInt containing 0, rather than -0. L<Math::BigInt> does not even
269support negative zero, so the resulting object was actually malformed
270[perl #95530].
271
272=item *
273
274L<Module::CoreList> has been upgraded from version 2.55 to 2.56.
275
276Updated module for 5.15.3, additionally it was missing a few entries:
277L<DB_File> in 5.8.2, L<Errno> in 5.6.0 and 5.6.1, and L<VMS::Filespec>
278in 5.12.3.
279
280=item *
281
282L<Module::Metadata> has been upgraded from version 1.000005_01 to version 1.000007.
283
284=item *
285
286L<Module::Load::Conditional> has been upgraded from version 0.44 to version 0.46.
287
288=item *
289
290L<ODBM_File> has been upgraded from version 1.11 to version 1.12.
291
292This is only a minor refactoring of the XS code to bring it closer to the
293other C<?DBM_File> modules.
294
295=item *
296
297L<open> has been upgraded from version 1.08 to 1.09.
298
299It no longer turns of layers on standard handles when invoked without the
300":std" directive. Similarly, when invoked I<with> the ":std" directive, it
301now clears layers on STDERR before applying the new ones, and not just on
302STDIN and STDOUT [perl #92728].
303
304=item *
305
306L<perlfaq> has been upgraded from version 5.01500302 to version 5.0150034.
307
308=item *
309
310L<Pod::Perldoc> has been upgraded from version 3.15_06 to 3.15_07.
311
312When rendering a file specified as an HTTP URL, it now use a manpage name
313based on the URL, instead of the name of the temporary file.
314
315=item *
316
317L<Pod::Simple> has been upgraded from version 3.18 to version 3.19.
318
319=item *
320
321L<POSIX> has been upgraded from version 1.24 to version 1.25.
322
323L<POSIX> no longer uses L<AutoLoader>. Any code which was relying on this
324implementation detail was buggy, and may fail as a result of this change.
325The module's Perl code has been considerably simplified, roughly halving
326the number of lines, with no change in functionality. The XS code has
327been refactored to reduce the size of the shared object by about 12%,
328with no change in functionality. More POSIX functions now have tests.
329
330C<POSIX::Termios::setattr> now defaults the third argument to C<TCSANOW>,
331instead of 0. On most platforms C<TCSANOW> is defined as 0, but on some
3320 is not a valid parameter, which caused a call with defaults to fail.
333
334=item *
335
336L<Search::Dict> has been upgraded from version 1.03 to 1.04.
337
338=item *
339
340L<Storable> has been upgraded from version 2.31 to version 2.32.
341
342XS code which duplicates functionality of F<ppport.h> has been removed.
343Tests should now pass on older versions of L<Test::More>. Storable now
344builds and passes tests back to perl 5.004.
345
346=item *
347
348L<Text::Abbrev> has been upgraded from version 1.01 to 1.02.
349
350=item *
351
352L<threads> has been upgraded from version 1.83 to 1.85.
353
354=item *
355
356L<threads::shared> has been upgraded from version 1.38 to 1.40.
357
358Destructors on shared objects used to be ignored sometimes if the objects
359were referenced only by shared data structures. This has been mostly
360fixed, but destructors may still be ignored if the objects still exist at
361global destruction time [perl #98204].
362
363=item *
364
365L<Unicode::UCD> has been upgraded from version 0.34 to version 0.35.
366
367=item *
368
369L<UNIVERSAL> has been upgraded from version 1.08 to version 1.09.
370
371=item *
372
373L<XSLoader> has been upgraded from version 0.15 to version 0.16.
374
375=back
376
377=head1 Documentation
378
379=head2 New Documentation
380
381=head3 L<perlootut>
382
383This a new OO tutorial. It focuses on basic OO concepts, and then recommends
384that readers choose an OO framework from CPAN.
385
386=head2 Changes to Existing Documentation
387
388=head3 L<perlobj>
389
390=over 4
391
392=item *
393
394This document has been rewritten from scratch, and its coverage of various OO
395concepts has been expanded.
396
397=back
398
399=head3 L<perlpragma>
400
401=over 4
402
403=item *
404
405There is now a standard convention for naming keys in the C<%^H>,
406documented under L<Key naming|perlpragma/Key naming>.
407
408=back
409
410=head2 Removed Documentation
411
412=head3 Old OO Documentation
413
414All the old OO tutorials, perltoot, perltooc, and perlboot, have been
415removed. The perlbot (bag of object tricks) document has been removed as well.
416
417=head3 Development Deltas
418
419The old perldelta files for development cycles prior to 5.15 have been
420removed.
421
422=head1 Utility Changes
423
424=head3 L<h2ph>
425
426=over 4
427
428=item *
429
430L<h2ph> used to generate code of the form
431
432 unless(defined(&FOO)) {
433 sub FOO () {42;}
434 }
435
436But the subroutine is a compile-time declaration, and is hence unaffected
437by the condition. It has now been corrected to emit a string C<eval>
438around the subroutine [perl #99368].
439
440=back
441
442=head1 Configuration and Compilation
443
444=over 4
445
446=item *
447
448The file F<global.sym> is no longer needed, and has been removed. It
449contained a list of all exported functions, one of the files generated by
450F<regen/embed.pl> from data in F<embed.fnc> and F<regen/opcodes>. The code
451has been refactored so that the only user of F<global.sym>, F<makedef.pl>,
452now reads F<embed.fnc> and F<regen/opcodes> directly, removing the need to
453store the list of exported functions in an intermediate file.
454
455As F<global.sym> was never installed, this change will not be visible
456outside the build process.
457
458=back
459
460=head1 Testing
461
462=over 4
463
464=item *
465
466F<t/porting/globvar.t> has been added, to run a sanity check on F<globar.sym>.
467F<globar.sym> is not needed on most *nix platforms, but is for Win32, hence
468previously was it was possible to inadvertently commit changes that worked
469perfectly locally, but broke the build on Win32.
470
471=item *
472
473F<t/op/unlink.t> has been added to test the C<unlink> function.
474
475=item *
476
477Several tests were added in L<POSIX>.
478
479F<ext/POSIX/t/export.t> added to test C<@EXPORT> and C<@EXPORT_OK>.
480F<ext/POSIX/t/sigset.t> added to see if C<POSIX::SigSet> works.
481F<ext/POSIX/t/unimplemented.t> added to test the diagnostics for
482unimplemented functions. F<ext/POSIX/t/usage.t> added to test the
483diagnostics for usage messages. F<ext/POSIX/t/wrappers.t> added to
484test the L<POSIX> wrapper subroutines.
485
486=item *
487
488F<ext/XS-APItest/t/gotosub.t> in L<XS::APItest> tests C<goto &xsub>
489and hints.
490
491=item *
492
493F<t/io/shm.t> was added to see if SysV shared memory works.
494
495=item *
496
497F<t/op/coreamp.t> was added to test C<&foo()> calls for CORE subs.
498
499=back
500
501=head1 Platform Support
502
503=head2 Platform-Specific Notes
504
505=over 4
506
507=item VMS
508
509Remove unnecessary includes, fix miscellaneous compiler warnings and
510close some unclosed comments on F<vms/vms.c>.
511
512Remove sockadapt layer from the VMS build.
513
514=back
515
516=head1 Internal Changes
517
518=over 4
519
520=item *
521
522The C<is_gv_magical_sv> function has been eliminated and merged with
523C<gv_fetchpvn_flags>. It used to be called to determine whether a GV
524should be autovivified in rvalue context. Now it has been replaced with a
525new C<GV_ADDMG> flag (not part of the API).
526
527=item *
528
529Padlists are now marked C<AvREAL>; i.e., reference-counted. They have
530always been reference-counted, but were not marked real, because F<pad.c>
531did its own clean-up, instead of using the usual clean-up code in F<sv.c>.
532That caused problems in thread cloning, so now the C<AvREAL> flag is on,
533but is turned off in F<pad.c> right before the padlist is freed (after
534F<pad.c> has done its custom freeing of the pads).
535
536=item *
537
538All the C files that make up the Perl core have been converted to UTF-8.
539
540=back
541
542=head1 Selected Bug Fixes
543
544=over 4
545
546=item *
547
548In Perl 5.15.0 C<defined(${'$'})> stopped returning true if the C<$$>
549variable had not been used yet. This has been fixed.
550
551=item *
552
553C<defined(${"..."})>, C<defined(*{"..."})>, etc., used to
554return true for most, but not all built-in variables, if
555they had not been used yet. Many times that new built-in
556variables were added in past versions, this construct was
557not taken into account, so this affected C<${^GLOBAL_PHASE}> and
558C<${^UTF8CACHE}>, among others. It also used to return false if the
559package name was given as well (C<${"::!"}>) and for subroutines in the
560CORE package [perl #97978] [perl #97492] [perl #97484].
561
562=item *
563
564Perl 5.10.0 introduced a similar bug: C<defined(*{"foo"})> where "foo"
565represents the name of a built-in global variable used to return false if
566the variable had never been used before, but only on the I<first> call.
567This, too, has been fixed.
568
569=item *
570
571Various functions that take a filehandle argument in rvalue context
572(C<close>, C<readline>, etc.) used to call C<FETCH> multiple times, if it
573was a tied variable, and warn twice, if it was C<undef> [perl #97482].
574
575=item *
576
577C<close> and similar filehandle functions, when called on built-in global
578variables (like C<$+>), used to die if the variable happened to hold the
579undefined value, instead of producing the usual "Use of uninitialized
580value" warning.
581
582=item *
583
584When autovivified file handles were introduced in Perl 5.6.0, C<readline>
585was inadvertently made to autovivify when called as C<readline($foo)> (but
586not as C<E<lt>$fooE<gt>>). It has now been fixed never to autovivify.
587
588=item *
589
590C<defined ${ $tied_variable }> used to call C<FETCH> multiple times, but
591now calls it just once.
592
593=item *
594
595Some cases of dereferencing a complex expression, such as
596C<${ (), $tied } = 1>, used to call C<FETCH> multiple times, but now call
597it once.
598
599=item *
600
601For a tied variable returning a package name, C<$tied-E<gt>method> used to
602call C<FETCH> multiple times (even up to six!), and sometimes would
603fail to call the method, due to memory corruption.
604
605=item *
606
607Calling an undefined anonymous subroutine (e.g., what $x holds after
608C<undef &{$x = sub{}}>) used to cause a "Not a CODE reference" error, which
609has been corrected to "Undefined subroutine called" [perl #71154].
610
611=item *
612
613Causing C<@DB::args> to be freed between uses of C<caller> no longer
614results in a crash [perl #93320].
615
616=item *
617
618Since 5.6.0, C<*{ ... }> has been inconsistent in how it treats undefined
619values. It would die in strict mode or lvalue context for most undefined
620values, but would be treated as the empty string (with a warning) for the
621specific scalar return by C<undef()> (C<&PL_sv_undef> internally). This
622has been corrected. C<undef()> is now treated like other undefined
623scalars, as in Perl 5.005.
624
625=item *
626
627It used to be possible to free the typeglob of a localised array or hash
628(e.g., C<local @{"x"}; delete $::{x}>), resulting in a crash on scope exit.
629
630=item *
631
632C<setpgrp($foo)> used to be equivalent to C<($foo, setpgrp)>, because
633C<setpgrp> was ignoring its argument if there was just one. Now it is
634equivalent to C<setpgrp($foo,0)>.
635
636=item *
637
638Assignments like C<*$tied = \&{"..."}> and C<*glob = $tied> now call FETCH
639only once.
640
641=item *
642
643C<chdir>, C<chmod>, C<chown>, C<utime>, C<truncate>, C<stat>, C<lstat> and
644the filetest ops (C<-r>, C<-x>, etc.) now always call FETCH if passed a tied
645variable as the last argument. They used to ignore tiedness if the last
646thing return from or assigned to the variable was a typeglob or reference
647to a typeglob.
648
649=item *
650
651Perl 5.15.1 inadvertently stopped C<*foo =~ s/\*//r> from working, as it
652would try to force the *foo glob into a string. This has been fixed
653[perl #97954].
654
655=item *
656
657If things were arranged in memory the right way, it was possible for
658thread joining to emit "Attempt to free unreferenced scalar" warnings if
659C<caller> had been used from the C<DB> package prior to thread creation,
660due to the way pads were reference-counted and cloned [perl #98092].
661
662=item *
663
664CORE:: subs were introduced in the previous development release, but
665C<defined &{"CORE::..."}> did not return true. That has been rectified
666[perl #97484].
667
668=item *
669
670Lvalue subroutines were made to autovivify in 5.15.0, but it did not work
671in some cases involving an intervening list operator between the
672dereference operator and the subroutine call (C<${(), lvsub()}>)
673[perl #98184].
674
675=item *
676
677A bug has been fixed that occurs when a tied variable is used as a
678subroutine reference: if the last thing assigned to or returned from the
679variable was a reference or typeglob, the C<\&$tied> could either crash or
680return the wrong subroutine. The reference case is a regression introduced
681in Perl 5.10.0. For typeglobs, it has probably never worked till now.
682
683=item *
684
685C<given> was not scoping its implicit $_ properly, resulting in memory
686leaks or "Variable is not available" warnings [perl #94682].
687
688=item *
689
690C<-l> followed by a bareword no longer "eats" the previous argument to
691the list operator in whose argument list it resides. In less convoluted
692English: C<print "bar", -l foo> now actually prints "bar", because C<-l>
693on longer eats it.
694
695=item *
696
697In 5.14.0, filetest ops (C<-r>, C<-x>, etc.) started calling FETCH on a
698tied argument belonging to the previous argument to a list operator, if
699called with a bareword argument or no argument at all. This has been
700fixed, so C<push @foo, $tied, -r> no longer calls FETCH on C<$tied>.
701
702=item *
703
704C<shmread> was not setting the scalar flags correctly when reading from
705shared memory, causing the existing cached numeric representation in the
706scalar to persist [perl #98480].
707
708=item *
709
710Weakening the first argument to an automatically-invoked C<DESTROY> method
711could result in erroneous "DESTROY created new reference" errors or
712crashes. Now it is an error to weaken a read-only reference.
713
714=item *
715
716Under miniperl (used to configure modules when perl itself is built),
717C<glob> now clears %ENV before calling csh, since the latter croaks on some
718systems if it does not like the contents of the LS_COLORS enviroment
719variable [perl #98662].
720
721=item *
722
723C<++> and C<--> now work on copies of globs, instead of dying.
724
725=item *
726
727The subroutines in the CORE:: namespace that were introduced in the
728previous development release run with the lexical hints (strict, warnings)
729of the caller, just as though the built-in function had been called. But
730this was not the case for C<goto &CORE::sub>. The CORE sub would end up
731running with the lexical hints of the subroutine it replaced, instead of
732that subroutine's caller. This has been fixed.
733
734=item *
735
736Stacked C<-l> (followed immediately by other filetest operators) did not
737work previously; now it does. It is only permitted when the rightmost
738filetest op has the special "_" handle for its argument and the most
739recent C<stat>/C<lstat> call was an C<lstat>.
740
741=item *
742
743In Perl 5.6, C<-l> followed by anything other than a bareword would treat
744its argument as a file name. That was changed in 5.8 for glob references
745(C<\*foo>), but not for globs themselves (C<*foo>). C<-l> started
746returning C<undef> for glob references without setting the last
747stat buffer that the "_" handle uses, but only if warnings
748were turned on. With warnings off, it was the same as 5.6.
749In other words, it was simply buggy and inconsistent. Now the 5.6
750behaviour has been restored.
751
752=back
753
754=head1 Known Problems
755
756=over 4
757
758=item *
759
760We have a failing test in F<op/sigdispatch.t> on i386-netbsd 3.1
761
762=item *
763
764On Solaris, we have two kinds of failure.
765
766If F<make> is Sun's F<make≥>, we get an error about a badly formed macro
767assignment in the F<Makefile>. That happens when F<./Configure> tries to
768make depends. F<Configure> then exits 0, but further F<make>-ing fails.
769
770If F<make> is F<gmake>, F<Configure> completes, then we get errors related
771to F</usr/include/stdbool.h>
772
773=back
774
775=head1 Acknowledgements
776
777Perl 5.15.3 represents approximately 2 months of development since Perl 5.15.2
778and contains approximately 160,000 lines of changes across 700 files from 44
779authors.
780
781Perl continues to flourish into its third decade thanks to a vibrant community
782of users and developers. The following people are known to have contributed the
783improvements that became Perl 5.15.3:
784
785Abigail, Alexandr Ciornii, Aristotle Pagaltzis, Chas. Owens, Chip Salzenberg,
786Chris 'BinGOs' Williams, Craig A. Berry, Damian Conway, Dave Rolsky, David
787Mitchell, Dominic Hargreaves, Douglas Christopher Wilson, Eric Brine, Father
788Chrysostomos, Florian Ragwitz, Frederic Briere, George Greer, Gerard Goossen,
789H.Merijn Brand, Jerry D. Hedden, Jesse Vincent, Jim Cromie, Karl Williamson,
790Keith Thompson, Leo Lapworth, Leon Timmermans, Lukas Mai, Mark Jason Dominus,
791Matthew Horsfall, Moritz Lenz, Nicholas Clark, Peter John Acklam, Rafael
792Garcia-Suarez, Ricardo Signes, Robin Barker, Shlomi Fish, Steffen Müller,
793Stephen Bennett, Stevan Little, Steve Hay, Tony Cook, Vincent Pit, Walt
794Mankowski, Zefram.
795
796The list above is almost certainly incomplete as it is automatically generated
797from version control history. In particular, it does not include the names of
798the (very much appreciated) contributors who reported issues to the Perl bug
799tracker.
800
801Many of the changes included in this version originated in the CPAN modules
802included in Perl's core. We're grateful to the entire CPAN community for
803helping Perl to flourish.
804
805For a more complete list of all of Perl's historical contributors, please see
806the F<AUTHORS> file in the Perl source distribution.
807
808=head1 Reporting Bugs
809
810If you find what you think is a bug, you might check the articles
811recently posted to the comp.lang.perl.misc newsgroup and the perl
812bug database at http://rt.perl.org/perlbug/ . There may also be
813information at http://www.perl.org/ , the Perl Home Page.
814
815If you believe you have an unreported bug, please run the L<perlbug>
816program included with your release. Be sure to trim your bug down
817to a tiny but sufficient test case. Your bug report, along with the
818output of C<perl -V>, will be sent off to perlbug@perl.org to be
819analysed by the Perl porting team.
820
821If the bug you are reporting has security implications, which make it
822inappropriate to send to a publicly archived mailing list, then please send
823it to perl5-security-report@perl.org. This points to a closed subscription
824unarchived mailing list, which includes
825all the core committers, who will be able
826to help assess the impact of issues, figure out a resolution, and help
827co-ordinate the release of patches to mitigate or fix the problem across all
828platforms on which Perl is supported. Please only use this address for
829security issues in the Perl core, not for modules independently
830distributed on CPAN.
831
832=head1 SEE ALSO
833
834The F<Changes> file for an explanation of how to view exhaustive details
835on what changed.
836
837The F<INSTALL> file for how to build Perl.
838
839The F<README> file for general stuff.
840
841The F<Artistic> and F<Copying> files for copyright information.
842
843=cut