[rt.cpan.org #85336] Fails often when tested in parallel

2014-07-01 Thread Sisyphus via RT
Tue Jul 01 04:27:36 2014: Request 85336 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Fails often when tested in parallel
   Broken in: 0.53
Severity: (no value)
   Owner: Nobody
  Requestors: a...@cpan.org, ken...@cpan.org
  Status: resolved
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=85336 


Re-opening because of the following patch that was applied to Inline-0.55 as 
part of this ticket:


Subject: [PATCH 4/5] MSWin32: disable BUILD_NOISY redirects on MSWin32 with
 cmd.exe

also print exitcode with failed commands

diff --git C/C.pm C/C.pm
index f76e34b..21f7dfe 100644
--- C/C.pm
+++ C/C.pm
@@ -804,6 +804,7 @@ sub makefile_pl {
 -f ($perl = $Config::Config{perlpath})
   or ($perl = $^X)
   or croak Can't locate your perl binary;
+$perl = qq{$perl} if $perl =~ m/\s/;
 $o-system_call($perl Makefile.PL, 'out.Makefile_PL');
 $o-fix_make;
 }
@@ -841,6 +842,7 @@ sub system_call {
   defined $ENV{PERL_INLINE_BUILD_NOISY}
   ? $ENV{PERL_INLINE_BUILD_NOISY}
   : $o-{CONFIG}{BUILD_NOISY};
+$build_noisy = undef if $build_noisy and $^O eq 'MSWin32' and 
$Config::Config{sh} =~ /^cmd/;
 if (not $build_noisy) {
 $cmd = $cmd  $output_file 21;
 }
@@ -861,11 +863,12 @@ sub build_error_message {
 close OUTPUT;
 }
 
+my $errcode = $?  8;
 return $output . END;
 
 A problem was encountered while attempting to compile and install your Inline
 $o-{API}{language} code. The command that failed was:
-  $cmd
+  \$cmd\ with error code $errcode
 
 The build directory was:
 $build_dir


I wondered at the time (and still wonder) what that was about - but I applied 
it anyway, as it didn't break any tests.

However, it does break BUILD_NOISY on Win32 - to the extent that the 
compiler/linker commands/warnings of a successful build are not seen.

simply removing the line:

$build_noisy = undef if $build_noisy and $^O eq 'MSWin32' and 
$Config::Config{sh} =~ /^cmd/;

from the patched (0.55) C.pm is sufficient to regain correct functioning of 
BUILD_NOISY on Windows.
However, doing that probably also destroys whatever it was that the patch was 
designed to fix.

This episode exposes a need for a test script that examines the output of a 
BUILD_NOISY build to detect that this output is present.
It would be hard to check that the entire output is as it should be, but we 
should at least be able to check for the presence of certain key elements like  
- eg that the output matches the string perl, that it matches the 
(interpolated)$Config{LD} and that it matches the name of any Inline-C 
function whose compilation is expected to emit a warning.

I think this breakage of BUILD_NOISY needs to be fixed for the next stable 
release.

Attached is a try.pl that demonstrates the problem. It shows the expected 
output of the script, and the actual output I get on one of my Win32 perls 
using Inline-0.55.

Cheers,
Rob
use strict;
use warnings;

use Inline C = Config =
BUILD_NOISY = 1,
;

use Inline C = 'EOC';

void inline_warner() {
   int *x;
   x = 2;
}


EOC

print DONE;

__END__

Should output (for me on Windows):

#
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
Writing Makefile for try_pl_534c
Writing MYMETA.yml
  Finished perl Makefile.PL Stage

  Starting make Stage
C:\perl514_M\bin\perl.exe C:\perl514_M\lib\ExtUtils\xsubpp  -typemap C:\perl514_M\lib\ExtUtils\typemap -typemap C:\_32\pscrpt\inline\typemap  try_pl_534c.xs  try_pl_534c.xsc  C:\perl514_M\bin\perl.exe -MExtUtils::Command -e mv -- try_pl_534c.xsc try_pl_534c.c
gcc -c  -IC:/_32/pscrpt/inline 	-s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 	  -DVERSION=\0.00\ 	-DXS_VERSION=\0.00\  -IC:\perl514_M\lib\CORE   try_pl_534c.c
try_pl_534c.xs: In function `inline_warner':
try_pl_534c.xs:8: warning: assignment makes pointer from integer without a cast
Running Mkbootstrap for try_pl_534c ()
C:\perl514_M\bin\perl.exe -MExtUtils::Command -e chmod -- 644 try_pl_534c.bs
C:\perl514_M\bin\perl.exe -MExtUtils::Mksymlists \
 -e Mksymlists('NAME'=\try_pl_534c\, 'DLBASE' = 'try_pl_534c', 'DL_FUNCS' = {  }, 'FUNCLIST' = [], 'IMPORTS' = {  }, 'DL_VARS' = []);
dlltool --def try_pl_534c.def --output-exp dll.exp
g++ -o blib\arch\auto\try_pl_534c\try_pl_534c.dll -Wl,--base-file -Wl,dll.base -mdll -s -Lc:\perl514_M\lib\CORE -LC:\home\rob\mingw_vista\i686-pc-mingw32\lib try_pl_534c.o   C:\perl514_M\lib\CORE\libperl514.a 

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

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 03:47:40 2014: Request 95809 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: [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 



Fixed as of Inline-0.55_01


[rt.cpan.org #17415] Problem with PAR and Inline

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 03:53:35 2014: Request 17415 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Problem with PAR and Inline
   Broken in: 0.44
Severity: (no value)
   Owner: Nobody
  Requestors: joh...@darserman.com, jona...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=17415 



Should be addressed from within PAR


[rt.cpan.org #19624] Inline::Structs Configuration of LIB and INC are ignored when using structs

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:01:51 2014: Request 19624 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline::Structs Configuration of LIB and INC are ignored when 
using structs
   Broken in: 0.44
Severity: Important
   Owner: Nobody
  Requestors: roger.wy...@nomadsoft.com
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=19624 



Inline::Structs is old, buggy and not used - currently irrelevant


[rt.cpan.org #7138] installation problems when no read permissions in some parent directories

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:07:29 2014: Request 7138 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: installation problems when no read permissions in some parent 
directories
   Broken in: (no value)
Severity: (no value)
   Owner: Nobody
  Requestors: nedk...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=7138 



Apparently no longer an issue. (Was this *ever* something that Inline should 
have to deal with ?)


[rt.cpan.org #13285] Inline breaks down when run in two processes at once

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:21:23 2014: Request 13285 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline breaks down when run in two processes at once
   Broken in: (no value)
Severity: Normal
   Owner: Nobody
  Requestors: dstah...@gi.alaska.edu
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=13285 



Fixed as of Inline-0.55_01


[rt.cpan.org #69884] Require newer Digest::MD5

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:25:13 2014: Request 69884 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Require newer Digest::MD5
   Broken in: (no value)
Severity: (no value)
   Owner: Nobody
  Requestors: n...@detonation.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=69884 



Lack of follow-up.


[rt.cpan.org #58171]

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:28:23 2014: Request 58171 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: (No subject given)
   Broken in: 0.46, 0.46_01
Severity: Normal
   Owner: Nobody
  Requestors: jolemar...@gmail.com
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=58171 



Lack of follow-up


[rt.cpan.org #55543] Inline::C can crash the perl interpreter if function uses PUSHMARK

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:31:49 2014: Request 55543 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline::C can crash the perl interpreter if function uses PUSHMARK
   Broken in: (no value)
Severity: (no value)
   Owner: Nobody
  Requestors: asuffi...@suffields.me.uk
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=55543 



Lack of follow-up


[rt.cpan.org #44587] make test bug

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:39:51 2014: Request 44587 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: make test bug
   Broken in: (no value)
Severity: (no value)
   Owner: Nobody
  Requestors: alefn...@yahoo.com
  Status: new
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=44587 



Lack of specific information.


[rt.cpan.org #7552] Inline::MakeMaker doesn't work with win32 (nmake) (indication for a fix)

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:44:16 2014: Request 7552 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline::MakeMaker doesn't work with win32 (nmake) (indication for 
a fix)
   Broken in: (no value)
Severity: Important
   Owner: Nobody
  Requestors: joh...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=7552 



Fixed as of 0.55_01 (Duplicated by #95809).


[rt.cpan.org #6806] [as5.8.3/winxp] output dir exception when dir contains spaces (workarround included)

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 04:50:08 2014: Request 6806 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: [as5.8.3/winxp] output dir exception when dir contains spaces 
(workarround included)
   Broken in: (no value)
Severity: Normal
   Owner: Nobody
  Requestors: muena...@cpan.org
  Status: new
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=6806 



Too old (10 years +) to warrant investigation.


[rt.cpan.org #96291] t/08taint.t fails on perl 5.20.0

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 05:01:44 2014: Request 96291 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: t/08taint.t fails on perl 5.20.0
   Broken in: 0.55
Severity: (no value)
   Owner: Nobody
  Requestors: e...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=96291 



Fixed as of 0.55_02


[rt.cpan.org #85336] Fails often when tested in parallel

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 05:06:27 2014: Request 85336 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Fails often when tested in parallel
   Broken in: 0.53
Severity: (no value)
   Owner: Nobody
  Requestors: a...@cpan.org, ken...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=85336 



Fixed as of 0.55_01


[rt.cpan.org #95624] cpan as root cannot install Inline without force

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 05:08:35 2014: Request 95624 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: cpan as root cannot install Inline without force
   Broken in: (no value)
Severity: (no value)
   Owner: Nobody
  Requestors: jeff.ja...@gmail.com
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=95624 



Fixed as of 0.55_01


[rt.cpan.org #5465] Fails to detect C functions taking (void)

2014-06-24 Thread Sisyphus via RT
Tue Jun 24 08:36:54 2014: Request 5465 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Fails to detect C functions taking (void)
   Broken in: (no value)
Severity: Normal
   Owner: Nobody
  Requestors: q...@laxan.com
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=5465 


On Sun Jun 22 22:40:39 2014, ETJ wrote:

 It passes, so looks like this bug is now no longer applicable.

Just for the record, the bug still stands for the ParseRecRescent parser - it 
was just that the particular script being run did not detect the bug.

Cheers,
Rob





[rt.cpan.org #96291] t/08taint.t fails on perl 5.20.0

2014-06-22 Thread Sisyphus via RT
Sun Jun 22 07:05:25 2014: Request 96291 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: t/08taint.t fails on perl 5.20.0
   Broken in: 0.55
Severity: (no value)
   Owner: Nobody
  Requestors: e...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=96291 


On Sat Jun 21 22:28:50 2014, ETJ wrote:

 Instead, this patch (replacing previous two) actually
 tests $ != $, which revealed a couple of quirks, hence a couple of
 extra changes:

Thanks Ed - checks out ok here, so I've applied the patches and released 
Inline-0.55_02.

On Windows both $ and $ are 0 and cannot be altered as seteuid() and 
setruid() are not implemented.
In C/t/08taint.t I therefore had to make the setting of $ to 1 conditional 
upon OS not being Windows (to avoid fatal error on that OS).

With that in place, everything tests fine for me on Windows, Cygwin, Ubuntu and 
Debian Wheezy.
Now we sit back and see what the smokers/testers throw at us :-)

Cheers,
Rob


[rt.cpan.org #96291] t/08taint.t fails on perl 5.20.0

2014-06-20 Thread Sisyphus via RT
Fri Jun 20 23:56:25 2014: Request 96291 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: t/08taint.t fails on perl 5.20.0
   Broken in: 0.55
Severity: (no value)
   Owner: Nobody
  Requestors: e...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=96291 


Inline-0.55_01 was released a couple of days ago, partly to see how t/08taint.t 
fares following the latest round of amendments to the Inline code.

I've just received the first FAIL report for 0.55_01:
http://www.cpantesters.org/cpan/report/a3185cf8-f82f-11e3-919b-572b4803b899

The culprit is, of course, C/t/08taint.t.

What to do wrt this ?

If it's fixable, and we can fix it, then I guess we should do that.
If we can't fix it, then we need to detect in advance that the failure will 
occur and either SKIP or TODO the remaining 9 tests.

There's a couple of issues with taking the TODO route:

1) The script is actually dying before all tests have been run - so I don't 
think TODO'ing the remaining tests is going to prevent the script from being 
reported as a FAIL. (We can probably workaround that by running the remaining 
tests inside eval{}.)

2) 3 of the tests are warnings_like() from Test::Warn, and it seems that TODO 
is ignored for them. That being so, we need to work around that shortcoming, 
too. (I was unable to find a way to make those 3 tests honor TODO - but that 
doesn't necessarily mean it can't be done.)

However, I think that if there's no chance of Inline being able to run 
correctly under -T on a particular system, then we are quite entitled to SKIP 
those tests on that system.

Thoughts ?

Cheers,
Rob




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

2014-06-20 Thread Sisyphus via RT
Sat Jun 21 00:21:40 2014: Request 95809 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: [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 


Inline-0.55_01, which contains the fix for this bug was released to CPAN on 
19th June 2014.

There's no testing of this specific bugfix in the test suite, though there are 
the 2 demo modules modules/Math-Simple-1.23 and modules/Boo-2.01 - both of 
which should build and test fine as a result of this bugfix.
Math-Simple-1.23 has always built fine, but Boo-2.01 (added with this latest 
release) does not build correctly with earlier versions of Inline.

Cheers,
Rob


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

2014-06-14 Thread Sisyphus via RT
Sun Jun 15 00:25:15 2014: Request 95809 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: [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 


 Hopefully that'll make more sense when you have a look at it.

Looks good to me.
Sub satisfy_makefile_dep() would perhaps be better placed in MakeMaker.pm but I 
don't see any imperative to move it there - especially since it's doing stuff 
that was already being done in Inline.pm (as you noted).

I'll get Inline-0.55_01 out in the next week, and we'll see how it goes.

Thanks for your work !!

Cheers,
Rob


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

2014-06-13 Thread Sisyphus via RT
Fri Jun 13 06:29:43 2014: Request 95809 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: [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 


How about the attached version of lib/Inline/Makemaker.pm ?

It seems to do things right for me on Windows.

Cheers,
Rob
package Inline::MakeMaker;

$Inline::MakeMaker::VERSION = '0.55';
$Inline::MakeMaker::VERSION = eval $Inline::MakeMaker::VERSION;
@EXPORT = qw(WriteMakefile WriteInlineMakefile);

use strict;
use base 'Exporter';
use ExtUtils::MakeMaker();
use Carp;

sub WriteInlineMakefile {
#warn END;
#
#Inline::MakeMaker::WriteInlineMakefile() is deprecated as of Inline-0.44.
#Inline::MakeMaker::WriteMakefile() should be used instead.
#
#END
goto WriteMakefile;
}

sub WriteMakefile {
my %args = @_;
my $name = $args{NAME}
  or croak Inline::MakeMaker::WriteMakefile requires the NAME parameter\n;
my $version = '';

croak END unless (defined $args{VERSION} or defined $args{VERSION_FROM});
Inline::MakeMaker::WriteMakefile requires either the VERSION or VERSION_FROM
parameter.
END
if (defined $args{VERSION}) {
$version = $args{VERSION};
}
else {
$version = ExtUtils::MM_Unix-parse_version($args{VERSION_FROM})
  or croak Can't determine version for $name\n;
}
croak END unless $version =~ /^\d\.\d\d$/;
Invalid version '$version' for $name.
Must be of the form '#.##'. (For instance '1.23')
END

# Provide a convenience rule to clean up Inline's messes
$args{clean} = { FILES = _Inline *.inl  }
unless defined $args{clean};

# Add Inline to the dependencies
$args{PREREQ_PM}{Inline} = '0.44' unless defined $args{PREREQ_PM}{Inline};

my $mm = ExtUtils::MakeMaker::WriteMakefile(%args);

my (@objects, @obj_rules);

if (@{$mm-{PMLIBDIRS}}  $mm-{PM}) { #line 55 SIS alteration
# Sort them longest first so we'll match subdirectories before their parents
my @libdirs = sort { length($b) = length($a) } @{$mm-{PMLIBDIRS}};

for my $path (keys %{$mm-{PM}}) {
for my $lib (@libdirs) {
if (index($path,$lib) == 0) {
my ($vol, $dirs, $file) = File::Spec-splitpath(substr($path, length($lib)+1));
my @dirs = File::Spec-splitdir($dirs);
pop @dirs unless length($dirs[$#dirs]);
$file =~ s/\.[^.]+$//;

push @objects, join('::', @dirs, $file);
push @obj_rules, join('-', @dirs, $file.inl);
last;
}
croak Failed to find module path for '$path';
}
}
} else {
# no modules found in PMLIBDIRS so assume we've just got $name to do
@objects = $name;
$name =~ s/::/-/g;
@obj_rules = ($name.inl);
#@obj_rules = (split(/::/, $name))[-1].'.inl';
}

if (@objects) {
open MAKEFILE, ' Makefile'
  or croak Inline::MakeMaker::WriteMakefile can't append to Makefile:\n$!;

print MAKEFILE MAKEFILE;
# Well, not quite. Inline::MakeMaker is adding this:

# --- MakeMaker inline section:

MAKEFILE
for (0..$#objects) {
print MAKEFILE MAKEFILE;
$obj_rules[$_]: \$(TO_INST_PM)
	\$(PERL) -Mblib -MInline=NOISY,_INSTALL_ -M$objects[$_] -e1 $version \$(INST_ARCHLIB)
	\$(PERL) -e open WR, '', '$obj_rules[$_]' unless -e '$obj_rules[$_]';
MAKEFILE
}

print MAKEFILE \npure_all :: ,join(' ',@obj_rules),\n;

print MAKEFILE MAKEFILE;

# The End is here.
MAKEFILE

close MAKEFILE;
}
}

1;


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

2014-06-11 Thread Sisyphus via RT
Wed Jun 11 03:24:13 2014: Request 95809 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: [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 Jun 09 22:45:21 2014, s...@parasite.cc wrote:
 Ok I'll check into that too :). Now I just have to find some time this
 week...

Hi Jason,

The problem seems to be mostly fixed if, at line 55 of (your patched) 
lib/Inline/Makemaker.pm we change:

if ($mm-{PMLIBDIRS}  $mm-{PM}) {
to:
if (@{$mm-{PMLIBDIRS}}  $mm-{PM}) {

That at least allows both layouts to build and install as desired. On the 
perls I've just tested, an array reference is true even if the array being 
referenced is empty - hence the need for the alteration.
However, that change doesn't fix the annoyance of having the compilation re-run 
during each of the make steps (which happens because the specified .inl target 
is not met).

Incidentally, for a long time Inline has shipped with the demo module named 
Math::Simple-1.23.
It was always packed into the source as:

modules/Math/Simple/Changes
modules/Math/Simple/Makefile.PL
modules/Math/Simple/MANIFEST
modules/Math/Simple/Simple.pl
modules/Math/Simple/test.pl

In git (https://github.com/ingydotnet/inline-pm), I've now rearranged that as 
the more usual:

modules/Math-Simple-1.23/Changes
modules/Math-Simple-1.23/Makefile.PL
modules/Math-Simple-1.23/MANIFEST
modules/Math-Simple-1.23/Simple.pl
modules/Math-Simple-1.23/test.pl

And I've also added a second demo which is essentially the same distro as the 
one we've been using as our reference. (I've changed the names of the modules 
from Foo, Foo::Bar, and Foo::Bar::Baz to Boo, Boo::Far and Boo::Far::Faz - 
other than that it's the same).

So, in git, you'll also find:

modules/Boo-2.01/lib/Boo.pm
modules/Boo-2.01/lib/Boo/Far.pm
modules/Boo-2.01/lib/Boo/Far/Faz.pm
modules/Boo-2.01/Makefile.PL
modules/Boo-2.01/MANIFEST
modules/Boo-2.01/t/boo.t

These files will, of course ship with future Inline releases as demos of the 2 
layouts.
Naturally, what we want is for both of those demos to build correctly out of 
the box.

With the above alteration to your patched MakeMaker.pm I think they do that - 
except that Math-Simple-1.23 wants to recompile the C code at every 'make' step.

Cheers,
Rob




[rt.cpan.org #92144] can't find gcc-4 on cygwin (patch to fix)

2014-04-06 Thread Sisyphus via RT
Sun Apr 06 03:38:41 2014: Request 92144 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: can't find gcc-4 on cygwin (patch to fix)
   Broken in: (no value)
Severity: (no value)
   Owner: Nobody
  Requestors: plice...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=92144 


On Tue Jan 14 10:43:07 2014, PLICEASE wrote:
 
 --- a/C/Makefile.PL
 +++ b/C/Makefile.PL
 @@ -5,6 +5,7 @@ use File::Spec;
 
 my ($cc, $exe) = @Config{'cc', '_exe'};
 $cc =~ s/\s+-.+$//; #remove possible trailing options
 +$exe = '' if $^O eq 'cygwin';
 
 my $found = 0;
 my $delim = $Config::Config{path_sep};

Sorry - I missed this bug report when I was preparing for 0.54 to be released.

I've just released 0.54_01 to CPAN. It has been patched as per the quoted 
patch. It also includes the patches provided by rurban in his submission to 
ticket #85336.
If 0.54_01 tests ok, it will be released as 0.55 in about a week's time.

Cheers,
Rob


[rt.cpan.org #85336] Fails often when tested in parallel

2014-04-06 Thread Sisyphus via RT
Sun Apr 06 03:55:40 2014: Request 85336 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Fails often when tested in parallel
   Broken in: 0.53
Severity: (no value)
   Owner: Nobody
  Requestors: a...@cpan.org, ken...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=85336 


On Fri Apr 04 14:02:09 2014, rur...@x-ray.at wrote:
 Patches for the next release attached

Thanks Reini.
These patches have been applied (by hand)  hope I got 'em right. 
Inline-0.54_01 (which contains these patches) has now been uploaded to CPAN.
All being well, it will be re-released as Inline-0.55 in a week or so.

For the Changes and C/Changes files I generally structure it so that Changes 
lists alterations to Inline and C/Changes alterations to Inline::C. (All this 
really achieves is to make it difficult for myself - especially in those cases 
where both packages are affected by the one set of changes.)

One will find that Changes and C/Changes have not been altered in strict 
accordance with the provided patches.

The only other alteration made to the provided patches was to rewrite the 2 
occurrences of:

local $ENV{MAKEFLAGS} = $ENV{MAKEFLAGS} =~ s/(--jobserver-fds=[\d,]+)//;

as:

if($ENV{MAKEFLAGS}) {
  local $ENV{MAKEFLAGS} = $ENV{MAKEFLAGS} =~ s/(--jobserver-fds=[\d,]+)//;
}

This was done to avoid 'uninitialized' warnings on systems where 
$ENV{MAKEFLAGS} was unset.

Cheers,
Rob


[rt.cpan.org #85336] Fails often when tested in parallel

2013-05-18 Thread Sisyphus via RT
Sat May 18 02:20:38 2013: Request 85336 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Fails often when tested in parallel
   Broken in: 0.53
Severity: (no value)
   Owner: Nobody
  Requestors: a...@cpan.org
  Status: new
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=85336 


On Wed May 15 23:11:13 2013, ANDK wrote:
 
 There seems to be a race condition somewhere.

Both of the affected test scripts (t/21read_DATA.t and t/22read_DATA.t) use the 
same Inline build directory (.Inline) - and they therefore need to access the 
same configuration file.

If you think that could be the source of the problem, I could work around that 
by designating 2 different (separate) build directories for those 2 test 
scripts - thereby assuring that each script has its own copy of the 
configuration details.
Is that worth trying ? (If so, let me know, and I'll upload a new developer 
version of Inline that does exactly that and we can see how that goes.)

Cheers,
Rob




[rt.cpan.org #85336] Fails often when tested in parallel

2013-05-18 Thread Sisyphus via RT
Sun May 19 01:37:37 2013: Request 85336 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Fails often when tested in parallel
   Broken in: 0.53
Severity: (no value)
   Owner: Nobody
  Requestors: a...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=85336 


On Sat May 18 10:40:47 2013, andreas.koenig.7os6v...@franz.ak.mind.de wrote:
 Sisyphus via RT bug-inl...@rt.cpan.org writes:
 
  Is that worth trying ?
 
 This, or maybe apply some locking? Depends on how much work it is, and
 on how relevant for later real world behaviour it is.
 
 Except for this, I'd leave the judgement to the implementor;)

I don't think it's very relevant to real world usage - and hence my (personal) 
interest in this is nowhere near as keen as it would otherwise be.

However, David Oswald wants to write some patches that will put in place file 
locking. If there's no problem with those patches, I'll apply them (when I 
receive them) and release a new devel version of Inline.

Hopefully, that will keep everyone happy :-)

Cheers,
Rob



[rt.cpan.org #11748] Inline::CPP config gets lost because of Inline::C bug

2013-05-08 Thread Sisyphus via RT
Wed May 08 22:45:09 2013: Request 11748 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline::CPP config gets lost because of Inline::C bug
   Broken in: (no value)
Severity: Important
   Owner: Nobody
  Requestors: nick_...@pisem.net
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=11748 


Marking as resolved.
Fixed in Inline-0.53 (which was released to CPAN on 30th April 2013).

Cheers,
Rob


[rt.cpan.org #11748] Inline::CPP config gets lost because of Inline::C bug

2013-04-23 Thread Sisyphus via RT
Tue Apr 23 23:49:15 2013: Request 11748 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline::CPP config gets lost because of Inline::C bug
   Broken in: (no value)
Severity: Important
   Owner: Nobody
  Requestors: nick_...@pisem.net
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=11748 


On Sat Apr 20 02:53:07 2013, iang wrote:
 
 I think the fault is in Inline::CPP, not Inline::C.

Yes, I now think that *is* right.

 If Inline::CPP
generates typemap data (if $typemap has non-zero length in
Inline::CPP::write_typemap) then Inline::CPP::validate is called
with the generated TYPEMAP data passed, but this calls
Inline::C::validate, which sets $o-{ILSM}{MAKEFILE}{INC}, unless
$o-UNTAINT is set.
[snip]
 Part of the issue is that when validating TYPEMAP, all the other
options are not passed to Inlince::C::validate. The initialization
there sets INC and the previously passed value is not appended
because it is not passed, only the TYPEMAP is passed.

Seems to me that Inline::C::validate is not really designed to receive that set 
of data, and Inline::CPP should probably not be passing that set of data to it.
Nevertheless, it can apparently be easily fixed by applying the suggested 
change to Inline::C::validate - so I'll go with the original fix.
A version of Inline containing this fix has been uploaded to CPAN as 
Inline-0.52_02. Unless, in the meantine, there's an issue found with 
Inline-0.52_02, it will be released as Inline-0.53 early next week.

Thanks again, Ian, for for the digging and the demo case.

Cheers,
Rob


[rt.cpan.org #11748] Inline::CPP config gets lost because of Inline::C bug

2013-04-20 Thread Sisyphus via RT
Sat Apr 20 07:06:17 2013: Request 11748 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline::CPP config gets lost because of Inline::C bug
   Broken in: (no value)
Severity: Important
   Owner: Nobody
  Requestors: nick_...@pisem.net
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=11748 


On Sat Apr 20 04:43:46 2013, iang wrote:
 I have looked at this a little further and, while I don't see any
evidence of a bug in Inline::C, the bug in Inline::CPP (see Bug
#84762) can be fixed by a change to Inline::C.

Thanks for the test case - and for digging around and providing ideas on how to 
fix this.
Now that I have a demo to study, I can see that the '-IC:/' gets lost inside 
Inline::C::validate (which is called near the end of Inline::CPP::validate). 
This would suggest to me that it *is* a bug in Inline::C.

I'll do something about this when I get the time to study more closely what's 
going on. (Should have some time for that within the next fortnight.)

Thanks again, Ian.

Cheers,
Rob



[rt.cpan.org #81375] chdir without cc

2013-03-06 Thread Sisyphus via RT
Wed Mar 06 21:13:29 2013: Request 81375 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: chdir without cc
   Broken in: 0.50
Severity: Normal
   Owner: Nobody
  Requestors: bernhard+c...@lsmod.de
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81375 


Fixed in 0.52.
Thank you for the report.


[rt.cpan.org #81172] using Inline with = 'Event' fails to compile

2013-03-06 Thread Sisyphus via RT
Wed Mar 06 21:14:30 2013: Request 81172 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: 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 


Fixed in 0.52.
Thank you for the report.


[rt.cpan.org #81094] Inline build fails using INSTALL_BASE

2013-03-06 Thread Sisyphus via RT
Wed Mar 06 21:15:25 2013: Request 81094 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline build fails using INSTALL_BASE
   Broken in: 0.50, 0.51
Severity: Critical
   Owner: Nobody
  Requestors: c...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81094 


Fixed in 0.52
Thank you for the report


[rt.cpan.org #81375] chdir without cc

2012-11-27 Thread Sisyphus via RT
Tue Nov 27 06:37:04 2012: Request 81375 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: chdir without cc
   Broken in: 0.50
Severity: Normal
   Owner: Nobody
  Requestors: bernhard+c...@lsmod.de
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81375 


On Mon Nov 26 21:03:00 2012, xyf.x...@gmail.com wrote:
 I vote for David,  It's a bug from chdir other than Inline.

File::chdir certainly provides an elegant solution to the problem, but
I'll stick with using the eval{} safety net, for the moment at least.
I'm not really all that keen to introduce a new dependency just to save
a couple of lines of code.

I do think it's an Inline::C bug.
Admittedly, it's a bit unusual to want to safeguard Inline::C code
against the absence of a C compiler (or of a missing make utility or of
uncompilable code, etc.), but I think one is entitled to do that. And if
one wants to do that by using eval{} (as the OP does), then one has
every right to expect that the script will return to the *original* cwd
if $@ gets set.
I think chdir() is behaving as it should. If we want to claim that it's
not an Inline::C bug, then we would have to argue that the OP is doing
something that's not allowed. (But of course, IMO, he isn't doing
anything wrong.)

Cheers,
Rob



[rt.cpan.org #81375] chdir without cc

2012-11-24 Thread Sisyphus via RT
Sat Nov 24 19:52:30 2012: Request 81375 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: chdir without cc
   Broken in: 0.50
Severity: Normal
   Owner: Nobody
  Requestors: bernhard+c...@lsmod.de
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81375 


On Sat Nov 24 07:56:37 2012, bmwiedemann wrote:

 I appended to your script:
 system(pwd);

[snip]

 Using Pure Perl Implementation
 42
 /home/bernhard/temp/_Inline/build/testc_pl_b91d
 
 and it showed that it changed the current dir for the perl process

Yes, this could be fixed from within the script I provided as follows:

#
use strict;
use warnings;
use Cwd;


my $cwd = getcwd();

eval {
 require Inline; Inline-import (C = Config =
#CC = 'bogus', # Easy way to make the build fail
BUILD_NOISY = 1);

 require Inline; Inline-import (C =' EOC');

 int foo() {
   warn(Using Inline\n);
   return 42;
 }

 EOC
};

# If Inline is unavailable, foo() simply calls
# the sub bar() pure perl implementation.
if($@) {
  chdir $cwd or warn Couldn't chdir to $cwd;
  *foo =\bar; 
}

sub bar {
  warn(Using Pure Perl Implementation\n);
  return 42;
}

my $x = foo();
print $x\n;
print $cwd, \n;
#

(I've used Cwd::getcwd instead of the pwd system call because pwd is not
available on all systems.)

However, I think (not yet fully tested) this can also be fixed quite
simply from within C.pm by rewriting sub compile as:

#
sub compile {
my $o = shift;

my $build_dir = $o-{API}{build_dir};
my $cwd = cwd;
($cwd) = $cwd =~ /(.*)/ if $o-UNTAINT;

chdir $build_dir;
eval {
$o-call('makefile_pl', 'perl Makefile.PL', 2);
$o-call('make', 'make', 2);
$o-call('make_install', 'make install', 2);
};
chdir $cwd;
die if $@;
$o-call('cleanup', 'Cleaning Up', 2);
}
#

So I'll go with that changed version of C.pm's sub compile unless, in
the course of more thorough testing, I discover a problem with it.
If it tests ok for me, I'll release an Inline-0.51_03 that contains the
fix in a day or two.

Thanks for the report !

Cheers,
Rob




[rt.cpan.org #81375] chdir without cc

2012-11-23 Thread Sisyphus via RT
Fri Nov 23 20:17:08 2012: Request 81375 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: chdir without cc
   Broken in: 0.50
Severity: Normal
   Owner: Nobody
  Requestors: bernhard+c...@lsmod.de
  Status: new
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81375 


On Fri Nov 23 07:52:45 2012, bmwiedemann wrote:
 I used Inline C in eval 
 to make optional acceleration 
 and fallback to generic perl if unavailable,
 but this failed when no gcc was installed,
 because Inline would chdir to the _Inline/build/xxx_ dir
 and remain there when the program started
 
 This caused errors with modules in . not being found
 and output files going to the wrong place.

Could you post a simple demo script ? I can't reproduce the problem.

I tried the following test script:


use strict;
use warnings;

eval {
 require Inline; Inline-import (C = Config =
BUILD_NOISY = 1);

 require Inline; Inline-import (C =' EOC');

 int foo() {
   warn(Using Inline\n);
   return 42;
 }

 EOC
};

# If Inline is unavailable, foo() simply calls
# the sub bar() pure perl implementation.
if($@) {
  *foo =\bar; 
}

sub bar {
  warn(Using Pure Perl Implementation\n);
  return 42;
}

my $x = foo();
print $x\n;


If I hide cc (gcc.exe in my case), the build fails for that reason, and
the script falls back to the pure perl implementation (sub bar).
This is as it's meant to be, and as it should be.

Cheers,
Rob




[rt.cpan.org #81094] Inline build fails using INSTALL_BASE

2012-11-20 Thread Sisyphus via RT
Tue Nov 20 04:48:51 2012: Request 81094 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline build fails using INSTALL_BASE
   Broken in: 0.50, 0.51
Severity: Critical
   Owner: Nobody
  Requestors: c...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81094 


On Sun Nov 11 16:39:50 2012, devel.chm...@gmail.com wrote:
 I did a clean Inline-0.51 install into a new location
 (which required Test::Warn, Sub::Uplevel to be
 installed and Carp to be updated) and the test
 still failed.
 
 Then after an install of ExtUtils::MakeMaker 6.62
 Inline build and installed just fine.  It looks like
 the problem is a bug in the earlier EU::MM and
 setting a higher minimum version for Inline to
 build seems reasonable to me.

Inline-0.51_02 has been pushed to CPAN.
PREREQ_PM for EU::MM now gets set to 6.62 - but only if INSTALL_BASE is 
specified on the command line, and only then if the current version of 
EU::MM =~ m/6\.57/

Cheers,
Rob


[rt.cpan.org #81172] using Inline with = 'Event' fails to compile

2012-11-20 Thread Sisyphus via RT
Tue Nov 20 04:56:47 2012: Request 81172 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: 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 


On Mon Nov 19 06:39:21 2012, peter.smoczyn...@i-new.com wrote:
 since my comments in response to your last mail could easily be 
 overlooked, here's the most important explicitly again..
 thanx, Rob!
 peter
 
  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 kr days..?

Inline-0.51_02, which contains the fix (substitution regex) I mentioned 
in my last post to this thread, has now been uploaded to CPAN.

Cheers,
Rob


[rt.cpan.org #81172] using Inline with = 'Event' fails to compile

2012-11-16 Thread Sisyphus via RT
Fri Nov 16 19:58:21 2012: Request 81172 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: 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 


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.)
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 ...

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.

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 


[rt.cpan.org #81172] using Inline with = 'Event' fails to compile

2012-11-15 Thread Sisyphus via RT
Thu Nov 15 20:53:44 2012: Request 81172 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: 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 


On Thu Nov 15 06:57:05 2012, peter.smoczyn...@i-new.com wrote:
 Hi Rob!
 
 here is the BUILD_NOISY output on version 0.48:
 
 Sun-A3 root 261/0 (~/peter/inline_fails_to_compile)# la
 total 4
 -rw-r--r--   1 root root 529 Nov 14 17:05 compile_test_1.t
 -rw-r--r--   1 root root 581 Nov 15 10:47 compile_test_2.t
 Sun-A3 root 262/0 (~/peter/inline_fails_to_compile)# 
 /opt/perl5.12.2.debug/bin/perl compile_test_2.t
 Starting Build Preprocess 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
 Writing Makefile for compile_test_2_t_a7b1
Finished perl Makefile.PL Stage
 
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 
 compile_test_2_t_a7b1.xs  compile_test_2_t_a7b1.xsc  mv 
 compile_test_2_t_a7b1.xsc compile_test_2_t_a7b1.c
 gcc -c  -I/root/peter/inline_fails_to_compile -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_2_t_a7b1.c
 compile_test_2_t_a7b1.xs:5: error: expected ')' before '*' token
 make: *** [compile_test_2_t_a7b1.o] Error 1


This is a bit confusing.
Firstly, the 0.48 build fails (though no mention of a missing EventAPI.h).

Secondly, if the 0.48 build finds EventAPI.h, I don't see why the 0.51
build can't do the same.
Neither of the 2 builds specify
-I/opt/perl5.12.2.debug/lib/site_perl/5.12.2/i86pc-solaris/Event
(which is the location of EventAPI.h).

Cheers,
Rob



[rt.cpan.org #81172] using Inline with = 'Event' fails to compile

2012-11-14 Thread Sisyphus via RT
Wed Nov 14 18:05:43 2012: Request 81172 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: using Inline with = 'Event' fails to compile
   Broken in: (no value)
Severity: (no value)
   Owner: Nobody
  Requestors: peter.smoczyn...@i-new.com
  Status: new
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81172 


On Wed Nov 14 11:35:40 2012, peter.smoczyn...@i-new.com wrote:

 #!/opt/perl5.12.2.debug/bin/perl
 
 use strict;
 use warnings;
 
 use Inline with = 'Event';

  use Inline C = Config =
   BUILD_NOISY = 1;

 use Inline C = 'EOC_EVDMP_EVENT_C';
 void evdmp_event_c (pe_event * event)
 {
  char *classname = HvNAME(SvSTASH(SvRV(event-mysv)));
 
  printf(evdmp_event_c()\ne type: %s\ne hits: %d\ne prio %d\n,
 classname,
 event-hits,
 event-prio
  );
 
  if (strcmp(classname, (const char *) Event::Event::Io) == 0)
  {
 printf(e got: %u\n, ((pe_ioevent *) event)-got);
  }
 
 }
 EOC_EVDMP_EVENT_C
 
 exit 0;

Could you insert the BUILD_NOISY config option (as per above), and 
then run the script with Inline-0.48.
Then post the output, so that I can compare it with the output you've 
posted for the failing build.

Where is EventAPI.h located ?

For a quick workaround, I think you could add the location of 
EventAPI.h to the CPATH environment variable:

export CPATH=$CPATH:/wherever/it/is

(At least that's how it vwould be done on linux. I assume solaris is 
the same.)

Cheers,
Rob


[rt.cpan.org #81094] Inline build fails using INSTALL_BASE

2012-11-11 Thread Sisyphus via RT
Sun Nov 11 15:05:20 2012: Request 81094 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline build fails using INSTALL_BASE
   Broken in: 0.50, 0.51
Severity: Critical
   Owner: Nobody
  Requestors: c...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81094 


On Sun Nov 11 11:31:44 2012, devel.chm...@gmail.com wrote:
 Hi Rob-
 
 Perhaps the problem is perl version specific as I
 have not had trouble building Inline with perl 5.10.x
 from cygwin.  This build was with the latest cygwin
 perl 5.14.2.
 
 The good news is that since all this was installed
 in a separate location, I should be able to reproduce
 the bug using a different INSTALL_BASE.  Of
 course, I need to get PDL up and running first but
 will follow up with the details when I can do so.
 
 --Chris

I've just installed the latest cygwin-1.7.17 (perl-5.14.2) on a Windows 
7 box, and then installed Inline-0.51 (and its dependency chain) into 
~/modules by specifying INSTALL_BASE=~/modules.

I still didn't strike the problem you reported - but I did something a 
little differently.
When it came to installing Parse-RecDescent-1.967009, the Makefile.PL 
croaked because EU::MM was at version 6.57_05, but 6.62 was needed. 
Rather than opt for an earlier version of P::RD, I installed version 
6.62 of EU::MM (also into ~/modules) and all then went fine.

Having done that, I then re-jigged things to build Inline-0.51 (perl 
Makefile.PL INSTALL_BASE=~/elsewhere) using version 6.57_05 of EU::MM 
and got exactly the same problem as you did.

Apparently that's the version of EU::MM that originally shipped with 
5.14.0 ... I haven't checked which version of EU::MM shgipped with 
5.14.2 ... is upgrading to a later version of EU::MM an acceptable 
solution to this problem ?

Cheers,
Rob



[rt.cpan.org #81094] Inline build fails using INSTALL_BASE

2012-11-10 Thread Sisyphus via RT
Sat Nov 10 22:47:45 2012: Request 81094 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Inline build fails using INSTALL_BASE
   Broken in: 0.50, 0.51
Severity: Critical
   Owner: Nobody
  Requestors: c...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=81094 


On Sat Nov 10 13:02:31 2012, CHM wrote:

 Installing
 /cygdrive/e/chm/pdl/try/Inline-
 0.51/C/_Inline_test/lib/auto/_01syntax_t_6b3a/_01syntax_t_6b3a.bs
 Installing
 /cygdrive/e/chm/pdl/try/Inline-
 0.51/C/_Inline_test/lib/auto/_01syntax_t_6b3a/_01syntax_t_6b3a.dll
 chmod 755
 /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-
 64int/auto/_01syntax_t_6b3a/_01syntax_t_6b3a.dll
 chmod: cannot access
 `/usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-
 64int/auto/_01syntax_t_6b3a/_01syntax_t_6b3a.dll':
 No such file or directory

We see that _01syntax_t_6b3a.dll has been installed to the correct 
location - which, incidentally, is the same location to which it would 
have been installed even if INSTALL_BASE had *not* been specified.

But then chmod goes beserk, and tries to chmod a _01syntax_t_6b3a.dll 
that's in a completely different (and non-exzistent) location.

I tried building Inline-0.51 (with 'perl Makefile.PL 
INSTALL_BASE=C:/foo_bar'), on a native Win32 (MinGW) build of perl-
5.16.0, and it all went fine. (This was a perl that did not already 
have Inline installed.)
On my Cygwin-1.7.7 installation (perl-5.10.1), I already had a build of 
Inline-0.49 that had been installed with INSTALL_BASE=~/modules so I 
removed it and built and installed Inline-0.51 (with 'perl Makefile.PL 
INSTALL_BASE=~/modules'). All went fine, except for that fork 
(rebase ?) issue, which is a completely different issue, and one that I 
can no longer be bothered with.

So, I'm thinking we have some sort of Cygwin and/or EU::MM bug at play 
here - but it could also well be that Inline is the culprit.
It's difficult for me to tell if I can't reproduce the error.

It would bew interesting to see the original (troublesome)
/cygdrive/e/chm/pdl/try/Inline-
0.51/C/_Inline_test/build/_01syntax_t_6b3a/Makefile
if you still have it, or have the energy to reproduce it.

Good that you found a workaround, though that doesn't make the bug any 
less annoying, of course.

Cheers,
Rob 

 


[rt.cpan.org #67053] Space in pwd

2012-10-10 Thread Sisyphus via RT
Tue Oct 09 00:58:11 2012: Request 67053 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Space in pwd
   Broken in: 0.48
Severity: Critical
   Owner: Nobody
  Requestors: rur...@x-ray.at
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=67053 


On Sun Apr 03 05:16:27 2011, SISYPHUS wrote:
 On Wed Mar 30 08:29:11 2011, rur...@x-ray.at wrote:
  Attached new patch fixed also the remaining C/t/07typemap_multi.t 
 problem.

The quote_space() subroutine that formed part of that patch has, as of
Inline-0.50_03, been re-written as a result of

https://rt.cpan.org/Ticket/Display.html?id=80026 

Cheers,
Rob 



[rt.cpan.org #80026] LIB is being in correctly quoted when using more than one lib path

2012-10-10 Thread Sisyphus via RT
Tue Oct 09 00:37:15 2012: Request 80026 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: LIB is being in correctly quoted when using more than one lib path
   Broken in: 0.48, 0.48_01, 0.48_02, 0.49, 0.49_01, 0.49_02, 0.50, 0.50_01, 
0.50_02
Severity: Important
   Owner: Nobody
  Requestors: jcleme...@cpan.org
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=80026 


On Sun Oct 07 11:39:06 2012, JCLEMENTS wrote:
 Thanks for getting this fixed so quickly.

Well, the main thing is that it doesn't break things for those who don't
have whitespace in their directory names  just how well it works for
those who *do* have whitespace in their directory names is not of great
importance to me, personally. (I don't really see why they can't do the
quoting themselves.)

Anyway, as of Inline-0.50_03, which has just been uploaded to cpan, the
quote_space() subroutine should now be doing the right thing pretty much
across the board, afaik.
If the INC config arg contains any tabs or doublequotes, then
quote_space() won't alter it in any way - which will cause problems if
that arg contains some whitespace that needs to be quoted. (This is the
only shortcoming I'm aware of at the moment ... someone who cares about
it can fix that aspect.)

If no problems with Inline-0.50_03 become evident in the next few days,
then it will be released as Inline-0.51 on the evening of Sat 13 Oct 
(Australian time).

Cheers,
Rob


[rt.cpan.org #75664] Fails 09parser test in Cygwin with *** fatal error

2012-03-15 Thread Sisyphus via RT
Thu Mar 15 06:20:05 2012: Request 75664 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Fails 09parser test in Cygwin with *** fatal error
   Broken in: 0.50
Severity: Important
   Owner: Nobody
  Requestors: starrych...@oliveyou.net
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=75664 


On Wed Mar 14 08:03:46 2012, daoswald wrote:

 My suggestion is to document the issue in a future release of Inline

I generally take the view that, if it's not an Inline issue, then
there's no need to take any action at all.
But this non-Inline issue is a little different - in that it's not
immediately apparent that it has nothing to do with Inline. (At least,
it wasn't to me ... and I was damn relieved when Chloe's follow up
report appeared.)
So, I think I'll do as you suggest and create some documentation about
it in the Inline-FAQ.

Not that anyone ever checks the Inline-FAQ ... but at least it would
give us a ready-made link to which we can (indignantly ;-) refer future
questioners about this problem.
When that's done, I'll close this bug report - but I'll leave it open
for the meantime.

Thanks !!

Cheers,
Rob



[rt.cpan.org #75664] Fails 09parser test in Cygwin with *** fatal error

2012-03-14 Thread Sisyphus via RT
Wed Mar 14 04:13:11 2012: Request 75664 was acted upon.
Transaction: Correspondence added by SISYPHUS
   Queue: Inline
 Subject: Fails 09parser test in Cygwin with *** fatal error
   Broken in: 0.50
Severity: Important
   Owner: Nobody
  Requestors: starrych...@oliveyou.net
  Status: open
 Ticket URL: https://rt.cpan.org/Ticket/Display.html?id=75664 


On Wed Mar 14 02:34:10 2012,

 I updated some Cygwin packages, and then it gave me an error saying I
 needed
 to run rebaseall, which I've never seen before. I had to run it from
 only
 ash or dash, which I've never heard of before. I ran it, it did
 something,
 and then I tried to install Inline::C again and it worked this time.

Thanks for that - good to know that 'rebaseall' fixes the problem.
I can actually reproduce the problem on my Cygwin installation ... and I
expect 'rebaseall' will fix the problem here, too, if I can just
discover wtf one needs to do in order to successfully run that command. 

I keep getting an error which, in essence, tells me that I need to do
exactly what I just did, in order to successfully run 'rebaseall'.

Cheers,
Rob 



[rt.cpan.org #54825] Warnings During Build

2011-01-22 Thread Sisyphus via RT
URL: https://rt.cpan.org/Ticket/Display.html?id=54825 

On Fri Jan 21 06:41:28 2011, JAWNSY wrote:

 Reopening for a very quick question: have you considered using
 Test::Warn? It will ensure the warnings are emitted, while at the same
 time suppressing them from test output.

I guess it would be ok to suppress those taint-related warnings from 
the test suite output (if we can find a satisfactory way of doing 
that). One way would be to set the config option 'NO_UNTAINT_WARN = 
1;' in the test script.
However, I'd rather *not* do that in case someone uses that test script 
as a template, thereby running their scripts with 'NO_UNTAINT_WARN = 
1;', totally oblivious to the sorts of things that Inline is doing 
under the hood.

My attempts at using Test::Warn to detect and suppress the warnings 
have not yet worked:

#
use warnings;
use strict;
use Test::More tests = 1;

use Test::Warn;

use Inline Config =
UNTAINT = 1,
DIRECTORY = '_Inline_test';


use Inline C = 'END_OF_C_CODE';

int add(int x, int y) {
return x + y;
}

END_OF_C_CODE

warnings_are {add(3,4)} [];
#

The warnings are issued during Inline's build phase, before the 
warnings_are() test is run - so I get output of:

#
1..1
In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
In Inline::check_config_file(): Blindly untainting Inline configuration 
file information.
In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
In Inline::obj_untaint() : Blindly untainting tainted fields in Inline 
object.
ok 1
#

I'll keep looking at this (as time permits) until I either find a way 
to make it work, or come to an understanding that it can't be made to 
work.

Cheers,
Rob


[rt.cpan.org #54825] Warnings During Build

2011-01-21 Thread Sisyphus via RT
URL: https://rt.cpan.org/Ticket/Display.html?id=54825 

Hi,
The Subroutine Inline::C::get_parser redefined... warnings and 
associated diagnostic comments have gone, but the Blindly 
untaininting ... warnings are still there (as I believe it's important 
that Inline tells us that it's doing these things).

During the running of the test suite these warnings are, however, now 
pre-announced with the message:

Expect a number of Blindly untainting ... warnings - these are 
intended.

So I'm now closing this ticket.
But check out Inline-0.47 (uploaded to CPAN today) and see what you 
think. If you require further action on this (or would simply prefer 
that the ticket remain open), please feel free to re-open it. (I think 
you can do that by simply updating this ticket ... not sure :-)

Cheers,
Rob




[rt.cpan.org #55543] Inline::C can crash the perl interpreter if function uses PUSHMARK

2010-03-14 Thread Sisyphus via RT
URL: https://rt.cpan.org/Ticket/Display.html?id=55543 

On Sat Mar 13 23:27:29 2010, asuffi...@suffields.me.uk wrote:
 Inline::C uses this hack in an attempt to detect the difference
 between void returns and XSUB list returns:
 
   temp = PL_markstack_ptr++;
   $function($arg_name_list);
   if (PL_markstack_ptr != temp) {
   /* truly void, because dXSARGS not invoked */
 PL_markstack_ptr = temp;
 XSRETURN_EMPTY; /* return empty stack */
 }
 /* must have used dXSARGS; list context implied */
   return; /* assume stack size is correct */
 
 Sadly, this does not work. If the mark stack is reallocated (due to
 use of PUSHMARK in any function called), then PL_markstack_ptr can
 have a completely different value. This code then scribbles over it
 with the old value, pointing to freed memory; the interpreter will
 crash shortly after this.
 
 I haven't checked carefully, but I think this should have been
 examining the value of (PL_markstack_ptr - PL_markstack) instead -
 that's the current height of the stack, rather than its current
 address.

(cc'ing the Inline mailing list in case anyone there is interested.)

Wow ... that code has been around for ages.
I think I get the picture, though I'm currently having trouble 
reproducing the bug from the description. (Dimness on my part, one 
suspects :-)

Do you have a simple demo script ? It doesn't have to do anything 
meaningful - just something that demonstrates the problem.

Thanks for the report !

Cheers,
Rob





[rt.cpan.org #54825] Warnings During Build

2010-02-21 Thread Sisyphus via RT
URL: https://rt.cpan.org/Ticket/Display.html?id=54825 

On Sat Feb 20 14:01:05 2010, JAWNSY wrote:
 Hi there,
 
 While trying to build the latest version of Inline for Debian (where 
it
 is packaged as libinline-perl), I encountered several warnings and
 suspicious diagnostic output during testing. As far as I can tell from
 the toolchain output, there were no dependencies missing during build.
 
 What follows is the test output:
 
dh_auto_test
 make[1]: Entering directory
 `/build/jon-libinline-perl_0.46-1-i386-lJq_CL/libinline-perl-0.46'
 make[2]: Entering directory
 `/build/jon-libinline-perl_0.46-1-i386-lJq_CL/libinline-perl-0.46/C'
 make[2]: Leaving directory
 `/build/jon-libinline-perl_0.46-1-i386-lJq_CL/libinline-perl-0.46/C'
 PERL_DL_NONLAZY=1 /usr/bin/perl -MExtUtils::Command::MM -e
 test_harness(0, 'blib/lib', 'blib/arch') t/*.t
 t/00init.t  ok
 t/01usages.t .. ok
 t/02config.t .. ok
 t/03errors.t .. ok
 t/04create.t .. ok
 t/05files.t ... skipped: (no reason given)
 All tests successful.
 Files=6, Tests=14, 11 wallclock secs ( 0.04 usr  0.02 sys +  0.50 
cusr 
 0.10 csys =  0.66 CPU)
 Result: PASS
 make[2]: Entering directory
 `/build/jon-libinline-perl_0.46-1-i386-lJq_CL/libinline-perl-0.46/C'
 PERL_DL_NONLAZY=1 /usr/bin/perl -MExtUtils::Command::MM -e
 test_harness(0, '../blib/lib', '../blib/arch') t/*.t
 t/00init.t ... ok
 t/01syntax.t . ok
 t/02config.t . ok
 t/03typemap.t  ok
 t/04perlapi.t  ok
 t/05xsmode.t . ok
 Subroutine Inline::C::get_parser redefined at ../blib/lib/Inline.pm 
line
 312 (#1)
 (W redefine) You redefined a subroutine.  To suppress this 
warning, say
 
 {
 no warnings 'redefine';
 eval sub name { ... };
 }

 t/06parseregexp.t  ok
 Subroutine Inline::C::get_parser redefined at ../blib/lib/Inline.pm 
line
 312 (#1)
 (W redefine) You redefined a subroutine.  To suppress this 
warning, say
 
 {
 no warnings 'redefine';
 eval sub name { ... };
 }
 
 t/07typemap_multi.t .. ok
 In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
 In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
 In Inline::obj_untaint() : Blindly untainting tainted fields in Inline
 object.
 In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
 In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
 In Inline::obj_untaint() : Blindly untainting tainted fields in Inline
 object.
 In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
 In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
 In Inline::obj_untaint() : Blindly untainting tainted fields in Inline
 object.
 In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
 In Inline::env_untaint() : Blindly untainting tainted fields in %ENV.
 In Inline::obj_untaint() : Blindly untainting tainted fields in Inline
 object.
 t/08taint.t .. ok
 All tests successful.
 Files=9, Tests=21, 13 wallclock secs ( 0.02 usr  0.02 sys +  9.50 
cusr 
 3.24 csys = 12.78 CPU)
 Result: PASS
 
 This regression appears to have been introduced in version 0.46;
 rebuilding 0.45 with the most recent perl and other dependencies 
yields
 the following test output:
 
dh_auto_test
 make[1]: Entering directory
 `/build/jon-libinline-perl_0.45-1-i386-dvYTxJ/libinline-perl-0.45'
 make[2]: Entering directory
 `/build/jon-libinline-perl_0.45-1-i386-dvYTxJ/libinline-perl-0.45/C'
 make[2]: Leaving directory
 `/build/jon-libinline-perl_0.45-1-i386-dvYTxJ/libinline-perl-0.45/C'
 PERL_DL_NONLAZY=1 /usr/bin/perl -MExtUtils::Command::MM -e
 test_harness(0, 'blib/lib', 'blib/arch') t/*.t
 t/00init.t  ok
 t/01usages.t .. ok
 t/02config.t .. ok
 t/03errors.t .. ok
 t/04create.t .. ok
 t/05files.t ... skipped: (no reason given)
 All tests successful.
 Files=6, Tests=14, 10 wallclock secs ( 0.04 usr  0.02 sys +  0.56 
cusr 
 0.06 csys =  0.68 CPU)
 Result: PASS
 make[2]: Entering directory
 `/build/jon-libinline-perl_0.45-1-i386-dvYTxJ/libinline-perl-0.45/C'
 PERL_DL_NONLAZY=1 /usr/bin/perl -MExtUtils::Command::MM -e
 test_harness(0, '../blib/lib', '../blib/arch') t/*.t
 t/00init.t ... ok
 t/01syntax.t . ok
 t/02config.t . ok
 t/03typemap.t  ok
 t/04perlapi.t  ok
 t/05xsmode.t . ok
 t/06parseregexp.t  ok
 t/07typemap_multi.t .. ok
 All tests successful.
 Files=8, Tests=16, 10 wallclock secs ( 0.04 usr  0.02 sys +  7.00 
cusr 
 2.48 csys =  9.54 CPU)
 Result: PASS

The suspicious diagnostic output is just the standard use 
diagnostics; ouptut - assuming I've correctly identified the output 
you're referring to :-) 

The redefinition warnings come about as a result of fixing #49669:
https://rt.cpan.org/Public/Bug/Display.html?id=49669

Basically, I think we could silence the warnings in one of 2 ways:

1) Fix #49669 in such a way that get_parser() does not get redefined;
2) Take