cpython/Objects
Guido van Rossum a3af41d564 Changes to recursive-object comparisons, having to do with a test case
I found where rich comparison of unequal recursive objects gave
unintuituve results.  In a discussion with Tim, where we discovered
that our intuition on when a<=b should be true was failing, we decided
to outlaw ordering comparisons on recursive objects.  (Once we have
fixed our intuition and designed a matching algorithm that's practical
and reasonable to implement, we can allow such orderings again.)

- Refactored the recursive-object comparison framework; more is now
  done in the support routines so less needs to be done in the calling
  routines (even at the expense of slowing it down a bit -- this
  should normally never be invoked, it's mostly just there to avoid
  blowing up the interpreter).

- Changed the framework so that the comparison operator used is also
  stored.  (The dictionary now stores triples (v, w, op) instead of
  pairs (v, w).)

- Changed the nesting limit to a more reasonable small 20; this only
  slows down comparisons of very deeply nested objects (unlikely to
  occur in practice), while speeding up comparisons of recursive
  objects (previously, this would first waste time and space on 500
  nested comparisons before it would start detecting recursion).

- Changed rich comparisons for recursive objects to raise a ValueError
  exception when recursion is detected for ordering oprators (<, <=,
  >, >=).

Unrelated change:

- Moved PyObject_Unicode() to just under PyObject_Str(), where it
  belongs.  MAL's patch must've inserted in a random spot between two
  functions in the file -- between two helpers for rich comparison...
2001-01-18 22:07:06 +00:00
..
.cvsignore Ignore a bunch of generated files. 2000-05-02 18:34:30 +00:00
abstract.c Rich comparisons fall-out: 2001-01-17 15:29:42 +00:00
bufferobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
classobject.c Fix a leak in instance_coerce(). This was introduced by Neil's 2001-01-17 23:43:43 +00:00
cobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
complexobject.c Use rich comparisons to fulfill an old wish: complex numbers now raise 2001-01-18 01:12:39 +00:00
dictobject.c Rich comparisons: 2001-01-18 00:39:02 +00:00
fileobject.c Move distributed and duplicated config for stat() and fstat() into pyport.h. 2001-01-18 03:03:16 +00:00
floatobject.c Rich comparisons fall-out: 2001-01-17 15:33:42 +00:00
frameobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
funcobject.c Committing PEP 232, function attribute feature, approved by Guido. 2001-01-15 20:40:19 +00:00
intobject.c Rich comparisons fall-out: 2001-01-17 15:32:23 +00:00
listobject.c Convert to rich comparisons: 2001-01-17 22:11:59 +00:00
longobject.c Rich comparisons fall-out: 2001-01-17 15:33:18 +00:00
Makefile.in Update dependencies per /F. 2000-11-28 12:09:18 +00:00
methodobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
moduleobject.c Add garbage collection for module objects. Closes patch #102939 and 2001-01-02 15:58:27 +00:00
object.c Changes to recursive-object comparisons, having to do with a test case 2001-01-18 22:07:06 +00:00
rangeobject.c SF patch #103158 by Greg Ball: Don't do unsafe arithmetic in xrange 2001-01-15 18:58:56 +00:00
sliceobject.c Test for NULL returned from PyObject_NEW(). 2000-12-14 15:09:46 +00:00
stringobject.c Added checks to prevent PyUnicode_Count() from dumping core 2001-01-16 11:54:12 +00:00
tupleobject.c Same treatment as listobject.c: 2001-01-18 00:00:53 +00:00
typeobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
unicodectype.c unicode database compression, step 3: 2000-09-25 21:48:13 +00:00
unicodeobject.c This patch adds a new builtin unistr() which behaves like str() 2001-01-17 17:09:53 +00:00
unicodetype_db.h Added 38,642 missing characters to the Unicode database (first-last 2000-11-03 20:24:15 +00:00
xxobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00