develooper Front page | perl.perl5.porters | Postings from March 2007

Re: AutoLoader inheritance patch

Thread Previous | Thread Next
From:
Graham Barr
Date:
March 20, 2007 05:03
Subject:
Re: AutoLoader inheritance patch
Message ID:
7F8E21F3-721F-4DD6-83E0-1EF409430065@pobox.com

On Mar 20, 2007, at 3:22 AM, <marek.rouchal@infineon.com> wrote:

> In reply to Graham's message: yes, it seems that it works OK in this
> use model; but when testing this in a pure deployment environment,
> the current (i.e., perl-5.8.8) AutoLoader does not seem to handle
> inheritance properly.

AutoLoader itself does nothing with inheritance, and it should not  
need to. The stubs in the .ix files are found during method lookup.

> Please unpack the attached tar to an empty
> directory, and run:

What was used to create these .ix files ?

The problem is that the .ix files have the package statements  
missing, so the stubs they define are not placed in the right package.

If you apply my attached patch then it works fine.

Graham.

>
>  <<alfail.tar.gz>>
> $ <your-perl-interpreter> ./alinherit.pl
> In B_static
> In A_static
> In B_dynamic
> Can't locate auto/BB/A_dynamic.al in @INC (@INC contains: .
> /opt/perl_5.8.8/lib) at ./auto/BB/B_dynamic.al line 8
>
> As far as I can tell, the AutoLoader does not search the base classes.
> Please correct me, if the deployment structure (the contents of the
> tar) are wrong - but this is what I see e.g. in Tk.
>
> $ tar tzf ~/tmp/alfail.tar.gz
> ./
> ./BB.pm
> ./A.pm
> ./alinherit.pl
> ./auto/
> ./auto/A/
> ./auto/A/autosplit.ix
> ./auto/A/A_dynamic.al
> ./auto/BB/
> ./auto/BB/autosplit.ix
> ./auto/BB/B_dynamic.al
>
> -Marek
> <alfail.tar.gz>


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About