Mon Nov 19 06:21:18 2012: Request 81172 was acted upon.
Transaction: Correspondence added by peter.smoczyn...@i-new.com
       Queue: Inline
     Subject: Re: [rt.cpan.org #81172] using Inline with => 'Event' fails to 
compile
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: peter.smoczyn...@i-new.com
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=81172 >


Am 17.11.2012 01:58, schrieb Sisyphus via RT:
> <URL: https://rt.cpan.org/Ticket/Display.html?id=81172 >
>
> On Fri Nov 16 06:51:09 2012, peter.smoczyn...@i-new.com wrote:
>
>> in fact it's the space(!) and not the double quotes!
>>
>> i.e.
>>
>> "-I /opt/perl5.12.2.debug/lib/site_perl/5.12.2/i86pc-solaris/Event"
>>
>> vs.
>>
>> "-I/opt/perl5.12.2.debug/lib/site_perl/5.12.2/i86pc-solaris/Event"
> Well spotted - I had missed that there was a space stuck in there.
>
> So ... the space between the -I and the /opt doesn't cause any problems
> until the whole thing is enclosed in double-quotes ? (Please correct me
> if that's wrong.)
yes, the space between the -I and the /opt does not cause any problems 
-- that is correct!
might be reminiscent to the old k&r days..?
> I would have expected that space to be a problem even if there *weren't*
> any enclosing double-quotes.
> But, if that's not the case, then quote_space() probably needs to take
> this into consideration.
>
> I'm thinking quote_space() should be able to do this at the end of its
> processing with
>
> s/"\-I\s+\//"-I\//g
>
> since any spaces between the leading -I and the first / can never be
> meaningful (right ?).
>
> If you want to give that a try, at the end of the quote_space()
> subroutine in C.pm, change:
>
>    my $out = join '', @in;
>    $_[0] = $out;
>
> to:
>
>    my $out = join '', @in;
>    out =~ s/"\-I\s+\//"-I\//g;
>    $_[0] = $out;
>
> I haven't tested, however, so I'm being a bit premature here ...

I did change the end of quote_space() to

   my $out = join '', @in;
   $out =~ s/"\-I\s+\//"-I\//g;
   $_[0] = $out;

which works fine for me:

[...]
   Starting "make" Stage
/opt/perl5.12.2.debug/bin/perl 
/opt/perl5.12.2.debug/lib/5.12.2/ExtUtils/xsubpp  -typemap 
"/opt/perl5.12.2.debug/lib/5.12.2/ExtUtils/typemap" -typemap 
"/opt/perl5.12.2.debug/lib/site_perl/5.12.2/i86pc-solaris/Event/typemap" 
compile_test_1_t_a7b1.xs > compile_test_1_t_a7b1.xsc && mv 
compile_test_1_t_a7b1.xsc compile_test_1_t_a7b1.c
gcc -c  -I"/root/peter/inline_fails_to_compile" 
"-I/opt/perl5.12.2.debug/lib/site_perl/5.12.2/i86pc-solaris/Event" 
-I/usr/local/include -I/usr/local/BerkeleyDB.4.5/include -DDEBUGGING 
-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -g   
-DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC 
"-I/opt/perl5.12.2.debug/lib/5.12.2/i86pc-solaris/CORE" 
compile_test_1_t_a7b1.c
Running Mkbootstrap for compile_test_1_t_a7b1 ()
chmod 644 compile_test_1_t_a7b1.bs
rm -f blib/arch/auto/compile_test_1_t_a7b1/compile_test_1_t_a7b1.so
gcc  -G -L/usr/local/lib -Wl,-R/usr/local/lib 
-L/usr/local/BerkeleyDB.4.5/lib -Wl,-R/usr/local/BerkeleyDB.4.5/lib 
-fstack-protector compile_test_1_t_a7b1.o  -o 
blib/arch/auto/compile_test_1_t_a7b1/compile_test_1_t_a7b1.so 
/opt/perl5.12.2.debug/lib/site_perl/5.12.2/i86pc-solaris/auto/Event/Event.so 
\
                 \

chmod 755 blib/arch/auto/compile_test_1_t_a7b1/compile_test_1_t_a7b1.so
cp compile_test_1_t_a7b1.bs 
blib/arch/auto/compile_test_1_t_a7b1/compile_test_1_t_a7b1.bs
chmod 644 blib/arch/auto/compile_test_1_t_a7b1/compile_test_1_t_a7b1.bs
   Finished "make" Stage

   Starting "make install" Stage
Files found in blib/arch: installing files in blib/lib into architecture 
dependent library tree
Installing 
/root/peter/inline_fails_to_compile/_Inline/lib/auto/compile_test_1_t_a7b1/compile_test_1_t_a7b1.bs
Installing 
/root/peter/inline_fails_to_compile/_Inline/lib/auto/compile_test_1_t_a7b1/compile_test_1_t_a7b1.so
   Finished "make install" Stage

   Starting Cleaning Up Stage
   Finished Cleaning Up Stage

Finished Build Compile Stage

compile_test_1.t syntax OK
Sun-A3 root 260/0 (~/peter/inline_fails_to_compile)#

>
> There's also the case that
>
> -I /foo
>
> would be changed to
>
> -I" /foo"
>
> if it was the first element in the string, so that needs to be looked
> at, too.
right
> I'll release 0.51_01 in a couple of days time, and let you know when
> that happens. It will contain, among other things, a fix for this issue.
>
> Thanks for the report, and for the digging.
>
> Cheers,
> Rob
you're welcome!
cheers, peter


Reply via email to