Any items listed for deprecation will be listed here along with an explanation of the expected upgrade path. If you are a developer removing features that have been deprecated, you may want HowToDeprecate .

This is separate from DEPRECATED.pod because it will contain (or link to) historical deprecations so users coming from older versions can upgrade. No official support is provided for these upgrades, this is best effort on the part of the parrot team only.

.HLL_map 'foo' = 'bar' (removed in 1.1) This pir directive didn't always work at compile time when it was run.

Replace this usage with a something like:

.sub '' :anon :immediate
  $P1 = getinterp
  $P2 = get_class 'foo'
  $P3 = get_class 'bar'
  $P1.'hll_map'($P2, $P3)

opcode: find_lex no longer throws an exception when the lexical is not found; it returns PMCNULL instead. This is consistent with the other "lookup" opcodes. If you want to throw an exception, you must check the result of the opcode and throw the exception explicitly.

opcode: substr_r(out STR, in STR, in INT, in INT) - this op was only ever experimental.

use substr(out STR, in STR, in INT, in INT) instead.

parrot_new_pmc_hash is gone. Use pmc_new(INTERP, enum_class_Hash) with same semantics.

runtime/parrot/library/NCI/call_toolkit_init.* is gone (removed in 1.5). Use runtime/parrot/library/NCI/Utils.* instead.

Multiple changes in the Parrot calling conventions update, see PCCMigrationNotes.