Deprecated opcodes
- fetchmethod
-
Use the
find_methodopcode instead.
.imc file extension
http://xrl.us/jc4u
IMC vs. PIR
Two names enter
One name leaves
/me giggles
-- Chip Salzenberg
Deprecated APIs
All Parrot_char_is_* functions from src/string_primitives.c will be removed. Please use Parrot_string_is_cclass() instead.
Deprecated methods
- 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
FUTURE changes
Not yet deprecated, but it's recommended to use the new syxtax and gradually change the old.
- 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 :loadThe new syntax uses no comma separators and all sub attributes are lower case and prefixed by a colon.
- Class name IDs
-
... will require a dot in front
$P0 = new Integer => $P0 = new .Integer - Assignment syntax with opcodes [#36283]
-
When the first argument of an opcode is
OUT, then the assignment syntax will be allowed, as it is today.In any other case (i.e.
INOUT,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" - Assignment Syntax
-
Currently,
=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