``pypy-stm`` is a variant of the regular PyPy interpreter. With caveats_
listed below, it should be in theory within 20%-50% slower than a
-regular PyPy, comparing the JIT version in both cases. It is called
+regular PyPy, comparing the JIT version in both cases (but see below!).
STM for Software Transactional Memory, which is the internal technique
used (see `Reference to implementation details`_).
* So far, small examples work fine, but there are still a few bugs.
We're busy fixing them as we find them; feel free to `report bugs`_.
+* It runs with an overhead as low as 20% on examples like "richards".
+ There are also other examples with higher overheads --currently up to
+ 2x for "translate.py"-- which we are still trying to understand.
+ One suspect is our partial GC implementation, see below.
* Currently limited to 1.5 GB of RAM (this is just a parameter in
`core.h`__). Memory overflows are not correctly handled; they cause
* The GC is new; although clearly inspired by PyPy's regular GC, it
misses a number of optimizations for now. Programs allocating large
- numbers of small objects that don't immediately die, as well as
- programs that modify large lists or dicts, suffer from these missing
+ numbers of small objects that don't immediately die (surely a common
+ situation) suffer from these missing optimizations.
* The GC has no support for destructors: the ``__del__`` method is never
called (including on file objects, which won't be closed for you).