This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
readd noreturn and silence "noreturn that returns" warning on MSVC
[perl5.git] / pod / perldelta.pod
index 41d759c..1e4e7b2 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.21.5
+[ this is a template for a new perldelta file.  Any text flagged as XXX needs
+to be processed before release. ]
+
+perldelta - what is new for perl v5.21.6
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.21.4 release and the 5.21.5
+This document describes differences between the 5.21.5 release and the 5.21.6
 release.
 
-If you are upgrading from an earlier release such as 5.21.3, first read
-L<perl5214delta>, which describes differences between 5.21.3 and 5.21.4.
-
-=head1 Core Enhancements
-
-=head2 New double-diamond operator
-
-C<<< <<>> >>> is like C<< <> >> but uses three-argument C<open> to open
-each file in @ARGV.  So each element of @ARGV is an actual file name, and
-"|foo" won't be treated as a pipe open.
-
-=head2 Aliasing via reference
-
-Variables and subroutines can now be aliased by assigning to a reference:
-
-    \$c = \$d;
-    \&x = \&y;
+If you are upgrading from an earlier release such as 5.21.4, first read
+L<perl5215delta>, which describes differences between 5.21.4 and 5.21.5.
 
-Or by using a backslash before a C<foreach> iterator variable, which is
-perhaps the most useful idiom this feature provides:
+=head1 Notice
 
-    foreach \%hash (@array_of_hash_refs) { ... }
+XXX Any important notices here
 
-This feature is experimental and must be enabled via C<use feature
-'refaliasing'>.  It will warn unless the C<experimental::refaliasing>
-warnings category is disabled.
+=head1 Core Enhancements
 
-See L<perlref/Assigning to References>.
+XXX New core language features go here.  Summarize user-visible core language
+enhancements.  Particularly prominent performance optimisations could go
+here, but most should go in the L</Performance Enhancements> section.
 
-=head2 Perl now supports POSIX 2008 locale currency additions.
+[ List each enhancement as a =head2 entry ]
 
-On platforms that are able to handle POSIX.1-2008, the
-hash returned by
-L<C<POSIX::localeconv()>|perllocale/The localeconv function>
-includes the international currency fields added by that version of the
-POSIX standard.  These are
-C<int_n_cs_precedes>,
-C<int_n_sep_by_space>,
-C<int_n_sign_posn>,
-C<int_p_cs_precedes>,
-C<int_p_sep_by_space>,
-and
-C<int_p_sign_posn>.
+=head2 List form of pipe open implemented for Win32
 
-=head2 Packing infinity or not-a-number into a character is now fatal.
+The list form of pipe:
 
-Before, when trying to pack infinity or not-a-number into a
-(signed) character, Perl would warn, and assumed you tried to
-pack C<< 0xFF >>; if you gave it as an argument to C<< chr >>,
-C<< U+FFFD >> was returned. 
+  open my $fh, "-|", "program", @arguments;
 
-But now, all such actions (C<< pack >>, C<< chr >>, and C<< print '%c' >>)
-result in a fatal error.
+is now implemented on Win32.  It has the same limitations as C<system
+LIST> on Win32, since the Win32 API doesn't accept program arguments
+as a list.
 
 =head1 Security
 
-=head2 Perl is now compiled with -fstack-protector-strong if available
-
-Perl has been compiled with the anti-stack-smashing option
-C<-fstack-protector> since 5.10.1.  Now Perl uses the newer variant
-called C<-fstack-protector-strong>, if available.  (This was added
-already in 5.21.4.)
+XXX Any security-related notices go here.  In particular, any security
+vulnerabilities closed should be noted here rather than in the
+L</Selected Bug Fixes> section.
 
-=head1 Deprecations
+[ List each security issue as a =head2 entry ]
 
-=head2 Use of multiple /x regexp modifiers
+=head1 Incompatible Changes
 
-It is now deprecated to say something like any of the following:
+XXX For a release on a stable branch, this section aspires to be:
 
-    qr/foo/xx;
-    /(?xax:foo)/;
-    use re qw(/amxx);
+    There are no changes intentionally incompatible with 5.XXX.XXX
+    If any exist, they are bugs, and we request that you submit a
+    report.  See L</Reporting Bugs> below.
 
