[pypy-commit] pypy release-5.x: merge default into release

mattip pypy.commits at gmail.com
Mon Jun 6 03:38:05 EDT 2016


Author: Matti Picus <matti.picus at gmail.com>
Branch: release-5.x
Changeset: r84962:581a2c8a00c5
Date: 2016-06-06 10:35 +0300
http://bitbucket.org/pypy/pypy/changeset/581a2c8a00c5/

Log:	merge default into release

diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -43,17 +43,17 @@
   Samuele Pedroni
   Matti Picus
   Alex Gaynor
+  Philip Jenvey
   Brian Kearns
-  Philip Jenvey
+  Ronan Lamy
   Michael Hudson
-  Ronan Lamy
+  Manuel Jacob
   David Schneider
-  Manuel Jacob
   Holger Krekel
   Christian Tismer
   Hakan Ardo
+  Richard Plangger
   Benjamin Peterson
-  Richard Plangger
   Anders Chrigstrom
   Eric van Riet Paap
   Wim Lavrijsen
@@ -93,9 +93,9 @@
   stian
   Jan de Mooij
   Tyler Wade
+  Vincent Legoll
   Michael Foord
   Stephan Diehl
-  Vincent Legoll
   Stefan Schwarzer
   Valentino Volonghi
   Tomek Meka
@@ -104,17 +104,20 @@
   Bruno Gola
   David Malcolm
   Jean-Paul Calderone
+  Mark Young
   Timo Paulssen
   Squeaky
+  Devin Jeanpierre
   Marius Gedminas
   Alexandre Fayolle
   Simon Burton
+  Stefano Rivera
   Martin Matusiak
   Konstantin Lopuhin
-  Stefano Rivera
   Wenzhu Man
   John Witulski
   Laurence Tratt
+  Raffael Tfirst
   Ivan Sichmann Freitas
   Greg Price
   Dario Bertini
@@ -122,13 +125,13 @@
   Simon Cross
   Edd Barrett
   Andreas Stührk
+  Tobias Pape
   Jean-Philippe St. Pierre
   Guido van Rossum
   Pavel Vinogradov
   Spenser Bauman
   Jeremy Thurgood
   Paweł Piotr Przeradowski
-  Tobias Pape
   Paul deGrandis
   Ilya Osadchiy
   marky1991
@@ -140,7 +143,6 @@
   Georg Brandl
   Bert Freudenberg
   Stian Andreassen
-  Mark Young
   Wanja Saatkamp
   Gerald Klix
   Mike Blume
@@ -156,11 +158,13 @@
   Dusty Phillips
   Lukas Renggli
   Guenter Jantzen
+  William Leslie
   Ned Batchelder
   Tim Felgentreff
   Anton Gulenko
   Amit Regmi
   Ben Young
+  Sergey Matyunin
   Nicolas Chauvat
   Andrew Durdin
   Andrew Chambers
@@ -171,9 +175,9 @@
   Yichao Yu
   Rocco Moretti
   Gintautas Miliauskas
-  Devin Jeanpierre
   Michael Twomey
   Lucian Branescu Mihaila
+  anatoly techtonik
   Gabriel Lavoie
   Olivier Dormond
   Jared Grubb
@@ -183,8 +187,6 @@
   Brian Dorsey
   Victor Stinner
   Andrews Medina
-  anatoly techtonik
-  Sergey Matyunin
   Stuart Williams
   Jasper Schulz
   Christian Hudon
@@ -208,11 +210,11 @@
   Alex Perry
   Vaibhav Sood
   Alan McIntyre
-  William Leslie
   Alexander Sedov
   Attila Gobi
   Jasper.Schulz
   Christopher Pope
+  Florin Papa
   Christian Tismer 
   Marc Abramowitz
   Dan Stromberg
@@ -228,7 +230,6 @@
   Lukas Vacek
   Kunal Grover
   Andrew Dalke
-  Florin Papa
   Sylvain Thenault
   Jakub Stasiak
   Nathan Taylor
@@ -270,8 +271,9 @@
   Yury V. Zaytsev
   Anna Katrina Dominguez
   Bobby Impollonia
-  timo at eistee.fritz.box
+  Vasantha Ganesh K
   Andrew Thompson
