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.
When deprecating opcodes, in addition to the ticket, be sure to mark the opcode with the :deprecated flag; this will allow users to enable deprecation warnings selectively with:
.include 'include/warnings.pasm' warningson .PARROT_WARNINGS_DEPRECATED_FLAG
And then receive runtime warnings if they are using any deprecated opcodes. The -w
command line option for parrot can also be used to enable all warnings.
get_attr
[post 0.5.2]
See RT #48583.
set_attr
[post 0.5.2]
See RT #48585.
type_keyed
[post 0.5.2]
See RT #48577.
type_keyed_int
[post 0.5.2]
See RT #48579.
type_keyed_str
[post 0.5.2]
See RT #48581.
type
[post 0.5.2]
See RT #48567.
new_from_string
[post 0.5.0]
See RT #47011.
pioctl
[post 0.5.1]
See RT #48589.
store_global
[post 0.5.0]
See RT #48016. Replace usage with set_[hll,root]_global variants.
find_global
[post 0.5.0]
See RT #48018. Replace usage with get_[hll,root]_global variants.
new
(out PMC, in INT, in STR) [post 0.5.0]
See RT #47011.
getclass
[post 0.5.0]
See RT #47972. Future use should use the get_class
opcode.
get_mro
[post 0.5.0]
See RT #47976.
getfd
[post 0.5.1]
See RT #48310.
See RT #48024. Instead of $P0 = new Integer
or $P0 = new .Integer
,
use the following syntax, which works for both PMCs and objects.
$P0 = new 'Integer'
See RT #48014. This will be removed once all core PMCs have been updated.
See RT #48012. Attributes on exception objects will no longer be accessible
by integer key, use getattribute
and setattribute
instead.
Is deprecated, replaced by Parrot_cx_add_handler
(a method call to
add_handler
on the concurrency scheduler object).
Is deprecated, replaced by Parrot_cx_delete_handler_typed
(a method call to
delete_handler
on the concurrency scheduler object).
Is deprecated, replaced by Parrot_cx_count_handlers_typed
(a method call to
count_handlers
on the concurrency scheduler object).
Are deprecated, exception handler lookup by index is no longer supported.
Are deprecated, access to the exception handler list should be performed through the concurrency scheduler.
Is deprecated, replaced by the throw
opcode (the single argument form of
'throwcc' was already identical to 'throw').
Is deprecated, replaced by the exit_fatal
function.
Are deprecated.
Is deprecated, replaced by Parrot_ex_calc_handler_offset
.
Are deprecated, replaced by Parrot_ex_rethrow_from_op
and
Parrot_ex_rethrow_from_c
.
<.namespace <identifier
>> syntax [post 0.5.1]
See RT #48737.
::
in identifiers [post 0.5.1]
See RT #48735.
.namespace [ "a" .. "b" ]
[post 0.5.0]
See RT #46715.
.namespace
(without brackets) [post 0.6.2]
All should .namespace
directives without brackets should take
empty brackets to indicate the root namespace.
See RT #48549.
See RT #48877.
See RT #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"
See RT#54000. The 'get_array', 'get_hash', and 'get_scalar' methods are now called 'list', 'hash', and 'item' respectively.