diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/mro.pm')
-rw-r--r-- | Master/tlpkg/tlperl/lib/mro.pm | 22 |
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 |