summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Signes <rjbs@semiotic.systems>2022-05-24 21:36:59 -0400
committerRicardo Signes <rjbs@semiotic.systems>2022-05-24 21:36:59 -0400
commit6a9ee6334c270f52a31436273c2ff497f66682c8 (patch)
tree4e0093b2cb00d388a87345bf7fc22754e3748f93
parentfd5e27c4833657733141ad159d67fd24d99b375a (diff)
parentac5bcfc060a988411bf105baac4d37aac277b197 (diff)
downloadperl-6a9ee6334c270f52a31436273c2ff497f66682c8.tar.gz
Merge remote-tracking branch 'khw/perldelta' into blead
-rw-r--r--pod/perldelta.pod32
1 files changed, 22 insertions, 10 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index b9fc01d010..cc6f7de40f 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -60,9 +60,18 @@ For more information, see L<perlrun/-g>.
See L<https://www.unicode.org/versions/Unicode14.0.0/> for details.
+=head2 regex sets are no longer considered experimental
+
+Prior to this release, the regex sets feature (officially named
+"Extended Bracketed Character Classes") was considered experimental.
+Introduced in Perl version 5.18.0, and modified several times since,
+this is now considered a stable language feature and its use no longer
+prints a warning. See L<perlrecharclass/Extended Bracketed Character
+Classes>.
+
=head2 Variable length lookbehind is mostly no longer considered experimental
-Prior to this release any form of variable length lookbehind was
+Prior to this release, any form of variable length lookbehind was
considered experimental. With this release the experimental status has
been reduced to cover only lookbehind that contains capturing parenthesis.
This is because it is not clear if
@@ -324,7 +333,8 @@ slightly faster), but most operating systems ship a threaded Perl.
=item *
-Large hashes no longer allocate their keys from the shared string table.
+Perl can now be configured to no longer allocate keys for large hashes
+from the shared string table.
The same internal datatype (C<PVHV>) is used for all of
@@ -363,14 +373,16 @@ of the shared string table, as well as increasing the number of times it is
resized as it grows. B<Worse> - in any environment that has "copy on write"
memory for child process (such as a pre-forking server), the memory pages used
for the shared string table rapidly need to be copied as the child process
-manipulates hashes. Hence if most of the shared string table is such keys that
+manipulates hashes. Hence if most of the shared string table is such that keys
are used only in one place, there is no benefit from re-use within the perl
interpreter, but a high cost due to more pages for the OS to copy.
-The perl interpreter now disables shared hash keys for "large" hashes (that are
-neither objects nor symbol tables). "Large" is a heuristic - currently the
-heuristic is that sharing is disabled when adding a key to a hash triggers
-allocation of more storage, and the hash has more than 42 keys.
+The perl interpreter can now be Configured to disable shared hash keys
+for "large" hashes (that are neither objects nor symbol tables). To do
+so, add C<-Accflags='-DPERL_USE_UNSHARED_KEYS_IN_LARGE_HASHES'> to
+your F<Configure> options. "Large" is a heuristic -- currently the
+heuristic is that sharing is disabled when adding a key to a hash
+triggers allocation of more storage, and the hash has more than 42 keys.
This B<might> cause slightly increased memory usage for programs that create
(unblessed) data structures that contain multiple large hashes that share the
@@ -800,9 +812,9 @@ Additionally, the following selected changes have been made:
=item *
-This has been cleaned up some, and about 90% of the (previously many)
-undocumented functions have now either been documented or deemed to have
-been inappropriately marked as API.
+This has been cleaned up some, and more than 80% of the (previously
+many) undocumented functions have now either been documented or deemed
+to have been inappropriately marked as API.
As always, Patches Welcome!