Features/PyPyStack

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(initial page creation)
 
(Current status: pypy is is Fedora; add notes on areas of uncertainty)
Line 18: Line 18:
 
== Current status ==
 
== Current status ==
 
* Targeted release: [[Releases/{{FedoraVersion||next}} | {{FedoraVersion|long|next}} ]]  
 
* Targeted release: [[Releases/{{FedoraVersion||next}} | {{FedoraVersion|long|next}} ]]  
* Last updated: 2010-05-28
+
* Last updated: 2011-01-13
* Percentage of completion: 10%
+
* Percentage of completion: 30%
  
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
  
pypy packaged and [https://bugzilla.redhat.com/show_bug.cgi?id=588941 awaiting review]
+
pypy-1.4.1 is packaged within Fedora (see the [https://bugzilla.redhat.com/show_bug.cgi?id=588941 package review])
 +
 
 +
Areas of uncertainty:
 +
* it appears that (as of 1.4.1) .c extensions (using the CPython API) currently can only be built within the PyPy source tree; they can't yet be built out-of-tree.  (I believe that Alex Gaynor is working on this upstream)
 +
* 1.4.1 ships with a bytecode format similar to (but slightly different from) CPython 2.5.1.  It's not yet clear to me what the anticipated rate of change to the bytecode format is.  If we build out a collection of pure-python extensions in RPM form (e.g. a pypy-django.rpm), with .pyc files, we don't want to be constantly having to rebuild them all as the precise bytecode format changes (even if we e.g. ported [http://www.python.org/dev/peps/pep-3147/ PEP 3147], we still ought to rebuild the RPMs)
  
 
== Detailed Description ==
 
== Detailed Description ==

Revision as of 20:04, 13 January 2011


Contents

PyPy Stack

Summary

Fedora 21 has an alternate Python 2 runtime and add-on module stack built using PyPy, an alternate implementation of the Python 2 language, featuring Just-in-Time compilation.

Owner

  • Email: <dmalcolm@redhat.com>

Current status

  • Targeted release: Fedora 21
  • Last updated: 2011-01-13
  • Percentage of completion: 30%


pypy-1.4.1 is packaged within Fedora (see the package review)

Areas of uncertainty:

  • it appears that (as of 1.4.1) .c extensions (using the CPython API) currently can only be built within the PyPy source tree; they can't yet be built out-of-tree. (I believe that Alex Gaynor is working on this upstream)
  • 1.4.1 ships with a bytecode format similar to (but slightly different from) CPython 2.5.1. It's not yet clear to me what the anticipated rate of change to the bytecode format is. If we build out a collection of pure-python extensions in RPM form (e.g. a pypy-django.rpm), with .pyc files, we don't want to be constantly having to rebuild them all as the precise bytecode format changes (even if we e.g. ported PEP 3147, we still ought to rebuild the RPMs)

Detailed Description

PyPy is a python interpreter written in a subset of python. The interpreter can have better memory use than CPython and speed is closing in on Cpython. The JIT'd version is faster than CPython in many benchmarks.

It is growing the ability to load CPython extension modules.

This feature is exploring the idea of shipping PyPy, and the scope is not yet clear, be it:

  1. just the core interpreter, or
  2. sharing pure-Python add-on modules with the system Python (but with split bytecode files), or
  3. a full, independent Python stack, but with just pure-Python add-on modules, or
  4. a full, independent Python stack, with both pure-Python and machine-code extension modules

Benefit to Fedora

Scope

How To Test

User Experience

Dependencies

Contingency Plan

Documentation

Release Notes

Comments and Discussion