1864
Comment:
|
2232
|
Deletions are marked like this. | Additions are marked like this. |
Line 6: | Line 6: |
'''CPython''' * Implement attribute lookup PEPs (and other intrepreter speedups) |
= CPython = * Implement PEPs for optimizing global and attribute lookups * [http://www.python.org/dev/peps/pep-0266/] * [http://www.python.org/dev/peps/pep-0267/] * [http://www.python.org/dev/peps/pep-0280/] |
Line 15: | Line 19: |
* More collections (ordered dictionary, red/black tree, pivot tables, skip lists, etc.) | * More collections * ordered dictionary * alternate list optimized for fast insertion and deletion * red/black tree * pivot tables * skip list |
Line 17: | Line 26: |
* Optimize str object methods * Improve timeit.py API |
* Optimize str object methods |
Line 21: | Line 29: |
'''Twisted''' | = Pure Python Modules = * Extend webbrowser.py to provide more control * Improve the API for timeit.py * Build extensions to the time module to enhance timezone support = Twisted = |
Line 27: | Line 40: |
'''Psyco''' | = Psyco = |
Line 31: | Line 44: |
* Speedup float arithmetic | * Speedup float arithmetic |
Here are some topics that fit into the NeedForSpeed theme. You can add additional topics below.
Please discuss the specific goals and possible approaches to these problems!
CPython
- Implement PEPs for optimizing global and attribute lookups
- Implement faster floating point ops
- 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)
- Faster parsing of strings and bytes into int, long, etc.
- Buffer for use with network i/o
- More collections
- ordered dictionary
- alternate list optimized for fast insertion and deletion
- red/black tree
- pivot tables
- skip list
Create a 64 bit PyInt type (for 32 bit machines)
- Optimize str object methods
- Add itertools.imerge() and itertools.izip_longest()
Pure Python Modules
- Extend webbrowser.py to provide more control
- Improve the API for timeit.py
- Build extensions to the time module to enhance timezone support
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
- Virtualised longs (for long longs)
Virtualised slots (Ability to cache getattribute() values)
- JIT compiler
- LLVM backend
- RPython extension modules for CPython
Other
Improve PythonPerformanceTips
- Improve code submissions to language shootout
- Implement improvements in the Python Package Index