Merged revisions 61404-61407 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r61404 | raymond.hettinger | 2008-03-15 21:02:04 +0100 (Sat, 15 Mar 2008) | 17 lines

  Removed Exact/Inexact after discussion with Yasskin.

  Unlike Scheme where exactness is implemented as taints, the Python
  implementation associated exactness with data types.  This created
  inheritance issues (making an exact subclass of floats would result
  in the subclass having both an explicit Exact registration and an
  inherited Inexact registration).  This was a problem for the
  decimal module which was designed to span both exact and inexact
  arithmetic.  There was also a question of use cases and no examples
  were found where ABCs for exactness could be used to improve code.
  One other issue was having separate tags for both the affirmative
  and negative cases.  This is at odds with the approach taken
  elsewhere in the Python (i.e. we don't have an ABC both Hashable
  and Unhashable).
........
  r61405 | raymond.hettinger | 2008-03-15 21:37:50 +0100 (Sat, 15 Mar 2008) | 1 line

  Zap one more use of Exact/Inexact.
........
  r61406 | neal.norwitz | 2008-03-15 23:03:18 +0100 (Sat, 15 Mar 2008) | 9 lines

  Add a warning for code like:
    assert (0, 'message')

  An empty tuple does not create a warning.  While questionable usage:
    assert (), 'message'

  should not display a warning.  Tested manually.
  The warning message could be improved.  Feel free to update it.
........
  r61407 | neal.norwitz | 2008-03-15 23:36:01 +0100 (Sat, 15 Mar 2008) | 1 line

  Handle memory allocation failure.  Found by Adam Olsen
........
diff --git a/Python/symtable.c b/Python/symtable.c
index 84d0067..b896c52 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -33,8 +33,9 @@
 	k = PyLong_FromVoidPtr(key);
 	if (k == NULL)
 		goto fail;
-	ste = (PySTEntryObject *)PyObject_New(PySTEntryObject,
-					      &PySTEntry_Type);
+	ste = PyObject_New(PySTEntryObject, &PySTEntry_Type);
+	if (ste == NULL)
+		goto fail;
 	ste->ste_table = st;
 	ste->ste_id = k;
 	ste->ste_tmpname = 0;