digitalmars.D.bugs - [Issue 4470] New: Problems with std.bigint mod and divide
- d-bugmail puremagic.com (32/32) Jul 16 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4470
- d-bugmail puremagic.com (23/23) Jul 16 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4470
- d-bugmail puremagic.com (23/23) Jul 16 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4470
- d-bugmail puremagic.com (26/26) Jul 16 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4470
- d-bugmail puremagic.com (10/10) Jul 16 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4470
- d-bugmail puremagic.com (9/9) Sep 20 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4470
http://d.puremagic.com/issues/show_bug.cgi?id=4470 Summary: Problems with std.bigint mod and divide Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: yebblies gmail.com With the version of std.bigint packaged with dmd2.047 (on winxp / x86) 1. You get 'object.Error: Win32 Exception' when attempting any BigInt % BigInt(1) or BigInt % 1. Test case: import std.bigint; void main() { auto r1 = BigInt(6) % 1; auto r2 = BigInt(6) % BigInt(1); } 2. BigInt % BigInt(0) seems to go into an infinite loop import std.bigint; void main() { auto r = BigInt(6) % BigInt(0); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 16 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4470 The following tests should succeed when this issue has been fixed: unittest { try { scope(success) assert(0); auto r1 = BigInt(6) % BigInt(0); } catch {} try { scope(success) assert(0); auto r1 = BigInt(6) % 0; } catch {} assert(BigInt(6) % BigInt(1) == 1); assert(BigInt(6) % 1 == 1); assert(BigInt(-6) % BigInt(-1) == -1); assert(BigInt(-6) % -1 == -1); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 16 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4470 My bad! That should be: unittest { try { scope(success) assert(0); auto r1 = BigInt(6) % BigInt(0); } catch {} try { scope(success) assert(0); auto r1 = BigInt(6) % 0; } catch {} assert(BigInt(6) % BigInt(1) == 0); assert(BigInt(6) % 1 == 0); assert(BigInt(-6) % BigInt(-1) == 0); assert(BigInt(-6) % -1 == 0); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 16 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4470 This seems to crash with every power of two, int or BigInt. import std.bigint; void main() { foreach(a; 0..1000) { foreach(b; 0..1000) { try { scope(failure) writeln(a, " % ", b, " failed"); auto x = BigInt(a) % b; } catch {} try { scope(failure) writeln(a, " % BigInt(", b, ") failed"); auto x = BigInt(a) % BigInt(b); } catch {} } } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 16 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4470 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug yahoo.com.au Fixed svn 1764. The 'power of 2' bug was already fixed in svn 1673. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 16 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4470 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 20 2010