summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Cook <tony@develop-help.com>2015-08-17 16:38:53 +1000
committerTony Cook <tony@develop-help.com>2015-08-17 16:38:53 +1000
commit0ba9d88c925494ce5e0e96d4ea3c11637807f08c (patch)
tree8d7efe3caf76d0ee74f18c9e1c8f8bdaf6541d73
parentfb10a8a78bba7573de4629b739bfe81cd42e78c9 (diff)
downloadperl-0ba9d88c925494ce5e0e96d4ea3c11637807f08c.tar.gz
perldelta for fb10a8a78bba
-rw-r--r--pod/perldelta.pod22
1 files changed, 22 insertions, 0 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 8ae82cf35d..0530b16b31 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -49,6 +49,28 @@ XXX For a release on a stable branch, this section aspires to be:
XXX Any deprecated features, syntax, modules etc. should be listed here.
+=head2 sysread(), syswrite(), recv() and send() are deprecated on
+:utf8 handles
+
+The sysread(), recv(), syswrite() and send() operators
+are deprecated on handles that have the C<:utf8> layer, either
+explicitly, or implicitly, eg., with the C<:encoding(UTF-16LE)> layer.
+
+Both sysread() and recv() currently use only the C<:utf8> flag for the
+stream, ignoring the actual layers. Since sysread() and recv() do no
+UTF-8 validation they can end up creating invalidly encoded scalars.
+
+Similarly, syswrite() and send() use only the C<:utf8> flag, otherwise
+ignoring any layers. If the flag is set, both write the value UTF-8
+encoded, even if the layer is some different encoding, such as the
+example above.
+
+Ideally, all of these operators would completely ignore the C<:utf8>
+state, working only with bytes, but this would result in silently
+breaking existing code. To avoid this a future version of perl will
+throw an exception when any of sysread(), recv(), syswrite() or send()
+are called on handle with the C<:utf8> layer.
+
=head2 Module removals
XXX Remove this section if inapplicable.