forked from parrot/parrot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
DEPRECATED
100 lines (60 loc) · 2.23 KB
/
DEPRECATED
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
=head1 Deprecated opcodes
All are gone. Please read the history of this file for more.
=head1 .imc file extension
http://xrl.us/jc4u
IMC vs. PIR
Two names enter
One name leaves
/me giggles
-- Chip Salzenberg
=head1 Deprecated APIs
=over 4
=item *
All Parrot_char_is_* functions from src/string_primitives.c will
be removed. Please use Parrot_string_is_cclass() instead.
=back
=head1 Deprecated methods
=over 4
=item PGE
PGE::P6Rule is now a registered compiler, and should be used like so:
<@pmichaud> it's easy; instead of $P0 = find_global "PGE", "p6rule"
one now does $P0 = compreg "PGE::P6Rule"
This syntax is also true for PGE::Glob and PGE::P5Regexp
=back
=head1 FUTURE changes
Not yet deprecated, but it's recommended to use the new syxtax and
gradually change the old.
=over 4
=item Chip's colon
Subroutine attributes will use the colon syntax:
.sub foo method, @MULTI(x,y) => .sub foo :method :multi(x,y)
.sub foo @ANON, @LOAD => .sub foo :anon :load
The new syntax uses no comma separators and all sub attributes are lower
case and prefixed by a colon.
=item Class name IDs
... will require a dot in front
$P0 = new Integer => $P0 = new .Integer
=item Assignment syntax with opcodes [#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"
=item Assignment Syntax
Currently, C<=> is used for both assignment and aliasing. Chip says that,
once this change is in effect, we'll use the following syntax:
P0 := P1 # aliasing: P0 and P1 point to same PMC
P0 := opcode # aliasing: P0 points to PMC returned by opcode
P0 = ... # assignment: modifies P0, NO MATTER WHAT '...' IS
S0 := S1 # aliasing: S0 and S1 point to same header
S0 := opcode # aliasing: S0 points to header returned by opcode
S0 = ... # assignment: modifies S0, NO MATTER WHAT '...' IS
I0 := ... # ILLEGAL
I0 = ... # assignment: modifies I0
N0 := ... # ILLEGAL
N0 = ... # assignment: modifies N0
=back