-That is, now C<x> should only occur once in any string of contiguous
-regular expression pattern modifiers.  We do not believe there are any
-occurrences of this in all of CPAN.  This is in preparation for a future
-Perl release having C</xx> mean to allow white-space for readability in
-bracketed character classes (those enclosed in square brackets:
-C<[...]>).
+[ List each incompatible change as a =head2 entry ]
 
-=head1 Performance Enhancements
+=head1 Deprecations
 
-=over 4
+XXX Any deprecated features, syntax, modules etc. should be listed here.
 
-=item *
+=head2 Module removals
 
-C<length> is up to 20% faster for non-magical/non-tied scalars containing a
-string if it is a non-utf8 string or if C<use bytes;> is in scope.
+XXX Remove this section if inapplicable.
 
-=item *
+The following modules will be removed from the core distribution in a
+future release, and will at that time need to be installed from CPAN.
+Distributions on CPAN which require these modules will need to list them as
+prerequisites.
 
-Non-magical/non-tied scalars that contain only a floating point value and are
-on most Perl builds with 64 bit integers now use 8-32 less bytes of memory
-depending on OS.
+The core versions of these modules will now issue C<"deprecated">-category
+warnings to alert you to this fact.  To silence these deprecation warnings,
+install the modules in question from CPAN.
 
-=item *
+Note that these are (with rare exceptions) fine modules that you are encouraged
+to continue to use.  Their disinclusion from core primarily hinges on their
+necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
+not usually on concerns over their design.
 
-In C<@array = split>, the assigment can be optimised away with C<split>
-writing directly to the array.  This optimisation was happening only for
-package arrays other than @_ and only
-sometimes.  Now this optimisation happens
-almost all the time.
+=over
 
-=item *
+=item XXX
 
-C<join> is now subject to constant folding.  Moreover, C<join> with a
-scalar or constant for the separator and a single-item list to join is
-simplified to a stringification.  The separator doesn't even get evaluated.
+XXX Note that deprecated modules should be listed here even if they are listed
+as an updated module in the L</Modules and Pragmata> section.
 
-=item *
+=back
 
-C<qq(@array)> is implemented using two ops: a stringify op and a join op.
-If the qq contains nothing but a single array, the stringification is
-optimised away.
+[ List each other deprecation as a =head2 entry ]
 
-=item *
+=head2 Use of non-graphic characters in single-character variable names
 
-C<our $var> and C<our($s,@a,%h)> in void context are no longer evaluated at
-run time.  Even a whole sequence of C<our $foo;> statements will simply be
-skipped over.  The same applies to C<state> variables.
+The syntax for single-character variable names is more lenient than
+for longer variable names, allowing the one-character name to be a
+punctuation character or even invisible (a non-graphic).  Perl v5.20
+deprecated the ASCII-range controls as such a name.  Now, all
+non-graphic characters that formerly were allowed are deprecated.
+The practical effect of this occurs only when not under C<S<"use
+utf8">>, and affects just the C1 controls (code points 0x80 through
+0xFF), NO-BREAK SPACE, and SOFT HYPHEN.
 
-=back
+=head1 Performance Enhancements
 
-=head1 Modules and Pragmata
+XXX Changes which enhance performance without changing behaviour go here.
+There may well be none in a stable release.
 
-=head2 Updated Modules and Pragmata
+[ List each enhancement as a =item entry ]
 
 =over 4
 
 =item *
 
