vtable_massacre branch needs more eyes

Jonathan Leto jaleto at gmail.com
Fri Feb 12 17:56:41 UTC 2010


Howdy,

I got some failures in t/pmc/bigint.t on darwin-x86 :

Test Summary Report
-------------------
t/pmc/bigint.t                            (Wstat: 0 Tests: 34 Failed: 0)
  Parse errors: Bad plan.  You planned 45 tests but ran 34.
Files=339, Tests=11996, 130 wallclock secs ( 2.73 usr  1.55 sys +
45.17 cusr 50.59 csys = 100.04 CPU)
Result: FAIL

TAP Archive created at
/Users/leto/svn/parrot-vtable_massacre/parrot_test_run.tar.gz
Test report successfully sent to Smolder at
http://smolder.plusthree.com/app/projects/report_details/32166

Did you test with a Parrot that has GMP enabled? It seems to be
running the wrong number of tests or dying prematurely.

(kadath)(~/svn/parrot-vtable_massacre)$ prove -v t/pmc/bigint.t
t/pmc/bigint.t ..
1..45
This Parrot uses GMP
Suitable GMP version [4.3.1] available
ok 1 - set and get combinations
ok 2 - add(bigint,bigint)
ok 3 - add(bigint,nativeint)
ok 4 - sub(bigint,bigint)
ok 5 - sub(bigint,integer)
ok 6 - mul(bigint,bigint)
ok 7 - mul(bigint,nativeint)
ok 8 - div(bigint,bigint)
ok 9 - div(bigint,nativeint)
ok 10 - div(bigint,integer)
ok 11 - div(bigint,bigint 0) throws "Divide by zero" exception
ok 12 - mod(bigint,bigint 0) throws "Divide by zero" exception
ok 13 - div(bigint,integer 0) throws "Divide by zero" exception
ok 14 - mod(bigint,integer 0) throws "Divide by zero" exception
ok 15 - negation
ok 16 - abs negates negative number
ok 17 - ... and original unchanged with 2-arg form
ok 18 - ... does not change to positive number
ok 19 - ... and in-place works too
Using 32-bit Integers [-2147483648...2147483647]
ok 20 - integer addition converts MaxInt+1 to BigInt
ok 21 - integer addition converts MinInt+(-1) to BigInt
ok 22 - integer subtraction converts MaxInt-(-1) to BigInt
not ok 23 # TODO integer negation of MinInt converts MaxInt+1 to BigInt
not ok 24 # TODO integer absolute-value of MinInt converts MaxInt+1 to BigInt
ok 25 - Interface does scalar
ok 26 - ... and does not do bogus
ok 27 - truth and falsehood
ok 28 - Computed 1000 digits of PI (using coroutine)
ok 29 - BUG #34949 gt
ok 30 - BUG #34949 ge
ok 31 - BUG #34949 ne
ok 32 - BUG #34949 eq
ok 33 - BUG #34949 le
ok 34 - BUG #34949 lt
Failed 11/45 subtests

Test Summary Report
-------------------
t/pmc/bigint.t (Wstat: 0 Tests: 34 Failed: 0)
  Parse errors: Bad plan.  You planned 45 tests but ran 34.
Files=1, Tests=34,  0 wallclock secs ( 0.03 usr  0.00 sys +  0.04 cusr
 0.01 csys =  0.08 CPU)
Result: FAIL


