summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/mro.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/mro.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/mro.pm22
1 files changed, 3 insertions, 19 deletions
diff --git a/Master/tlpkg/tlperl/lib/mro.pm b/Master/tlpkg/tlperl/lib/mro.pm
index f580bdadf39..9f010395758 100644
--- a/Master/tlpkg/tlperl/lib/mro.pm
+++ b/Master/tlpkg/tlperl/lib/mro.pm
@@ -12,7 +12,7 @@ use warnings;
# mro.pm versions < 1.00 reserved for MRO::Compat
# for partial back-compat to 5.[68].x
-our $VERSION = '1.02';
+our $VERSION = '1.07';
sub import {
mro::set_mro(scalar(caller), $_[1]) if $_[1];
@@ -38,7 +38,7 @@ sub method {
}
require XSLoader;
-XSLoader::load('mro', $VERSION);
+XSLoader::load('mro');
1;
@@ -148,19 +148,7 @@ the given class name, even if the isa relationship is
indirect. This is used internally by the MRO code to
keep track of method/MRO cache invalidations.
-Currently, this list only grows, it never shrinks. This
-was a performance consideration (properly tracking and
-deleting isarev entries when someone removes an entry
-from an C<@ISA> is costly, and it doesn't happen often
-anyways). The fact that a class which no longer truly
-"isa" this class at runtime remains on the list should be
-considered a quirky implementation detail which is subject
-to future change. It shouldn't be an issue as long as
-you're looking at this list for the same reasons the
-core code does: as a performance optimization
-over having to search every class in existence.
-
-As with C<mro::get_mro> above, C<UNIVERSAL> is special.
+As with C<mro::get_linear_isa> above, C<UNIVERSAL> is special.
C<UNIVERSAL> (and parents') isarev lists do not include
every class in existence, even though all classes are
effectively descendants for method inheritance purposes.
@@ -175,10 +163,6 @@ Any class for which this function returns true is
"universal" in the sense that all classes potentially
inherit methods from it.
-For similar reasons to C<isarev> above, this flag is
-permanent. Once it is set, it does not go away, even
-if the class in question really isn't universal anymore.
-
=head2 mro::invalidate_all_method_caches()
Increments C<PL_sub_generation>, which invalidates method