|
Size: 1030
Comment:
|
Size: 2198
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. | Here are some topics that fit into the NeedForSpeed theme. You can add additional topics below. |
| Line 3: | Line 3: |
| * Improving the decimal module by implementing portions in C | Please discuss the specific goals and possible approaches to these problems! |
| 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/] * [http://www.python.org/dev/peps/pep-0267/] * [http://www.python.org/dev/peps/pep-0280/] |
| Line 9: | Line 12: |
| * Implement data-structure-specific algorithms, which rely heavily on certain data structures, as RPython | * 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() |
| Line 11: | Line 29: |
| * Adding an iterator interface (similar to re.finditer) to the struct module | = Pure Python Projects = * Improve language shootout submissions http://dada.perl.it/shootout/python.html * Extend webbrowser.py to provide more control * Improve the API for timeit.py * Build extensions to the time module to enhance timezone support * Improve PythonPerformanceTips |
| Line 13: | Line 37: |
| * 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 43: |
| * 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 * Virtualised longs (for long longs) * Virtualised slots (Ability to cache __getattribute__() values) |
| Line 17: | Line 56: |
| * Create a string subtype that provides lazy slicing without copying | = PyPy = * JIT compiler * LLVM backend * RPython extension modules for CPython |
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 Projects
- Improve language shootout submissions
- Extend webbrowser.py to provide more control
- Improve the API for timeit.py
- Build extensions to the time module to enhance timezone support
Improve PythonPerformanceTips
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)
PyPy
- JIT compiler
- LLVM backend
- RPython extension modules for CPython
