develooper Front page | perl.perl5.porters | Postings from March 2007

Getting rid of old Math::Big* baggage

Thread Next
March 4, 2007 12:55
Getting rid of old Math::Big* baggage
Message ID:
Hash: SHA1


I consider doing away with the following packages, for the reasons outlined 
below. If anybody wants to preserve them, send me an email and I make you 
co-maintainer. Otherwise the will vanish.

* Math::BigInt::BitVect

This is one of the libraries you can use to replace Calc/FastCalc with, and 
make math with big/huge numbers go faster. This package was more a proof of 
concept to show Steffen Beyer that it can be done.

However, it suffers from the problem that Bit::Vector objects have a 
pre-defined bit-width, while BigInt needs arbitrarily big objects. The 
constant resizing of the objects eats up a lot of speed, and in addition 
Bit::Vector does not have optimized routines for a lot of operations (some 
are absent, some are just not that fast). GMP beats it hands down.

In addition, Bit::Vector hasn't been updated since 2004, and 
Math::BigInt::BitVect never was updated by me, so it will not work with any 
Math::BigInt newer than 1.69. v1.70 was released 2004-03-12, and since this 
module has been broken. And nobody cared or took notice.

=> marked for Deletion

* Math::BigInt::Pari

This module was another proof-of-concept, and it worked ok. Except that it 
lately hasn't been updated, it takes more memory than the GMP module, and 
is slower. Would need to benchmark it, but I believe it is slower for small 
operations, and also not as optimized as GMP.

This module might be kept around, but then, things would be simplier if 
users wouldn't have to decide between two math libs.

=> marked for NeedsSomeLove

* Math::BigInt::Lite

This was some largely failed attempt to write a BigInt class that is faster 
for very small numbers. It surely adds 1+1 faster, if it works. The status 
is a it unclear, but I believe this package has been broken for some years 
now. You couldn't use it as BigInt replacement as it morphs it's own object 
class, and youcan't use it inside BigFloat, notably because this got broken 
somewhere along the way.

=> marked for Deletion

* Math::BigInt::Named

I updated this module recently, but nobody seems to have used it in the last 
3 years. It is really only half-way implemented (English name() and German 
name() work, but from_name() is a no-op, and the other languages are simple 
not there).

=> marked for NoIdeaProbablyDelete

So, has any body got interest in raising some zombies?

If not, I will also purge references to these modules from the doc of 

All the best,


- -- 
 Signed on Sun Mar  4 21:42:37 2007 with key 0x93B84C15.
 View my photo gallery:
 PGP key on or per email.

 "Hi, hi, hitotai, space taxi to the sky"

Version: GnuPG v1.4.2 (GNU/Linux)


Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About