Version 1 (modified by plobsing, 11 years ago) |
---|
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.