[CORE] Make Emacs coda read-only in generated files (part of #37664).
[parrot.git] / DEPRECATED.pod
blobf7b1e30bae2855919ab7f04430a2d63492811dbd
1 # $Id$
3 =head1 Deprecation in Parrot
5 This is a list of currently deprecated features of Parrot.  Every deprecation
6 has an associated RT ticket.  Each item indicates the last release it's
7 guaranteed to appear in.  Items marked with a release of ??? are still
8 deprecated, but a firm deadline for their removal has not yet been established.
10 When deprecated items are removed, all usage of the feature in the
11 repository should be updated or removed; including documentation.
13 When deprecating opcodes, in addition to the ticket, be sure to mark the
14 opcode with the :deprecated flag; this will allow users to enable deprecation
15 warnings selectively with:
17  .include 'include/warnings.pasm'
18  warningson .PARROT_WARNINGS_DEPRECATED_FLAG
20 And then receive runtime warnings if they are using any deprecated opcodes.  The C<-w>
21 command line option for parrot can also be used to enable all warnings.
23 =head1 vtable entries
25 =over 4
27 =item * C<get_attr> [post 0.5.2]
29 See RT #48583.
31 =item * C<set_attr> [post 0.5.2]
33 See RT #48585.
35 =item * C<type_keyed> [post 0.5.2]
37 See RT #48577.
39 =item * C<type_keyed_int> [post 0.5.2]
41 See RT #48579.
43 =item * C<type_keyed_str> [post 0.5.2]
45 See RT #48581.
47 =item * C<type> [post 0.5.2]
49 See RT #48567.
51 =item * C<new_from_string> [post 0.5.0]
53 See RT #47011.
55 =back
57 =head1 Opcodes
59 =over 4
61 =item * C<pioctl> [post 0.5.1]
63 See RT #48589.
65 =item * C<store_global> [post 0.5.0]
67 See RT #48016. Replace usage with set_[hll,root]_global variants.
69 =item * C<find_global> [post 0.5.0]
71 See RT #48018. Replace usage with get_[hll,root]_global variants.
73 =item * C<new>(out PMC, in INT, in STR) [post 0.5.0]
75 See RT #47011.
77 =item * C<getclass> [post 0.5.0]
79 See RT #47972. Future use should use the C<get_class> opcode.
81 =item * C<get_mro> [post 0.5.0]
83 See RT #47976.
85 =item * C<getfd> [post 0.5.1]
87 See RT #48310.
89 =back
91 =head1 Class Features
93 =over 4
95 =item * Integer Type IDs [post 0.5.0]
97 See RT #48024. Instead of C<$P0 = new Integer> or C<$P0 = new .Integer>,
98 use the following syntax, which works for both PMCs and objects.
100   $P0 = new 'Integer'
102 =item * PMC union struct [post 0.5.0]
104 See RT #48014. This will be removed once all core PMCs have been updated.
106 =back
108 =head1 Exceptions
110 =over 4
112 =item * Keyed access to exception attributes [post 0.5.1]
114 See RT #48012. Attributes on exception objects will no longer be accessible
115 by integer key, use C<getattribute> and C<setattribute> instead.
117 =item * 'push_exception' function [post 0.6.2]
119 Is deprecated, replaced by C<Parrot_cx_add_handler> (a method call to
120 C<add_handler> on the concurrency scheduler object).
122 =item * 'pop_exception' function [post 0.6.2]
124 Is deprecated, replaced by C<Parrot_cx_delete_handler_typed> (a method call to
125 C<delete_handler> on the concurrency scheduler object).
127 =item * 'count_exception_handlers' function [post 0.6.2]
129 Is deprecated, replaced by C<Parrot_cx_count_handlers_typed> (a method call to
130 C<count_handlers> on the concurrency scheduler object).
132 =item * 'get_exception_handler' function and 'get_eh' opcode [post 0.6.2]
134 Are deprecated, exception handler lookup by index is no longer supported.
136 =item * 'get_all_exception_handlers' function and 'get_all_eh' opcode [post 0.6.2]
138 Are deprecated, access to the exception handler list should be performed
139 through the concurrency scheduler.
141 =item * 'throwcc' opcode [post 0.6.2]
143 Is deprecated, replaced by the C<throw> opcode (the single argument form of
144 'throwcc' was already identical to 'throw').
146 =item * 'internal_exception' function [post 0.6.2]
148 Is deprecated, replaced by the C<exit_fatal> function.
150 =item * 'do_exception', 'do_str_exception', 'do_pmc_exception', 'create_exception' [post 0.6.2]
152 Are deprecated.
154 =item * 'handle_exception' [post 0.6.2]
156 Is deprecated, replaced by C<Parrot_ex_calc_handler_offset>.
158 =item * 'rethrow_exception', 'rethrow_c_exception' [post 0.6.2]
160 Are deprecated, replaced by C<Parrot_ex_rethrow_from_op> and
161 C<Parrot_ex_rethrow_from_c>.
163 =back
165 =head1 PIR syntax
167 =over 4
169 =item * C<<.namespace <identifier> >> syntax [post 0.5.1]
171 See RT #48737.
173 =item * Use of C<::> in identifiers [post 0.5.1]
175 See RT #48735.
177 =item * C<.namespace [ "a" .. "b" ]> [post 0.5.0]
179 See RT #46715.
181 =item * C<.namespace> (without brackets) [post 0.6.2]
183 All should C<.namespace> directives without brackets should take
184 empty brackets to indicate the root namespace.
185 See RT #48549.
187 =item * vtable name .constants and __vtable overrides [post 0.5.2]
189 See RT #48877.
191 =item * Assignment syntax with opcodes [post ???]
193 See RT #36283.  When the first argument of an opcode is C<OUT>, then
194 the assignment syntax will be allowed, as it is today.
196 In any other case (i.e. C<INOUT>, C<IN>), this will become
197 a syntax error. For example:
199     $S0 = print
200     $P0 = substr 1, 2, "x"
202 Will have to be:
204     print $S0
205     substr $P0, 1, 2, "x"
208 =back
210 =head1 Parrot Compiler tools
212 =head2 Capture-based objects
214 =over 4
216 =item get_array, get_hash, get_scalar deprecations [post 0.6.2]
218 See RT#54000.  The 'get_array', 'get_hash', and 'get_scalar'
219 methods are now called 'list', 'hash', and 'item' respectively.
221 =back
223 =cut