Author: Armin Rigo <[email protected]>
Branch: extradoc
Changeset: r5752:d5ae76521c99
Date: 2016-11-21 14:34 +0100
http://bitbucket.org/pypy/extradoc/changeset/d5ae76521c99/

Log:    Add another section, put in it a new item

diff --git a/planning/py3.5/cpython-crashers.rst 
b/planning/py3.5/cpython-crashers.rst
--- a/planning/py3.5/cpython-crashers.rst
+++ b/planning/py3.5/cpython-crashers.rst
@@ -65,8 +65,8 @@
     sys.settrace(None)
 
 
-Other bugs
-----------
+Non-segfaulting bugs
+--------------------
 
 * on modern Linux: if the first call in the process to
   socketpair() ends in a EINVAL, then cpython will (possibly wrongly)
@@ -83,12 +83,6 @@
 * re.sub(b'y', bytearray(b'a'), bytearray(b'xyz')) -> b'xaz'
   re.sub(b'y', bytearray(b'\\n'), bytearray(b'xyz')) -> internal TypeError
 
-* not a bug: argument clinic turns the "bool" specifier into
-  PyObject_IsTrue(), accepting any argument whatsoever.  This can easily
-  get very confusing for the user, e.g. after messing up the number of
-  arguments.  For example: os.symlink("/path1", "/path2", "/path3")
-  doesn't fail, it just considers the 3rd argument as some true value.
-
 * if you have a stack of generators where each is in 'yield from' from
   the next one, and you call '.next()' on the outermost, then it enters
   and leaves all intermediate frames.  This is costly but may be
@@ -116,11 +110,6 @@
   ``io.UnsupportedOperation.__new__(io.UnsupportedOperation)`` doesn't
   work, but that was not noticed because ``io.UnsupportedOperation()``
   mistakenly works.
- 
-* hash({}.values()) works (but hash({}.keys()) correctly gives
-  TypeError).  That's a bit confusing and, as far as I can tell, always
-  pointless.  Also, related: d.keys()==d.keys() but
-  d.values()!=d.values().
 
 * this program fails the check for no sys.exc_info(), even though at
   the point this assert runs (called from the <== line) we are not in
@@ -179,3 +168,25 @@
                      # which shows that this dict is kept alive by
                      # 'frame'; and we've seen that it is non-empty
                      # as long as we don't read frame.f_locals.
+
+* _collectionsmodule.c: deque_repr uses "[...]" as repr if recursion is
+  detected.  I'd suggest that "deque(...)" is clearer---it's not a list.
+
+
+Other issues of "dubious IMHO" status
+-------------------------------------
+
+* argument clinic turns the "bool" specifier into
+  PyObject_IsTrue(), accepting any argument whatsoever.  This can easily
+  get very confusing for the user, e.g. after messing up the number of
+  arguments.  For example: os.symlink("/path1", "/path2", "/path3")
+  doesn't fail, it just considers the 3rd argument as some true value.
+
+* hash({}.values()) works (but hash({}.keys()) correctly gives
+  TypeError).  That's a bit confusing and, as far as I can tell, always
+  pointless.  Also, related: d.keys()==d.keys() but
+  d.values()!=d.values().
+
+* if you write ``from .a import b`` inside the Python prompt, or in
+  a module not in any package, then you get a SystemError(!) with an
+  error message that is unlikely to help newcomers.
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to