[comp.lang.perl] lib.big

meggers@mothra.nts.uci.edu (Mark Eggers) (11/14/90)

On a DECstation 3100 running 4.0, I managed to get everything compiled.
I used -Olimit 2820 to get toke.c, eval.c, etc. to compile.  I am running into
problems with the bigint.pl library when testing lib.big.

Without print statements, the test bombs with a core dump at test 51.  If a
print statement is stuck in after

$try = "$f('" . join("','", @args) . "');";
		print "$try\n";

the output reveals

&bcmp('-123','-123');

which looks pretty normal.  Wandering over to ../lib/bigint.pl, I stick in
the following print statement after the &bnorm call.

    local($x,$y) = (&'bnorm($_[0]),&'bnorm($_[1]));
        print "$x\t$y\n";

I now get:

ok 49
&bcmp('+12','+123');
+12     +123
ok 50
&bcmp('-123','-123');
-123    -123
ok 51

and proceed smoothly through until I get to

ok 82
&badd('+1000','-1');
ok 9&badd('+10000','-1');
pid 8461 (perl) was killed on unaligned access, at pc 0x45968c
Bus error (core dumped)

Sticking in the print statement as above in badd results in the tests passing.

I thought that there might be a problem in bnorm, but I didn't see anything
obvious.

Thoughts and/or solutions appreciated.

/mde/