D2 phobos BigInt bug

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Fri Feb 6 05:12:10 PST 2009


Don wrote:
> dsimcha wrote:
>> == Quote from ZHOU Zhenyu (rinick at goozo.net)'s article
>>> BigInt b = "100000";
>>> foreach( i; 1..20 ){
>>>     b*=10;
>>>     writeln(b*b);
>>> }
>>> system: Windows
>>> CPU: Intel Core2 Duo T7250 2.00GHz
>>> result:
>>> 1000000000000
>>> 100000000000000
>>> 10000000000000000
>>> 1000000000000000000
>>> 100000000000000000000
>>> 10000000000000000000000
>>> 999981553255926290448384
>>> 100000000000000000000000000
>>> 10000000000000000000000000000
>>> 1000000000000000000000000000000
>>> 100000000000000000000000000000000
>>> 10000000000000000000000000000000000
>>> 1000000000000000000000000000000000000
>>> 100000000000000000000000000000000000000
>>> 10000000000000000000000000000000000000000
>>> 999999999999999999999981553255926290448384
>>> 100000000000000000000000000000000000000000000
>>> 9999999999999999999999999981553255926290448384
>>> 1000000000000000000000000000000000000000000000000
>>
>> Yep, I can reproduce that on Windows on an Athlon 64 X2.  You're _not_ 
>> just going
>> crazy.  Please file a Bugzila.
> 
> I don't think that will ever get fixed (unless you make a patch 
> yourself). Phobos BigInt was created by Janice, and she seems to have 
> completely disappeared. I'm working on Tango BigInt, which is completely 
> independent, and will replace Phobos BigInt eventually. ( == as soon as 
> we get a common namespace to put it into). I don't think anyone is 
> interested in debugging Phobos BigInt.

I'd fix it but I know your BigInt is bound to work much better overall. 
Speaking of the common namespace name, it seems that problem won't go 
away soon. I kindly ask you to not make the inclusion of BigInt in 
Phobos hinge on that.

Andrei


More information about the Digitalmars-d-bugs mailing list