* docs/running.pod:
[parrot.git] / DEPRECATED.pod
blob9ebdb1ff42c8fdc0ce0fa78622108b47ad30bdb7
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 =head1 PMC syntax
15 =over 4
17 =item * C<METHOD> [post 0.5.2]
19 The current C<METHOD> syntax will be deleted and the current C<PCCMETHOD>
20 syntax will replace it under the name C<METHOD>. See RT #48565.
22 =item * C<PCCINVOKE> [post 0.5.2]
24 The syntax for passing named arguments to C<PCCINVOKE> will change from
25 :named['key'] to :named('key') to better match PDD 3. See RT #42292.
27 =back
29 =head1 vtable entries
31 =over 4
33 =item * C<get_attr> [post 0.5.2]
35 See RT #48583.
37 =item * C<set_attr> [post 0.5.2]
39 See RT #48585.
41 =item * C<type_keyed> [post 0.5.2]
43 See RT #48577.
45 =item * C<type_keyed_int> [post 0.5.2]
47 See RT #48579.
49 =item * C<type_keyed_str> [post 0.5.2]
51 See RT #48581.
53 =item * C<get_bool_keyed> [post 0.5.2]
55 See RT #48571.
57 =item * C<get_bool_keyed_int> [post 0.5.2]
59 See RT #48573.
61 =item * C<get_bool_keyed_str> [post 0.5.2]
63 See RT #48575.
65 =item * C<type> [post 0.5.2]
67 See RT #48567.
69 =item * C<subtype> [post 0.5.2]
71 See RT #48569.
73 =item * C<new_from_string> [post 0.5.0]
75 See RT #47011.
77 =item * C<class_type> [post 0.5.1]
79 See RT #48142.
81 =item * C<pmc_namespace>  [post 0.5.1]
83 See RT# 48144. Replaced by C<get_namespace>.
85 =item * C<DYNSELF> [post 0.5.2]
87 Replaced by C<SELF>. (Old behavior of C<SELF> changes to C<STATICSELF>.)
89 =back
91 =head1 opcodes
93 =over 4
95 =item * C<getattribute_p_p_i>, C<setattribute_p_p_i> [post 0.5.1]
97 See RT # 48729. These were already deprecated, but not fully removed.
99 =item * C<classoffset> [post 0.5.1]
101 See RT # 48727. This was already deprecated, but not fully removed.
103 =item * C<pioctl> [post 0.5.1]
105 See RT #48589.
107 =item * C<store_global> [post 0.5.0]
109 See RT #48016. Replace usage with set_[hll,root]_global variants.
111 =item * C<find_global> [post 0.5.0]
113 See RT #48018. Replace usage with get_[hll,root]_global variants.
115 =item * C<new>(out PMC, in INT, in STR) [post 0.5.0]
117 See RT #47011.
119 =item * C<instantiate> [post 0.5.0]
121 See RT #48022.
123 =item * C<getclass> [post 0.5.0]
125 See RT #47972. Future use should use the C<get_class> opcode.
127 =item * C<get_mro> [post 0.5.0]
129 See RT #47976.
131 =item * C<getfd> [post 0.5.1]
133 See RT #48310.
135 =item * C<pmcinfo> [post 0.5.2]
137 See RT #42375.
139 =back
141 =head1 Class Features
143 =over 4
145 =item * Integer Type IDs [post 0.5.0]
147 See RT #48024. Instead of C<$P0 = new Integer> or C<$P0 = new .Integer>,
148 use the following syntax, which works for both PMCs and objects.
150   $P0 = new 'Integer'
152 =item * PMC union struct [post 0.5.0]
154 See RT #48014. This will be removed once all core PMCs have been updated.
156 =back
158 =head1 Exceptions
160 =over 4
162 =item * Keyed access to exception attributes [post 0.5.1]
164 See RT #48012. Attributes on exception objects will no longer be accessible
165 by integer or string key, use C<getattribute> and C<setattribute> instead.
167 =back
169 =head1 PIR syntax
171 =over 4
173 =item * C<<.namespace <identifier> >> syntax [post 0.5.1]
175 See RT #48737.
177 =item * Use of C<::> in identifiers [post 0.5.1]
179 See RT #48735.
181 =item * C<.namespace [ "a" .. "b" ]> [post 0.5.0]
183 See RT #4671.
185 =item * vtable name .constants and __vtable overrides [post 0.5.2]
187 See RT #48877.
189 =item * Assignment syntax with opcodes [post ???]
191 See RT #36283.  When the first argument of an opcode is C<OUT>, then
192 the assignment syntax will be allowed, as it is today.
194 In any other case (i.e. C<INOUT>, C<IN>), this will become
195 a syntax error. For example:
197     $S0 = print
198     $P0 = substr 1, 2, "x"
200 Will have to be:
202     print $S0
203     substr $P0, 1, 2, "x"
206 =back
208 =head1 Parrot Compiler tools
210 =over 4
212 =item * pgc.pir [post 0.5.0]
214 See RT #48026. The pgc.pir compiler for P6 grammars (pre-2007 regex syntax)
215 is deprecated.  Switch to using the new PGE::Perl6Grammar.pir compiler instead,
216 and the Perl6Regex syntax.
218 =item * PGE::P6Regex [post 0.5.0]
220 See RT #48028. In early 2007 there were a number of changes made to the Perl
221 6 regular expression syntax (as given by Synopsis 5).  The new syntax is
222 implemented via the PGE::Perl6Regex compiler, and the PGE::P6Regex compiler
223 is now deprecated in favor of the new syntax.
225 =item * compilers/PAST-pm [post 0.5.1]
227 See RT #48030. The compiler tools in compilers/PAST-pm/ and
228 runtime/parrot/library/Parrot/HLLCompiler.pir are deprecated
229 in favor of the new versions in the Parrot Compiler Toolkit
230 ( compilers/pct/ ).  In particular, the PAST representation in
231 PCT follows the specification given by pdd26 .
233 =back
235 =head1 Misc
237 =over 4
239 =item * 'v' NCI arg signature [post 0.5.1]
241 See RT #48733. (Been removed for some time; nice warning is going away)
243 =back