-L<attributes> has been upgraded from version 0.23 to 0.24.
-
-Avoid reading beyond the end of a buffer. [perl #122629]
-
-=item *
-
-L<B::Concise> has been upgraded from version 0.993 to 0.994.
-
-Null ops that are part of the execution chain are now given sequence
-numbers.
-
-Private flags for nulled ops are now dumped with mnemonics as they would be
-for the non-nulled counterparts.
-
-L<B::Deparse> has been upgraded from version 1.28 to 1.29.
+XXX
 
-Parenthesised arrays in lists passed to C<\> are now correctly deparsed
-with parentheses (e.g., C<\(@a, (@b), @c)> now retains the parentheses
-around @b), this preserving the flattening behaviour of referenced
-parenthesised arrays.  Formerly, it only worked for one array: C<\(@a)>.
-
-C<local our> is now deparsed correctly, with the C<our> included.
-
-C<for($foo; !$bar; $baz) {...}> was deparsed without the C<!> (or C<not>).
-This has been fixed.
-
-Core keywords that conflict with lexical subroutines are now deparsed with
-the C<CORE::> prefix.
+=back
 
-C<foreach state $x (...) {...}> now deparses correctly with C<state> and
-not C<my>.
+=head1 Modules and Pragmata
 
-C<our @array = split(...)> now deparses correctly with C<our> in those
-cases where the assignment is optimised away.
+XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
+go here.  If Module::CoreList is updated, generate an initial draft of the
+following sections using F<Porting/corelist-perldelta.pl>.  A paragraph summary
+for important changes should then be added by hand.  In an ideal world,
+dual-life modules would have a F<Changes> file that could be cribbed.
 
-=item *
+[ Within each section, list entries as a =item entry ]
 
-L<DynaLoader> has been upgraded from version 1.26 to 1.27.
+=head2 New Modules and Pragmata
 
-Remove dl_nonlazy global if unused in Dynaloader. [perl #122926]
+=over 4
 
 =item *
 
-L<Fcntl> has been upgraded from version 1.12 to 1.13.
-
-Add support for the Linux pipe buffer size fcntl() commands.
+XXX
 
-=item *
+=back
 
-L<File::Find> has been upgraded from version 1.28 to 1.29.
+=head2 Updated Modules and Pragmata
 
-Slightly faster module loading time.
+=over 4
 
 =item *
 
-L<Module::CoreList> has been upgraded from version 5.20140920 to 5.20141020.
+L<IO::Socket> has been upgraded from version 1.37 to 1.38.
 
-Updated to cover the latest releases of Perl.
+Document the limitations of the isconnected() method.  [perl #123096]
 
-=item *
+=back
 
-The PathTools module collection has been upgraded from version 3.50 to 3.51.
+=head2 Removed Modules and Pragmata
 
-Slightly faster module loading time.
+=over 4
 
 =item *
 
-L<POSIX> has been upgraded from version 1.44 to 1.45.
-
-POSIX::tmpnam() now produces a deprecation warning.  [perl #122005]
+XXX
 
-=item *
+=back
 
-L<XSLoader> has been upgraded from version 0.17 to 0.18.
+=head1 Documentation
 
-Allow XSLoader to load modules from a different namespace.
-[perl #122455]
+XXX Changes to files in F<pod/> go here.  Consider grouping entries by
+file and be sure to link to the appropriate page, e.g. L<perlfunc>.
 
-=item *
+=head2 New Documentation
 
-L<perlfaq> has been upgraded from version 5.0150045 to version 5.0150046.
-[perl #123008]
+XXX Changes which create B<new> files in F<pod/> go here.
 
-=back
+=head3 L<XXX>
 
-=head1 Documentation
+XXX Description of the purpose of the new file here
 
 =head2 Changes to Existing Documentation
 
-=head3 L<perlrecharclass>
+XXX Changes which significantly change existing files in F<pod/> go here.
+However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
+section.
+
+=head3 L<perldata/Identifier parsing>
 
 =over 4
 
 =item *
 
-Clarifications have been added to L<perlrecharclass/Character Ranges>
-to the effect that Perl guarantees that C<[A-Z]>, C<[a-z]>, C<[0-9]> and
-any subranges thereof in regular expression bracketed character classes
-are guaranteed to match exactly what a naive English speaker would
-expect them to match, even on platforms (such as EBCDIC) where special
-handling is required to accomplish this.
+The syntax of single-character variable names has been brought
+up-to-date and more fully explained.
 
 =back
 
@@ -250,249 +192,281 @@ The following additions or changes have been made to diagnostic output,
 including warnings and fatal error messages.  For the complete list of
 diagnostic messages, see L<perldiag>.
 
+XXX New or changed warnings emitted by the core's C<C> code go here.  Also
+include any changes in L<perldiag> that reconcile it to the C<C> code.
+
 =head2 New Diagnostics
 
+XXX Newly added diagnostic messages go under here, separated into New Errors
+and New Warnings
+
 =head3 New Errors
 
 =over 4
 
 =item *
 
-L<message|perldiag/"Cannot chr %f">
+XXX L<message|perldiag/"message">
+
+=back
+
+=head3 New Warnings
+
+=over 4
 
 =item *
 
-L<message|perldiag/"Cannot compress %f in pack">
+L<Use of literal non-graphic characters in variable names is deprecated|perldiag/"Use of literal non-graphic characters in variable names is deprecated">
 
 =item *
 
-L<message|perldiag/"Cannot pack %f with '%c'">
+A new C<locale> warning category has been created, with the following warning
+messages currently in it:
+
+=over 4
 
 =item *
 
-L<message|perldiag/"Cannot printf %f with '%c'">
+L<Locale '%s' may not work well.%s|perldiag/Locale '%s' may not work well.%s>
 
 =item *
 
-L<message|perldiag/""my" subroutine %s can't be in a package">
+L<Can't do %s("%s") on non-UTF-8 locale; resolved to "%s".|perldiag/Can't do %s("%s") on non-UTF-8 locale; resolved to "%s".>
+
+=back
 
 =back
 
 =head2 Changes to Existing Diagnostics
 
+XXX Changes (i.e. rewording) of diagnostic messages go here
+
 =over 4
 
 =item *
 
-'"my" variable &foo::bar can't be in a package' has been reworded to say
-'subroutine' instead of 'variable'.
+XXX Describe change here
 
 =back
 
-=head1 Testing
+=head1 Utility Changes
+
+XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
+Most of these are built within the directory F<utils>.
+
+[ List utility changes as a =head2 entry for each utility and =item
+entries for each change
+Use L<XXX> with program names to get proper documentation linking. ]
+
+=head2 L<XXX>
 
 =over 4
 
 =item *
 
-Some regular expression tests are written in such a way that they will
-run very slowly if certain optimizations break. These tests have been
-moved into new files, F<< t/re/speed.t >> and F<< t/re/speed_thr.t >>,
-and are run with a C<< watchdog() >>.
+XXX
 
 =back
 
-=head1 Platform Support
+=head1 Configuration and Compilation
 
-=head2 Platform-Specific Notes
+XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
+go here.  Any other changes to the Perl build process should be listed here.
+However, any platform-specific changes should be listed in the
+L</Platform Support> section, instead.
+
+[ List changes as a =item entry ].
 
 =over 4
 
-=item EBCDIC
+=item *
 
-Special handling is required on EBCDIC platforms to get C<qr/[i-j]/> to
-match only C<"i"> and C<"j">, since there are 7 characters between the
-code points for C<"i"> and C<"j">.  This special handling had only been
-invoked when both ends of the range are literals.  Now it is also
-invoked if any of the C<\N{...}> forms for specifying a character by
-name or Unicode code point is used instead of a literal.  See
-L<perlrecharclass/Character Ranges>.
+F<Configure> with C<-Dmksymlinks> should now be faster. [perl #122002]
 
 =back
 
-=head1 Internal Changes
+=head1 Testing
 
-=over 4
+XXX Any significant changes to the testing of a freshly built perl should be
+listed here.  Changes which create B<new> files in F<t/> go here as do any
+large changes to the testing harness (e.g. when parallel testing was added).
+Changes to existing files in F<t/> aren't worth summarizing, although the bugs
+that they represent may be covered elsewhere.
 
-=item *
+[ List each test improvement as a =item entry ]
 
-SVs of type SVt_NV are now bodyless when a build configure and platform allow
-it, specifically C<sizeof(NV) <= sizeof(IV)>. The bodyless trick is the same one
-as for IVs since 5.9.2, but for NVs, unlike IVs, is not guarenteed on all
-platforms and build configurations.
+=over 4
 
 =item *
 
-The C<$DB::single>, C<$DB::signal> and C<$DB::trace> now have set and
-get magic that stores their values as IVs and those IVs are used when
-testing their values in C<pp_dbstate>.  This prevents perl from
-recursing infinity if an overloaded object is assigned to any of those
-variables. [perl #122445]
+XXX
 
-=item *
+=back
 
-C<Perl_tmps_grow> which is marked as public API but undocumented has been
-removed from public API. If you use C<EXTEND_MORTAL> macro in your XS code to
-preextend the mortal stack, you are unaffected by this change.
+=head1 Platform Support
 
-=item *
+XXX Any changes to platform support should be listed in the sections below.
 
-C<cv_name>, which was introduced in 5.21.4, has been changed incompatibly.
-It now has a flags field that allows the caller to specify whether the name
-should be fully qualified.  See L<perlapi/cv_name>.
+[ Within the sections, list each platform as a =item entry with specific
+changes as paragraphs below it. ]
 
-=item *
+=head2 New Platforms
 
-Internally Perl no longer uses the C<SVs_PADMY> flag.  C<SvPADMY()> now
-returns a true value for anything not marked PADTMP.  C<SVs_PADMY> is now
-defined as 0.
+XXX List any platforms that this version of perl compiles on, that previous
+versions did not.  These will either be enabled by new files in the F<hints/>
+directories, or new subdirectories and F<README> files at the top level of the
+source tree.
 
-=item *
+=over 4
 
-The macros SETsv and SETsvUN have been removed. They were no longer used
-in the core since commit 6f1401dc2a, and have not been found present on
-CPAN.
+=item XXX-some-platform
 
-=item *
+XXX
 
-The C<< SvFAKE >> bit (unused on HVs) got informally reserved by
-David Mitchell for future work on vtables.
+=back
 
-=item *
+=head2 Discontinued Platforms
 
-The C<sv_catpvn_flags> function accepts C<SV_CATBYTES> and C<SV_CATUTF8>
-flags, which specify whether the appended string is bytes or utf8,
-respectively.
+XXX List any platforms that this version of perl no longer compiles on.
 
-=item *
+=over 4
 
-A new opcode class, C<< METHOP >> has been introduced, which holds
-class/method related info needed at runtime to improve performance
-of class/object method calls.
+=item XXX-some-platform
 
-C<< OP_METHOD >> and C<< OP_METHOD_NAMED >> are moved from being
-C<< UNOP/SVOP >> to being C<< METHOD >>.
+XXX
 
 =back
 
-=head1 Selected Bug Fixes
+=head2 Platform-Specific Notes
+
+XXX List any changes for specific platforms.  This could include configuration
+and compilation changes or changes in portability/compatibility.  However,
+changes within modules for platforms should generally be listed in the
+L</Modules and Pragmata> section.
 
 =over 4
 
-=item *
+=item XXX-some-platform
 
-Locking and unlocking values via L<Hash::Util> or C<Internals::SvREADONLY>
-no longer has any effect on values that are read-only to begin.
-Previously, unlocking such values could result in crashes, hangs or
-other erratic behaviour.
+XXX
 
-=item *
+=back
+
+=head3 Win32
 
-The internal C<looks_like_number> function (which L<Scalar::Util> provides
-access to) began erroneously to return true for "-e1" in 5.21.4, affecting
-also C<-'-e1'>.  This has been fixed.
+=over 4
 
 =item *
 
-The flip-flop operator (C<..> in scalar context) would return the same
-scalar each time, unless the containing subroutine was called recursively.
-Now it always returns a new scalar.  [perl #122829]
+In the experimental C<:win32> layer, a crash in C<open> was fixed. Also
+opening C</dev/null>, which works the Win32 Perl's normal C<:unix> layer, was
+implemented for C<:win32>.
+L<[perl #122224]|https://rt.perl.org/Ticket/Display.html?id=122224>
 
 =item *
 
-Some unterminated C<(?(...)...)> constructs in regular expressions would
-either crash or give erroneous error messages.  C</(?(1)/> is one such
-example.
+A new makefile option, C<USE_LONG_DOUBLE>, has been added to the Windows
+dmake makefile for gcc builds only.  Set this to "define" if you want perl to
+use long doubles to give more accuracy and range for floating point numbers.
 
-=item *
+=back
+
+=head1 Internal Changes
 
-C<pack "w", $tied> no longer calls FETCH twice.
+XXX Changes which affect the interface available to C<XS> code go here.  Other
+significant internal changes for future core maintainers should be noted as
+well.
 
-=item *
+[ List each change as a =item entry ]
 
-List assignments like C<($x, $z) = (1, $y)> now work correctly if $x and $y
-have been aliased by C<foreach>.
+=over 4
 
 =item *
 
-Some patterns including code blocks with syntax errors, such as
-C</ (?{(^{})/>, would hang or fail assertions on debugging builds.  Now
-they produce errors.
+C<screaminstr> has been removed. Although marked as public API, it is
+undocumented and has no usage in modern perl versions on CPAN Grep. Calling it
+has been fatal since 5.17.0.
 
-=item *
+=back
 
-An assertion failure when parsing C<sort> with debugging enabled has been
-fixed.  [perl #122771]
+=head1 Selected Bug Fixes
 
-=item *
+XXX Important bug fixes in the core language are summarized here.  Bug fixes in
+files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
+
+[ List each fix as a =item entry ]
 
-C<*a = *b; @a = split //, $b[1]> could do a bad read and produce junk
-results.
+=over 4
 
 =item *
 
-In C<() = @array = split>, the C<() => at the beginning no longer confuses
-the optimiser, making it assume a limit of 1.
+fchmod() and futimes() now set C<$!> when they fail due to being
+passed a closed file handle.  [perl #122703]
 
 =item *
 
-Fatal warnings no longer prevent the output of syntax errors.
-[perl #122966]
+Perl now comes with a corrected Unicode 7.0 for the erratum issued on
+October 21, 2014 (see L<http://www.unicode.org/errata/#current_errata>),
+dealing with glyph shaping in Arabic.
 
 =item *
 
-Fixed a NaN double to long double conversion error on VMS. For quiet NaNs
-(and only on Itanium, not Alpha) negative infinity instead of NaN was
-produced. 
+op_free() no longer crashes due to a stack overflow when freeing a
+deeply recursive op tree. [perl #108276]
 
 =item *
 
-Fixed the issue that caused C<< make distclean >> to leave files behind
-that shouldn't. [perl #122820]
+scalarvoid() would crash due to a stack overflow when processing a
+deeply recursive op tree. [perl #108276]
 
 =item *
 
-AIX now sets the length in C<< getsockopt >> correctly. [perl #120835],
-[rt #91183], [rt #85570].
+In Perl 5.20.0, C<$^N> accidentally had the internal UTF8 flag turned off
+if accessed from a code block within a regular expression, effectively
+UTF8-encoding the value.  This has been fixed.  [perl #123135]
 
-=item *
+=back
 
-During the pattern optimization phase, we no longer recurse into
-GOSUB/GOSTART when not SCF_DO_SUBSTR. This prevents the optimizer
-to run "forever" and exhaust all memory. [perl #122283]
+=head1 Known Problems
 
-=item *
+XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
+tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
+platform specific bugs also go here.
 
-F<< t/op/crypt.t >> now performs SHA-256 algorithm if the default one
-is disabled. [perl #121591]
+[ List each fix as a =item entry ]
+
+=over 4
 
 =item *
 
-Fixed an off-by-one error when setting the size of shared array.
-[perl #122950]
+Starting in 5.21.6, accessing L<perlapi/CvPADLIST> in an XSUB is forbidden.
+CvPADLIST has be reused for a different internal purpose for XSUBs. Guard all
+CvPADLIST expressions with C<CvISXSUB()> if your code doesn't already block
+XSUB CV*s from going through optree CV* expecting code.
+
+=back
+
+=head1 Errata From Previous Releases
+
+=over 4
 
 =item *
 
-Fixed a bug that could cause perl to execute an infite loop during
-compilation. [perl #122995]
+XXX Add anything here that we forgot to add, or were mistaken about, in
+the perldelta of a previous release.
 
 =back
 
+=head1 Obituary
+
+XXX If any significant core contributor has died, we've added a short obituary
+here.
+
 =head1 Acknowledgements
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.21.4..HEAD
+  perl Porting/acknowledgements.pl v5.21.5..HEAD
 
 =head1 Reporting Bugs