* t/pmc/complex.t:
[parrot.git] / DEPRECATED.pod
blobdbc4476e082bfe3c2af42dab3d776f583e86307d
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 vtable entries
15 =over 4
17 =item * C<get_attr> [post 0.5.2]
19 See RT #48583.
21 =item * C<set_attr> [post 0.5.2]
23 See RT #48585.
25 =item * C<type_keyed> [post 0.5.2]
27 See RT #48577.
29 =item * C<type_keyed_int> [post 0.5.2]
31 See RT #48579.
33 =item * C<type_keyed_str> [post 0.5.2]
35 See RT #48581.
37 =item * C<type> [post 0.5.2]
39 See RT #48567.
41 =item * C<new_from_string> [post 0.5.0]
43 See RT #47011.
45 =back
47 =head1 Opcodes
49 =over 4
51 =item * C<pioctl> [post 0.5.1]
53 See RT #48589.
55 =item * C<store_global> [post 0.5.0]
57 See RT #48016. Replace usage with set_[hll,root]_global variants.
59 =item * C<find_global> [post 0.5.0]
61 See RT #48018. Replace usage with get_[hll,root]_global variants.
63 =item * C<new>(out PMC, in INT, in STR) [post 0.5.0]
65 See RT #47011.
67 =item * C<getclass> [post 0.5.0]
69 See RT #47972. Future use should use the C<get_class> opcode.
71 =item * C<get_mro> [post 0.5.0]
73 See RT #47976.
75 =item * C<getfd> [post 0.5.1]
77 See RT #48310.
79 =item * C<saveall> and C<restoreall> ("register stack" ops) [post 0.6.1]
81 It is much faster to use Parrot Calling Conventions or a separate set
82 of registers rather than C<bsr>/C<ret> calling.  See RT #52838.
84 =item * C<save>, C<restore>, other "user stack" ops [post 0.7.0]
86 It is much faster and more flexible to use C<push> and C<pop> on an
87 explicit array object.  The full list of deprecated ops is show below:
89         depth
90         entrytype
91         lookback
92         restore
93         rotate_up
94         save
95         savec
97 See RT #52842 for details.
99 =back
101 =head1 Class Features
103 =over 4
105 =item * Integer Type IDs [post 0.5.0]
107 See RT #48024. Instead of C<$P0 = new Integer> or C<$P0 = new .Integer>,
108 use the following syntax, which works for both PMCs and objects.
110   $P0 = new 'Integer'
112 =item * PMC union struct [post 0.5.0]
114 See RT #48014. This will be removed once all core PMCs have been updated.
116 =back
118 =head1 Exceptions
120 =over 4
122 =item * Keyed access to exception attributes [post 0.5.1]
124 See RT #48012. Attributes on exception objects will no longer be accessible
125 by integer or string key, use C<getattribute> and C<setattribute> instead.
127 =back
129 =head1 PIR syntax
131 =over 4
133 =item * C<<.namespace <identifier> >> syntax [post 0.5.1]
135 See RT #48737.
137 =item * Use of C<::> in identifiers [post 0.5.1]
139 See RT #48735.
141 =item * C<.namespace [ "a" .. "b" ]> [post 0.5.0]
143 See RT #46715.
145 =item * vtable name .constants and __vtable overrides [post 0.5.2]
147 See RT #48877.
149 =item * Assignment syntax with opcodes [post ???]
151 See RT #36283.  When the first argument of an opcode is C<OUT>, then
152 the assignment syntax will be allowed, as it is today.
154 In any other case (i.e. C<INOUT>, C<IN>), this will become
155 a syntax error. For example:
157     $S0 = print
158     $P0 = substr 1, 2, "x"
160 Will have to be:
162     print $S0
163     substr $P0, 1, 2, "x"
166 =back
168 =head1 Parrot Compiler tools
170 Currently there are no deprecations.
172 =cut