This is a list of currently deprecated features of Parrot. Every deprecation has an associated RT or TT ticket. Each item indicates the last release it's guaranteed to appear in.
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. You can use make warnings_tests to run the standard test suite with this option.
-w
make warnings_tests
Rakudo Perl moves to its own repository [post 0.9.0]
Rakudo Perl (languages/perl6) will be moving to its own repository shortly after the 0.9.0 release. The new location is yet to be determined.
vtablecache [post 0.9.0] (TT #6)
delegate [post 0.9.0] (TT #187)
deleg_pmc [post 0.9.0] (TT #187)
enumerate [post 0.9.0] (TT #187)
intlist [post 0.9.0] (TT #187)
multiarray [post 0.9.0] (TT #187)
pair [post 0.9.0] (TT #187)
pointer [post 0.9.0] (TT #187)
closure [post 0.9.0] (TT #188)
random [post 0.9.0] (TT #189)
ref [post 0.9.0] (TT #190)
sarray [post 0.9.0] (TT #191)
tqueue [post 0.9.0] (TT #192)
PMC union struct [post 0.5.0]
See RT #48014. This will be removed once all core PMCs have been updated.
:anon and :vtable named parameters to add_method [post 0.8.2]
If you want to override a vtable method/function when building a Class, then use the method add_vtable_override instead of calling add_method with one or both of these flags.
add_vtable_override
add_method
See TT #158
Assignment syntax with opcodes [post 0.8.2]
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"
named class/pmc lookup in pir syntax such as new, isa, subclass, get_class, etc [post 0.9.0]
Class PMC name resolution will be the following.
if the arg is a STRING Relative to the current Namespace
if the arg is a ResizableStringArray Relative to the current HLL Namespace
if the arg is a Namespace or Class PMC The passed in class or the class attatched to the passed in namespace.
See TT #159
load_bytecode without a file extension [post 0.9.0]
The load_bytecode opcode will require an extension on all .pir, .pasm, and .pbc files. It will perform limited checks for alternate extensions:
a .pir file that isn't found will check for a .pbc file a .pasm file that isn't found will check for a .pbc file a .pbc file that isn't found will check for a .pir file, then a .pasm file
all socket-related opcodes [post 0.9.0]
The socket-related opcodes will all be replaced with method calls.
mmd_cvt_to_types.
See RT #60626.
These two files were a thin prototype implementation of Polymorphic Inline Caching that only ever applied to 4 opcodes, one of which has now been removed. The files (and all functions in them) are deprecated, and will be removed. See RT #60048.
:vtable
:method
Subs marked with :vtable or :method flags are no longer given a namespace entry by default. Use the :nsentry flag to cause this to happen. See RT #60586 and RT #53302.
:nsentry
Stringification of protoobjects will return the full name of the type and parentheses, per Synopsis 12. See TT #168
Sorting is already available as a method on various array-style PMCs. See TT #106
Replace usage with the escape opcode. See TT #107
Hasn't been kept up to date; might move to the examples/ folder, but doesn't need to be in stdlib. See TT #120
To install Parrot::PMC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Parrot::PMC
CPAN shell
perl -MCPAN -e shell install Parrot::PMC
For more information on module installation, please visit the detailed CPAN module installation guide.