[ List each enhancement as a =head2 entry ]
+=head2 More CORE:: subs
+
+Several more built-in functions have been added as subroutines to the
+CORE:: namespace, namely, those non-overridable keywords that can be
+implemented without custom parsers: C<defined>, C<delete>, C<exists>,
+C<glob>, C<pos>, C<protoytpe>, C<scalar>, C<split>, C<study>, C<undef>,
+
+As some of these have prototypes, C<prototype('CORE::...')> has been
+changed not to make a distinction between overridable and non-overridable
+keywords. This is to make C<prototype('CORE::pos')> consistent with
+C<prototype(&CORE::pos)>.
+
=head1 Security
XXX Any security-related notices go here. In particular, any security
=item *
-L<IO> has been upgraded from version 1.25_06 to version 1.25_07.
+L<IO> has been upgraded from version 1.25_06 to 1.25_07.
-C<sync()> can now be called on read only file handles [perl #64772].
+C<sync()> can now be called on read-only file handles [perl #64772].
=item *
=item *
-L<Unicode::UCD> has been upgraded from version 0.43 to version 0.44.
+L<Unicode::UCD> has been upgraded from version 0.43 to 0.44.
+
This adds a function L<all_casefolds()|Unicode::UCD/all_casefolds()>
that returns all the casefolds.
=back
+=head2 Removals of Diagnostics
+
+=over 4
+
+=item *
+
+The "Runaway prototype" warning that occurs in bizarre cases has been
+removed as being unhelpful and inconsistent.
+
+=back
+
=head1 Utility Changes
XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
=item *
-XXX
+The C<study> function was made a no-op in 5.16. It was simply disabled via
+a C<return> statement; the code was left in place. Now the code supporting
+what C<study> used to do has been removed.
+
+=item *
+
+Under threaded perls, there is no longer a separate PV allocated for every
+COP to store its package name (C<< cop->stashpv >>). Instead, there is an
+offset (C<< cop->stashoff >>) into the new C<PL_stashpad> array, which
+holds stash pointers.
=back
=item *
-On optimisation involving fixed strings in regular expressions could cause
+An optimisation involving fixed strings in regular expressions could cause
a severe performance penalty in edge cases. This has been fixed
[perl #76546].
+=item *
+
+The "Can't find an opnumber" message that C<prototype> produces when passed
+a string like "CORE::nonexistent_keyword" is now passes UTF8 and embedded
+nulls through unchanged [perl #97478].
+
+=item *
+
+Under threaded perls, a run-time code block in a regular expression could
+corrupt the package name stored in the op tree, resulting in bad reads
+in C<caller>, and possibly crashes [perl #113060].
+
+=item *
+
+Referencing a closure prototype (C<\&{$_[1]}> in an attribute handler for a
+closure) no longer results in a copy of the subroutine (or assertion
+failures on debugging builds).
+
+=item *
+
+C<eval '__PACKAGE__'> now returns the right answer on threaded builds if
+the current package has been assigned over (as in
+C<*ThisPackage:: = *ThatPackage::>) [perl #78742].
+
+=item *
+
+If a package is deleted by code that it calls, it is possible for C<caller>
+to see a stack frame belonging to that deleted package. C<caller> could
+crash if the stash's memory address was reused for a scalar and a
+substitution was performed on the same scalar [perl #113486].
+
=back
=head1 Known Problems