Author: Matti Picus <matti.pi...@gmail.com> Branch: Changeset: r95450:00010b268b1f Date: 2018-12-11 14:57 +0200 http://bitbucket.org/pypy/pypy/changeset/00010b268b1f/
Log: add more ideas, cleanup duplicate TOC references to architecture diff --git a/pypy/doc/architecture.rst b/pypy/doc/architecture.rst --- a/pypy/doc/architecture.rst +++ b/pypy/doc/architecture.rst @@ -4,7 +4,7 @@ .. contents:: This document gives an overview of the goals and architecture of PyPy. If you're -interested in :ref:`using PyPy <using-pypy>` or :ref:`hacking on it <developing-pypy>`, +interested in :ref:`using PyPy <using-pypy>` or hacking on it, have a look at our :ref:`getting started <getting-started-index>` section. diff --git a/pypy/doc/index.rst b/pypy/doc/index.rst --- a/pypy/doc/index.rst +++ b/pypy/doc/index.rst @@ -29,6 +29,7 @@ :maxdepth: 1 introduction + architecture install build windows @@ -59,7 +60,6 @@ :maxdepth: 2 contributing - architecture configuration project-ideas project-documentation diff --git a/pypy/doc/project-documentation.rst b/pypy/doc/project-documentation.rst --- a/pypy/doc/project-documentation.rst +++ b/pypy/doc/project-documentation.rst @@ -28,7 +28,6 @@ .. toctree:: :hidden: - architecture coding-guide sprint-reports extradoc 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 @@ -111,9 +111,12 @@ -------------- Our cpyext C-API compatiblity layer can now run upstream NumPy unmodified. -Release PyPy2.7-v5.4 still fails about 60 of the ~6000 test in the NumPy -test suite. We could use help analyzing the failures and fixing them either -as patches to upstream NumPy, or as fixes to PyPy. +Release PyPy2.7-v6.0 still fails about 10 of the ~6000 test in the NumPy +test suite. We need to improve our ctypes structure -> memoryview conversions_, +and to refactor the way `NumPy adds docstrings`_. + +.. _conversions: https://bitbucket.org/pypy/pypy/issues/2930 +.. _`NumPy adds docstrings`: https://github.com/numpy/numpy/issues/10167 We also are looking for help in how to hijack NumPy dtype conversion and ufunc calls to allow the JIT to make them fast, using our internal _numpypy @@ -165,8 +168,33 @@ Or maybe not. We can also play around with the idea of using a single representation: as a byte string in utf-8. (This idea needs some extra logic -for efficient indexing, like a cache.) +for efficient indexing, like a cache.) Work has begun on the ``unicode-utf`` +and ``unicode-utf8-py3`` branches. More is needed, for instance there are +SIMD optimizations that are not yet used. +Convert RPython to Python3 +-------------------------- + +The world is moving on, we should too. + +Improve performance +------------------- + +* Make uninlined Python-level calls faster +* Switch to a `sea-of-nodes`_ IR, or a `Lua-Jit`_-like IR which iterates on + on the sea-of-nodes approach +* Use real register-allocation +* Improve instruction selection / scheduling +* Create a hybrid tracing/method JIT + +.. _`sea-of-nodes`: https://darksi.de/d.sea-of-nodes/ +.. _`Lua-JIT`: http://wiki.luajit.org/SSA-IR-2.0 + +Improve warmup +-------------- +* Interpreter speed-ups +* Optimize while tracing +* Cache information between runs Translation Toolchain --------------------- @@ -234,6 +262,27 @@ .. _runner: http://speed.pypy.org .. _`CPython site`: https://speed.python.org/ + +Interfacing with C +------------------ + +While we could make ``cpyext`` faster_, we would also like to explore other +ideas. It seems cffi is only appropriate for small to medium-sized extensions, +and it is hard to imagine NumPy abandoning the C-API. Here are a few ideas: +* Extend Cython to have a backend that can be understood by the JIT +* Collaborate with C-extension authors to ensure full PyPy support (see below) +* Put PyPy compatible packages on PyPI and in conda + + +.. _faster: https://morepypy.blogspot.com/2018/09#next-steps + +Support more platforms +---------------------- + +We have a plan for a `Windows 64`_ port. + +.. _`Windows 64`: windows.html#what-is-missing-for-a-full-64-bit-translation + ====================================== Make more python modules pypy-friendly ====================================== _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit