Re: [rt.cpan.org #95809] [PATCH] Using Inline in a distribution with multiple modules

[email protected] ("Jason McCarver via RT") Fri, 13 Jun 2014 22:01:37 -0400
Newsgroups perl.inline
Message-ID <[email protected]>
Fri Jun 13 22:01:37 2014: Request 95809 was acted upon.
Transaction: Correspondence added by [email protected]
       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: [email protected]
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=95809 >


On Fri, 13 Jun 2014 20:57:33 -0400
"Sisyphus via RT" <[email protected]> wrote:

> <URL: https://rt.cpan.org/Ticket/Display.html?id=95809 >
> 
> On Fri Jun 13 15:17:55 2014, [email protected] wrote:
>  I've included your fix to
> > checking the $mm->{PMLIBDIRS} array and attached my version.
> 
> I'd like to have a look at it but the attachment seems to have gone astray ;-)

That's because I'm an idiot and didn't actually attach it like I claimed to have done.  I have done that now :)


> 
> > Neither (I believe) fix the issue of having something like Foo 'use'ing
> > other modules that use Inline and then them being compiled multiple
> > times.
> 
> Yes, some duplication of compilation still occurs - but, UIM, at least that now happens only for the first time that 'make' is run. Subsequent running of make commands (eg 'make test', 'make install') no longer execute the
> \$(PERL) -Mblib -MInline=NOISY,_INSTALL_ -M$name -e1 $version \$(INST_ARCHLIB)
> command because the target now exists.
> Still - I'm surprised that the duplication of the same compilation occurs (as I expected Inline to detect that such was unnecessary).

I thought it would detect it too but from what I could see it appears that it doesn't do that detection when it's in _INSTALL_ mode.


> 
> > But after looking a bit I believe that one is going to be a
> > challenge (at least for me!) to figure out... I'll have to dig into
> > Inline some more.
> 
> Presently, it's not clear to me either just what is entailed in fixing that up.
> But it doesn't really bother me, and I'm prepared to leave it alone until either someone complains or I have time to look into it properly.
> As far as I'm concerned it's right to go - and it's now just a question of which of the two MakeMaker.pm files we use.

Sounds good to me.  My change does also involve a change to Inline.pm as well but I didn't feel too bad about that since I was already changing it.  My version of this fix is to add a bit to the generated rule in the makefile to call a routine in Inline.pm which will create the .inl file.  That code was already in Inline.pm, I just moved it to its own sub and expect it to be called from perl snippet being executed by the -e command line argument in the makefile rule.  Hopefully that'll make more sense when you have a look at it.

Thanks,
Jason
Inline-mjm-shogun-v3.tar.gz (application/gzip, 267.4 KB) - not displayed