Python ints are a heck of a lot faster to work with than Python longs and have the additional benefit that psyco <http:// psyco.sourceforge.net> can optimize the hell out of int but can't do anything at all for long. This is important because psyco is currently in pretty wide-spread use amongst people who need to squeeze every bit of performance out of their Python programs, and often yields 4x or better performance improvement in real-world tests.
A more far reaching change would be to add a new PyInteger_From* API for code that doesn't care if long or int is returned, but I don't see much of a reason to go that far at this point since the rest of the standard library wouldn't benefit much. Unfortunately, this change to the struct module slightly alters the documented API for the following format codes: I, L, q, Q. Currently it is documented that those format codes will always return longs, regardless of their value. I've prototyped this change on the trunk (behind a currently undefined PY_USE_INT_WHEN_POSSIBLE macro). The standard library test suite passes with this enabled, but it would break any doctests in third party code that check the result of an unpack operation with one of those format codes. Given the interchangeability of int and long, I don't foresee any other complications with this change. Thoughts? -bob _______________________________________________ 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