This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlexperiment: long doubles are not experimental
[perl5.git] / pod / perlexperiment.pod
1 =head1 NAME
2
3 perlexperiment - A listing of experimental features in Perl
4
5 =head1 DESCRIPTION
6
7 This document lists the current and past experimental features in the perl
8 core. Although all of these are documented with their appropriate topics,
9 this succinct listing gives you an overview and basic facts about their
10 status.
11
12 So far we've merely tried to find and list the experimental features and infer
13 their inception, versions, etc. There's a lot of speculation here.
14
15 =head2 Current experiments
16
17 =over 8
18
19 =item -Dusemultiplicity -Duseithreads
20
21 Introduced in Perl 5.6.0
22
23 =item C<(?{code})> and C<(??{ code })>
24
25 Introduced in Perl 5.6.0
26
27 See also L<perlre>
28
29 =item Lvalue subroutines
30
31 Introduced in Perl 5.6.0
32
33 See also L<perlsub>
34
35 =item C<our> can now have an experimental optional attribute C<unique>
36
37 Introduced in Perl 5.8.0
38
39 Deprecated in Perl 5.10.0
40
41 =item Linux abstract Unix domain sockets
42
43 Introduced in Perl 5.9.2
44
45 See also L<Socket>
46
47 =item Smart match (C<~~>)
48
49 Introduced in Perl 5.10.0
50
51 Modified in Perl 5.10.1, 5.12.0
52
53 Using this feature triggers warnings in the category
54 C<experimental::smartmatch>.
55
56 =item Lexical C<$_>
57
58 Introduced in Perl 5.10.0
59
60 Using this feature triggers warnings in the category
61 C<experimental::lexical_topic>.
62
63 =item Backtracking control verbs
64
65 C<(*ACCEPT)>
66
67 Introduced in: Perl 5.10
68
69 =item Pluggable keywords
70
71 See L<perlapi/PL_keyword_plugin> for the mechanism.
72
73 Introduced in: Perl 5.11.2
74
75 =item Array and hash container functions accept references
76
77 Introduced in Perl 5.14.0
78
79 =item Lexical subroutines
80
81 Introduced in: Perl 5.18
82
83 See also: L<perlsub/Lexical Subroutines>
84
85 Using this feature triggers warnings in the category
86 C<experimental::lexical_subs>.
87
88 =item Regular Expression Set Operations
89
90 Introduced in: Perl 5.18
91
92 See also: L<perlrecharclass/Extended Bracketed Character Classes>
93
94 Using this feature triggers warnings in the category
95 C<experimental::regex_sets>.
96
97
98 =item The <:pop> IO pseudolayer
99
100 See also L<perlrun>
101
102 =item The <:win32> IO pseudolayer
103
104 See also L<perlrun>
105
106 =item MLDBM
107
108 See also L<perldsc>
109
110 =item internal functions with M flag
111
112 See also L<perlguts>
113
114 =item lex_start API
115
116 Introduced in Perl 5.13.7
117
118 =item internal API for C<%^H>
119
120 Introduced in Perl 5.13.7
121
122 See also C<cophh_> in L<perlapi>.
123
124 =item alloccopstash
125
126 Introduced in Perl 5.18.0
127
128 =item av_create_and_push
129
130 =item av_create_and_unshift_one
131
132 =item av_create_and_unshift_one
133
134 =item cop_store_label
135
136 Introduced in Perl 5.16.0
137
138 =item PL_keyword_plugin
139
140 =item gv_fetchmethod_*_flags
141
142 Introduced in Perl 5.16.0
143
144 =item hv_iternext_flags
145
146 =item lex_bufutf8
147
148 =item lex_discard_to
149
150 =item lex_grow_linestr
151
152 =item lex_next_chunk
153
154 =item lex_peek_unichar
155
156 =item lex_read_space
157
158 =item lex_read_to
159
160 =item lex_read_unichar
161
162 =item lex_stuff_pv
163
164 =item lex_stuff_pvn
165
166 =item lex_stuff_pvs
167
168 =item lex_stuff_sv
169
170 =item lex_unstuff
171
172 =item op_scope
173
174 =item op_lvalue
175
176 =item parse_fullstmt
177
178 =item parse_stmtseq
179
180 =item PL_parser-E<gt>bufend
181
182 =item PL_parser-E<gt>bufptr
183
184 =item PL_parser-E<gt>linestart
185
186 =item PL_parser-E<gt>linestr
187
188 =item Perl_signbit
189
190 =item pad_findmy
191
192 =item sv_utf8_decode
193
194 =item sv_utf8_downgrade
195
196 =item bytes_from_utf8
197
198 =item bytes_to_utf8
199
200 =item utf8_to_bytes
201
202 =item There is an C<installhtml> target in the Makefile.
203
204 =item Unicode in Perl on EBCDIC
205
206 See also: L<perlre/"Special Backtracking Control Verbs">
207
208 =item Code expressions, conditional expressions, and independent expressions in regexes
209
210 =item gv_try_downgrade
211
212 See also L<perlintern>
213
214 =item Experimental Support for Sun Studio Compilers for Linux OS
215
216 See also L<perllinux>
217
218 =back
219
220 =head2 Accepted features
221
222 These features were so wildly successful and played so well with others that
223 we decided to remove their experimental status and admit them as full, stable
224 features in the world of Perl, lavishing all the benefits and luxuries thereof.
225 They are also awarded +5 Stability and +3 Charisma.
226
227 =over 8
228
229 =item 64-bit support
230
231 Introduced in Perl 5.005
232
233 =item die accepts a reference
234
235 Introduced in Perl 5.005
236
237 =item DB module
238
239 Introduced in Perl 5.6.0
240
241 See also L<perldebug>, L<perldebtut>
242
243 =item Weak references
244
245 Introduced in Perl 5.6.0
246
247 =item Internal file glob
248
249 Introduced in Perl 5.6.0
250
251 =item fork() emulation
252
253 Introduced in Perl 5.6.1
254
255 See also L<perlfork>
256
257 =item Support for long doubles
258
259 Introduced in Perl 5.6.0
260
261 Accepted in Perl 5.8.1
262
263 =item The C<\N> regex character class
264
265 The C<\N> character class, not to be confused with the named character
266 sequence C<\N{NAME}>, denotes any non-newline character in a regular
267 expression.
268
269 Introduced in: Perl 5.12
270
271 =back
272
273 =head2 Removed features
274
275 These features are no longer considered experimental and their functionality
276 has disappeared. It's your own fault if you wrote production programs using
277 these features after we explicitly told you not to (see L<perlpolicy>).
278
279 =over 8
280
281 =item 5.005-style threading
282
283 Introduced in Perl 5.005
284
285 Removed in Perl 5.10
286
287 =item perlcc
288
289 Introduced in Perl 5.005
290
291 Moved from Perl 5.9.0 to CPAN
292
293 =item The pseudo-hash data type
294
295 Introduced in Perl 5.6.0
296
297 Removed in Perl 5.9.0
298
299 =item GetOpt::Long Options can now take multiple values at once (experimental)
300
301 C<Getopt::Long> upgraded to version 2.35
302
303 Removed in Perl 5.8.8
304
305 =item Assertions
306
307 The C<-A> command line switch
308
309 Introduced in Perl 5.9.0
310
311 Removed in Perl 5.9.5
312
313 =item Test::Harness::Straps
314
315 Moved from Perl 5.10.1 to CPAN
316
317 =item C<legacy>
318
319 The experimental C<legacy> pragma was swallowed by the C<feature> pragma.
320
321 Introduced in: 5.11.2
322
323 Removed in: 5.11.3
324
325 =back
326
327 =head1 AUTHORS
328
329 brian d foy C<< <brian.d.foy@gmail.com> >>
330
331 SE<eacute>bastien Aperghis-Tramoni C<< <saper@cpan.org> >>
332
333 =head1 COPYRIGHT
334
335 Copyright 2010, brian d foy C<< <brian.d.foy@gmail.com> >>
336
337 =head1 LICENSE
338
339 You can use and redistribute this document under the same terms as Perl
340 itself.
341
342 =cut