Some pure-perl code that perl was using to retrieve Unicode properties and
transliteration mappings has been reimplemented in XS.
+=head2 Constant subroutines
+
+The interpreter internals now support a far more memory efficient form of
+inlineable constants. Storing a reference to a constant value in a symbol
+table is equivalent to a full typeglob referencing a constant subroutine,
+but using about 400 bytes less memory. This proxy constant subroutine is
+automatically upgraded to a real typeglob with subroutine if necessary.
+The approach taken is analogous to the existing space optimisation for
+subroutine stub declarations, which are stored as plain scalars in place
+of the full typeglob.
+
+However, to aid backwards compatibility of existing code, which (wrongly)
+does not expect anything other than typeglobs in symbol tables, nothing in
+core uses this feature, other than the regression tests.
+
+Stubs for prototyped subroutines have been stored in symbol tables as plain
+strings, and stubs for unprototyped subroutines as the number -1, since 5.005,
+so code which assumes that the core only places typeglobs in symbol tables
+has been making incorrect assumptions for over 10 years.
+
=head1 New Platforms
Compile support added for:
C<base> upgraded to version 2.13
+=over 4
+
+=item *
+
+Loading a module via base.pm would mask a global C<$SIG{__DIE__}> in that
+module.
+
+=item *
+
+push all classes at once in C<@ISA>
+
+=back
+
=item *
C<Benchmark> upgraded to version 1.10
C<Carp> upgraded to version 1.10
+Carp's argument backtrace code would show undef as "undef" - a string.
+
=item *
C<CGI> upgraded to version 3.42
=item *
C<XS::APItest> and C<XS::Typemap> are for internal use only and hence
-no longer installed.
+no longer installed. Many more tests have been added to C<XS::APItest>.
=back
Passing a raw string of "NaN" to L<nawk> causes a core dump - so the string
has been changed to "*NaN*"
+=item *
+
+F<t/op/stat.t> tests will now test hard links on VMS if they are supported.
+
=back
=head3 Windows
The F<WinCE> directory has been merged into the F<Win32> directory.
+=item *
+
+C<setlocale> tests have been re-enabled for Windows XP onwards.
+
=back
=head1 Selected Bug Fixes
=item *
-Fix bug RT #45053, newCONSTSUB() is now thread safe.
+Fix bug RT #45053, C<Perl_newCONSTSUB> is now thread safe.
=back
=item *
-Revisited a patch from 5.6.1 for RH7.2 for Intel's F<icc> (RT #7916), added an
+Revisited a patch from 5.6.1 for RH7.2 for Intel's F<icc> [RT #7916], added an
aditional check for C<$Config{gccversion}>.
=back
=item *
-Various problems using L<overload> with 64-bit ints corrected (identified
-in new tests).
+Various problems using L<overload> with 64 bit integers corrected.
=item *
=head1 New Tests
-=over 4
-
-=item *
-
-Regression tests for sprintf with 64 bit semantics (30058).
+Many modules updated from CPAN incorporate new tests. Some core specific
+tests have been added:
-=item *
-
-Tests for L<overload> for 64-bit ints (32141).
-
-=item *
-
-Tests for tainting and C<open> with C<|-> as second argument (30048).
-
-=item *
+=over 4
-C<exit> can now be called in expressions that the optimizer constant-folds
-(29976).
+=item ext/DynaLoader/t/DynaLoader.t
-=item *
+Tests for the C<DynaLoader> module.
-Test smallbuf overflow in S_incline (30024)
+=item t/comp/fold.t
-=item *
+Tests for compile-time constant folding.
-Tests for mathematical functions in L<POSIX>
+=item t/io/pvbm.t
-=item *
+Tests incorporated from 5.10.0 which check that there is no unexpected
+interaction between the internal types C<PVBM> and C<PVGV>
-Verify POSIX::AUTOLOAD works (29592)
+=item t/lib/proxy_constant_subs.t
-=item *
+Tests for the new form of constant subroutines.
-Remove C<DynaLoader> from C<1_compile.t> as it's now part of C<libperl.so>
-(27549, 27566, 28226, 28227, 28228, 28274, 28308). Also skip failure test on
-these patforms: VMS, darwin, OpenBSD, and cygwin (28333, 28840, 29253, 29707).
+=item t/op/attrhand.t
-=item *
+Tests for C<Attribute::Handlers>
-Added bitflip hash tests (31914, 31915)
+=item t/op/dbm.t
-=item *
+Tests for C<dbmopen>
-Tests for C<hv_delete>, C<hv_exists>, C<hv_fetch>, C<hv_store> (31905, 31912)
+=item t/op/inccode-tie.t
-=item *
+Calls all tests in F<t/op/inccode.t> after first tying C<@INC>.
-Test disabling key conversion in hash lookups (31923)
+=item t/op/incfilter.t
-=back
+Tests for for source filters returned from code references in C<@INC>.
-=over 4
+=item t/op/kill0.t
-=item *
+Tests for RT #30970
-Significantly improved testing for C<$/> usage with C<PerlIO::Scalar> in-memory
-files.
+=item t/op/qrstack.t
-=item *
+Tests for RT #41484
-Test both C<MY_CXT> and C<MY_CXT_INTERP> in the CXT API.
+=item t/op/qr.t
-=item *
+Tests for the qr// construct
-Added test to run regex substitution C<s///> under taint mode (29618).
+=item t/op/regexp_qr_embed.t
-=item *
+Tests for the qr// construct within another regexp
-Tests for L<Thread>.
+=item t/op/regexp_qr.t
-=item *
+Tests for the qr// construct
-Regression tests for L<base> manipulation of C<@ISA> under certain
-inheritance conditions. (32469)
+=item t/op/rxcode.t
-=item *
+Tests for RT #32840
-Test that L<base> does not mask C<SIGDIE>. (32469)
+=item t/op/studytied.t
-=item *
+Tests for C<study> on tied scalars
-Test that L<base> does not confuse the version. (32469)
+=item t/op/substT.t
-=item *
+Tests for C<subst> run under C<-T> mode
-Test that inheriting from a base with protected fields generates a warning.
-(32469)
+=item t/op/symbolcache.t
-=item *
+Tests for C<undef> and C<delete> on stash entries that are bound to subroutines or methods.
-Test that L<base> can coexist with a L<consant> called C<FIELDS>. (31420)
+=item t/op/upgrade.t
-=item *
+Tests for C<Perl_sv_upgrade>
-Test that L<Carp::cluck> correctly reports undef values. (31858)
+=item t/pod/twice.t
-=item *
+Tests for calling C<Pod::Parser> twice
-Test that C<$@> is correctly localised in L<Locale::Maketext>. (25547)
+=item t/run/cloexec.t
-=item *
+Tests for inheriting file descriptors across C<exec> (close-on-exec)
-B<TODO> test for "C<goto()> from an if to an else doesn't undo local". (RT #43403)
+=item t/uni/cache.t
-=back
+Tests for the UTF-8 caching code.
-=head1 Changed Tests
+=item t/uni/chr.t
-=over 4
+Test that strange encodings do not upsets C<Perl_pp_chr>
-=item *
+=item t/uni/greek.t
-C<setlocale()> tests have been re-enabled for Windows XP onwards. (31491)
+Tests for RT #40641
-=item *
+=item t/uni/latin2.t
-C<commonsense.t> tests no longer require that C<DB_File> or C<*DBM_File> are
-included. (31528)
+Tests for RT #40641
-=item *
+=item t/uni/overload.t
-Printing to C<stdout> by C<TabsWrap> tests has been consolidated to avoid
-problems with VMS pipes. (31646)
+Tests for returning Unicode from overloaded values.
-=item *
+=item t/uni/tie.t
-C<t/op/stat.t> tests will now test hard links on VMS if they are supported.
-(31665, 31666)
+Tests for returning Unicode from tied variables.
=back