perl: compatibility recommendations in version data
[sheet.git] / perl.inc.pl
index 940b16ee5efe70c91966a1aee98f83159485e9c9..8811babf25477e3f4d716baeeea4bb5fdaed40c8 100644 (file)
@@ -1,6 +1,24 @@
 use utf8;
 
 +{
+       v5.005 => {
+               new => [
+                       ['threads' => '', {experimental => 0, stable => 0}],
+                       ['<code>B::…</code>', 'backend hooks'],
+                       ['<code>qr//</code>' => 'overhauled regular expression engine: precompile operator, lookahead/behind, code, conditions, localised flags'],
+                       ['<code>… foreach</code>' => '<code>for(each)</code> as statement modifier, with large ranges optimised as counting loops'],
+                       ['<code>…::</code>' => 'implicitly quoted package name'],
+                       ['<code>ref $@</code>' => '<code>die</code> passes reference values to exception handlers'],
+                       ['<code>INIT {}</code>', 'subs run just before the perl runtime begins execution'],
+                       ['<code>tie @…</code>' => 'base class for <code>TIEARRAY</code> implementations, and generally improved supported of tied handlers'],
+                       ['<code>substr …,…,…,$replace</code>', 'replacement string in 4th argument'],
+                       ['<code>splice …,…,-$length</code>', 'negative length indicates elements to keep at the end of an array'],
+                       ['<code>$/</code>', 'integer or scalar separator makes <code>&lt;&gt;</code> read records instead of lines'],
+               ],
+               release => '1998-07-22',
+               unstable => 0,
+       },
+
        v5.6 => {
                new => [
                        ['<code>use warnings</code>', 'pragma to enable warnings in lexical scope'],
@@ -47,6 +65,7 @@ use utf8;
                        ubuntu => '4.10',
                        aix => '5.2', # v5.8.0; v5.8.2 in 5.3 and 6.1 (eol 2017-04-30)
                },
+               distrosum => "dinosaur platforms such as Solaris 10, AIX 5.2, RHEL 3, SLES 8",
                unicode => '3.2.0',
        },
 
@@ -106,6 +125,7 @@ use utf8;
                        debian => 'wheezy',
                        ubuntu => '12.04',
                },
+               distrosum => "stable servers such as Debian wheezy, Ubuntu 12.04, CentOS 7",
                unicode => '6.0+#8',
        },
 
@@ -127,7 +147,7 @@ use utf8;
                new => [
                        ['<code>${^LAST_FH}</code>', 'last read filehandle (used by <code>$.</code>)'],
                        ['<code>/(?[ a + b ])/</code>', 'regex set operations (character substraction <code>-</code>, unions <code>&amp;</code>)', {experimental => 'regex_sets'}],
-                       ['<code>my sub</code>', 'lexical subroutines (also <code>state</code>, <code>our</code>); buggy before v5.22', {feature => 'lexical_subs', experimental => 'lexical_subs'}],
+                       ['<code>my sub</code>', 'lexical subroutines (also <code>state</code>, <code>our</code>); buggy before v5.22', {experimental => 'lexical_subs', stable => v5.26}],
                        ['<code>next $expression</code>', 'loop controls allow runtime expressions'],
                        [q"<code>no warnings 'experimental::…'</code>", 'mechanism for experimental features, as of now required for <em>smartmatch</em>'],
                ],
@@ -181,13 +201,13 @@ use utf8;
                release => '2016-05-09',
        },
 
-       v5.25.10 => {
+       v5.26 => {
                new => [
                        ['<code>&lt;&lt;~EOT</code>', 'indented here-docs, strips same whitespace before delimiter in each line'],
                        ['<code>@{^CAPTURE}</code>', q"array of last match's captures, so <code>${^CAPTURE}[0]</code> is <code>$1</code>"],
                        ['<code>//xx</code>', 'extended modifier to also ignore whitespace in bracketed character classes'],
                ],
                unicode => '9.0', # also Script_Extensions/scx in "\p{script}"
-               release => '2017-02-20',
+               release => '2017-05-30',
        },
 }