Stefan Behnel wrote: > Michael Foord, 05.11.2009 11:18: > >> Stefan Behnel wrote: >> >>> We certainly aim for Python compatibility. That's a proclaimed 1.0 goal. >>> >> Right, but I think the main point is that Cython is not an >> implementation of Python. It uses Python syntax, calling into the Python >> runtime for many of its features >> > > It is a Python implementation in the sense that it implements syntax and > semantics of the Python language, be it through generated C code or by > calling into the CPython runtime. Implementing Python by calling into Python does not seem to really be a 'new implementation'... In that sense Cython is a wrapper not an implementation. > You could theoretically drop the entire > interpreter from CPython, and Cython would still work with the remaining > parts - not that it would be worth the effort on either side... > > > >> and *extending* Python syntax for compilation to C. >> > > Programmers can decide themselves if they want to statically type > variables, and they can do so without breaking with Python syntax. It is > certainly not required to use non-Python syntax to compile Python code, not > even if you want to get a fast binary module as a result. > > But you extend the language. Coders can write Python or 'not-Python' (or perhaps 'Python plus'). Where you extend the language you are no longer implementing Python but a language oriented tool with Python inspired syntax intended for use with Python. > >> Obviously a grey area - but if you take Cython code and try to run it on >> ClassicPython then you are likely to have syntax errors. The same is not >> true of the other full implementations (although where they use native >> platform features you may not have the same libraries available - but >> the language is unchanged). >> > > To me, the term "Python implementation" just means something that > implements the Python language. Which Cython doesn't - it can parse Python and it calls into Python. It doesn't implement runtime features (from the sounds of it). > That shouldn't prevent it from providing > additional features. Heh. Imagine if Microsoft had taken IronPython and added new syntax, that wasn't valid Python, and still tried to claim that IronPython was an implementation of Python. Few people would agree... > Jython can interface with Java code, IronPython can > interface with .NET code, Cython can interface with C code. Not sure what > PyPy allows in addition to being a Python implementation, but there surely > are language features also in PyPy that no other Python implementation > provides. > No. All of these implementation provide their integration through existing language features of Python, not by adding new *language* level features. All the best, Michael > Stefan > > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk > -- http://www.ironpythoninaction.com/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4