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

Reply via email to