[pypy-commit] pypy default: Update with ideas posted today to #pypy.
arigo
noreply at buildbot.pypy.org
Fri Sep 21 10:40:56 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
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
------------------------
More information about the pypy-commit
mailing list