Version 1 (modified by plobsing, 4 years ago)

add deprecation notes for TT #1931

Parrot Deprecations for 3.6

Special Purpose NCI Parameter Types

The NCI parameter types 'J', '@', 't', '0', 'V', '2', '3', '4', 'B', 'b', 'L', and 'T' have been removed.

Rationale

These types are special-purpose and their function can be accomplished by other means.

Replacement

  • 'J', '@', 't', '0': These types accomplish tasks which can be accomplished from PIR and are therefore redundant
    • 'J': getinterp + pointer NCI type
    • '@': slurpy param on a wrapping PIR sub
    • 't': manual lifetime management of C string buffer through NCI access to Parrot_str_to_cstring() and Parrot_str_free_cstring()
    • '0': null + pointer NCI type
  • 'V', '2', '3', '4', 'B': A less type-specific pass-by-reference mechanism is available. See the bindings for pcre_compile() in runtime/parrot/library/pcre.pir for an example of its use.
  • 'b', 'L', 'T': These were poorly documented and were broken in their implementation. No replacement has been provided as these do not represent desirable behaviour.