develooper Front page | perl.perl5.porters | Postings from May 2013

Re: Build failed in Jenkins: perl5 #2285

Thread Previous | Thread Next
From:
demerphq
Date:
May 7, 2013 09:02
Subject:
Re: Build failed in Jenkins: perl5 #2285
Message ID:
CANgJU+UtHktd++i5S1nUusOs5pVJQUUWTWfG6r0Vni4F2HRhFQ@mail.gmail.com
On 7 May 2013 10:55, Nicholas Clark <nick@ccl4.org> wrote:
> On Tue, May 07, 2013 at 10:38:01AM +0200, demerphq wrote:
>> On 7 May 2013 09:48,  <dennis+p5p-jenkins@kaarsemaker.net> wrote:
>>
>> > chmod 755 ../../../lib/auto/Encode/Unicode/Unicode.so
>> > make[2]: Leaving directory `<http://perl5.git.perl.org:8080/job/perl5/ws/cpan/Encode/Unicode'>
>> > make[1]: Leaving directory `<http://perl5.git.perl.org:8080/job/perl5/ws/cpan/Encode'>
>> > Making test script
>> > Updating 'mktables.lst'
>> > Build step 'Execute shell' marked build as failure
>>
>> I dont see any compile failures, it just stops there. I dont
>> understand why. I also dont understand why jenkins is using g++.
>
> I think that Jenkins is showing the tail of a parallel make. Which isn't
> actually useful because it shows the $n-1 slow jobs still running, not the
> 1 job that failed quickly.
>
> As to why Jenkins is running g++ not gcc - not sure. There was probably a
> discussion about it at some point, and it was assumed that threaded g++
> would give the most "bang for your buck" in terms of one configuration to
> find the most problems.
>
> As to g++ generally - it's to prove that all the headers are valid C++ so
> that C++ XS code still works. We screwed this one up once (5.8.8, IIRC)

Ok, it confused me when I was trying to figure out what it was doing.

>> Can anybody replicate this?
>
> Util.xs: In function 'void XS_Hash__Util_hash_traversal_mask(CV*)':
> Util.xs:94: error: invalid conversion from 'const HV*' to 'HV*'
> Util.xs:94: error:   initializing argument 1 of 'void Perl_hv_rand_set(HV*, U32)'
> make[1]: *** [Util.o] Error 1
> make[1]: Leaving directory `/home/nick/Perl/perl/ext/Hash-Util'
> Unsuccessful make(ext/Hash-Util): code=512 at make_ext.pl line 490.
> make: *** [lib/auto/Hash/Util/Util.so] Error 2
>
> It's passing a const HV* pointer to a function taking HV*
>
>     if (SvROK(rhv) && SvTYPE(SvRV(rhv))==SVt_PVHV && !SvMAGICAL(SvRV(rhv))) {
>         const HV * const hv = (const HV *) SvRV(rhv);
>         if (items>1) {
>             hv_rand_set(hv, SvUV(ST(1)));
>
>
> I don't know if the right fix is to change that line from 'const HV * const hv'
> or to change Perl_hv_rand_set to take a const HV * parameter.

Thanks a lot, I eventually figured that out from one of Georges smoke
reports which made it easier to see.

I was just doing a local build/test on the former. I see no reason not
to use the latter, do you perchance know which is "better"?

Yves


--
perl -Mre=debug -e "/just|another|perl|hacker/"

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About