Mon Jun 02 21:18:33 2014: Request 95809 was acted upon. Transaction: Correspondence added by trueability....@parasite.cc Queue: Inline Subject: Re: [rt.cpan.org #95809] [PATCH] Using Inline in a distribution with multiple modules Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: s...@parasite.cc Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=95809 >
On Mon, 2 Jun 2014 08:35:55 -0400 "sisyph...@optusnet.com.au via RT" <bug-inl...@rt.cpan.org> wrote: > I didn't know that. (You already know more about Inline than I do.) All I know is just from what I've seen while digging around, trying to get an understanding of how the MakeMaker stuff works :) > > There is another attribute, $mm->{PMLIBDIRS} that contains a list > > of directories those modules reside in. I added some code to use > > those two lists to generate the rules to add to the makefile > > without having to scan for modules ourselves. > > Didn't know that, either. > Yours is therefore probably a smarter solution than the one I > envisaged. Mine is a solution that hacks (solely) I::MM to recurse > thru the 'lib' directory and locate all of the *.pm files (using > File::Find). My hope was that if we could use what EU::MM already located that we would support the same code as EU:MM. It appears to me that one can change the PMLIBDIRS in the Makefile.PL and so assuming 'lib' is the only directory that would contain modules is a bad assumption. Obviously I'd like to stay away from assumptions where I can! > > However, with your patch, for the distro you provided, I'm getting: > > ############################## > C:\_32\pscrpt\Foo-broken>perl Makefile.PL > Checking if your kit is complete... > Looks good > Writing Makefile for Foo > Writing MYMETA.yml and MYMETA.json > > C:\_32\pscrpt\Foo-broken>dmake > cp lib/Foo/Bar/Baz.pm blib\lib\Foo\Bar\Baz.pm > cp lib/Foo.pm blib\lib\Foo.pm > cp lib/Foo/Bar.pm blib\lib\Foo\Bar.pm > C:\MinGW\Perl516\bin\perl.exe -Mblib -MInline=NOISY,_INSTALL_ > -MFoo::Bar::Baz -e1 2.01 blib\arch > validate Stage > Starting Build Preprocess Stage > get_maps Stage > Finished Build Preprocess Stage > > Starting Build Parse Stage > Finished Build Parse Stage > > Starting Build Glue 1 Stage > Finished Build Glue 1 Stage > > Starting Build Glue 2 Stage > Finished Build Glue 2 Stage > > Starting Build Glue 3 Stage > Finished Build Glue 3 Stage > > Starting Build Compile Stage > Starting "perl Makefile.PL" Stage > Finished "perl Makefile.PL" Stage > > Starting "make" Stage > Finished "make" Stage > > Starting "make install" Stage > Finished "make install" Stage > > Starting Cleaning Up Stage > Finished Cleaning Up Stage > > Finished Build Compile Stage > > Can't open for output. > > > at C:\_32\pscrpt\Foo-broken\blib\lib/Foo/Bar/Baz.pm line 9. > BEGIN failed--compilation aborted at > C:\_32\pscrpt\Foo-broken\blib\lib/Foo/Bar/Baz.pm line 15. > Compilation failed in require. > BEGIN failed--compilation aborted. > dmake: Error code 255, while making 'Foo-Bar-Baz.inl' > > C:\_32\pscrpt\Foo-broken> > ############################## > > This might just be *my* mistake ... I might have messed something up. > (I don't think so but.) > I'll have to check again tomorrow night. > > What version of perl are you running ? Hrm that's strange.. I don't see that but at this point I have enough versions of various distributions that I'm not sure if I'm testing against the same thing you are! I tried to replicate that error but it seems to work for me. I'm running perl 5.18.1 under gentoo linux (custom perl compile, not using the gentoo package). You? So to try to make sure we're on the same page, I've uploaded a couple things (see below for link). I'd like to get the distribution you're testing against and maybe the Inline source you're using that is failing so I can see if I can make it happen too. http://cac.parasite.cc/~slam/Inline In that directory you will find a few things: Foo-fixed.tar.gz - this was one you attached that is working with the patch Foo-mjm.tar.gz - this (I belive) is the one I initially submitted to you, and it is working with the patch for me Inline-mjm.tar.gz - this is the source I'm using that I built the patch from. This is a snapshot of the mercurial repo I'm using Inline-mjm/ - directory of Inline-mjm.tar.gz extracted I've also made available the mercurial repo I'm using: http://cac.parasite.cc:8000 it has two branches" 'default' which is the baseline Inline-0.55 code I started with 'mjm' which is the branch with my changes applied you can clone the repo via: hg clone http://cac.parasite.cc:8000 Inline if you do that and wnat to see my code, you'll need to change to the mjm branch hg update -C mjm If you send me what you're testing with I'll try it out too and hopefully I can reproduce the error so I can fix it! Thanks, Jason