NAME Devel::CallChecker - custom op checking attached to subroutines DESCRIPTION This module makes some new features of the Perl 5.14.0 C API available to XS modules running on older versions of Perl. The features are centred around the function "cv_set_call_checker", which allows XS code to attach a magical annotation to a Perl subroutine, resulting in resolvable calls to that subroutine being mutated at compile time by arbitrary C code. This module makes "cv_set_call_checker" and several supporting functions available. (It is possible to achieve the effect of "cv_set_call_checker" from XS code on much earlier Perl versions, but it is painful to achieve without the centralised facility.) This module provides the implementation of the functions at runtime (on Perls where they are not provided by the core). It also, at compile time, supplies the C header file and link library which provide access to the functions. In normal use, callchecker0_h and callchecker_linkable should be called at build time (not authoring time) for the module that wishes to use the C functions. The purpose of this module is specifically to provide the Perl 5.14.0 version of the "cv_set_call_checker" API to earlier Perl versions where the core doesn't have "cv_set_call_checker" at all. This module does not attempt to backport later refinements of the "cv_set_call_checker" API. Thus an XS module that uses this module can be sure of having at least the Perl 5.14.0 version of "cv_set_call_checker" available, regardless of which Perl version it is running on, but cannot be sure of having any more refined version of the API available. Such a module will have access to the core's version of the API as normal on Perl versions where the core supplies it, and is free to use the ordinary mechanisms of Perl version portability to manage the differences between versions of the API. INSTALLATION perl Build.PL ./Build ./Build test ./Build install AUTHOR Andrew Main (Zefram) COPYRIGHT Copyright (C) 2011, 2012, 2013, 2015, 2017, 2023 Andrew Main (Zefram) LICENSE This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.