Fix skip/plan, should quiet coretest
[parrot.git] / DEPRECATED.pod
blob09dd2be3933e7e2536088a22196eba723dd3361b
1 # $Id$
3 =head1 Purpose
5 Provide a list of deprecated and experimental items in parrot.
6 All items in this list should have a corresponding Trac ticket[1].
8 =head1 Experimental Status
10 These features are not considered stable, even though they may
11 have shipped in a stable release of parrot[2]. Use them at your own
12 risk, as they can be removed or changed in any release. These
13 items are marked below with C<[experimental]>.
15 =head1 Deprecated Status
17 Please see F<docs/project/support_policy.pod> for the parrot
18 project's policy regarding deprecated features.
20 Each item shows the first release in which it is eligible for removal, e.g.
21 C<[eligible in 1.5]>.  If the release listed is one that has already
22 shipped, this feature may be removed in B<any> upcoming release, and
23 you should no longer rely on it.
25 Whenever deprecated items are removed, information
26 regarding how to cope with the removal should be added to
27 L<https://trac.parrot.org/parrot/wiki/Deprecation>.
29 When running parrot, you can receive warnings about deprecated opcodes.
30 Either run parrot with the C<-w> option to enable all warnings, or
31 specifically by including this C<PIR> code:
33  .include 'warnings.pasm'
34  warningson .PARROT_WARNINGS_DEPRECATED_FLAG
36 =head1 PMCS
38 =over 4
40 =item moved to dynpmc [eligible in 1.1]
42 AddrRegistry, CodeString, Env, Eval, File, OS, PCCMETHOD_Test, StringHandle,
43 and Timer.
45 L<https://trac.parrot.org/parrot/ticket/448>
47 =item multiple dispatch within core PMCs [eligible in 1.1]
49 L<https://trac.parrot.org/parrot/ticket/452>
51 =item Method stdhandle in ParrotInterpreter [experimental]
53 L<https://trac.parrot.org/parrot/ticket/264>
55 =item Overriding vtable invoke in PIR objects [experimental]
57 The VTABLE invoke in object.pmc puts SELF at the start of the
58 signature call arguments when there is no current object and is
59 not already here. This allows the usage of $P0() instead of $P0($P0).
61 L<https://trac.parrot.org/parrot/ticket/103>
63 =item CPointer PMC [eligible in 2.1]
65 And all uses in the Parrot calling conventions.
67 L<https://trac.parrot.org/parrot/ticket/1407>
69 =item Digest dynpmcs [eligible in 2.4]
71 The digest dynpmcs are, since the posting of this notice, available on
72 http://gitorious.org/digest-dynpmcs and will no longer be distributed
73 with parrot after 2.3.
75 L<https://trac.parrot.org/parrot/ticket/1467>
77 =item gdbmhash dynpmc [eligible in 2.4]
79 The gdbmhash dynpmc is, since the posting of this notice, available on
80 http://gitorious.org/dbm-dynpmcs and will no longer be distributed
81 with parrot after 2.3.
83 L<https://trac.parrot.org/parrot/ticket/1469>
85 =back
87 =head1 Opcodes
89 =over 4
91 =item moved to dynop [eligible in 1.1]
93 Parts or all of: bit.ops, debug.ops, io.ops, math.ops, set.ops
94 (the obscure and rarely used parts), sys.ops.
96 L<https://trac.parrot.org/parrot/ticket/449>
98 =item get_addr and set_addr [eligible in 1.5]
100 L<https://trac.parrot.org/parrot/ticket/218>
102 These opcodes are being repurposed. They will always return a unique memory
103 address of the PMC. Uses of get_addr and set_addr that would set label values
104 for Sub, Exception, and related PMC types will instead be handled by
105 get_label and set_label.
107 =item sizeof [eligible in 2.4]
109 This opcode uses the old integer ID for a PMC type; this opcode should be changed
110 to use the current methods to lookup a PMC or removed entirely.
112 L<https://trac.parrot.org/parrot/ticket/633>
114 =item All bitwise ops [eligible in 2.1]
116 All bitwise ops (all ops containing C<bitwise> in their names) will be provided
117 by dynops.  B<NOTE>: Before removing the bitwise ops, make sure that the
118 equivalent dynops are available and that the major HLLs (Rakudo, Partcl, Lua,
119 etc) have switched to using them.
121 L<https://trac.parrot.org/parrot/ticket/1260>
123 =item get_results opcode order and features [eligible in 2.1]
125 Move get_results to follow invoke.
127 L<https://trac.parrot.org/parrot/ticket/1405>
129 get_results no longer used to fetch exception object.
131 L<https://trac.parrot.org/parrot/ticket/1406>
133 =item GC_SYS_NAME option to interpinfo_s_i [experimental]
135 Ability to get the string name of the current GC core from the interpinfo_s_i.
136 See r43900 and r43904 for details.
138 =back
140 =head1 Bytecode
142 =over 4
144 =item packfile structure [experimental]
146 L<https://trac.parrot.org/parrot/ticket/451>
148 =item opcode numbering [experimental]
150 L<https://trac.parrot.org/parrot/ticket/451>
152 =item PMC numbering [experimental]
154 L<https://trac.parrot.org/parrot/ticket/451>
156 =back
158 =head1 Debugger
160 Assigning to registers [experimental]
162 =head1 PIR syntax
164 =over 4
166 =item Assignment syntax with opcodes [eligible in 1.1]
168 L<https://trac.parrot.org/parrot/ticket/906>
170 =item continuation-based ExceptionHandlers [eligible in 2.1]
172 L<https://trac.parrot.org/parrot/ticket/1091>
174 =item implicit optional named parameters [eligible in 2.1]
176 L<https://trac.parrot.org/parrot/ticket/1103>
178 =back
180 =head1 Functions
182 =over 4
184 =item mmd_cvt_to_types [eligible in 1.1]
186 L<https://trac.parrot.org/parrot/ticket/907>
188 =item Subs marked with C<:vtable>/C<:method> aren't in namespace [eligible in 1.1]
190 Subs marked with C<:vtable> or C<:method> flags are no longer given a
191 namespace entry by default.  Use the C<:nsentry> flag to cause this
192 to happen.
194 L<https://trac.parrot.org/parrot/ticket/389>
196 =item C API coding standards cleanup [eligible in 1.1]
198 All C API functions that aren't currently named according to the
199 'Parrot_<system>_*' scheme will be renamed. A list of renamed
200 functions will be kept in the ticket at:
202 L<https://trac.parrot.org/parrot/ticket/443>
204 =item PMC Attributes Allocation Functions [experimental]
206  Parrot_gc_allocate_pmc_attributes
207  Parrot_gc_free_pmc_attributes
209 These items and related helper functions are added as experimental support
210 for L<https://trac.parrot.org/parrot/ticket/895>
212 =item STRING Out parameters in Parrot_str_* functions [eligible in 2.1]
214 All STRING modification functions will return a STRING pointer; capture and use
215 this rather than relying on in-place modification of an existing pointer.
217 =item STRING_is_null function [eligible in 2.4]
219 renamed to Parrot_str_is_null
221 =item Parrot_string_* [eligible in 2.4]
223 rename Parrot_string_cstring to Parrot_str_cstring
225 =item STRING functions which don't have Parrot_str_ prefix
227 The string subsytem is gradually getting an overhaul.
229 =back
231 =head1 Compiler tools
233 =head2 Parrot Grammar Engine (PGE)
235 =over 4
237 =item Action methods in rules
239 Per Synopsis 5, all regexes will have an implied {*} token at the
240 end which cause invocation of an action method if a C<:action>
241 object is supplied.
243 L<https://trac.parrot.org/parrot/ticket/843>
245 =back
247 =head2 Parrot Compiler Toolkit
249 =over 4
251 =item PCT::HLLCompiler stages [eligible in 1.1]
253 The interface of various methods for adding, removing, and modifying
254 the list stages in a PCT::HLLCompiler object is subject to change.
255 The existing actual stages will remain; only the mechanism for specifying
256 the order of individual stages is likely to change.
258 L<https://trac.parrot.org/parrot/ticket/462>
260 =item PCT::HLLCompiler from Perl 5's Test::Harness [eligible in 1.1]
262 In order to facilitate using PCT::HLLCompiler with test harnesses,
263 the C<command_line> method of PCT::HLLCompiler object exits silently
264 if it detects that it is being run in a sample run from Perl's
265 Test::Harness.  Currently this detection is done by checking the
266 second command line argument for "@INC"; future releases may
267 use a different detection mechanism or eliminate it altogether.
269 L<https://trac.parrot.org/parrot/ticket/463>
271 =item PAST::Val node generation [eligible in 1.5]
273 The PAST::Compiler may generate the code for PAST::Val nodes
274 (i.e., constants) at the beginning of the block (Parrot sub) instead
275 of the location where they occur in the PAST tree.
277 L<https://trac.parrot.org/parrot/ticket/868>
279 =back
281 =head1 Compilers
283 =over 4
285 =item json [eligible in 2.4]
287 The json compiler was dupicated into data_json some time ago. If you're
288 using json, just use data_json instead, it's the same code. See TT #1461.
290 =item nqp [eligible in 2.4]
292 Replaced by ext/nqp-rx and parrot-nqp.
294 L<http://trac.parrot.org/parrot/ticket/1462>
296 =back
298 =head1 Parrot library
300 =over 4
302 =item PARROT_LIBRARY and PARROT_INCLUDE environment variables [experimental]
304 L<https://trac.parrot.org/parrot/ticket/1429>
306 A way to provide an equivalent of -L and -I parrot command line options
307 to language that doesn't support it.
309 =item JSON, JSON, and Config;JSON [eligible in 1.5]
311 L<https://trac.parrot.org/parrot/ticket/508>
313 =item Cross-HLL library loading [experimental]
315 L<https://trac.parrot.org/parrot/ticket/754>
317 =item OpenGL bindings and libraries [experimental]
319 L<https://trac.parrot.org/parrot/ticket/852>
321 =back
323 =head1 Footnotes
325 =over 4
327 =item 1
329 L<Trac|http://trac.parrot.org/> is parrot's primary issue tracking system.
331 =item 2
333 For an item to be considered experimental, it can B<never> have shipped in
334 a stable release without the C<[experimental]> tag; otherwise, it must be
335 deprecated normally before removal or incompatible change.
337 =back
339 =cut