> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf > Of Thomas Heller > Sent: Thursday, May 03, 2007 17:04 > To: python-dev@python.org > Subject: Re: [Python-Dev] x64 and the testsuite > > Kristján Valur Jónsson schrieb: > > Hello again. > > A lot of overflow tests fail in the testsuite, by expecting overflow > using sys.maxint. > > for example this line, 196, in test_index.py: > self.assertEqual(x[self.neg:self.pos], (-1, maxint)) > > On my (virtual) win64-machine, which has less than 1GB, quite some > tests fail with MemoryError. > The tests pass on 64-bit linux machines, though. I haven't got memory error yet. Many tests allocate some 4GB, and the OS happily enters paging mode. They then succeed eventually. As for linux, many of the range overflow tests rely on sys.maxint. Presumably, this is 1<<63 on those machines?
If that is the case, I have two suggestions: a) Propagate the Windows idiom of sizeof(size_t) != sizeof(long) by keeping some sys.maxsize for list length, indices, etc. b) Elevate int to 64 bits on windows too! B is probably a huge change. Not only change PyIntObject but probably create some Py_int and so on. Ok, b) is not a real suggestion, then. > > than the "64 bit" in sys.version test? Should we have something like > sys.bits? > > You can use 'struct.calcsize("P")' to find out the pointer size. Hm, I could do that I suppose. maxsize = (1L<<(struct.calcsize("P")*8-1))-1 minsize = maxsize-1 And use those in the testsuite... K _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com