Uh, you need too upgrade your pike. I fixed those weeks ago:
Pike v7.3 release 60 running Hilfe v3.5 (Incremental Pike Frontend)
pow(2, pow(2, pow(2, pow(2, pow(2,pow(2,2))))));
Gmp.mpz->pow: Exponent too large. /pike/sw/pike/7.3.60/lib/modules/Gmp.so.bignum: pow(,,,0) HilfeInput:1: ___HilfeWrapper()
pow(2, 65536423423423423);
Gmp.mpz->pow: Exponent too large. /pike/sw/pike/7.3.60/lib/modules/Gmp.so.bignum: pow(65536423423423423) HilfeInput:1: ___HilfeWrapper()
8->pow(34534534534534534534534534545);
Gmp.mpz->pow: Exponent too large. /pike/sw/pike/7.3.60/lib/modules/Gmp.so.bignum: pow(34534534534534534534534534545) HilfeInput:1: ___HilfeWrapper()
The 8->pow(34534534); call still segfaults, but it's hard to do anything about it without fixing Gmp itself.
/ Marcus Comstedt (ACROSS) (Hail Ilpalazzo!)
Previous text:
2002-11-20 15:02: Subject: Gmp
(Not tested with the absolutely latest Pike)
The Gmp-functions don't have a correct behaviour:
pow(2, pow(2, pow(2, pow(2, pow(2,pow(2,2))))));
Compiler Error: 1:Error evaluating constant. Compiler Exception: Too many argumentsUnknown program: pow(HilfeCompileHandler,-1,-1)
There are only two arguments there! And there should be some sort of space in "argumentsUnknown"
pow(2, 65536423423423423);
(7) Result: 65536423423423423
8->pow(34534534534534534534534534545);
Gmp.mpz->pow: Non int exponent. /usr/local/pike/7.3.43/lib/modules/Gmp.so.bignum: pow(34534534534534534534534534545) HilfeInput:1: ___HilfeWrapper()
Seems OK, but "Non int exponent." could be changed to "Exponent bigger than a non-bignum integer.".
8->pow(34534534);
Segmentation fault
Not good! I think this is an out of memory problem, so you have to change 34534534 to something that works on your computer.
/ Hedda (www.elftown.com)