This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlexperiment: document the private_use experiment
[perl5.git] / pod / perlexperiment.pod
index 664820a..9d1b6e7 100644 (file)
@@ -16,30 +16,6 @@ their inception, versions, etc. There's a lot of speculation here.
 
 =over 8
 
-=item C<(?{code})> and C<(??{ code })>
-
-Introduced in Perl 5.6.0
-
-See also L<perlre>
-
-=item Lvalue subroutines
-
-Introduced in Perl 5.6.0
-
-See also L<perlsub>
-
-=item C<our> can now have an experimental optional attribute C<unique>
-
-Introduced in Perl 5.8.0
-
-Deprecated in Perl 5.10.0
-
-=item Linux abstract Unix domain sockets
-
-Introduced in Perl 5.9.2
-
-See also L<Socket>
-
 =item Smart match (C<~~>)
 
 Introduced in Perl 5.10.0
@@ -49,164 +25,140 @@ Modified in Perl 5.10.1, 5.12.0
 Using this feature triggers warnings in the category
 C<experimental::smartmatch>.
 
-=item Lexical C<$_>
-
-Introduced in Perl 5.10.0
-
-Using this feature triggers warnings in the category
-C<experimental::lexical_topic>.
+The ticket for this experiment is
+L<[perl #13173]|https://github.com/Perl/perl5/issues/13173>.
 
 =item Pluggable keywords
 
-See L<perlapi/PL_keyword_plugin> for the mechanism.
-
-Introduced in: Perl 5.11.2
-
-=item Array and hash container functions accept references
-
-Introduced in Perl 5.14.0
-
-=item Lexical subroutines
+Introduced in Perl 5.11.2
 
-Introduced in: Perl 5.18
-
-See also: L<perlsub/Lexical Subroutines>
+See L<perlapi/PL_keyword_plugin> for the mechanism.
 
-Using this feature triggers warnings in the category
-C<experimental::lexical_subs>.
+The ticket for this experiment is
+L<[perl #13199]|https://github.com/Perl/perl5/issues/13199>.
 
 =item Regular Expression Set Operations
 
-Introduced in: Perl 5.18
-
-See also: L<perlrecharclass/Extended Bracketed Character Classes>
+Introduced in Perl 5.18
 
 Using this feature triggers warnings in the category
 C<experimental::regex_sets>.
 
-=item C<\s> in regexp matches vertical tab
-
-Introduced in Perl 5.18
-
-=item The <:pop> IO pseudolayer
-
-See also L<perlrun>
-
-=item The <:win32> IO pseudolayer
-
-See also L<perlrun>
-
-=item MLDBM
-
-See also L<perldsc>
-
-=item internal functions with M flag
+The ticket for this experiment is
+L<[perl #13197]|https://github.com/Perl/perl5/issues/13197>.
 
-See also L<perlguts>
-
-=item lex_start API
-
-Introduced in Perl 5.13.7
-
-=item internal API for C<%^H>
-
-Introduced in Perl 5.13.7
-
-See also C<cophh_> in L<perlapi>.
-
-=item alloccopstash
-
-Introduced in Perl 5.18.0
+See also: L<perlrecharclass/Extended Bracketed Character Classes>
 
-=item av_create_and_push
+=item Subroutine signatures
 
-=item av_create_and_unshift_one
+Introduced in Perl 5.20.0
 
-=item av_create_and_unshift_one
+Using this feature triggers warnings in the category
+C<experimental::signatures>.
 
-=item cop_store_label
+The ticket for this experiment is
+L<[perl #13681]|https://github.com/Perl/perl5/issues/13681>.
 
-Introduced in Perl 5.16.0
+=item Aliasing via reference
 
-=item PL_keyword_plugin
+Introduced in Perl 5.22.0
 
-=item gv_fetchmethod_*_flags
+Using this feature triggers warnings in the category
+C<experimental::refaliasing>.
 
-Introduced in Perl 5.16.0
+The ticket for this experiment is
+L<[perl #14150]|https://github.com/Perl/perl5/issues/14150>.
 
-=item hv_iternext_flags
+See also: L<perlref/Assigning to References>
 
-=item lex_bufutf8
+=item The "const" attribute
 
-=item lex_discard_to
+Introduced in Perl 5.22.0
 
-=item lex_grow_linestr
+Using this feature triggers warnings in the category
+C<experimental::const_attr>.
 
-=item lex_next_chunk
+The ticket for this experiment is
+L<[perl #14428]|https://github.com/Perl/perl5/issues/14428>.
 
-=item lex_peek_unichar
+See also: L<perlsub/Constant Functions>
 
-=item lex_read_space
+=item use re 'strict';
 
-=item lex_read_to
+Introduced in Perl 5.22.0
 
-=item lex_read_unichar
+Using this feature triggers warnings in the category
+C<experimental::re_strict>.
 
-=item lex_stuff_pv
+The ticket for this experiment is
+L<[perl #18755]|https://github.com/Perl/perl5/issues/18755>
 
-=item lex_stuff_pvn
+See L<re/'strict' mode>
 
-=item lex_stuff_pvs
+=item The <:win32> IO pseudolayer
 
-=item lex_stuff_sv
+Using this feature triggers warnings in the category
+C<experimental::win32_perlio>.
 
-=item lex_unstuff
+The ticket for this experiment is
+L<[perl #13198]|https://github.com/Perl/perl5/issues/13198>.
 
-=item op_scope
+See also L<perlrun/PERLIO>
 
-=item op_lvalue
+=item Declaring a reference to a variable
 
-=item parse_fullstmt
+Introduced in Perl 5.26.0
 
-=item parse_stmtseq
+Using this feature triggers warnings in the category
+C<experimental::declared_refs>.
 
-=item PL_parser-E<gt>bufend
+The ticket for this experiment is
+L<[perl #15458]|https://github.com/Perl/perl5/issues/15458>.
 
-=item PL_parser-E<gt>bufptr
+See also: L<perlref/Declaring a Reference to a Variable>
 
-=item PL_parser-E<gt>linestart
+=item There is an C<installhtml> target in the Makefile.
 
-=item PL_parser-E<gt>linestr
+The ticket for this experiment is
+L<[perl #12726]|https://github.com/Perl/perl5/issues/12726>.
 
-=item Perl_signbit
+=item (Limited) Variable-length look-behind
 
-=item pad_findmy
+Introduced in Perl 5.30.0.
 
-=item sv_utf8_decode
+Variability of up to 255 characters is handled.
 
-=item sv_utf8_downgrade
+Using this feature triggers warnings in the category
+C<experimental::vlb>.
 
-=item bytes_from_utf8
+The ticket for this experiment is
+L<[perl #18756]|https://github.com/Perl/perl5/issues/18756>.
 
-=item bytes_to_utf8
+See also: L<perlre/(*positive_lookbehind:I<pattern>)> and
+L<perlre/(*negative_lookbehind:I<pattern>)>
 
-=item utf8_to_bytes
+=item Unicode private use character hooks
 
-=item There is an C<installhtml> target in the Makefile.
+Introduced in Perl 5.30.0.
 
-=item Unicode in Perl on EBCDIC
+This feature is part of an interface intended for internal and experimental
+use by the perl5 developers.  You are unlikely to encounter it in the wild.
 
-See also: L<perlre/"Special Backtracking Control Verbs">
+Using this feature triggers warnings in the category
+C<experimental::private_use>.
 
-=item Code expressions, conditional expressions, and independent expressions in regexes
+The ticket for this experiment is
+L<[perl #18758]|https://github.com/Perl/perl5/issues/18758>.
 
-=item gv_try_downgrade
+=item isa infix operator
 
-See also L<perlintern>
+Introduced in Perl 5.32.0.
 
-=item Experimental Support for Sun Studio Compilers for Linux OS
+Using this feature triggers warnings in the category
+C<experimental::isa>.
 
-See also L<perllinux>
+The ticket for this experiment is
+L<[perl #18754]|https://github.com/Perl/perl5/issues/18754>
 
 =back
 
@@ -269,14 +221,79 @@ Introduced in Perl 5.12
 
 Exact version of acceptance unclear, but no later than Perl 5.18.
 
+=item C<(?{code})> and C<(??{ code })>
+
+Introduced in Perl 5.6.0
+
+Accepted in Perl 5.20.0
+
+See also L<perlre>
+
+=item Linux abstract Unix domain sockets
+
+Introduced in Perl 5.9.2
+
+Accepted before Perl 5.20.0.  The Socket library is now primarily maintained
+on CPAN, rather than in the perl core.
+
+See also L<Socket>
+
+=item Lvalue subroutines
+
+Introduced in Perl 5.6.0
+
+Accepted in Perl 5.20.0
+
+See also L<perlsub>
+
 =item Backtracking control verbs
 
 C<(*ACCEPT)>
 
-Introduced in: Perl 5.10
+Introduced in Perl 5.10
+
+Accepted in Perl 5.20.0
+
+=item The <:pop> IO pseudolayer
+
+See also L<perlrun/PERLIO>
 
 Accepted in Perl 5.20.0
 
+=item C<\s> in regexp matches vertical tab
+
+Accepted in Perl 5.22.0
+
+=item Postfix dereference syntax
+
+Introduced in Perl 5.20.0
+
+Accepted in Perl 5.24.0
+
+=item Lexical subroutines
+
+Introduced in Perl 5.18.0
+
+Accepted in Perl 5.26.0
+
+=item String- and number-specific bitwise operators
+
+Introduced in Perl 5.22.0
+
+Accepted in Perl 5.28.0
+
+=item Alphabetic assertions
+
+Introduced in Perl 5.28.0
+
+Accepted in Perl 5.32.0
+
+=item Script runs
+
+Introduced in Perl 5.28.0
+
+Accepted in Perl 5.32.0
+
 =back
 
 =head2 Removed features
@@ -327,12 +344,44 @@ Moved from Perl 5.10.1 to CPAN
 
 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
 
-Introduced in: 5.11.2
+Introduced in Perl 5.11.2
+
+Removed in Perl 5.11.3
+
+=item Lexical C<$_>
+
+Using this feature triggered warnings in the category
+C<experimental::lexical_topic>.
+
+Introduced in Perl 5.10.0
+
+Removed in Perl 5.24.0
+
+=item Array and hash container functions accept references
+
+Using this feature triggered warnings in the category
+C<experimental::autoderef>.
+
+Superseded by L</Postfix dereference syntax>.
+
+Introduced in Perl 5.14.0
+
+Removed in Perl 5.24.0
 
-Removed in: 5.11.3
+=item C<our> can have an experimental optional attribute C<unique>
+
+Introduced in Perl 5.8.0
+
+Deprecated in Perl 5.10.0
+
+Removed in Perl 5.28.0
 
 =back
 
+=head1 SEE ALSO
+
+For a complete list of features check L<feature>.
+
 =head1 AUTHORS
 
 brian d foy C<< <brian.d.foy@gmail.com> >>