summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Bradshaw <robertwb@gmail.com>2013-08-02 23:30:02 -0700
committerRobert Bradshaw <robertwb@gmail.com>2013-08-02 23:30:02 -0700
commit333e4fc4a594c9fa285075a668c04af086da9333 (patch)
treec637256707bceba1b80b7468f1d33fdd26fee534
parent4032433cec52533533f1b2c4964fb834f069c590 (diff)
downloadcython-333e4fc4a594c9fa285075a668c04af086da9333.tar.gz
Added limitations from wiki.
--HG-- extra : transplant_source : %AE%AE%EB%26%11d%C3%C4%BD/e%F6%08%08%40z%DD%C4%D1%E0
-rw-r--r--docs/src/userguide/limitations.rst56
1 files changed, 56 insertions, 0 deletions
diff --git a/docs/src/userguide/limitations.rst b/docs/src/userguide/limitations.rst
index e95968a68..d3ad7b407 100644
--- a/docs/src/userguide/limitations.rst
+++ b/docs/src/userguide/limitations.rst
@@ -14,3 +14,59 @@ future version 1.0 of Cython is planned to provide full Python
language compatibility.
.. _`list of remaining compatibility issues`: http://trac.cython.org/cython_trac/query?status=assigned&status=new&status=reopened&component=Python+Semantics&component=Python3+Semantics&order=priority&col=id&col=summary&col=component&col=status&col=type&col=priority&col=milestone
+
+Below is a list of differences that we will probably not be addressing.
+Most of these things that fall more into the implementation details rather
+than semantics, and we may decide not to fix (or require a --pedantic flag to get).
+
+
+==========
+Nested tuple argument unpacking.
+==========
+
+::
+
+ def f((a,b), c):
+ pass
+
+This was removed in Python 3.
+
+
+==========
+Inspect support
+==========
+
+While it is quite possible to emulate the interface of functions in
+Cython's own function type, and recent Cython releases have seen several
+improvements here, the "inspect" module does not consider a Cython
+implemented function a "function", because it tests the object type
+explicitly instead of comparing an abstract interface or an abstract
+base class. This has a negative impact on code that uses inspect to
+inspect function objects, but would require a change to Python itself.
+
+
+==========
+Stack frames
+==========
+
+Currently we generate fake tracebacks as part of exception propagation,
+but don't fill in locals and can't fill in co_code.
+To be fully compatible, we would have to generate these stack frame objects at
+function call time (with a potential performance penalty). We may have an
+option to enable this for debugging.
+
+==========
+Identity vs. equality for inferred literals.
+==========
+
+::
+ a = 1.0 # a inferred to be double
+ b = c = None # a inferred to be type object
+ if some_runtime_expression:
+ b = a
+ c = a
+ print b is c # py float created twice
+
+
+
+