Dag Sverre Seljebotn wrote:
> Robert Bradshaw wrote:
>> Let X <= Y. If you run Cython with Python X, then it should compile  
>> against and run under Python Y. However, if you run Cython with  
>> Python Y, it may not compile against or run under Python X (depending  
>> on if you have used features introduced after X). Without backporting  
>> every new feature back to 2.3, this is the best we can hope to do.
> 
> I don't follow the logic here.
> 
> Please bear with me, this is important: One consequence is that there is 
> currently no way to get access to Py3-only builtins from pyx files 
> without using getattr (like "memoryview", unless it was added to 
> Python2.6 last minute, I didn't fetch the release yet. But even if it 
> was, I don't think there's any rule that all new Python 3.x builtins 
> will be backported to 2.x?).
> 
> In my mind there's three different Python versions involved:
> 
> - A: The version of Python the user targets in the pyx file (when it 
> comes to library and builtins; keeping the language part out of this).
> - B: The version of Python that imports the compiled module. The user 
> just has to make sure that this matches A in a reasonable fashion (the 
> rules are non-trivial and not a simple >= or <=, as Py3 removes 
> builtins, but Python lays these down for us).
> - C: The version that runs Cython.
> 
> This discussion was about A and B -- that Cython won't allow users to 
> code for Py2.4 and run under Py2.3.
> 
> You seem to be talking about C, which is something different. Cython 
> just transforms code and could run on any Turing-machine, there's no 
> natural reason it has to be connected with A or B.
> 
> We do currently require C >= B (which means that any Py3-only builtins 
> are plain unavailable).
> 
> In my opinion, ideally C should be orthogonal to A and B because that 
> seems to be less complicated from a release and bugfinding perspective 
> (one less version to worry about in the mix) and it would fix the issue 
> with accessing Py3-builtins for free, but I don't care very much.

To be more concrete, the problems you mention could be fixed with a 
simple compiler flag (or directive) to Cython: --target-platform=3.0 or 
similar, to control the builtins. But, "there's no lack of good ideas".

-- 
Dag Sverre
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to