The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Deprecated opcodes

    All are gone. Please read the history of this file for more.

Deprecated APIs

    All Parrot_char_is_* functions from src/string_primitives.c will be removed. Please use Parrot_string_is_cclass() instead.

Deprecated methods

Sub.get_name_space()

The Sub PMC method get_name_space is being replaced with get_namespace to reflect the internal change from name_space to the one-word namespace.

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 :load

The 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"