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.
-w
get_attr [post 0.5.2]
get_attr
See RT #48583.
set_attr [post 0.5.2]
set_attr
See RT #48585.
type_keyed [post 0.5.2]
type_keyed
See RT #48577.
type_keyed_int [post 0.5.2]
type_keyed_int
See RT #48579.
type_keyed_str [post 0.5.2]
type_keyed_str
See RT #48581.
type [post 0.5.2]
type
See RT #48567.
new_from_string [post 0.5.0]
new_from_string
See RT #47011.
pioctl [post 0.5.1]
pioctl
See RT #48589.
store_global [post 0.5.0]
store_global
See RT #48016. Replace usage with set_[hll,root]_global variants.
find_global [post 0.5.0]
find_global
See RT #48018. Replace usage with get_[hll,root]_global variants.
new(out PMC, in INT, in STR) [post 0.5.0]
new
getclass [post 0.5.0]
getclass
See RT #47972. Future use should use the get_class opcode.
get_class
get_mro [post 0.5.0]
get_mro
See RT #47976.
getfd [post 0.5.1]
getfd
See RT #48310.
Integer Type IDs [post 0.5.0]
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
$P0 = new .Integer
$P0 = new 'Integer'
PMC union struct [post 0.5.0]
See RT #48014. This will be removed once all core PMCs have been updated.
Keyed access to exception attributes [post 0.5.1]
See RT #48012. Attributes on exception objects will no longer be accessible by integer key, use getattribute and setattribute instead.
getattribute
setattribute
'push_exception' function [post 0.6.2]
Is deprecated, replaced by Parrot_cx_add_handler (a method call to add_handler on the concurrency scheduler object).
Parrot_cx_add_handler
add_handler
'pop_exception' function [post 0.6.2]
Is deprecated, replaced by Parrot_cx_delete_handler_typed (a method call to delete_handler on the concurrency scheduler object).
Parrot_cx_delete_handler_typed
delete_handler
'count_exception_handlers' function [post 0.6.2]
Is deprecated, replaced by Parrot_cx_count_handlers_typed (a method call to count_handlers on the concurrency scheduler object).
Parrot_cx_count_handlers_typed
count_handlers
'get_exception_handler' function and 'get_eh' opcode [post 0.6.2]
Are deprecated, exception handler lookup by index is no longer supported.
'get_all_exception_handlers' function and 'get_all_eh' opcode [post 0.6.2]
Are deprecated, access to the exception handler list should be performed through the concurrency scheduler.
'throwcc' opcode [post 0.6.2]
Is deprecated, replaced by the throw opcode (the single argument form of 'throwcc' was already identical to 'throw').
throw
'internal_exception' function [post 0.6.2]
Is deprecated, replaced by the exit_fatal function.
exit_fatal
'do_exception', 'do_str_exception', 'do_pmc_exception', 'create_exception' [post 0.6.2]
Are deprecated.
'handle_exception' [post 0.6.2]
Is deprecated, replaced by Parrot_ex_calc_handler_offset.
Parrot_ex_calc_handler_offset
'rethrow_exception', 'rethrow_c_exception' [post 0.6.2]
Are deprecated, replaced by Parrot_ex_rethrow_from_op and Parrot_ex_rethrow_from_c.
Parrot_ex_rethrow_from_op
Parrot_ex_rethrow_from_c
<.namespace <identifier >> syntax [post 0.5.1]
<.namespace <identifier
See RT #48737.
Use of :: in identifiers [post 0.5.1]
::
See RT #48735.
.namespace [ "a" .. "b" ] [post 0.5.0]
.namespace [ "a" .. "b" ]
See RT #46715.
.namespace (without brackets) [post 0.6.2]
.namespace
All should .namespace directives without brackets should take empty brackets to indicate the root namespace. See RT #48549.
vtable name .constants and __vtable overrides [post 0.5.2]
See RT #48877.
Assignment syntax with opcodes [post ???]
See RT #36283. When the first argument of an opcode is OUT, then the assignment syntax will be allowed, as it is today.
OUT
In any other case (i.e. INOUT, IN), this will become a syntax error. For example:
INOUT
IN
$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.
To install Parrot::Op, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Parrot::Op
CPAN shell
perl -MCPAN -e shell install Parrot::Op
For more information on module installation, please visit the detailed CPAN module installation guide.