James Y Knight <[EMAIL PROTECTED]> wrote: > > > On Feb 14, 2005, at 10:41 AM, Tim Peters wrote: > > >> Wouldn't it be more elegant to make builtin_id() return an unsigned > >> long integer? > > > > I think so. This is the function ZODB 3.3 uses, BTW: > > > > def positive_id(obj): > > """Return id(obj) as a non-negative integer.""" > > [...] > > I think it'd be nice to change it, too. Twisted also uses a similar > function. > > However, last time this topic came up, this Tim Peters guy argued > against it. ;) > > Quoting > http://mail.python.org/pipermail/python-dev/2004-November/050049.html: > > > Python doesn't promise to return a postive integer for id(), although > > it may have been nicer if it did. It's dangerous to change that now, > > because some code does depend on the "32 bit-ness as a signed integer" > > accident of CPython's id() implementation on 32-bit machines. For > > example, code using struct.pack(), or code using one of ZODB's > > specialized int-key BTree types with id's as keys.
All Tim was saying is that you can't /change/ builtin_id() because of backwards compatibiliity with Zope and struct.pack(). You are free to create a positive_id() function, and request its inclusion into builtins (low probability; people don't like doing that). Heck, you are even free to drop it in your local site.py implementation. But changing the current function is probably a no-no. - Josiah _______________________________________________ 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