1 =head1 Deprecated opcodes
3 All are gone. Please read the history of this file for more.
5 =head1 .imc file extension
16 =head1 Deprecated APIs
22 All Parrot_char_is_* functions from src/string_primitives.c will
23 be removed. Please use Parrot_string_is_cclass() instead.
27 =head1 Deprecated methods
33 PGE::P6Rule is now a registered compiler, and should be used like so:
35 <@pmichaud> it's easy; instead of $P0 = find_global "PGE", "p6rule"
36 one now does $P0 = compreg "PGE::P6Rule"
38 This syntax is also true for PGE::Glob and PGE::P5Regexp
44 Not yet deprecated, but it's recommended to use the new syxtax and
45 gradually change the old.
51 Subroutine attributes will use the colon syntax:
53 .sub foo method, @MULTI(x,y) => .sub foo :method :multi(x,y)
54 .sub foo @ANON, @LOAD => .sub foo :anon :load
56 The new syntax uses no comma separators and all sub attributes are lower
57 case and prefixed by a colon.
61 ... will require a dot in front
63 $P0 = new Integer => $P0 = new .Integer
65 =item Assignment syntax with opcodes [#36283]
67 When the first argument of an opcode is C<OUT>, then the assignment syntax
68 will be allowed, as it is today.
70 In any other case (i.e. C<INOUT>, C<IN>), this will become
71 a syntax error. For example:
74 $P0 = substr 1, 2, "x"
81 =item Assignment Syntax
83 Currently, C<=> is used for both assignment and aliasing. Chip says that,
84 once this change is in effect, we'll use the following syntax:
86 P0 := P1 # aliasing: P0 and P1 point to same PMC
87 P0 := opcode # aliasing: P0 points to PMC returned by opcode
88 P0 = ... # assignment: modifies P0, NO MATTER WHAT '...' IS
90 S0 := S1 # aliasing: S0 and S1 point to same header
91 S0 := opcode # aliasing: S0 points to header returned by opcode
92 S0 = ... # assignment: modifies S0, NO MATTER WHAT '...' IS
95 I0 = ... # assignment: modifies I0
98 N0 = ... # assignment: modifies N0