On Fri, Feb 12, 2010 at 4:41 AM, Andrew Whitworth <wknight8111 at gmail.com> wrote:
> I've done more testing myself and I haven't heard any reports of
> failures since this first email went out. I'm going to merge this
> branch later today unless any last minute concerns are raised.
>
> --Andrew Whitworth
>
>
>
> On Wed, Feb 10, 2010 at 11:56 AM, Andrew Whitworth
> <wknight8111 at gmail.com> wrote:
>> I've completed much of the work in the vtable_massacre branch this
>> morning, with help from cotto++ and darbelo++, among others. This
>> branch rips out the following vtables:
>>
>> PMC* get_bignum()
>> void set_bignum_int(INTVAL value)
>> void set_bignum_num(FLOATVAL value)
>> void set_bignum_str(STRING* value)
>> PMC* pow(PMC* value, PMC* dest)
>> PMC* pow_int(INTVAL value, PMC* dest)
>> PMC* pow_float(FLOATVAL value, PMC* dest)
>> void i_pow(PMC* value) :write
>> void i_pow_int(INTVAL value) :write
>> void i_pow_float(FLOATVAL value) :write
>> PMC* bitwise_or(PMC* value, PMC* dest)
>> PMC* bitwise_or_int(INTVAL value, PMC* dest)
>> void i_bitwise_or(PMC* value) :write
>> void i_bitwise_or_int(INTVAL value) :write
>> PMC* bitwise_and(PMC* value, PMC* dest)
>> PMC* bitwise_and_int(INTVAL value, PMC* dest)
>> void i_bitwise_and(PMC* value) :write
>> void i_bitwise_and_int(INTVAL value) :write
>> PMC* bitwise_xor(PMC* value, PMC* dest)
>> PMC* bitwise_xor_int(INTVAL value, PMC* dest)
>> void i_bitwise_xor(PMC* value) :write
>> void i_bitwise_xor_int(INTVAL value) :write
>> PMC* bitwise_ors(PMC* value, PMC* dest)
>> PMC* bitwise_ors_str(STRING* value, PMC* dest)
>> void i_bitwise_ors(PMC* value) :write
>> void i_bitwise_ors_str(STRING* value) :write
>> PMC* bitwise_ands(PMC* value, PMC* dest)
>> PMC* bitwise_ands_str(STRING* value, PMC* dest)
>> void i_bitwise_ands(PMC* value) :write
>> void i_bitwise_ands_str(STRING* value) :write
>> PMC* bitwise_xors(PMC* value, PMC* dest)
>> PMC* bitwise_xors_str(STRING* value, PMC* dest)
>> void i_bitwise_xors(PMC* value) :write
>> void i_bitwise_xors_str(STRING* value) :write
>> PMC* bitwise_not(PMC* dest)
>> void i_bitwise_not() :write
>> PMC* bitwise_nots(PMC* dest)
>> void i_bitwise_nots() :write
>> PMC* bitwise_shl(PMC* value, PMC* dest)
>> PMC* bitwise_shl_int(INTVAL value, PMC* dest)
>> void i_bitwise_shl(PMC* value) :write
>> void i_bitwise_shl_int(INTVAL value) :write
>> PMC* bitwise_shr(PMC* value, PMC* dest)
>> PMC* bitwise_shr_int(INTVAL value, PMC* dest)
>> void i_bitwise_shr(PMC* value) :write
>> void i_bitwise_shr_int(INTVAL value) :write
>> PMC* bitwise_lsr(PMC* value, PMC* dest)
>> PMC* bitwise_lsr_int(INTVAL value, PMC* dest)
>> void i_bitwise_lsr(PMC* value) :write
>> void i_bitwise_lsr_int(INTVAL value) :write
>>
>> Also, we've modified the ops in src/ops/bit.ops and the pow ops in
>> src/ops/math.ops to call the appropriate {get|set}_{integer|float}
>> vtables to perform the same operations.
>>
>> I would like to get some more testing on various platforms and also
>> for various projects and HLLs to make sure we aren't losing or
>> breaking anything major. I would like to get this branch merged in
>> before the weekend, the sooner the better.
>>
>> Thanks,
>>
>> --Andrew Whitworth
>>
> _______________________________________________
> http://lists.parrot.org/mailman/listinfo/parrot-dev
>



-- 
Jonathan "Duke" Leto
jonathan at leto.net
http://leto.net


More information about the parrot-dev mailing list