+  florinpapa
   Yusei Tahara
   Aaron Tubbs
   Ben Darnell
@@ -295,9 +297,9 @@
   Akira Li
   Gustavo Niemeyer
   Stephan Busemann
-  florinpapa
   Rafał Gałczyński
   Matt Bogosian
+  timo
   Christian Muirhead
   Berker Peksag
   James Lan
diff --git a/lib_pypy/cffi.egg-info/PKG-INFO b/lib_pypy/cffi.egg-info/PKG-INFO
--- a/lib_pypy/cffi.egg-info/PKG-INFO
+++ b/lib_pypy/cffi.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: cffi
-Version: 1.6.0
+Version: 1.7.0
 Summary: Foreign Function Interface for Python calling C code.
 Home-page: http://cffi.readthedocs.org
 Author: Armin Rigo, Maciej Fijalkowski
diff --git a/lib_pypy/cffi/__init__.py b/lib_pypy/cffi/__init__.py
--- a/lib_pypy/cffi/__init__.py
+++ b/lib_pypy/cffi/__init__.py
@@ -4,8 +4,8 @@
 from .api import FFI, CDefError, FFIError
 from .ffiplatform import VerificationError, VerificationMissing
 
-__version__ = "1.6.0"
-__version_info__ = (1, 6, 0)
+__version__ = "1.7.0"
+__version_info__ = (1, 7, 0)
 
 # The verifier module file names are based on the CRC32 of a string that
 # contains the following version number.  It may be older than __version__
diff --git a/lib_pypy/cffi/_cffi_include.h b/lib_pypy/cffi/_cffi_include.h
--- a/lib_pypy/cffi/_cffi_include.h
+++ b/lib_pypy/cffi/_cffi_include.h
@@ -57,6 +57,12 @@
 # define _CFFI_UNUSED_FN  /* nothing */
 #endif
 
+#ifdef __cplusplus
+# ifndef _Bool
+#  define _Bool bool   /* semi-hackish: C++ has no _Bool; bool is builtin */
+# endif
+#endif
+
 /**********  CPython-specific section  **********/
 #ifndef PYPY_VERSION
 
