# $Id: DEPRECATED.pod 23998 2007-12-17 05:56:31Z coke $

=head1 Deprecation in Parrot

This is a list of currently deprecated features of Parrot.  Every deprecation
has an associated RT ticket.  Each item indicates the last release it's
guaranteed to appear in.  Items marked with a release of ??? are still
deprecated, but a firm deadline for their removal has not yet been established.

When deprecated items are removed, all usage of the feature in the
repository should be updated or removed; including documentation.

=head1 PMC syntax

=over 4

=item * C<METHOD> [post 0.5.2]

The current C<METHOD> syntax will be deleted and the current C<PCCMETHOD>
syntax will replace it under the name C<METHOD>. See RT #48565.

=back

=head1 vtable entries

=over 4

=item * C<get_attr> [post 0.5.2]

See RT #48583.

=item * C<set_attr> [post 0.5.2]

See RT #48585.

=item * C<type_keyed> [post 0.5.2]

See RT #48577.

=item * C<type_keyed_int> [post 0.5.2]

See RT #48579.

=item * C<type_keyed_str> [post 0.5.2]

See RT #48581.

=item * C<get_bool_keyed> [post 0.5.2]

See RT #48571.

=item * C<get_bool_keyed_int> [post 0.5.2]

See RT #48573.

=item * C<get_bool_keyed_str> [post 0.5.2]

See RT #48575.

=item * C<type> [post 0.5.2]

See RT #48567.

=item * C<subtype> [post 0.5.2]

See RT #48569.

=item * C<hash> [post 0.5.1]

See RT #42352.

=item * C<new_from_string> [post 0.5.0]

See RT #47011.

=item * C<class_type> [post 0.5.1]

See RT #48142.

=item * C<pmc_namespace>  [post 0.5.1]

See RT# 48144. Replaced by C<get_namespace>.

=back

=head1 opcodes

=over 4

=item * C<getattribute_p_p_i>, C<setattribute_p_p_i> [post 0.5.1]

See RT # 48729. These were already deprecated, but not fully removed.

=item * C<classoffset> [post 0.5.1]

See RT # 48727. This was already deprecated, but not fully removed.

=item * C<pioctl> [post 0.5.1]

See RT #48589.

=item * C<store_global> [post 0.5.0]

See RT #48016. Replace usage with set_[hll,root]_global variants.

=item * C<find_global> [post 0.5.0]

See RT #48018. Replace usage with get_[hll,root]_global variants.

=item * C<new>(out PMC, in INT, in STR) [post 0.5.0]

See RT #47011.

=item * C<instantiate> [post 0.5.0]

See RT #48022.

=item * C<getclass> [post 0.5.0]

See RT #47972. Future use should use the C<get_class> opcode.

=item * C<get_mro> [post 0.5.0]

See RT #47976.

=item * C<print_newline> [post 0.5.1]

See RT #48010.

=item * C<getfd> [post 0.5.1]

See RT #48310.

=back

=head1 Class Features

=over 4

=item * Integer Type IDs [post 0.5.0]

See RT #48024. Instead of C<$P0 = new Integer> or <$P0 = new .Integer>,
use the following syntax, which works for both PMCs and objects.

  $P0 = new 'Integer'

=item * PMC union struct [post 0.5.0]

See RT #48014. This will be removed once all core PMCs have been updated.

=back

=head1 Exceptions

=over 4

=item * Keyed access to exception attributes [post 0.5.1]

See RT #48012. Attributes on exception objects will no longer be accessible
by integer or string key, use C<getattribute> and C<setattribute> instead.

=back

=head1 PIR syntax

=over 4

=item * C<<.namespace <identifier> >> syntax [post 0.5.1]

See RT #48737.

=item * Use of C<::> in identifiers [post 0.5.1]

See RT #48735.

=item * C<.constant> [post 0.5.1]

See RT #48561. This will be replaced with <.macro_const>

=item * C<.namespace [ "a" .. "b" ]> [post 0.5.0]

See RT #4671.

=item * C<.emit> / C<.eom> [post 0.5.1]

See RT #47846.  Any C<.emit>/C<.eom> blocks should be replaced with
Anonymous C<.sub>s

=item * Assignment syntax with opcodes [post ???]

See RT #36283.  When the first argument of an opcode is C<OUT>, then
the assignment syntax will be allowed, as it is today.

In any other case (i.e. C<INOUT>, C<IN>), this will become
a syntax error. For example:

    $S0 = print
    $P0 = substr 1, 2, "x"

Will have to be:

    print $S0
    substr $P0, 1, 2, "x"


=back

=head1 Parrot Compiler tools

=over 4

=item * pgc.pir [post 0.5.0]

See RT #48026. The pgc.pir compiler for P6 grammars (pre-2007 regex syntax)
is deprecated.  Switch to using the new PGE::Perl6Grammar.pir compiler instead,
and the Perl6Regex syntax.

=item * PGE::P6Regex [post 0.5.0]

See RT #48028. In early 2007 there were a number of changes made to the Perl
6 regular expression syntax (as given by Synopsis 5).  The new syntax is
implemented via the PGE::Perl6Regex compiler, and the PGE::P6Regex compiler
is now deprecated in favor of the new syntax.

=item * compilers/PAST-pm [post 0.5.1]

See RT #48030. The compiler tools in compilers/PAST-pm/ and
runtime/parrot/library/Parrot/HLLCompiler.pir are deprecated
in favor of the new versions in the Parrot Compiler Toolkit
( compilers/pct/ ).  In particular, the PAST representation in
PCT follows the specification given by pdd26 .

=back

=head1 Misc

=over 4

=item * 'v' NCI arg signature [post 0.5.1]

See RT #48733. (Been removed for some time; nice warning is going away)

=back



syntax highlighted by Code2HTML, v. 0.9.1