Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: pmc_i_ops
Fetching contributors…

Cannot retrieve contributors at this time

380 lines (222 sloc) 9.07 kB

Deprecation in Parrot

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 in any upcoming 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:

 .include 'warnings.pasm'
 warningson .PARROT_WARNINGS_DEPRECATED_FLAG

Configuration

Alternate GC configurations [eligible in 1.5]

malloc, malloc-trace and libc will be removed as potential options for the --gc config option.

https://trac.parrot.org/parrot/ticket/490

PMCS

pair (dynamic PMC) [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/187

random [eligible in 1.1]

https://trac.parrot.org/parrot/ticket/189

moved to dynpmc [eligible in 1.1]

AddrRegistry, CodeString, Env, Eval, File, OS, PCCMETHOD_Test, StringHandle, and Timer.

https://trac.parrot.org/parrot/ticket/448

multiple dispatch within core PMCs [eligible in 1.1]

https://trac.parrot.org/parrot/ticket/452

Hash changes to AssociativePMCArray [eligible in 1.5]

Also OrderedHash to OrderedAssociativePMCArray.

https://trac.parrot.org/parrot/ticket/679

Opcodes

moved to dynop [eligible in 1.1]

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

experimental ops [eligible in 1.1]

src/ops/experimental.ops - only the trap opcode remains

myops [eligible in 1.1]

https://trac.parrot.org/parrot/ticket/450

get_addr and set_addr [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/218

These opcodes are being repurposed. They will always return a unique memory address of the PMC. Uses of get_addr and set_addr that would set label values for Sub, Exception, and related PMC types will instead be handled by get_label and set_label.

bsr, jsr, and ret [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/702

branch_cs [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/470

Bytecode

packfile structure [eligible in 1.1]

https://trac.parrot.org/parrot/ticket/451

opcode numbering [eligible in 1.1]

https://trac.parrot.org/parrot/ticket/451

PMC numbering [eligible in 1.1]

https://trac.parrot.org/parrot/ticket/451

Class Features

PIR syntax

Assignment syntax with opcodes [eligible in 1.1]

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"

http://rt.perl.org/rt3/Ticket/Display.html?id=36283

named class/pmc lookup in pir syntax such as new, isa, subclass, get_class, etc [eligible in 1.1]

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

load or include paths prefixed with 'library/' or 'include/' [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/511

Functions

mmd_cvt_to_types [eligible in 1.1]

http://rt.perl.org/rt3/Ticket/Display.html?id=60626

src/pic.c and src/pic_jit.c [eligible in 1.1]

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

Subs marked with :vtable/:method aren't in namespace [eligible in 1.1]

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.

http://rt.perl.org/rt3/Ticket/Display.html?id=53302

C API coding standards cleanup [eligible in 1.1]

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

parrot_new_pmc_hash [eligible in 1.5]

This function will be removed. parrot_new_hash should be used in its place.

https://trac.parrot.org/parrot/ticket/494

Parrot_get_namespace_autobase [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/155

Parrot_find_global_k [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/156

Parrot_MMD_method_name [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/625

pobject_lives [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/664

functions in src/stack.c [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/702 Here is a list of functions in this file which are currently being exported:

  stack_system_init
  cst_new_stack_chunk
  new_stack
  mark_stack
  stack_height
  stack_entry
  stack_prepare_push
  stack_push
  stack_prepare_pop
  stack_pop
  pop_dest
  stack_peep
  Parrot_dump_dynamic_environment
  Parrot_push_action*
  Parrot_push_mark*
  Parrot_pop_mark*

* = item may be kept but reimplemented.

Compiler tools

Parrot Grammar Engine

Deprecated rules and methods [eligible in 1.1]

The following "built-in" PGE rules and methods are from previous versions of Synopsis 5.

Deprecated rules: null, fail, sp, lt, gt, dot

Deprecated methods: .text, .item, .result_object

https://trac.parrot.org/parrot/ticket/460

Stringification, numification [eligible in 1.1]

PGE::Match objects will stringify or numify based on the text that is matched, not the result object.

https://trac.parrot.org/parrot/ticket/461

Parrot Compiler Toolkit

PCT::HLLCompiler stages [eligible in 1.1]

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

PCT::HLLCompiler from Perl 5's Test::Harness [eligible in 1.1]

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.

https://trac.parrot.org/parrot/ticket/463

Not Quite Perl (NQP)

$(...) syntax [eligible in 1.5]

The $(...) syntax for obtaining a result object from a Match object will no longer work. The new syntax is to invoke the .ast method on the Match object.

https://trac.parrot.org/parrot/ticket/459

build tools

tools/build/dynoplibs.pl and tools/build/dynpmc.pl [eligible in 1.1]

Replaced with makefiles.

https://trac.parrot.org/parrot/ticket/338

pmc2c syntax

"pmclass" with name not matching file's basename [eligible in 1.5]

When foo.pmc contains a the line "pmclass bar", pmc2c generates a pmc_foo.h but tries to include pmc_bar.h. This is a bug, but it's possible someone out there is using it. This usage will result in a warning for now; after the 1.4 release, this warning will be upgraded to an error.

https://trac.parrot.org/parrot/ticket/665

Parrot library

Data::Replace [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/108

JSON, JSON, and Config;JSON [eligible in 1.5]

https://trac.parrot.org/parrot/ticket/508

Footnotes

  1. Trac is parrot's primary issue tracking system.

    Older tickets may be listed at RT.

Jump to Line
Something went wrong with that request. Please try again.