|
Size: 1671
Comment:
|
Size: 2541
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| The following goals were included in the sprint announcement. Please use this area as a staging point to indicate interest in specific goals and discuss possible approaches, recruit support for half-baked ideas and so on. This is a '''''Wiki''''', people! Create new pages at will. | '''Sprint topics following the NeedForSpeed theme''' |
| Line 3: | Line 3: |
| CPython: * General interpreter speedups * Improve interaction with psyco * Implement portions of decimal module in C * Struct module improvements (e.g. struct.compile, struct.finditer) * Create a string variant that provides lazy slicing without copying * Allow selective removal of unused features (e.g. profiling support) |
You can add additional topics below. Please discuss the specific goals and possible approaches to these tasks! = CPython = * Implement PEPs for optimizing global and attribute lookups [http://www.python.org/dev/peps/pep-0266/ PEP 266], [http://www.python.org/dev/peps/pep-0267/ PEP 267], and [http://www.python.org/dev/peps/pep-0280/ PEP 280] * Can floating point ops be sped-up by avoiding flag/exception checks at every step? Can some floating point ops be in-lined in ceval.c? * Implement portions of the decimal module in C * Build-out struct module to support fast, high-volume binary conversions -- perhaps with regexp analogs such struct.compile() and struct.finditer() * Create a string subclass that provides lazy slicing without copying * Allow selective removal of unused features such as profiling support |
| Line 11: | Line 18: |
| * Buffer for use with network i/o * Better collections (ordered dictionary, linked list, red/black tree, etc.) * Create a 64 bit PyInt type |
* Buffer for use with network I/O * Build-out the collections module for optimized data structures: * ordered dictionary * alternate list implementation optimized for fast insertion and deletion * red/black tree * pivot tables * skip list * Create a 64 bit PyInt type (for 32 bit machines) * Optimize methods in stringobject.c * Add itertools.imerge() and itertools.izip_longest() |
| Line 15: | Line 29: |
| Twisted: | = Pure Python Projects = * Improve [http://dada.perl.it/shootout/python.html language shootout] submissions * Improve the API for timeit.py. Guido thinks that much of the intelligence in the command-line interface should be shifted to importable functions. * Update PythonSpeed/PerformanceTips = Twisted = |
| Line 21: | Line 40: |
| Psyco: | = Psyco = |
| Line 25: | Line 44: |
| * Speedup float arithmetic | * Speedup float arithmetic |
| Line 31: | Line 50: |
| * Virtualised longs (for long longs) * Virtualised slots (Ability to cache __getattribute__() values) |
* Virtualized longs (for long longs) * Virtualized slots (Ability to cache __getattribute__() values) |
| Line 34: | Line 53: |
| PyPy: | = PyPy = |
| Line 39: | Line 58: |
| Other: * Implement many improvements in the Python Package Index |
= Py3000 = * Make a wishlist for possible performance gains in Py3.0 |
Sprint topics following the NeedForSpeed theme
You can add additional topics below. Please discuss the specific goals and possible approaches to these tasks!
CPython
- Implement PEPs for optimizing global and attribute lookups
[http://www.python.org/dev/peps/pep-0266/ PEP 266], [http://www.python.org/dev/peps/pep-0267/ PEP 267], and [http://www.python.org/dev/peps/pep-0280/ PEP 280]
- Can floating point ops be sped-up by avoiding flag/exception checks at every step? Can some floating point ops be in-lined in ceval.c?
- Implement portions of the decimal module in C
- Build-out struct module to support fast, high-volume binary conversions -- perhaps with regexp analogs such struct.compile() and struct.finditer()
- Create a string subclass that provides lazy slicing without copying
- Allow selective removal of unused features such as profiling support
- Faster parsing of strings and bytes into int, long, etc.
- Buffer for use with network I/O
- Build-out the collections module for optimized data structures:
- ordered dictionary
- alternate list implementation optimized for fast insertion and deletion
- red/black tree
- pivot tables
- skip list
Create a 64 bit PyInt type (for 32 bit machines)
- Optimize methods in stringobject.c
- Add itertools.imerge() and itertools.izip_longest()
Pure Python Projects
Improve [http://dada.perl.it/shootout/python.html language shootout] submissions
- Improve the API for timeit.py. Guido thinks that much of the intelligence in the command-line interface should be shifted to importable functions.
Update PythonSpeed/PerformanceTips
Twisted
- Speed improvements to select and poll reactors
- Reactor based on /dev/epoll
- Better integration with psyco
- Improvements against twisted benchmark
Psyco
- Support for generator expressions
- Support for nested scopes
- Support for more dictionary operations
- Speedup float arithmetic
- Support for more built-ins (e.g. int(), long(), float(), etc.)
- Upgrade for python 2.5
- Better tools for profiling psyco-ness of application
- Investigate usefulness of IVM (with aim to producing a more streamlined dispatch loop)
- LLVM backend
- Virtualized longs (for long longs)
Virtualized slots (Ability to cache getattribute() values)
PyPy
- JIT compiler
- LLVM backend
- RPython extension modules for CPython
Py3000
- Make a wishlist for possible performance gains in Py3.0
