Author: Armin Rigo <[email protected]> Branch: Changeset: r57449:18611e038702 Date: 2012-09-21 10:40 +0200 http://bitbucket.org/pypy/pypy/changeset/18611e038702/
Log: Update with ideas posted today to #pypy. diff --git a/pypy/doc/project-ideas.rst b/pypy/doc/project-ideas.rst --- a/pypy/doc/project-ideas.rst +++ b/pypy/doc/project-ideas.rst @@ -21,7 +21,7 @@ ------------------------- PyPy's implementation of the Python ``long`` type is slower than CPython's. -Find out why and optimize them. +Find out why and optimize them. **UPDATE:** this was done (thanks stian). Make bytearray type fast ------------------------ @@ -103,13 +103,32 @@ * A concurrent garbage collector (a lot of work) -STM, a.k.a. "remove the GIL" ----------------------------- +STM (Software Transactional Memory) +----------------------------------- -Removing the GIL --- or more precisely, a GIL-less thread-less solution --- -is `now work in progress.`__ Contributions welcome. +This is work in progress. Besides the main development path, whose goal is +to make a (relatively fast) version of pypy which includes STM, there are +independent topics that can already be experimented with on the existing, +JIT-less pypy-stm version: + +* What kind of conflicts do we get in real use cases? And, sometimes, + which data structures would be more appropriate? For example, a dict + implemented as a hash table will suffer "stm collisions" in all threads + whenever one thread writes anything to it; but there could be other + implementations. -.. __: http://pypy.org/tmdonate.html +* More generally, there is the idea that we would need some kind of + "debugger"-like tool to "debug" things that are not bugs, but stm + conflicts. How would this tool look like to the end Python + programmers? Like a profiler? Or like a debugger with breakpoints + on aborted transactions? + +* Find good ways to have libraries using internally threads and atomics, + but not exposing threads to the user. Right now there is a rough draft + in ``lib_pypy/transaction.py``, but much better is possible. For example + we could probably have an iterator-like concept that allows each loop + iteration to run in parallel. + Introduce new benchmarks ------------------------ _______________________________________________ pypy-commit mailing list [email protected] http://mail.python.org/mailman/listinfo/pypy-commit