diff --git a/lib_pypy/cffi/_embedding.h b/lib_pypy/cffi/_embedding.h
--- a/lib_pypy/cffi/_embedding.h
+++ b/lib_pypy/cffi/_embedding.h
@@ -233,7 +233,7 @@
         f = PySys_GetObject((char *)"stderr");
         if (f != NULL && f != Py_None) {
             PyFile_WriteString("\nFrom: " _CFFI_MODULE_NAME
-                               "\ncompiled with cffi version: 1.6.0"
+                               "\ncompiled with cffi version: 1.7.0"
                                "\n_cffi_backend module: ", f);
             modules = PyImport_GetModuleDict();
             mod = PyDict_GetItemString(modules, "_cffi_backend");
diff --git a/lib_pypy/cffi/backend_ctypes.py b/lib_pypy/cffi/backend_ctypes.py
--- a/lib_pypy/cffi/backend_ctypes.py
+++ b/lib_pypy/cffi/backend_ctypes.py
@@ -205,9 +205,7 @@
 
     def __nonzero__(self):
         return bool(self._address)
-    
-    def __bool__(self):
-        return bool(self._address)
+    __bool__ = __nonzero__
 
     @classmethod
     def _to_ctypes(cls, value):
@@ -465,6 +463,7 @@
             else:
                 def __nonzero__(self):
                     return self._value != 0
+            __bool__ = __nonzero__
 
             if kind == 'float':
                 @staticmethod
diff --git a/pypy/doc/contributor.rst b/pypy/doc/contributor.rst
--- a/pypy/doc/contributor.rst
+++ b/pypy/doc/contributor.rst
@@ -13,17 +13,17 @@
   Samuele Pedroni
   Matti Picus
   Alex Gaynor
+  Philip Jenvey
   Brian Kearns
-  Philip Jenvey
+  Ronan Lamy
   Michael Hudson
-  Ronan Lamy
+  Manuel Jacob
   David Schneider
-  Manuel Jacob
   Holger Krekel
   Christian Tismer
   Hakan Ardo
+  Richard Plangger
   Benjamin Peterson
-  Richard Plangger
   Anders Chrigstrom
   Eric van Riet Paap
   Wim Lavrijsen
@@ -63,9 +63,9 @@
   stian
   Jan de Mooij
   Tyler Wade
+  Vincent Legoll
   Michael Foord
   Stephan Diehl
-  Vincent Legoll
   Stefan Schwarzer
   Valentino Volonghi
   Tomek Meka
@@ -74,31 +74,34 @@
   Bruno Gola
   David Malcolm
   Jean-Paul Calderone
+  Mark Young
   Timo Paulssen
   Squeaky
+  Devin Jeanpierre
   Marius Gedminas
   Alexandre Fayolle
   Simon Burton
+  Stefano Rivera
   Martin Matusiak
   Konstantin Lopuhin
-  Stefano Rivera
   Wenzhu Man
   John Witulski
   Laurence Tratt
+  Raffael Tfirst
   Ivan Sichmann Freitas
   Greg Price
   Dario Bertini
   Mark Pearse
   Simon Cross
+  Edd Barrett
   Andreas Stührk
-  Edd Barrett
+  Tobias Pape
   Jean-Philippe St. Pierre
   Guido van Rossum
   Pavel Vinogradov
   Spenser Bauman
   Jeremy Thurgood
   Paweł Piotr Przeradowski
-  Tobias Pape
   Paul deGrandis
   Ilya Osadchiy
   marky1991
@@ -110,7 +113,6 @@
   Georg Brandl
   Bert Freudenberg
   Stian Andreassen
-  Mark Young
   Wanja Saatkamp
   Gerald Klix
   Mike Blume
@@ -126,11 +128,13 @@
   Dusty Phillips
   Lukas Renggli
   Guenter Jantzen
+  William Leslie
   Ned Batchelder
   Tim Felgentreff
   Anton Gulenko
   Amit Regmi
   Ben Young
+  Sergey Matyunin
   Nicolas Chauvat
   Andrew Durdin
   Andrew Chambers
@@ -141,9 +145,9 @@
   Yichao Yu
   Rocco Moretti
   Gintautas Miliauskas
-  Devin Jeanpierre
   Michael Twomey
   Lucian Branescu Mihaila
+  anatoly techtonik
   Gabriel Lavoie
   Olivier Dormond
   Jared Grubb
@@ -153,8 +157,6 @@
   Brian Dorsey
   Victor Stinner
   Andrews Medina
-  anatoly techtonik
-  Sergey Matyunin
   Stuart Williams
   Jasper Schulz
   Christian Hudon
@@ -178,11 +180,11 @@
   Alex Perry
   Vaibhav Sood
   Alan McIntyre
-  William Leslie
   Alexander Sedov
   Attila Gobi
   Jasper.Schulz
   Christopher Pope
+  Florin Papa
   Christian Tismer 
   Marc Abramowitz
   Dan Stromberg
@@ -198,7 +200,6 @@
   Lukas Vacek
   Kunal Grover
   Andrew Dalke
-  Florin Papa
   Sylvain Thenault
   Jakub Stasiak
   Nathan Taylor
@@ -240,8 +241,9 @@
   Yury V. Zaytsev
   Anna Katrina Dominguez
   Bobby Impollonia
-  timo at eistee.fritz.box
+  Vasantha Ganesh K
   Andrew Thompson
+  florinpapa
   Yusei Tahara
   Aaron Tubbs
   Ben Darnell
@@ -265,9 +267,9 @@
   Akira Li
   Gustavo Niemeyer
   Stephan Busemann
-  florinpapa
   Rafał Gałczyński
   Matt Bogosian
+  timo
   Christian Muirhead
   Berker Peksag
   James Lan
diff --git a/pypy/doc/index-of-release-notes.rst b/pypy/doc/index-of-release-notes.rst
--- a/pypy/doc/index-of-release-notes.rst
+++ b/pypy/doc/index-of-release-notes.rst
@@ -6,6 +6,7 @@
 
 .. toctree::
 
+   release-pypy2.7-v5.3.0.rst
    release-5.1.1.rst
    release-5.1.0.rst
    release-5.0.1.rst
diff --git a/pypy/doc/index-of-whatsnew.rst b/pypy/doc/index-of-whatsnew.rst
--- a/pypy/doc/index-of-whatsnew.rst
+++ b/pypy/doc/index-of-whatsnew.rst
@@ -7,6 +7,7 @@
 .. toctree::
 
    whatsnew-head.rst
+   whatsnew-pypy2-5.3.0.rst
    whatsnew-5.1.0.rst
    whatsnew-5.0.0.rst
    whatsnew-4.0.1.rst
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
@@ -53,15 +53,17 @@
 immediately, but only when (and if) ``myslice`` or ``mylist`` are mutated.
 
 
-Numpy improvements
-------------------
+NumPy rebooted
+--------------
 
-The numpy is rapidly progressing in pypy, so feel free to come to IRC and
-ask for proposed topic. A not necesarilly up-to-date `list of topics`_
-is also available.
+Our cpyext C-API compatiblity layer can now run upstream NumPy unmodified.
+Release PyPy2.7-v5.3 still fails about 200 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.
 
-.. _list of topics: https://bitbucket.org/pypy/extradoc/src/extradoc/planning/micronumpy.txt
-
+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
+module.
 
 Improving the jitviewer
 ------------------------
diff --git a/pypy/doc/release-pypy2.7-v5.3.0.rst b/pypy/doc/release-pypy2.7-v5.3.0.rst
--- a/pypy/doc/release-pypy2.7-v5.3.0.rst
+++ b/pypy/doc/release-pypy2.7-v5.3.0.rst
@@ -2,11 +2,12 @@
 PyPy2.7 v5.3
 ============
 
-We have released PyPy2.7 v5.3, about six weeks after PyPy 5.1. 
-This release includes further improvements for the CAPI compatibility layer
-which we call cpyext. In addtion to complete support for lxml, we now pass
-most (more than 90%) of the upstream numpy test suite, and much of SciPy is
-supported as well.
+We have released PyPy2.7 v5.3, about six weeks after PyPy 5.1 and a week after
+`PyPy3.3 v5.2 alpha 1`_, the first PyPy release targetting 3.3
+compatibility. This new PyPy2.7 release includes further improvements for the
+CAPI compatibility layer which we call cpyext. In addtion to complete support
+for lxml, we now pass most (more than 90%) of the upstream numpy test suite,
+and much of SciPy is supported as well.
 
 We also improved the speed of ... and ...
 
@@ -65,6 +66,7 @@
 
   * Merge a major expansion of the C-API support in cpyext, here are some of
     the highlights:
+
       - allow c-snippet tests to be run with -A so we can verify we are compatible
       - fix many edge cases exposed by fixing tests to run with -A
       - issequence() logic matches cpython
@@ -183,6 +185,7 @@
 
   * Compile c snippets with -Werror, and fix warnings it exposed
 
+.. _`PyPy3.3 v5.2 alpha 1`: http://morepypy.blogspot.com/2016/05/pypy33-v52-alpha-1-released.html
 .. _resolved: http://doc.pypy.org/en/latest/whatsnew-5.3.0.html
 .. _Numpy: https://bitbucket.org/pypy/numpy
 
diff --git a/pypy/doc/tool/makecontributor.py b/pypy/doc/tool/makecontributor.py
--- a/pypy/doc/tool/makecontributor.py
+++ b/pypy/doc/tool/makecontributor.py
@@ -73,6 +73,8 @@
     'Richard Lancaster':['richardlancaster'],
     'William Leslie':['William ML Leslie'],
     'Spenser Bauman':['Spenser Andrew Bauman'],
+    'Raffael Tfirst':['raffael.tfirst at gmail.com'],
+    'timo':['timo at eistee.fritz.box'],
     }
 
 alias_map = {}
