The C3 method resolution order added in 5.10.0 has been re-implemented as
a plugin, without changing its Perl-space interface.
-Each plugin should register itself with C<Perl_mro_register> by providing
+Each plugin should register itself by providing
the following structure
struct mro_alg {
U32 hash;
};
+and calling C<Perl_mro_register>:
+
+ Perl_mro_register(aTHX_ &my_mro_alg);
+
=over 4
=item resolve
The function should return a reference to an array containing the parent
classes in order. The names of the classes should be the result of calling
-C<HvENAME()> on the stash. The caller is responsible for incrementing the
-reference count of the array returned if it wants to keep the structure.
-Hence, if you have created a temporary value that you keep no pointer to,
-C<sv_2mortal()> to ensure that it is disposed of correctly. If you have
-cached your return value, then return a pointer to it without changing the
-reference count.
+C<HvENAME()> on the stash. In those cases where C<HvENAME()> returns null,
+C<HvNAME()> should be used instead.
+
+The caller is responsible for incrementing the reference count of the array
+returned if it wants to keep the structure. Hence, if you have created a
+temporary value that you keep no pointer to, C<sv_2mortal()> to ensure that
+it is disposed of correctly. If you have cached your return value, then
+return a pointer to it without changing the reference count.
=head1 Caching
=head1 Examples
For examples of MRO implementations, see C<S_mro_get_linear_isa_c3()>
-and the C<BOOT:> section of F<mro/mro.xs>, and C<S_mro_get_linear_isa_dfs()>
-in F<mro.c>
+and the C<BOOT:> section of F<ext/mro/mro.xs>, and
+C<S_mro_get_linear_isa_dfs()> in F<mro_core.c>
=head1 AUTHORS