Please see docs/project/support_policy.pod for the parrot project's policy regarding deprecated features.
This is a list of currently deprecated features of Parrot. Every deprecation has an associated Trac ticket [1]. Each item indicates the first release in which it is eligible for removal. If the release listed is one that has already occurred, this feature may be removed at any time.
Following the 1.0 release, whenever deprecated items are removed, information regarding how to cope with the removal will be added to https://trac.parrot.org/parrot/wiki/Deprecation.
When running parrot, you can receive warnings about deprecated opcodes. Either run parrot with the -w option to enable all warnings, or specifically by including this PIR code:
-w
PIR
.include 'include/warnings.pasm' warningson .PARROT_WARNINGS_DEPRECATED_FLAG
https://trac.parrot.org/parrot/ticket/310
https://trac.parrot.org/parrot/ticket/187
https://trac.parrot.org/parrot/ticket/189
https://trac.parrot.org/parrot/ticket/190
https://trac.parrot.org/parrot/ticket/372
https://trac.parrot.org/parrot/ticket/373
AddrRegistry, CodeString, Env, Eval, File, OS, PCCMETHOD_Test, StringHandle, and Timer.
https://trac.parrot.org/parrot/ticket/448
https://trac.parrot.org/parrot/ticket/452
Parts or all of: bit.ops, debug.ops, io.ops, math.ops, obscure.ops, set.ops (the obscure and rarely used parts), sys.ops.
https://trac.parrot.org/parrot/ticket/449
src/ops/experimental.ops
https://trac.parrot.org/parrot/ticket/450
https://trac.parrot.org/parrot/ticket/451
This will be removed once all core PMCs have been updated.
http://rt.perl.org/rt3/Ticket/Display.html?id=48014
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
https://trac.parrot.org/parrot/ticket/158
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"
http://rt.perl.org/rt3/Ticket/Display.html?id=36283
Class PMC name resolution will be the following.
if the arg is a STRING Relative to the current Namespace
if the arg is a Array (of any sort) or Key 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.
https://trac.parrot.org/parrot/ticket/159
.HLL_map
Languages should use this instead:
$P0 = getinterp $P0.'hll_map'(TypeA, TypeB)
https://trac.parrot.org/parrot/ticket/314
http://rt.perl.org/rt3/Ticket/Display.html?id=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.
http://rt.perl.org/rt3/Ticket/Display.html?id=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.
:nsentry
http://rt.perl.org/rt3/Ticket/Display.html?id=53302
They have been renamed to Parrot_pbc_read, Parrot_pbc_load. Parrot_pbc_read has one third int argument.
Parrot_pbc_read
Parrot_pbc_load
https://trac.parrot.org/parrot/ticket/266
All C API functions that aren't currently named according to the 'Parrot_<system>_*' scheme will be renamed. If you depend on these functions in an extending/embedding interface or C-level custom PMCs, check in 1.4 or 2.0 for the new names.
https://trac.parrot.org/parrot/ticket/443
The following functions will be changed to return a Hash* instead of taking a Hash** as an argument:
Hash*
Hash**
parrot_new_hash_x
parrot_new_cstring_hash
parrot_new_pointer_hash
https://trac.parrot.org/parrot/ticket/447
Parrot_new_INTVAL_hash will also be rewritten to return a Hash* and will be renamed to parrot_new_intval_hash for consistency with other similar functions.
Parrot_new_INTVAL_hash
parrot_new_intval_hash
https://trac.parrot.org/parrot/ticket/456
Will be renamed to Parrot_lib_add_path_from_cstring.
Parrot_lib_add_path_from_cstring
https://trac.parrot.org/parrot/ticket/455
Stringification of protoobjects will return the full name of the type and parentheses, per Synopsis 12.
https://trac.parrot.org/parrot/ticket/168
The following "built-in" PGE rules and methods are from previous versions of Synopsis 5.
Deprecated rules: null, fail, sp, lt, gt, dot
null
fail
sp
lt
gt
dot
Deprecated methods: .text, .item, .result_object
.text
.item
.result_object
https://trac.parrot.org/parrot/ticket/460
PGE::Match objects will stringify or numify based on the text that is matched, not the result object.
PGE::Match
https://trac.parrot.org/parrot/ticket/461
The interface of various methods for adding, removing, and modifying the list stages in a PCT::HLLCompiler object is subject to change. The existing actual stages will remain; only the mechanism for specifying the order of individual stages is likely to change.
https://trac.parrot.org/parrot/ticket/462
In order to facilitate using PCT::HLLCompiler with test harnesses, the command_line method of PCT::HLLCompiler object exits silently if it detects that it is being run in a sample run from Perl's Test::Harness. Currently this detection is done by checking the second command line argument for "@INC"; future releases may use a different detection mechanism or eliminate it altogether.
command_line
https://trac.parrot.org/parrot/ticket/463
$(...)
The $(...) syntax for obtaining a result object from a Match object will no longer work. The new syntax is yet to be determined.
https://trac.parrot.org/parrot/ticket/459
Replaced with makefiles.
https://trac.parrot.org/parrot/ticket/338
Trac is parrot's primary issue tracking system.
Older tickets may be listed at RT.
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.