[pypy-commit] extradoc extradoc: (arigo, fijal) za sprint report
fijal
noreply at buildbot.pypy.org
Tue Oct 23 12:17:11 CEST 2012
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: extradoc
Changeset: r4893:6cc82be4f16e
Date: 2012-10-23 12:14 +0200
http://bitbucket.org/pypy/extradoc/changeset/6cc82be4f16e/
Log: (arigo, fijal) za sprint report
diff --git a/blog/draft/za-sprint-report.rst b/blog/draft/za-sprint-report.rst
new file mode 100644
--- /dev/null
+++ b/blog/draft/za-sprint-report.rst
@@ -0,0 +1,70 @@
+Hello.
+
+We're about to finish a PyPy sprint in Cape Town, South Africa that was
+one of the smallest done so far, only having Armin Rigo and Maciej Fijalkowski
+with Alex Gaynor joining briefly at the beginning, however also one of the
+longest, lasting almost 3 weeks. The sprint theme seems to be predominantly
+"no new features" and "spring cleaning". We overall removed about 20k lines
+of code in the PyPy source tree. The breakdown of things done and worked on:
+
+* We killed `SomeObject` support in annotation and rtyper. This is a modest
+ code saving, however, it reduces the complexity of RPython and also,
+ hopefully, improves compile errors from RPython. We're far from done
+ on the path to have comprehensible compile-time errors, but the first
+ step is always the hardest :)
+
+* We killed some magic in specifying the interface between builtin functions
+ and Python code. It used to be possible to write builtin functions like this::
+
+ def f(space, w_x='xyz'):
+
+ which will magically wrap `'xyz'` into a W_StringObject. Right now, instead,
+ you have to write::
+
+ @unwrap_spec(w_x=WrappedDefault('xyz'))
+ def f(space, w_x):
+
+ which is more verbose, but less magical.
+
+* We killed the `CExtModuleBuilder` which is the last remaining part of
+ infamous extension compiler that could in theory build C extensions
+ for CPython in RPython. This was never working very well and the main
+ part was killed long ago.
+
+* We killed various code duplications in the C backend.
+
+* We killed `microbench` and a bunch of other small-to-medium unused
+ directories.
+
+* We killed llgraph JIT backend and rewrote it from scratch. Now the llgraph
+ backend is not translatable, but this feature was rarely used and caused
+ a great deal of complexity.
+
+* We progressed on `continulet-jit-3` branch, up to the point of merging
+ it into `result-in-resops` branch, which also has seen a bit of progress.
+
+ Purpose of those two branches:
+
+ * `continulet-jit-3`: enable stackless to interact with the JIT by killing
+ global state while resuming from the JIT into the interpreter. This has
+ multiple benefits. For example it's one of the stones on the path to
+ enable STM for PyPy. It also opens new possibilities for other optimizations
+ including Python-Python calls and generators.
+
+ * `result-in-resops`: the main goal is to speed up the tracing time of PyPy.
+ We found out the majority of time is spent in the optimizer chain,
+ which faces an almost complete rewrite. It also simplifies the storage
+ of the operations as well as the number of implicit invariants that have
+ to be kept in mind while developing.
+
+* We finished and merged the excellent work by Ronan Lamy which makes the
+ flow object space (used for abstract interpretation during RPython
+ compilation) independent from the Python interpreter. This means
+ we've achieved an important milestone on the path of separating the RPython
+ translation toolchain from the PyPy Python interpreter.
+
+Cheers,
+fijal & armin
+
+
+
More information about the pypy-commit
mailing list