Size: 1030
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: |
* Improving the decimal module by implementing portions in C | You can add additional topics below. Please discuss the specific goals and possible approaches to these tasks! |
Line 5: | Line 5: |
* Investigate whether RPython offers sufficient speedup over the regular CPython interpreter to replace tailored C and C++ code in MMP gaming applications | |
Line 7: | Line 6: |
* Implement an ordered dictionary in both C and Python | = 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] |
Line 9: | Line 12: |
* Implement data-structure-specific algorithms, which rely heavily on certain data structures, as RPython | * 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() |
Line 11: | Line 29: |
* Adding an iterator interface (similar to re.finditer) to the struct module | = 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 |
Line 13: | Line 34: |
* Further refine the PyPy LLVM back end to improve general execution speeds | = Twisted = * Speed improvements to select and poll reactors * Reactor based on /dev/epoll * Better integration with psyco * Improvements against twisted benchmark |
Line 15: | Line 40: |
* Offer the PyPy team a sprint venue to continue their development work on Python implementations written in Python | = 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) |
Line 17: | Line 53: |
* Create a string subtype that provides lazy slicing without copying | = PyPy = * JIT compiler * LLVM backend * RPython extension modules for CPython = 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