diff --git a/pypy/doc/whatsnew-head.rst b/pypy/doc/whatsnew-head.rst
--- a/pypy/doc/whatsnew-head.rst
+++ b/pypy/doc/whatsnew-head.rst
@@ -1,145 +1,7 @@
 =========================
-What's new in PyPy 5.1+
+What's new in PyPy2.7 5.3+
 =========================
 
-.. this is a revision shortly after release-5.1
-.. startrev: aa60332382a1
+.. this is a revision shortly after release-pypy2.7-v5.3
+.. startrev: 873218a739f1
 
-.. branch: techtonik/introductionrst-simplify-explanation-abo-1460879168046
-
-.. branch: gcheader-decl
-
-Reduce the size of generated C sources.
-
-
-.. branch: remove-objspace-options
-
-Remove a number of options from the build process that were never tested and
-never set. Fix a performance bug in the method cache.
-
-.. branch: bitstring
-
-JIT: use bitstrings to compress the lists of read or written descrs
-that we attach to EffectInfo.  Fixes a problem we had in
-remove-objspace-options.
-
-.. branch: cpyext-for-merge
-
-Update cpyext C-API support After this branch, we are almost able to support 
-upstream numpy via cpyext, so we created (yet another) fork of numpy at 
-github.com/pypy/numpy with the needed changes. Among the significant changes 
-to cpyext:
-  - allow c-snippet tests to be run with -A so we can verify we are compatible
-  - fix many edge cases exposed by fixing tests to run with -A
-  - issequence() logic matches cpython
-  - make PyStringObject and PyUnicodeObject field names compatible with cpython
-  - add prelminary support for PyDateTime_*
-  - support PyComplexObject, PyFloatObject, PyDict_Merge, PyDictProxy,
-    PyMemoryView_*, _Py_HashDouble, PyFile_AsFile, PyFile_FromFile,
-  - PyAnySet_CheckExact, PyUnicode_Concat
-  - improve support for PyGILState_Ensure, PyGILState_Release, and thread
-    primitives, also find a case where CPython will allow thread creation
-    before PyEval_InitThreads is run, dissallow on PyPy 
-  - create a PyObject-specific list strategy
-  - rewrite slot assignment for typeobjects
-  - improve tracking of PyObject to rpython object mapping
-  - support tp_as_{number, sequence, mapping, buffer} slots
-
-(makes the pypy-c bigger; this was fixed subsequently by the
-share-cpyext-cpython-api branch)
-
-.. branch: share-mapdict-methods-2
-
-Reduce generated code for subclasses by using the same function objects in all
-generated subclasses.
-
-.. branch: share-cpyext-cpython-api
-
-.. branch: cpyext-auto-gil
-
-CPyExt tweak: instead of "GIL not held when a CPython C extension module
-calls PyXxx", we now silently acquire/release the GIL.  Helps with
-CPython C extension modules that call some PyXxx() functions without
-holding the GIL (arguably, they are theorically buggy).
-
-.. branch: cpyext-test-A
-
-Get the cpyext tests to pass with "-A" (i.e. when tested directly with
-CPython).
-
-.. branch: oefmt
-
-.. branch: cpyext-werror
-
-Compile c snippets with -Werror in cpyext
-
-.. branch: gc-del-3
-
-Add rgc.FinalizerQueue, documented in pypy/doc/discussion/finalizer-order.rst.
-It is a more flexible way to make RPython finalizers.
-
-.. branch: unpacking-cpython-shortcut
-
-.. branch: cleanups
-
-.. branch: cpyext-more-slots
-
-.. branch: use-gc-del-3
-
-Use the new rgc.FinalizerQueue mechanism to clean up the handling of
-``__del__`` methods.  Fixes notably issue #2287.  (All RPython
-subclasses of W_Root need to use FinalizerQueue now.)
-
-.. branch: ufunc-outer
-
-Implement ufunc.outer on numpypy
-
-.. branch: verbose-imports
-
-Support ``pypy -v``: verbose imports.  It does not log as much as
-cpython, but it should be enough to help when debugging package layout
-problems.
-
-.. branch: cpyext-macros-cast
-
-Fix some warnings when compiling CPython C extension modules
-
-.. branch: syntax_fix
-
-.. branch: remove-raisingops
-
-Remove most of the _ovf, _zer and _val operations from RPython.  Kills
-quite some code internally, and allows the JIT to do better
-optimizations: for example, app-level code like ``x / 2`` or ``x % 2``
-can now be turned into ``x >> 1`` or ``x & 1``, even if x is possibly
-negative.
-
-.. branch: cpyext-old-buffers
-
-Generalize cpyext old-style buffers to more than just str/buffer, add support for mmap
-
-.. branch: numpy-includes
-
-Move _numpypy headers into a directory so they are not picked up by upstream numpy, scipy
-This allows building upstream numpy and scipy in pypy via cpyext
-
-.. branch: traceviewer-common-merge-point-formats
-
-Teach RPython JIT's off-line traceviewer the most common ``debug_merge_point`` formats.
-
-.. branch: cpyext-pickle
-
-Enable pickling of W_PyCFunctionObject by monkeypatching pickle.Pickler.dispatch
-at cpyext import time
-
-.. branch: nonmovable-list
-
-Add a way to ask "give me a raw pointer to this list's
-items".  Only for resizable lists of primitives.  Turns the GcArray
-nonmovable, possibly making a copy of it first.
-
-.. branch: cpyext-ext
-
-Finish the work already partially merged in cpyext-for-merge. Adds support
-for ByteArrayObject using the nonmovable-list, which also enables
-buffer(bytearray(<some-list>)) 
diff --git a/pypy/doc/whatsnew-head.rst b/pypy/doc/whatsnew-pypy2-5.3.0.rst
copy from pypy/doc/whatsnew-head.rst
copy to pypy/doc/whatsnew-pypy2-5.3.0.rst
--- a/pypy/doc/whatsnew-head.rst
+++ b/pypy/doc/whatsnew-pypy2-5.3.0.rst
@@ -1,5 +1,5 @@
 =========================
-What's new in PyPy 5.1+
+What's new in PyPy2.7 5.3
 =========================
 
 .. this is a revision shortly after release-5.1
diff --git a/pypy/module/_cffi_backend/__init__.py b/pypy/module/_cffi_backend/__init__.py
--- a/pypy/module/_cffi_backend/__init__.py
+++ b/pypy/module/_cffi_backend/__init__.py
@@ -3,7 +3,7 @@
 from rpython.rlib import rdynload, clibffi, entrypoint
 from rpython.rtyper.lltypesystem import rffi
 
-VERSION = "1.6.0"
+VERSION = "1.7.0"
 
 FFI_DEFAULT_ABI = clibffi.FFI_DEFAULT_ABI
 try:
diff --git a/pypy/module/_cffi_backend/test/_backend_test_c.py b/pypy/module/_cffi_backend/test/_backend_test_c.py
--- a/pypy/module/_cffi_backend/test/_backend_test_c.py
+++ b/pypy/module/_cffi_backend/test/_backend_test_c.py
@@ -1,7 +1,7 @@
 # ____________________________________________________________
 
 import sys
-assert __version__ == "1.6.0", ("This test_c.py file is for testing a version"
+assert __version__ == "1.7.0", ("This test_c.py file is for testing a version"
                                 " of cffi that differs from the one that we"
                                 " get from 'import _cffi_backend'")
 if sys.version_info < (3,):
diff --git a/pypy/module/test_lib_pypy/cffi_tests/cffi0/backend_tests.py b/pypy/module/test_lib_pypy/cffi_tests/cffi0/backend_tests.py
--- a/pypy/module/test_lib_pypy/cffi_tests/cffi0/backend_tests.py
+++ b/pypy/module/test_lib_pypy/cffi_tests/cffi0/backend_tests.py
@@ -1359,8 +1359,8 @@
         ffi = FFI(backend=self.Backend())
         ffi.cdef("enum foo;")
         from cffi import __version_info__
-        if __version_info__ < (1, 7):
-            py.test.skip("re-enable me in version 1.7")
+        if __version_info__ < (1, 8):
+            py.test.skip("re-enable me in version 1.8")
         e = py.test.raises(CDefError, ffi.cast, "enum foo", -1)
         assert str(e.value) == (
             "'enum foo' has no values explicitly defined: refusing to guess "
diff --git a/pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py b/pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py
--- a/pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py
+++ b/pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py
@@ -1909,3 +1909,10 @@
     assert ffi.list_types() == (['CFFIb', 'CFFIbb', 'CFFIbbb'],
                                 ['CFFIa', 'CFFIcc', 'CFFIccc'],
                                 ['CFFIaa', 'CFFIaaa', 'CFFIg'])
+
+def test_bool_in_cpp():
+    # this works when compiled as C, but in cffi < 1.7 it fails as C++
+    ffi = FFI()
+    ffi.cdef("bool f(void);")
+    lib = verify(ffi, "test_bool_in_cpp", "char f(void) { return 2; }")
+    assert lib.f() == 1
diff --git a/pypy/tool/release/repackage.sh b/pypy/tool/release/repackage.sh
--- a/pypy/tool/release/repackage.sh
+++ b/pypy/tool/release/repackage.sh
@@ -1,7 +1,7 @@
 # Edit these appropriately before running this script
 maj=5
-min=1
-rev=2
+min=3
+rev=0
 branchname=release-$maj.x  # ==OR== release-$maj.$min.x
 tagname=release-$maj.$min.$rev  # ==OR== release-$maj.$min
 
@@ -10,6 +10,7 @@
 echo checking hg log -r $tagname
 hg log -r $tagname || exit 1
 
+rel=pypy2-v$maj.$min.$rev
 # This script will download latest builds from the buildmaster, rename the top
 # level directory, and repackage ready to be uploaded to bitbucket. It will also
 # download source, assuming a tag for the release already exists, and repackage them.
@@ -24,27 +25,27 @@
     if [ $plat = linux ]; then
         plat_final=linux32
     fi
-    mv pypy-c-jit-*-$plat pypy-$maj.$min.$rev-$plat_final
+    mv pypy-c-jit-*-$plat $rel-$plat_final
     echo packaging $plat_final
-    tar --owner=root --group=root --numeric-owner -cvjf pypy-$maj.$min.$rev-$plat_final.tar.bz2 pypy-$maj.$min.$rev-$plat_final
-    rm -rf pypy-$maj.$min.$rev-$plat_final
+    tar --owner=root --group=root --numeric-owner -cjf $rel-$plat_final.tar.bz2 $rel-$plat_final
+    rm -rf $rel-$plat_final
   done
 
 plat=win32
 wget http://buildbot.pypy.org/nightly/$branchname/pypy-c-jit-latest-$plat.zip
 unzip pypy-c-jit-latest-$plat.zip
-mv pypy-c-jit-*-$plat pypy-$maj.$min.$rev-$plat
-zip -r pypy-$maj.$min.$rev-$plat.zip pypy-$maj.$min.$rev-$plat
-rm -rf pypy-$maj.$min.$rev-$plat
+mv pypy-c-jit-*-$plat $rel-$plat
+zip -r $rel-$plat.zip $rel-$plat
+rm -rf $rel-$plat
 
 # Do this after creating a tag, note the untarred directory is pypy-pypy-<hash>
 # so make sure there is not another one
 wget https://bitbucket.org/pypy/pypy/get/$tagname.tar.bz2
 tar -xf $tagname.tar.bz2
-mv pypy-pypy-* pypy-$maj.$min.$rev-src
-tar --owner=root --group=root --numeric-owner -cvjf pypy-$maj.$min.$rev-src.tar.bz2 pypy-$maj.$min.$rev-src
-zip -r pypy-$maj.$min.$rev-src.zip pypy-$maj.$min.$rev-src
-rm -rf pypy-$maj.$min.$rev-src
+mv pypy-pypy-* $rel-src
+tar --owner=root --group=root --numeric-owner -cjf $rel-src.tar.bz2 $rel-src
+zip -r $rel-src.zip $rel-src
+rm -rf $rel-src
 
 # Print out the md5, sha1, sha256
 md5sum *.bz2 *.zip
diff --git a/rpython/jit/backend/arm/regalloc.py b/rpython/jit/backend/arm/regalloc.py
--- a/rpython/jit/backend/arm/regalloc.py
+++ b/rpython/jit/backend/arm/regalloc.py
@@ -398,8 +398,8 @@
             self.rm.force_spill_var(var)
 
     def before_call(self, save_all_regs=False):
-        self.rm.before_call(save_all_regs)
-        self.vfprm.before_call(save_all_regs)
+        self.rm.before_call(save_all_regs=save_all_regs)
+        self.vfprm.before_call(save_all_regs=save_all_regs)
 
     def _sync_var(self, v):
         if v.type == FLOAT:
diff --git a/rpython/rlib/rgc.py b/rpython/rlib/rgc.py
--- a/rpython/rlib/rgc.py
+++ b/rpython/rlib/rgc.py
@@ -1241,6 +1241,7 @@
         return hop.gendirectcall(ll_nonmovable_raw_ptr_for_resizable_list,
                                  v_list)
 
+ at jit.dont_look_inside
 def ll_nonmovable_raw_ptr_for_resizable_list(ll_list):
     """
     WARNING: dragons ahead.
diff --git a/rpython/rtyper/rtyper.py b/rpython/rtyper/rtyper.py
--- a/rpython/rtyper/rtyper.py
+++ b/rpython/rtyper/rtyper.py
@@ -204,6 +204,9 @@
         blockcount = 0
         self.annmixlevel = None
         while True:
+            # make sure all reprs so far have had their setup() called
+            self.call_all_setups()
+
             # look for blocks not specialized yet
             pending = [block for block in self.annotator.annotated
                              if block not in self.already_seen]
@@ -236,8 +239,6 @@
                         previous_percentage = percentage
                         self.log.event('specializing: %d / %d blocks   (%d%%)' %
                                        (n, total, percentage))
-            # make sure all reprs so far have had their setup() called
-            self.call_all_setups()
 
         self.log.event('-=- specialized %d%s blocks -=-' % (
             blockcount, newtext))
diff --git a/rpython/translator/c/database.py b/rpython/translator/c/database.py
--- a/rpython/translator/c/database.py
+++ b/rpython/translator/c/database.py
@@ -48,7 +48,6 @@
         self.delayedfunctionptrs = []
         self.completedcontainers = 0
         self.containerstats = {}
-        self.helpers = OrderedDict()
 
         # late_initializations is for when the value you want to
         # assign to a constant object is something C doesn't think is
diff --git a/rpython/translator/c/extfunc.py b/rpython/translator/c/extfunc.py
--- a/rpython/translator/c/extfunc.py
+++ b/rpython/translator/c/extfunc.py
@@ -7,27 +7,6 @@
 from rpython.translator.c.support import cdecl
 
 
-def predeclare_common_types(db, rtyper):
-    # Common types
-    yield ('RPyString', STR)
-
-def predeclare_utility_functions(db, rtyper):
-    # Common utility functions
-    def RPyString_New(length=lltype.Signed):
-        return mallocstr(length)
-
-    for fname, f in locals().items():
-        if isinstance(f, types.FunctionType):
-            # XXX this is painful :(
-            if fname in db.helpers:
-                yield (fname, db.helpers[fname])
-            else:
-                # hack: the defaults give the type of the arguments
-                graph = rtyper.annotate_helper(f, f.func_defaults)
-                db.helpers[fname] = graph
-                yield (fname, graph)
-
-
 def predeclare_exception_data(exctransformer, rtyper):
     # Exception-related types and constants
     exceptiondata = rtyper.exceptiondata
@@ -56,11 +35,8 @@
 
 
 def predeclare_all(db, rtyper):
-    for fn in [predeclare_common_types,
-               predeclare_utility_functions,
-               ]:
-        for t in fn(db, rtyper):
-            yield t
+    # Common types
+    yield ('RPyString', STR)
 
     exctransformer = db.exctransformer
     for t in predeclare_exception_data(exctransformer, rtyper):
diff --git a/rpython/translator/c/src/rtyper.c b/rpython/translator/c/src/rtyper.c
--- a/rpython/translator/c/src/rtyper.c
+++ b/rpython/translator/c/src/rtyper.c
@@ -36,11 +36,3 @@
 		free(dump);
 	}
 }
-
-RPyString *RPyString_FromString(char *buf)
-{
-	int length = strlen(buf);
-	RPyString *rps = RPyString_New(length);
-	memcpy(rps->rs_chars.items, buf, length);
-	return rps;
-}
diff --git a/rpython/translator/c/src/rtyper.h b/rpython/translator/c/src/rtyper.h
--- a/rpython/translator/c/src/rtyper.h
+++ b/rpython/translator/c/src/rtyper.h
@@ -11,4 +11,3 @@
 
 RPY_EXTERN char *RPyString_AsCharP(RPyString *rps);
 RPY_EXTERN void RPyString_FreeCache(void);
-RPY_EXTERN RPyString *RPyString_FromString(char *buf);


More information about the pypy-commit mailing list