Author: Richard Plangger <planri...@gmail.com>
Branch: vmprof-native
Changeset: r90724:4a1cac3da487
Date: 2017-03-16 10:19 +0100
http://bitbucket.org/pypy/pypy/changeset/4a1cac3da487/

Log:    merge default

diff too long, truncating to 2000 out of 2513 lines

diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,3 +1,5 @@
+#encoding utf-8
+
 License
 =======
 
@@ -42,9 +44,9 @@
   Antonio Cuni
   Samuele Pedroni
   Matti Picus
+  Ronan Lamy
   Alex Gaynor
   Philip Jenvey
-  Ronan Lamy
   Brian Kearns
   Richard Plangger
   Michael Hudson
@@ -55,12 +57,12 @@
   Hakan Ardo
   Benjamin Peterson
   Anders Chrigstrom
+  Wim Lavrijsen
   Eric van Riet Paap
-  Wim Lavrijsen
   Richard Emslie
   Alexander Schremmer
+  Remi Meier
   Dan Villiom Podlaski Christiansen
-  Remi Meier
   Lukas Diekmann
   Sven Hager
   Anders Lehmann
@@ -83,8 +85,8 @@
   Lawrence Oluyede
   Bartosz Skowron
   Daniel Roberts
+  Adrien Di Mascio
   Niko Matsakis
-  Adrien Di Mascio
   Alexander Hesse
   Ludovic Aubry
   Jacob Hallen
@@ -100,8 +102,8 @@
   Michael Foord
   Stephan Diehl
   Stefan Schwarzer
+  Tomek Meka
   Valentino Volonghi
-  Tomek Meka
   Stefano Rivera
   Patrick Maupin
   Devin Jeanpierre
@@ -109,268 +111,273 @@
   Bruno Gola
   David Malcolm
   Jean-Paul Calderone
-  Timo Paulssen
   Edd Barrett
   Squeaky
+  Timo Paulssen
   Marius Gedminas
   Alexandre Fayolle
   Simon Burton
+  Nicolas Truessel
   Martin Matusiak
-  Nicolas Truessel
+  Wenzhu Man
   Konstantin Lopuhin
-  Wenzhu Man
   John Witulski
   Laurence Tratt
+  Greg Price
   Ivan Sichmann Freitas
-  Greg Price
   Dario Bertini
+  Jeremy Thurgood
   Mark Pearse
   Simon Cross
-  Jeremy Thurgood
+  Tobias Pape
   Andreas St&#252;hrk
-  Tobias Pape
   Jean-Philippe St. Pierre
   Guido van Rossum
   Pavel Vinogradov
   Pawe&#322; Piotr Przeradowski
+  William Leslie
+  marky1991
+  Ilya Osadchiy
+  Tobias Oberstein
   Paul deGrandis
-  Ilya Osadchiy
-  marky1991
-  Tobias Oberstein
+  Boris Feigin
+  Taavi Burns
   Adrian Kuhn
-  Boris Feigin
   tav
-  Taavi Burns
   Georg Brandl
   Bert Freudenberg
   Stian Andreassen
   Wanja Saatkamp
+  Mike Blume
   Gerald Klix
-  Mike Blume
   Oscar Nierstrasz
+  Rami Chowdhury
   Stefan H. Muller
-  Rami Chowdhury
+  Joannah Nanjekye
   Eugene Oden
+  Tim Felgentreff
+  Jeff Terrace
   Henry Mason
   Vasily Kuznetsov
   Preston Timmons
   David Ripton
-  Jeff Terrace
-  Tim Felgentreff
   Dusty Phillips
   Lukas Renggli
   Guenter Jantzen
-  William Leslie
   Ned Batchelder
+  Amit Regmi
   Anton Gulenko
-  Amit Regmi
-  Ben Young
+  Sergey Matyunin
   Jasper Schulz
+  Andrew Chambers
   Nicolas Chauvat
   Andrew Durdin
-  Andrew Chambers
-  Sergey Matyunin
+  Ben Young
   Michael Schneider
   Nicholas Riley
   Jason Chu
   Igor Trindade Oliveira
   Yichao Yu
+  Michael Twomey
   Rocco Moretti
   Gintautas Miliauskas
-  Michael Twomey
   Lucian Branescu Mihaila
   anatoly techtonik
+  Karl Bartel
   Gabriel Lavoie
+  Jared Grubb
   Olivier Dormond
-  Jared Grubb
-  Karl Bartel
   Wouter van Heyst
+  Sebastian Pawlu&#347;
   Brian Dorsey
   Victor Stinner
   Andrews Medina
-  Sebastian Pawlu&#347;
-  Stuart Williams
-  Daniel Patrick
   Aaron Iles
   Toby Watson
+  Daniel Patrick
+  Stuart Williams
   Antoine Pitrou
   Christian Hudon
+  Justas Sadzevicius
+  Neil Shepperd
   Michael Cheng
-  Justas Sadzevicius
+  Mikael Sch&#246;nenberg
+  Stanislaw Halik
+  Berkin Ilbeyi
   Gasper Zejn
-  Neil Shepperd
-  Stanislaw Halik
-  Mikael Sch&#246;nenberg
-  Berkin Ilbeyi
   Faye Zhao
   Elmo M&#228;ntynen
-  Jonathan David Riehl
   Anders Qvist
   Corbin Simpson
   Chirag Jadwani
+  Jonathan David Riehl
   Beatrice During
   Alex Perry
+  p_ziesch...@yahoo.de
+  Robert Zaremba
+  Alan McIntyre
+  Alexander Sedov
   Vaibhav Sood
-  Alan McIntyre
   Reuben Cummings
-  Alexander Sedov
-  p_ziesch...@yahoo.de
   Attila Gobi
   Christopher Pope
-  Aaron Gallagher
+  Tristan Arthur
+  Christian Tismer 
+  Dan Stromberg
+  Carl Meyer
   Florin Papa
-  Christian Tismer 
-  Marc Abramowitz
-  Dan Stromberg
-  Arjun Naik
   Valentina Mukhamedzhanova
   Stefano Parmesan
   touilleMan
+  Marc Abramowitz
+  Arjun Naik
+  Aaron Gallagher
   Alexis Daboville
-  Jens-Uwe Mager
-  Carl Meyer
+  Pieter Zieschang
   Karl Ramm
-  Pieter Zieschang
-  Gabriel
   Lukas Vacek
-  Kunal Grover
-  Andrew Dalke
+  Omer Katz
+  Jacek Generowicz
   Sylvain Thenault
   Jakub Stasiak
+  Stefan Beyer
+  Andrew Dalke
+  Alejandro J. Cura
+  Vladimir Kryachko
+  Gabriel
+  Mark Williams
+  Kunal Grover
   Nathan Taylor
-  Vladimir Kryachko
-  Omer Katz
-  Mark Williams
-  Jacek Generowicz
-  Alejandro J. Cura
+  Travis Francis Athougies
+  Yasir Suhail
+  Sergey Kishchenko
+  Martin Blais
+  Lutz Paelike
+  Ian Foote
+  Philipp Rustemeuer
+  Catalin Gabriel Manciu
   Jacob Oscarson
-  Travis Francis Athougies
   Ryan Gonzalez
-  Ian Foote
   Kristjan Valur Jonsson
+  Lucio Torre
+  Richard Lancaster
+  Dan Buch
+  Lene Wagner
+  Tomo Cocoa
+  Alecsandru Patrascu
   David Lievens
   Neil Blakey-Milner
-  Lutz Paelike
-  Lucio Torre
+  Henrik Vendelbo
   Lars Wassermann
-  Philipp Rustemeuer
-  Henrik Vendelbo
-  Richard Lancaster
-  Yasir Suhail
-  Dan Buch
+  Ignas Mikalajunas
+  Christoph Gerum
   Miguel de Val Borro
   Artur Lisiecki
-  Sergey Kishchenko
-  Ignas Mikalajunas
-  Alecsandru Patrascu
-  Christoph Gerum
-  Martin Blais
-  Lene Wagner
-  Catalin Gabriel Manciu
-  Tomo Cocoa
-  Kim Jin Su
-  rafalgalczyn...@gmail.com
   Toni Mattis
-  Amber Brown
+  Laurens Van Houtven
+  Bobby Impollonia
+  Roberto De Ioris
+  Jeong YunWon
+  Christopher Armstrong
+  Aaron Tubbs
+  Vasantha Ganesh K
+  Jason Michalski
+  Markus Holtermann
+  Andrew Thompson
+  Yusei Tahara
+  Ruochen Huang
+  Fabio Niephaus
+  Akira Li
+  Gustavo Niemeyer
+  Rafa&#322; Ga&#322;czy&#324;ski
+  Logan Chien
   Lucas Stadler
-  Julian Berman
-  Markus Holtermann
   roberto@goyle
+  Matt Bogosian
   Yury V. Zaytsev
-  Anna Katrina Dominguez
-  Bobby Impollonia
-  Vasantha Ganesh K
-  Andrew Thompson
   florinpapa
-  Yusei Tahara
-  Aaron Tubbs
-  Ben Darnell
-  Roberto De Ioris
-  Logan Chien
-  Juan Francisco Cantero Hurtado
-  Ruochen Huang
-  Jeong YunWon
-  Godefroid Chappelle
-  Joshua Gilbert
-  Dan Colish
-  Christopher Armstrong
-  Michael Hudson-Doyle
   Anders Sigfridsson
   Nikolay Zinov
-  Jason Michalski
+  rafalgalczyn...@gmail.com
+  Joshua Gilbert
+  Anna Katrina Dominguez
+  Kim Jin Su
+  Amber Brown
+  Ben Darnell
+  Juan Francisco Cantero Hurtado
+  Godefroid Chappelle
+  Julian Berman
+  Michael Hudson-Doyle
   Floris Bruynooghe
-  Laurens Van Houtven
-  Akira Li
-  Gustavo Niemeyer
   Stephan Busemann
-  Rafa&#322; Ga&#322;czy&#324;ski
-  Matt Bogosian
+  Dan Colish
   timo
-  Christian Muirhead
-  Berker Peksag
-  James Lan
   Volodymyr Vladymyrov
-  shoma hosaka
-  Ben Mather
-  Niclas Olofsson
-  Matthew Miller
-  Rodrigo Ara&#250;jo
+  Daniel Neuh&#228;user
+  Flavio Percoco
   halgari
-  Boglarka Vezer
-  Chris Pressey
-  Buck Golemon
-  Diana Popa
-  Konrad Delong
-  Dinu Gherman
+  Jim Baker
   Chris Lambacher
   coolbutusel...@gmail.com
+  Mike Bayer
+  Rodrigo Ara&#250;jo
   Daniil Yarancev
-  Jim Baker
+  OlivierBlanvillain
+  Jonas Pfannschmidt
+  Zearin
+  Andrey Churin
   Dan Crosta
-  Nikolaos-Digenis Karagiannis
-  James Robert
-  Armin Ronacher
-  Brett Cannon
-  Donald Stufft
-  yrttyr
-  aliceinwire
-  OlivierBlanvillain
-  Dan Sanders
-  Zooko Wilcox-O Hearn
+  reub...@gmail.com
+  Julien Phalip
+  Roman Podoliaka
+  Eli Stevens
+  Boglarka Vezer
+  PavloKapyshin
   Tomer Chachamu
   Christopher Groskopf
   Asmo Soinio
-  jiaaro
-  Mads Kiilerich
   Antony Lee
-  Jason Madden
-  Daniel Neuh&#65533;user
-  reub...@gmail.com
-  Yaroslav Fedevych
   Jim Hunziker
-  Markus Unterwaditzer
-  Even Wiik Thomassen
-  jbs
-  squeaky
-  soareschen
-  Jonas Pfannschmidt
-  Kurt Griffiths
-  Mike Bayer
-  Stefan Marr
-  Flavio Percoco
-  Kristoffer Kleine
+  shoma hosaka
+  Buck Golemon
+  JohnDoe
+  yrttyr
   Michael Chermside
   Anna Ravencroft
+  remarkablerocket
+  Berker Peksag
+  Christian Muirhead
+  soareschen
+  Matthew Miller
+  Konrad Delong
+  Dinu Gherman
   pizi
-  remarkablerocket
-  Andrey Churin
-  Zearin
-  Eli Stevens
-  Tobias Diaz
-  Julien Phalip
-  Roman Podoliaka
+  James Robert
+  Armin Ronacher
+  Diana Popa
+  Mads Kiilerich
+  Brett Cannon
+  aliceinwire
+  Zooko Wilcox-O Hearn
+  James Lan
+  jiaaro
+  Markus Unterwaditzer
+  Kristoffer Kleine
+  Graham Markall
   Dan Loewenherz
   werat
+  Niclas Olofsson
+  Chris Pressey
+  Tobias Diaz
+  Nikolaos-Digenis Karagiannis
+  Kurt Griffiths
+  Ben Mather
+  Donald Stufft
+  Dan Sanders
+  Jason Madden
+  Yaroslav Fedevych
+  Even Wiik Thomassen
+  Stefan Marr
 
   Heinrich-Heine University, Germany 
   Open End AB (formerly AB Strakt), Sweden
diff --git a/lib_pypy/cffi/cparser.py b/lib_pypy/cffi/cparser.py
--- a/lib_pypy/cffi/cparser.py
+++ b/lib_pypy/cffi/cparser.py
@@ -803,6 +803,16 @@
                            "the actual array length in this context"
                            % exprnode.coord.line)
         #
+        if (isinstance(exprnode, pycparser.c_ast.BinaryOp) and
+                exprnode.op == '+'):
+            return (self._parse_constant(exprnode.left) +
+                    self._parse_constant(exprnode.right))
+        #
+        if (isinstance(exprnode, pycparser.c_ast.BinaryOp) and
+                exprnode.op == '-'):
+            return (self._parse_constant(exprnode.left) -
+                    self._parse_constant(exprnode.right))
+        #
         raise FFIError(":%d: unsupported expression: expected a "
                        "simple numeric constant" % exprnode.coord.line)
 
diff --git a/pypy/doc/config/translation.gcrootfinder.txt 
b/pypy/doc/config/translation.gcrootfinder.txt
--- a/pypy/doc/config/translation.gcrootfinder.txt
+++ b/pypy/doc/config/translation.gcrootfinder.txt
@@ -9,10 +9,8 @@
 - ``--gcrootfinder=asmgcc``: use assembler hackery to find the
   roots directly from the normal stack.  This is a bit faster,
   but platform specific.  It works so far with GCC or MSVC,
-  on i386 and x86-64.  It is tested only on Linux (where it is
-  the default) so other platforms (as well as MSVC) may need
-  various fixes before they can be used.
+  on i386 and x86-64.  It is tested only on Linux 
+  so other platforms (as well as MSVC) may need
+  various fixes before they can be used. Note asmgcc will be deprecated
+  at some future date, and does not work with clang.
 
-You may have to force the use of the shadowstack root finder if
-you are running into troubles or if you insist on translating
-PyPy with other compilers like clang.
diff --git a/pypy/doc/contributor.rst b/pypy/doc/contributor.rst
--- a/pypy/doc/contributor.rst
+++ b/pypy/doc/contributor.rst
@@ -11,9 +11,9 @@
   Antonio Cuni
   Samuele Pedroni
   Matti Picus
+  Ronan Lamy
   Alex Gaynor
   Philip Jenvey
-  Ronan Lamy
   Brian Kearns
   Richard Plangger
   Michael Hudson
@@ -24,12 +24,12 @@
   Hakan Ardo
   Benjamin Peterson
   Anders Chrigstrom
+  Wim Lavrijsen
   Eric van Riet Paap
-  Wim Lavrijsen
   Richard Emslie
   Alexander Schremmer
+  Remi Meier
   Dan Villiom Podlaski Christiansen
-  Remi Meier
   Lukas Diekmann
   Sven Hager
   Anders Lehmann
@@ -52,8 +52,8 @@
   Lawrence Oluyede
   Bartosz Skowron
   Daniel Roberts
+  Adrien Di Mascio
   Niko Matsakis
-  Adrien Di Mascio
   Alexander Hesse
   Ludovic Aubry
   Jacob Hallen
@@ -69,8 +69,8 @@
   Michael Foord
   Stephan Diehl
   Stefan Schwarzer
+  Tomek Meka
   Valentino Volonghi
-  Tomek Meka
   Stefano Rivera
   Patrick Maupin
   Devin Jeanpierre
@@ -78,267 +78,270 @@
   Bruno Gola
   David Malcolm
   Jean-Paul Calderone
-  Timo Paulssen
   Edd Barrett
   Squeaky
+  Timo Paulssen
   Marius Gedminas
   Alexandre Fayolle
   Simon Burton
+  Nicolas Truessel
   Martin Matusiak
-  Nicolas Truessel
+  Wenzhu Man
   Konstantin Lopuhin
-  Wenzhu Man
   John Witulski
   Laurence Tratt
+  Greg Price
   Ivan Sichmann Freitas
-  Greg Price
   Dario Bertini
+  Jeremy Thurgood
   Mark Pearse
   Simon Cross
-  Jeremy Thurgood
+  Tobias Pape
   Andreas St&#252;hrk
-  Tobias Pape
   Jean-Philippe St. Pierre
   Guido van Rossum
   Pavel Vinogradov
   Pawe&#322; Piotr Przeradowski
+  William Leslie
+  marky1991
+  Ilya Osadchiy
+  Tobias Oberstein
   Paul deGrandis
-  Ilya Osadchiy
-  marky1991
-  Tobias Oberstein
+  Boris Feigin
+  Taavi Burns
   Adrian Kuhn
-  Boris Feigin
   tav
-  Taavi Burns
   Georg Brandl
   Bert Freudenberg
   Stian Andreassen
   Wanja Saatkamp
+  Mike Blume
   Gerald Klix
-  Mike Blume
   Oscar Nierstrasz
+  Rami Chowdhury
   Stefan H. Muller
-  Rami Chowdhury
+  Joannah Nanjekye
   Eugene Oden
+  Tim Felgentreff
+  Jeff Terrace
   Henry Mason
   Vasily Kuznetsov
   Preston Timmons
   David Ripton
-  Jeff Terrace
-  Tim Felgentreff
   Dusty Phillips
   Lukas Renggli
   Guenter Jantzen
-  William Leslie
   Ned Batchelder
+  Amit Regmi
   Anton Gulenko
-  Amit Regmi
-  Ben Young
+  Sergey Matyunin
   Jasper Schulz
+  Andrew Chambers
   Nicolas Chauvat
   Andrew Durdin
-  Andrew Chambers
-  Sergey Matyunin
+  Ben Young
   Michael Schneider
   Nicholas Riley
   Jason Chu
   Igor Trindade Oliveira
   Yichao Yu
+  Michael Twomey
   Rocco Moretti
   Gintautas Miliauskas
-  Michael Twomey
   Lucian Branescu Mihaila
   anatoly techtonik
+  Karl Bartel
   Gabriel Lavoie
+  Jared Grubb
   Olivier Dormond
-  Jared Grubb
-  Karl Bartel
   Wouter van Heyst
+  Sebastian Pawlu&#347;
   Brian Dorsey
   Victor Stinner
   Andrews Medina
-  Sebastian Pawlu&#347;
-  Stuart Williams
-  Daniel Patrick
   Aaron Iles
   Toby Watson
+  Daniel Patrick
+  Stuart Williams
   Antoine Pitrou
   Christian Hudon
+  Justas Sadzevicius
+  Neil Shepperd
   Michael Cheng
-  Justas Sadzevicius
+  Mikael Sch&#246;nenberg
+  Stanislaw Halik
+  Berkin Ilbeyi
   Gasper Zejn
-  Neil Shepperd
-  Stanislaw Halik
-  Mikael Sch&#246;nenberg
-  Berkin Ilbeyi
   Faye Zhao
   Elmo M&#228;ntynen
-  Jonathan David Riehl
   Anders Qvist
   Corbin Simpson
   Chirag Jadwani
+  Jonathan David Riehl
   Beatrice During
   Alex Perry
+  p_ziesch...@yahoo.de
+  Robert Zaremba
+  Alan McIntyre
+  Alexander Sedov
   Vaibhav Sood
-  Alan McIntyre
   Reuben Cummings
-  Alexander Sedov
-  p_ziesch...@yahoo.de
   Attila Gobi
   Christopher Pope
-  Aaron Gallagher
+  Tristan Arthur
+  Christian Tismer 
+  Dan Stromberg
+  Carl Meyer
   Florin Papa
-  Christian Tismer 
-  Marc Abramowitz
-  Dan Stromberg
-  Arjun Naik
   Valentina Mukhamedzhanova
   Stefano Parmesan
   touilleMan
+  Marc Abramowitz
+  Arjun Naik
+  Aaron Gallagher
   Alexis Daboville
-  Jens-Uwe Mager
-  Carl Meyer
+  Pieter Zieschang
   Karl Ramm
-  Pieter Zieschang
-  Gabriel
   Lukas Vacek
-  Kunal Grover
-  Andrew Dalke
+  Omer Katz
+  Jacek Generowicz
   Sylvain Thenault
   Jakub Stasiak
+  Stefan Beyer
+  Andrew Dalke
+  Alejandro J. Cura
+  Vladimir Kryachko
+  Gabriel
+  Mark Williams
+  Kunal Grover
   Nathan Taylor
-  Vladimir Kryachko
-  Omer Katz
-  Mark Williams
-  Jacek Generowicz
-  Alejandro J. Cura
+  Travis Francis Athougies
+  Yasir Suhail
+  Sergey Kishchenko
+  Martin Blais
+  Lutz Paelike
+  Ian Foote
+  Philipp Rustemeuer
+  Catalin Gabriel Manciu
   Jacob Oscarson
-  Travis Francis Athougies
   Ryan Gonzalez
-  Ian Foote
   Kristjan Valur Jonsson
+  Lucio Torre
+  Richard Lancaster
+  Dan Buch
+  Lene Wagner
+  Tomo Cocoa
+  Alecsandru Patrascu
   David Lievens
   Neil Blakey-Milner
-  Lutz Paelike
-  Lucio Torre
+  Henrik Vendelbo
   Lars Wassermann
-  Philipp Rustemeuer
-  Henrik Vendelbo
-  Richard Lancaster
-  Yasir Suhail
-  Dan Buch
+  Ignas Mikalajunas
+  Christoph Gerum
   Miguel de Val Borro
   Artur Lisiecki
-  Sergey Kishchenko
-  Ignas Mikalajunas
-  Alecsandru Patrascu
-  Christoph Gerum
-  Martin Blais
-  Lene Wagner
-  Catalin Gabriel Manciu
-  Tomo Cocoa
-  Kim Jin Su
-  rafalgalczyn...@gmail.com
   Toni Mattis
-  Amber Brown
+  Laurens Van Houtven
+  Bobby Impollonia
+  Roberto De Ioris
+  Jeong YunWon
+  Christopher Armstrong
+  Aaron Tubbs
+  Vasantha Ganesh K
+  Jason Michalski
+  Markus Holtermann
+  Andrew Thompson
+  Yusei Tahara
+  Ruochen Huang
+  Fabio Niephaus
+  Akira Li
+  Gustavo Niemeyer
+  Rafa&#322; Ga&#322;czy&#324;ski
+  Logan Chien
   Lucas Stadler
-  Julian Berman
-  Markus Holtermann
   roberto@goyle
+  Matt Bogosian
   Yury V. Zaytsev
-  Anna Katrina Dominguez
-  Bobby Impollonia
-  Vasantha Ganesh K
-  Andrew Thompson
   florinpapa
-  Yusei Tahara
-  Aaron Tubbs
-  Ben Darnell
-  Roberto De Ioris
-  Logan Chien
-  Juan Francisco Cantero Hurtado
-  Ruochen Huang
-  Jeong YunWon
-  Godefroid Chappelle
-  Joshua Gilbert
-  Dan Colish
-  Christopher Armstrong
-  Michael Hudson-Doyle
   Anders Sigfridsson
   Nikolay Zinov
-  Jason Michalski
+  rafalgalczyn...@gmail.com
+  Joshua Gilbert
+  Anna Katrina Dominguez
+  Kim Jin Su
+  Amber Brown
+  Ben Darnell
+  Juan Francisco Cantero Hurtado
+  Godefroid Chappelle
+  Julian Berman
+  Michael Hudson-Doyle
   Floris Bruynooghe
-  Laurens Van Houtven
-  Akira Li
-  Gustavo Niemeyer
   Stephan Busemann
-  Rafa&#322; Ga&#322;czy&#324;ski
-  Matt Bogosian
+  Dan Colish
   timo
-  Christian Muirhead
-  Berker Peksag
-  James Lan
   Volodymyr Vladymyrov
-  shoma hosaka
-  Ben Mather
-  Niclas Olofsson
-  Matthew Miller
-  Rodrigo Ara&#250;jo
+  Daniel Neuh&#228;user
+  Flavio Percoco
   halgari
-  Boglarka Vezer
-  Chris Pressey
-  Buck Golemon
-  Diana Popa
-  Konrad Delong
-  Dinu Gherman
+  Jim Baker
   Chris Lambacher
   coolbutusel...@gmail.com
+  Mike Bayer
+  Rodrigo Ara&#250;jo
   Daniil Yarancev
-  Jim Baker
+  OlivierBlanvillain
+  Jonas Pfannschmidt
+  Zearin
+  Andrey Churin
   Dan Crosta
-  Nikolaos-Digenis Karagiannis
-  James Robert
-  Armin Ronacher
-  Brett Cannon
-  Donald Stufft
-  yrttyr
-  aliceinwire
-  OlivierBlanvillain
-  Dan Sanders
-  Zooko Wilcox-O Hearn
+  reub...@gmail.com
+  Julien Phalip
+  Roman Podoliaka
+  Eli Stevens
+  Boglarka Vezer
+  PavloKapyshin
   Tomer Chachamu
   Christopher Groskopf
   Asmo Soinio
-  jiaaro
-  Mads Kiilerich
   Antony Lee
-  Jason Madden
-  Daniel Neuh&#228;user
-  reub...@gmail.com
-  Yaroslav Fedevych
   Jim Hunziker
-  Markus Unterwaditzer
-  Even Wiik Thomassen
-  jbs
-  squeaky
-  soareschen
-  Jonas Pfannschmidt
-  Kurt Griffiths
-  Mike Bayer
-  Stefan Marr
-  Flavio Percoco
-  Kristoffer Kleine
+  shoma hosaka
+  Buck Golemon
+  JohnDoe
+  yrttyr
   Michael Chermside
   Anna Ravencroft
+  remarkablerocket
+  Berker Peksag
+  Christian Muirhead
+  soareschen
+  Matthew Miller
+  Konrad Delong
+  Dinu Gherman
   pizi
-  remarkablerocket
-  Andrey Churin
-  Zearin
-  Eli Stevens
-  Tobias Diaz
-  Julien Phalip
-  Roman Podoliaka
+  James Robert
+  Armin Ronacher
+  Diana Popa
+  Mads Kiilerich
+  Brett Cannon
+  aliceinwire
+  Zooko Wilcox-O Hearn
+  James Lan
+  jiaaro
+  Markus Unterwaditzer
+  Kristoffer Kleine
+  Graham Markall
   Dan Loewenherz
   werat
-
-
+  Niclas Olofsson
+  Chris Pressey
+  Tobias Diaz
+  Nikolaos-Digenis Karagiannis
+  Kurt Griffiths
+  Ben Mather
+  Donald Stufft
+  Dan Sanders
+  Jason Madden
+  Yaroslav Fedevych
+  Even Wiik Thomassen
+  Stefan Marr
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-v5.7.0.rst
    release-pypy2.7-v5.6.0.rst
    release-pypy2.7-v5.4.1.rst
    release-pypy2.7-v5.4.0.rst
@@ -53,6 +54,12 @@
    release-0.7.0.rst
    release-0.6
 
+CPython 3.5 compatible versions
+-------------------------------
+
+.. toctree::
+
+   release-v5.7.0.rst
 
 CPython 3.3 compatible versions
 -------------------------------
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.7.0.rst
    whatsnew-pypy2-5.6.0.rst
    whatsnew-pypy2-5.4.0.rst
    whatsnew-pypy2-5.3.1.rst
diff --git a/pypy/doc/release-v5.7.0.rst b/pypy/doc/release-v5.7.0.rst
new file mode 100644
--- /dev/null
+++ b/pypy/doc/release-v5.7.0.rst
@@ -0,0 +1,190 @@
+=============================================
+PyPy2.7 and PyPy3.5 v5.7 - two in one release
+=============================================
+
+We have released PyPy2.7 and a beta-quality PyPy3.5 v5.7.
+This new PyPy2.7 release includes the upstream stdlib version 2.7.13, and
+PyPy 3.5 (our first in the 3.5 series) includes the upstream stdlib version
+3.5.3.
+
+We continue to make incremental improvements to our C-API
+compatibility layer (cpyext). PyPy2 can now import and run many c-extension
+packages, among the most notable are numpy, cython, and pandas. Performance may
+be slower than CPython, especially for frequently-called short C functions.
+Please let us know if your use case is slow, we have ideas how to make things
+faster but need real-world examples (not micro-benchmarks) of problematic code.
+
+Work proceeds at a good pace on the PyPy3.5
+version due to a grant_ from the Mozilla Foundation, hence our first 3.5.3 beta
+release. Thanks Mozilla !!! While we do not pass all tests, asyncio works and
+as `these benchmarks show`_ it already gives a nice speed bump.
+We also backported the ``f""`` formatting from 3.6 (as an expection; otherwise
+"PyPy3.5" supports the Python 3.5 language).
+
+CFFI_ has been updated to 1.10, improving an already great package for
+interfacing with C.
+
+We now use shadowstack as our default gcrootfinder_ even on Linux. The
+alternative, asmgcc, will be deprecated at some future point. While about 3%
+slower, shadowstack is much more easily maintained and debuggable. Also,
+the performance of shadowstack has been improved in general: this should
+close the speed gap between Linux and other platforms.
+
+As always, this release fixed many issues and bugs raised by the
+growing community of PyPy users. We strongly recommend updating.
+
+You can download the v5.7 release here:
+
+    http://pypy.org/download.html
+
+We would like to thank our donors for the continued support of the PyPy
+project.
+
+We would also like to thank our contributors and
+encourage new people to join the project. PyPy has many
+layers and we need help with all of them: `PyPy`_ and `RPython`_ documentation
+improvements, tweaking popular `modules`_ to run on pypy, or general `help`_
+with making RPython's JIT even better.
+
+.. _CFFI: https://cffi.readthedocs.io/en/latest/whatsnew.html
+.. _grant: 
https://morepypy.blogspot.com/2016/08/pypy-gets-funding-from-mozilla-for.html
+.. _`PyPy`: index.html
+.. _`RPython`: https://rpython.readthedocs.org
+.. _`modules`: project-ideas.html#make-more-python-modules-pypy-friendly
+.. _`help`: project-ideas.html
+.. _`these benchmarks show`: 
https://morepypy.blogspot.com/2017/03/async-http-benchmarks-on-pypy3.html
+.. _gcrootfinder: config/translation.gcrootfinder.html
+
+What is PyPy?
+=============
+
+PyPy is a very compliant Python interpreter, almost a drop-in replacement for
+CPython 2.7 and CPython 3.5. It's fast (`PyPy and CPython 2.7.x`_ performance 
comparison)
+due to its integrated tracing JIT compiler.
+
+We also welcome developers of other `dynamic languages`_ to see what RPython
+can do for them.
+
+This release supports: 
+
+  * **x86** machines on most common operating systems
+    (Linux 32/64 bits, Mac OS X 64 bits, Windows 32 bits, OpenBSD, FreeBSD)
+  
+  * newer **ARM** hardware (ARMv6 or ARMv7, with VFPv3) running Linux,
+  
+  * big- and little-endian variants of **PPC64** running Linux,
+
+  * **s390x** running Linux
+
+.. _`PyPy and CPython 2.7.x`: http://speed.pypy.org
+.. _`dynamic languages`: http://rpython.readthedocs.io/en/latest/examples.html
+
+Highlights of the PyPy2.7, cpyext, and RPython changes (since 5.6 released 
Nov, 2016)
+=============================================================================================
+
+See also issues that were resolved_
+
+* New features and cleanups
+
+  * update the format of the PYPYLOG file and improvements to vmprof
+  * improve the consistency of RPython annotation unions
+  * emit more sysconfig values for downstream cextension packages
+  * add PyAnySet_Check, PyModule_GetName, PyWeakref_Check*,
+    _PyImport_{Acquire,Release}Lock, PyGen_Check*, PyOS_AfterFork,
+  * add translation option --keepgoing to continue after the first 
AnnotationError
+  * detect and raise on recreation of a PyPy object from a PyObject during
+    tp_dealloc
+  * refactor and clean up poor handling of unicode exposed in work on py3.5
+  * builtin cppyy_ supports C++ 11, 14, etc. via cling (reflex has been 
removed)
+  * add translation time --disable_entrypoints option for embedding PyPy 
together
+    with another RPython VM
+  * adapt ``weakref`` according to Python issue #19542, will be in CPython 
2.7.14
+  * support translations with cpyext and the Boehm GC (for special cases like
+    revdb
+  * implement ``StringBuffer.get_raw_address`` for the buffer protocol, it is
+    now possible to obtain the address of any readonly object without pinning 
it
+  * refactor the initialization code in translating cpyext
+  * fix ``"".replace("", "x", num)`` to give the same result as CPython
+  * use a cffi-style C parser to create rffi objects in cpyext, now the
+    translating python must have cffi available
+  * add a rpython implementation of siphash24, allow choosing hash algorithm
+    randomizing the seed
+  * make ``attach_gdb`` work on Windows (with Visual Studio Debugger)
+  * implement ``move_to_end(last=True/False)`` on RPython ordered dicts, make
+    available as ``__pypy__.move_to_end`` and, on py3.5,
+    ``OrderedDict.move_to_end()``
+  * remove completely RPython ``space.wrap`` in a major cleanup, differentiate
+    between ``space.newtext`` and ``space.newbytes`` on py3.5
+  * improve shadowstack to where it is now the default in place of asmgcc
+
+* Bug Fixes
+
+  * any uncaught RPython exception in the interpreter is turned into a
+    SystemError (rather than a segfault)
+  * create log files without the executable bit
+  * disable clock_gettime() on OS/X, since we support 10.11 and it was only
+    added in 10.12
+  * support HAVE_FSTATVFS which was unintentionally always false
+  * fix user-created C-API heaptype, issue #2434
+  * fix PyDict_Update is not actually the same as dict.update
+  * assign tp_doc on PyTypeObject and tie it to the app-level __doc__ attribute
+    issue #2446
+  * clean up memory leaks around ``PyObject_GetBuffer``, 
``PyMemoryView_GET_BUFFER``,
+    ``PyMemoryView_FromBuffer``, and ``PyBuffer_Release``
+  * improve support for creating c-extension objects from app-level classes,
+    filling more slots especially ``tp_new`` and ``tp_dealloc``
+  * add rstack.stack_almost_full() and use it to avoid stack overflow due to
+    the JIT where possible
+  * fix for ctypes.c_bool returning bool restype issue #2475
+  * fix in corner cases with the GIL and C-API functions
+
+* Performance improvements:
+
+  * clean-ups in the jit optimizeopt
+  * optimize ``if x is not None: return x`` or ``if x != 0: return x``
+  * add ``jit.conditional_call_elidable()``, a way to tell the JIT 
+    "conditonally call this function" returning a result
+  * try harder to propagate ``can_be_None=False`` information
+  * add ``rarithmetic.ovfcheck_int32_add/sub/mul``
+  * add and use ``rgc.may_ignore_finalizer()``: an optimization hint that makes
+    the GC stop tracking the object
+  * replace malloc+memset with a single calloc, useful for large allocations?
+  * linux: try to implement os.urandom() as the syscall getrandom() if 
available
+  * propagate ``debug.ll_assert_not_none()`` through the JIT to reduce number 
of
+    guards
+  * improve the performance of ``PyDict_Next``
+  * improve ``dict.pop()``
+  * improve the optimization of branchy Python code by retaining more
+    information across failing guards
+  * add optimized "zero-copy" path for ``io.FileIO.readinto``
+
+Highlights of the PyPy3.5 release (since 5.5 alpha released Oct, 2016)
+=========================================================
+
+Development moved from the py3k branch to the py3.5 branch in the pypy 
bitbucket repo
+
+* New features
+
+  * this first PyPy3.5 release implements much, but not all, of Python 3.5.3
+  * PEP 456 allowing secure and interchangable hash algorithms
+  * use cryptography_'s cffi backend for SSL
+
+* Bug Fixes
+
+  * implement fixes for some CPython issues that arose since the last release 
+  * solve deadlocks in thread locking mechanism
+
+* Performance improvements:
+
+  * do not create a list whenever descr_new of a bytesobject is called
+  * 
+  * 
+  * 
+
+.. _resolved: whatsnew-pypy2-5.7.0.html
+.. _cryptography: https://cryptography.io
+.. _cppyy: cppyy.html
+
+Please update, and continue to help us make PyPy better.
+
+Cheers
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
@@ -75,9 +75,10 @@
     'Spenser Bauman':['Spenser Andrew Bauman'],
     'Raffael Tfirst':['raffael.tfi...@gmail.com'],
     'timo':['t...@eistee.fritz.box'],
-    'Jasper Schulz':['Jasper.Schulz'],
+    'Jasper Schulz':['Jasper.Schulz', 'jbs'],
     'Aaron Gallagher':['"Aaron Gallagher'],
     'Yasir Suhail':['yasirs'],
+    'Squeaky', ['squeaky'],
     }
 
 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,191 +1,8 @@
 ==========================
-What's new in PyPy2.7 5.6+
+What's new in PyPy2.7 5.8+
 ==========================
 
-.. this is a revision shortly after release-pypy2.7-v5.6
-.. startrev: 7e9787939641
+.. this is a revision shortly after release-pypy2.7-v5.7
+.. startrev: 44f31f6dd39f
 
 
-Since a while now, PyPy preserves the order of dictionaries and sets.
-However, the set literal syntax ``{x, y, z}`` would by mistake build a
-set with the opposite order: ``set([z, y, x])``.  This has been fixed.
-Note that CPython is inconsistent too: in 2.7.12, ``{5, 5.0}`` would be
-``set([5.0])``, but in 2.7.trunk it is ``set([5])``.  PyPy's behavior
-changed in exactly the same way because of this fix.
-
-
-.. branch: rpython-error-to-systemerror
-
-Any uncaught RPython exception (from a PyPy bug) is turned into an
-app-level SystemError.  This should improve the lot of users hitting an
-uncaught RPython error.
-
-.. branch: union-side-effects-2
-
-Try to improve the consistency of RPython annotation unions.
-
-.. branch: pytest-2.9.2
-
-.. branch: clean-exported-state
-
-Clean-ups in the jit optimizeopt
-
-.. branch: conditional_call_value_4
-
-Add jit.conditional_call_elidable(), a way to tell the JIT "conditonally
-call this function" returning a result.
-
-.. branch: desc-specialize
-
-Refactor FunctionDesc.specialize() and related code (RPython annotator).
-
-.. branch: raw-calloc
-
-.. branch: issue2446
-
-Assign ``tp_doc`` to the new TypeObject's type dictionary ``__doc__`` key
-so it will be picked up by app-level objects of that type
-
-.. branch: cling-support
-
-Module cppyy now uses cling as its backend (Reflex has been removed). The
-user-facing interface and main developer tools (genreflex, selection files,
-class loader, etc.) remain the same.  A libcppyy_backend.so library is still
-needed but is now available through PyPI with pip: PyPy-cppyy-backend.
-
-The Cling-backend brings support for modern C++ (11, 14, etc.), dynamic
-template instantations, and improved integration with CFFI for better
-performance.  It also provides interactive C++ (and bindings to that).
-
-.. branch: better-PyDict_Next
-
-Improve the performance of ``PyDict_Next``. When trying ``PyDict_Next`` on a
-typedef dict, the test exposed a problem converting a ``GetSetProperty`` to a
-``PyGetSetDescrObject``. The other direction seem to be fully implemented.
-This branch made a minimal effort to convert the basic fields to avoid
-segfaults, but trying to use the ``PyGetSetDescrObject`` will probably fail.
-
-.. branch: stdlib-2.7.13
-
-Updated the implementation to match CPython 2.7.13 instead of 2.7.13.
-
-.. branch: issue2444
-
-Fix ``PyObject_GetBuffer`` and ``PyMemoryView_GET_BUFFER``, which leaked
-memory and held references. Add a finalizer to CPyBuffer, add a
-PyMemoryViewObject with a PyBuffer attached so that the call to 
-``PyMemoryView_GET_BUFFER`` does not leak a PyBuffer-sized piece of memory.
-Properly call ``bf_releasebuffer`` when not ``NULL``.
-
-.. branch: boehm-rawrefcount
-
-Support translations of cpyext with the Boehm GC (for special cases like
-revdb).
-
-.. branch: strbuf-as-buffer
-
-Implement StringBuffer.get_raw_address (missing feature for the buffer 
protocol).
-More generally it is now possible to obtain the address of any object (if it
-is readonly) without pinning it.
-
-.. branch: cpyext-cleanup
-.. branch: api_func-refactor
-
-Refactor cpyext initialisation.
-
-.. branch: cpyext-from2
-
-Fix a test failure introduced by strbuf-as-buffer
-
-.. branch: cpyext-FromBuffer
-
-Do not recreate the object in PyMemoryView_FromBuffer, rather pass it to
-the returned PyMemoryViewObject, to take ownership of it. Fixes a ref leak.
-
-.. branch: issue2464
-
-Give (almost?) all GetSetProperties a valid __objclass__.
-
-.. branch: TreeStain/fixed-typo-line-29-mostly-to-most-1484469416419
-.. branch: TreeStain/main-lines-changed-in-l77-l83-made-para-1484471558033
-
-.. branch: missing-tp_new
-
-Improve mixing app-level classes in c-extensions, especially if the app-level
-class has a ``tp_new`` or ``tp_dealloc``. The issue is that c-extensions expect
-all the method slots to be filled with a function pointer, where app-level will
-search up the mro for an appropriate function at runtime. With this branch we
-now fill many more slots in the c-extenion type objects.
-Also fix for c-extension type that calls ``tp_hash`` during initialization
-(str, unicode types), and fix instantiating c-extension types from built-in
-classes by enforcing an order of instaniation.
-
-.. branch: rffi-parser-2
-
-rffi structures in cpyext can now be created by parsing simple C headers.
-Additionally, the cts object that holds the parsed information can act like
-cffi's ffi objects, with the methods cts.cast() and cts.gettype().
-
-.. branch: rpython-hash
-
-Don't freeze hashes in the translated pypy.  In practice, that means
-that we can now translate PyPy with the option --hash=siphash24 and get
-the same hashes as CPython 3.5, which can be randomized (in a
-crypographically good way).  It is the default in PyPy3.  The default of
-PyPy2 remains unchanged: there are user programs out there that depend
-on constant hashes (or even sometimes on specific hash results).
-
-.. branch: dict-move-to-end
-
-Our dicts, which are always ordered, now have an extra "method" for
-Python 3.x which moves an item to first or last position.  In PyPy 3.5
-it is the standard ``OrderedDict.move_to_end()`` method, but the
-behavior is also available on Python 2.x or for the ``dict`` type by
-calling ``__pypy__.move_to_end(dict, key, last=True)``.
-
-
-.. branch optinfo-into-bridges-3
-
-Improve the optimization of branchy Python code by retaining more information
-across failing guards.
-
-
-.. branch: space-newtext
-
-Internal refactoring of ``space.wrap()``, which is now replaced with
-explicitly-typed methods.  Notably, there are now ``space.newbytes()``
-and ``space.newtext()``: these two methods are identical on PyPy 2.7 but
-not on PyPy 3.x.  The latter is used to get an app-level unicode string
-by decoding the RPython string, assumed to be utf-8.
-
-.. branch: space-wrap
-
-.. branch: fix_bool_restype
-
-Fix for ``ctypes.c_bool``-returning ctypes functions
-
-.. branch: fix-cpyext-releasebuffer
-
-Improve handling of the Py3-style buffer slots in cpyext: fix memoryviews
-keeping objects alive forever (missing decref), and make sure that
-bf_releasebuffer is called when it should, e.g. from PyBuffer_Release.
-
-.. branch: fix-global
-
-Fix bug (bad reported info) when asked to translate SyntaxWarning to
-SyntaxError.
-
-.. branch: optinfo-into-bridges-3
-
-Improve the optimization of branchy Python code by retaining more
-information across failing guards. This is done by appending some
-carefully encoded extra information into the resume code.
-
-.. branch: shadowstack-perf-2
-
-Two changes that together bring the performance of shadowstack close to
-asmgcc---close enough that we can now make shadowstack the default even
-on Linux.  This should remove a whole class of rare bugs introduced by
-asmgcc.
-
-.. branch: fniephaus/fix-typo-1488123166752
diff --git a/pypy/doc/whatsnew-pypy2-5.7.0.rst 
b/pypy/doc/whatsnew-pypy2-5.7.0.rst
new file mode 100644
--- /dev/null
+++ b/pypy/doc/whatsnew-pypy2-5.7.0.rst
@@ -0,0 +1,191 @@
+=========================
+What's new in PyPy2.7 5.7
+=========================
+
+.. this is a revision shortly after release-pypy2.7-v5.6
+.. startrev: 7e9787939641
+
+
+Since a while now, PyPy preserves the order of dictionaries and sets.
+However, the set literal syntax ``{x, y, z}`` would by mistake build a
+set with the opposite order: ``set([z, y, x])``.  This has been fixed.
+Note that CPython is inconsistent too: in 2.7.12, ``{5, 5.0}`` would be
+``set([5.0])``, but in 2.7.trunk it is ``set([5])``.  PyPy's behavior
+changed in exactly the same way because of this fix.
+
+
+.. branch: rpython-error-to-systemerror
+
+Any uncaught RPython exception (from a PyPy bug) is turned into an
+app-level SystemError.  This should improve the lot of users hitting an
+uncaught RPython error.
+
+.. branch: union-side-effects-2
+
+Try to improve the consistency of RPython annotation unions.
+
+.. branch: pytest-2.9.2
+
+.. branch: clean-exported-state
+
+Clean-ups in the jit optimizeopt
+
+.. branch: conditional_call_value_4
+
+Add jit.conditional_call_elidable(), a way to tell the JIT "conditonally
+call this function" returning a result.
+
+.. branch: desc-specialize
+
+Refactor FunctionDesc.specialize() and related code (RPython annotator).
+
+.. branch: raw-calloc
+
+.. branch: issue2446
+
+Assign ``tp_doc`` to the new TypeObject's type dictionary ``__doc__`` key
+so it will be picked up by app-level objects of that type
+
+.. branch: cling-support
+
+Module cppyy now uses cling as its backend (Reflex has been removed). The
+user-facing interface and main developer tools (genreflex, selection files,
+class loader, etc.) remain the same.  A libcppyy_backend.so library is still
+needed but is now available through PyPI with pip: PyPy-cppyy-backend.
+
+The Cling-backend brings support for modern C++ (11, 14, etc.), dynamic
+template instantations, and improved integration with CFFI for better
+performance.  It also provides interactive C++ (and bindings to that).
+
+.. branch: better-PyDict_Next
+
+Improve the performance of ``PyDict_Next``. When trying ``PyDict_Next`` on a
+typedef dict, the test exposed a problem converting a ``GetSetProperty`` to a
+``PyGetSetDescrObject``. The other direction seem to be fully implemented.
+This branch made a minimal effort to convert the basic fields to avoid
+segfaults, but trying to use the ``PyGetSetDescrObject`` will probably fail.
+
+.. branch: stdlib-2.7.13
+
+Updated the implementation to match CPython 2.7.13 instead of 2.7.13.
+
+.. branch: issue2444
+
+Fix ``PyObject_GetBuffer`` and ``PyMemoryView_GET_BUFFER``, which leaked
+memory and held references. Add a finalizer to CPyBuffer, add a
+PyMemoryViewObject with a PyBuffer attached so that the call to 
+``PyMemoryView_GET_BUFFER`` does not leak a PyBuffer-sized piece of memory.
+Properly call ``bf_releasebuffer`` when not ``NULL``.
+
+.. branch: boehm-rawrefcount
+
+Support translations of cpyext with the Boehm GC (for special cases like
+revdb).
+
+.. branch: strbuf-as-buffer
+
+Implement StringBuffer.get_raw_address (missing feature for the buffer 
protocol).
+More generally it is now possible to obtain the address of any object (if it
+is readonly) without pinning it.
+
+.. branch: cpyext-cleanup
+.. branch: api_func-refactor
+
+Refactor cpyext initialisation.
+
+.. branch: cpyext-from2
+
+Fix a test failure introduced by strbuf-as-buffer
+
+.. branch: cpyext-FromBuffer
+
+Do not recreate the object in PyMemoryView_FromBuffer, rather pass it to
+the returned PyMemoryViewObject, to take ownership of it. Fixes a ref leak.
+
+.. branch: issue2464
+
+Give (almost?) all GetSetProperties a valid __objclass__.
+
+.. branch: TreeStain/fixed-typo-line-29-mostly-to-most-1484469416419
+.. branch: TreeStain/main-lines-changed-in-l77-l83-made-para-1484471558033
+
+.. branch: missing-tp_new
+
+Improve mixing app-level classes in c-extensions, especially if the app-level
+class has a ``tp_new`` or ``tp_dealloc``. The issue is that c-extensions expect
+all the method slots to be filled with a function pointer, where app-level will
+search up the mro for an appropriate function at runtime. With this branch we
+now fill many more slots in the c-extenion type objects.
+Also fix for c-extension type that calls ``tp_hash`` during initialization
+(str, unicode types), and fix instantiating c-extension types from built-in
+classes by enforcing an order of instaniation.
+
+.. branch: rffi-parser-2
+
+rffi structures in cpyext can now be created by parsing simple C headers.
+Additionally, the cts object that holds the parsed information can act like
+cffi's ffi objects, with the methods cts.cast() and cts.gettype().
+
+.. branch: rpython-hash
+
+Don't freeze hashes in the translated pypy.  In practice, that means
+that we can now translate PyPy with the option --hash=siphash24 and get
+the same hashes as CPython 3.5, which can be randomized (in a
+crypographically good way).  It is the default in PyPy3.  The default of
+PyPy2 remains unchanged: there are user programs out there that depend
+on constant hashes (or even sometimes on specific hash results).
+
+.. branch: dict-move-to-end
+
+Our dicts, which are always ordered, now have an extra "method" for
+Python 3.x which moves an item to first or last position.  In PyPy 3.5
+it is the standard ``OrderedDict.move_to_end()`` method, but the
+behavior is also available on Python 2.x or for the ``dict`` type by
+calling ``__pypy__.move_to_end(dict, key, last=True)``.
+
+
+.. branch optinfo-into-bridges-3
+
+Improve the optimization of branchy Python code by retaining more information
+across failing guards.
+
+
+.. branch: space-newtext
+
+Internal refactoring of ``space.wrap()``, which is now replaced with
+explicitly-typed methods.  Notably, there are now ``space.newbytes()``
+and ``space.newtext()``: these two methods are identical on PyPy 2.7 but
+not on PyPy 3.x.  The latter is used to get an app-level unicode string
+by decoding the RPython string, assumed to be utf-8.
+
+.. branch: space-wrap
+
+.. branch: fix_bool_restype
+
+Fix for ``ctypes.c_bool``-returning ctypes functions
+
+.. branch: fix-cpyext-releasebuffer
+
+Improve handling of the Py3-style buffer slots in cpyext: fix memoryviews
+keeping objects alive forever (missing decref), and make sure that
+bf_releasebuffer is called when it should, e.g. from PyBuffer_Release.
+
+.. branch: fix-global
+
+Fix bug (bad reported info) when asked to translate SyntaxWarning to
+SyntaxError.
+
+.. branch: optinfo-into-bridges-3
+
+Improve the optimization of branchy Python code by retaining more
+information across failing guards. This is done by appending some
+carefully encoded extra information into the resume code.
+
+.. branch: shadowstack-perf-2
+
+Two changes that together bring the performance of shadowstack close to
+asmgcc---close enough that we can now make shadowstack the default even
+on Linux.  This should remove a whole class of rare bugs introduced by
+asmgcc.
+
+.. branch: fniephaus/fix-typo-1488123166752
diff --git a/pypy/doc/whatsnew-pypy3-5.7.0.rst 
b/pypy/doc/whatsnew-pypy3-5.7.0.rst
new file mode 100644
--- /dev/null
+++ b/pypy/doc/whatsnew-pypy3-5.7.0.rst
@@ -0,0 +1,14 @@
+=========================
+What's new in PyPy3 5.7.0
+=========================
+
+.. this is the revision after release-pypy3.3-5.5.x was branched
+.. startrev: c5fb5db3c8ee
+
+.. branch: py3.5-time
+
+.. branch: py3.5-ssl
+
+.. branch: PEP393
+
+Implement some level of compatibility with PEP 393 APIs.
diff --git a/pypy/doc/whatsnew-pypy3-head.rst b/pypy/doc/whatsnew-pypy3-head.rst
new file mode 100644
--- /dev/null
+++ b/pypy/doc/whatsnew-pypy3-head.rst
@@ -0,0 +1,7 @@
+=========================
+What's new in PyPy3 5.7+
+=========================
+
+.. this is the revision after release-pypy3.3-5.7.x was branched
+.. startrev: afbf09453369
+
diff --git a/pypy/module/_cffi_backend/test/test_recompiler.py 
b/pypy/module/_cffi_backend/test/test_recompiler.py
--- a/pypy/module/_cffi_backend/test/test_recompiler.py
+++ b/pypy/module/_cffi_backend/test/test_recompiler.py
@@ -1866,7 +1866,7 @@
     def test_call_with_nested_anonymous_struct(self):
         import sys
         if sys.platform == 'win32':
-            py.test.skip("needs a GCC extension")
+            skip("needs a GCC extension")
         ffi, lib = self.prepare("""
             struct foo { int a; union { int b, c; }; };
             struct foo f(void);
@@ -1914,6 +1914,9 @@
             "set_source() and not taking a final '...' argument)")
 
     def test_call_with_zero_length_field(self):
+        import sys
+        if sys.platform == 'win32':
+            skip("zero-length field not supported by MSVC")
         ffi, lib = self.prepare("""
             struct foo { int a; int x[0]; };
             struct foo f(void);
@@ -1959,7 +1962,7 @@
     def test_call_with_packed_struct(self):
         import sys
         if sys.platform == 'win32':
-            py.test.skip("needs a GCC extension")
+            skip("needs a GCC extension")
         ffi, lib = self.prepare("""
             struct foo { char y; int x; };
             struct foo f(void);
diff --git a/pypy/module/_multibytecodec/src/cjkcodecs/cjkcodecs.h 
b/pypy/module/_multibytecodec/src/cjkcodecs/cjkcodecs.h
--- a/pypy/module/_multibytecodec/src/cjkcodecs/cjkcodecs.h
+++ b/pypy/module/_multibytecodec/src/cjkcodecs/cjkcodecs.h
@@ -201,10 +201,13 @@
 
 #define BEGIN_MAPPINGS_LIST /* empty */
 #define MAPPING_ENCONLY(enc)                                            \
+  RPY_EXTERN const struct dbcs_map pypy_cjkmap_##enc;                   \
   const struct dbcs_map pypy_cjkmap_##enc = {#enc, (void*)enc##_encmap, NULL};
 #define MAPPING_DECONLY(enc)                                            \
+  RPY_EXTERN const struct dbcs_map pypy_cjkmap_##enc;                   \
   const struct dbcs_map pypy_cjkmap_##enc = {#enc, NULL, (void*)enc##_decmap};
 #define MAPPING_ENCDEC(enc)                                             \
+  RPY_EXTERN const struct dbcs_map pypy_cjkmap_##enc;                   \
   const struct dbcs_map pypy_cjkmap_##enc = {#enc, (void*)enc##_encmap, \
                                              (void*)enc##_decmap};
 #define END_MAPPINGS_LIST /* empty */
@@ -294,7 +297,7 @@
 
 #ifdef USING_IMPORTED_MAPS
 #define USING_IMPORTED_MAP(charset) \
-  extern const struct dbcs_map pypy_cjkmap_##charset;
+  RPY_EXTERN const struct dbcs_map pypy_cjkmap_##charset;
 
 #define IMPORT_MAP(locale, charset, encmap, decmap)                     \
   importmap(&pypy_cjkmap_##charset, encmap, decmap)
diff --git a/pypy/module/_rawffi/alt/test/test_funcptr.py 
b/pypy/module/_rawffi/alt/test/test_funcptr.py
--- a/pypy/module/_rawffi/alt/test/test_funcptr.py
+++ b/pypy/module/_rawffi/alt/test/test_funcptr.py
@@ -32,7 +32,10 @@
         #
         c_file.write(py.code.Source('\n'.join(snippets)))
         eci = ExternalCompilationInfo(include_dirs=[cdir])
-        return str(platform.compile([c_file], eci, 'x', standalone=False))
+        # Windows note: can't reuse the same file name 'x.dll', because
+        # the previous one is likely still opened
+        return str(platform.compile([c_file], eci, 'x' + cls.__name__,
+                                    standalone=False))
 
     def setup_class(cls):
         space = cls.space
diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py
--- a/pypy/module/cpyext/api.py
+++ b/pypy/module/cpyext/api.py
@@ -609,6 +609,7 @@
     'Py_FrozenFlag', 'Py_TabcheckFlag', 'Py_UnicodeFlag', 
'Py_IgnoreEnvironmentFlag',
     'Py_DivisionWarningFlag', 'Py_DontWriteBytecodeFlag', 
'Py_NoUserSiteDirectory',
     '_Py_QnewFlag', 'Py_Py3kWarningFlag', 'Py_HashRandomizationFlag', 
'_Py_PackageContext',
+    '_PyTraceMalloc_Track', '_PyTraceMalloc_Untrack', 'PyMem_Malloc',
 ]
 TYPES = {}
 FORWARD_DECLS = []
diff --git a/pypy/module/cpyext/include/patchlevel.h 
b/pypy/module/cpyext/include/patchlevel.h
--- a/pypy/module/cpyext/include/patchlevel.h
+++ b/pypy/module/cpyext/include/patchlevel.h
@@ -29,8 +29,8 @@
 #define PY_VERSION             "2.7.13"
 
 /* PyPy version as a string */
-#define PYPY_VERSION "5.7.0-alpha0"
-#define PYPY_VERSION_NUM  0x05070000
+#define PYPY_VERSION "5.8.0-alpha0"
+#define PYPY_VERSION_NUM  0x05080000
 
 /* Defined to mean a PyPy where cpyext holds more regular references
    to PyObjects, e.g. staying alive as long as the internal PyPy object
diff --git a/pypy/module/cpyext/test/test_pystate.py 
b/pypy/module/cpyext/test/test_pystate.py
--- a/pypy/module/cpyext/test/test_pystate.py
+++ b/pypy/module/cpyext/test/test_pystate.py
@@ -73,6 +73,7 @@
                 ("dance", "METH_NOARGS",
                  """
                      PyThreadState *old_tstate, *new_tstate;
+                     PyObject *d;
 
                      PyEval_InitThreads();
 
@@ -81,7 +82,7 @@
                          return PyLong_FromLong(0);
                      }
 
-                     PyObject* d = PyThreadState_GetDict(); /* fails on 
cpython */
+                     d = PyThreadState_GetDict(); /* fails on cpython */
                      if (d != NULL) {
                          return PyLong_FromLong(1);
                      }
@@ -144,6 +145,9 @@
             ("bounce", "METH_NOARGS",
             """
             PyThreadState * tstate;
+            PyObject *dict;
+            PyGILState_STATE gilstate;
+
             if (PyEval_ThreadsInitialized() == 0)
             {
             PyEval_InitThreads();
@@ -152,11 +156,11 @@
             if (tstate == NULL) {
                 return PyLong_FromLong(0);
             }
-            PyObject* dict = PyThreadState_GetDict();
+            dict = PyThreadState_GetDict();
             if (dict != NULL) {
             return PyLong_FromLong(1);
             }
-            PyGILState_STATE gilstate = PyGILState_Ensure();
+            gilstate = PyGILState_Ensure();
             dict = PyThreadState_GetDict();
             if (dict == NULL) {
             return PyLong_FromLong(2);
diff --git a/pypy/module/cpyext/test/test_tupleobject.py 
b/pypy/module/cpyext/test/test_tupleobject.py
--- a/pypy/module/cpyext/test/test_tupleobject.py
+++ b/pypy/module/cpyext/test/test_tupleobject.py
@@ -154,5 +154,10 @@
 
     def test_tuple_subclass(self):
         module = self.import_module(name='foo')
-        a = module.TupleLike([1, 2, 3])
+        a = module.TupleLike(range(100, 400, 100))
         assert module.is_TupleLike(a) == 1
+        assert isinstance(a, tuple)
+        assert issubclass(type(a), tuple)
+        assert list(a) == range(100, 400, 100)
+        assert list(a) == range(100, 400, 100)
+        assert list(a) == range(100, 400, 100)
diff --git a/pypy/module/cpyext/test/test_typeobject.py 
b/pypy/module/cpyext/test/test_typeobject.py
--- a/pypy/module/cpyext/test/test_typeobject.py
+++ b/pypy/module/cpyext/test/test_typeobject.py
@@ -1221,3 +1221,25 @@
             pass
         bases = module.foo(C)
         assert bases == (A, B)
+
+    def test_multiple_inheritance_old_style_base(self):
+        module = self.import_extension('foo', [
+           ("foo", "METH_O",
+            '''
+                PyTypeObject *tp;
+                tp = (PyTypeObject*)args;
+                Py_INCREF(tp->tp_bases);
+                return tp->tp_bases;
+            '''
+            )])
+        # used to segfault after some iterations
+        for i in range(11):
+            print i
+            class A(object):
+                pass
+            class B:
+                pass
+            class C(A, B):
+                pass
+            bases = module.foo(C)
+            assert bases == (A, B)
diff --git a/pypy/module/cpyext/test/test_userslots.py 
b/pypy/module/cpyext/test/test_userslots.py
--- a/pypy/module/cpyext/test/test_userslots.py
+++ b/pypy/module/cpyext/test/test_userslots.py
@@ -160,8 +160,9 @@
                 };
             ''', more_init='''
                 PyObject * mod = PyImport_ImportModule("datetime");
+                PyObject * dt;
                 if (mod == NULL) INITERROR;
-                PyObject * dt = PyString_FromString("datetime");
+                dt = PyString_FromString("datetime");
                 datetime_cls = (PyTypeObject*)PyObject_GetAttr(mod, dt); 
                 if (datetime_cls == NULL) INITERROR;
                 _Timestamp.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE;
diff --git a/pypy/module/cpyext/typeobject.py b/pypy/module/cpyext/typeobject.py
--- a/pypy/module/cpyext/typeobject.py
+++ b/pypy/module/cpyext/typeobject.py
@@ -418,8 +418,8 @@
 
 def inherit_special(space, pto, base_pto):
     # XXX missing: copy basicsize and flags in a magical way
-    # (minimally, if tp_basicsize is zero we copy it from the base)
-    if not pto.c_tp_basicsize:
+    # (minimally, if tp_basicsize is zero or too low, we copy it from the base)
+    if pto.c_tp_basicsize < base_pto.c_tp_basicsize:
         pto.c_tp_basicsize = base_pto.c_tp_basicsize
     if pto.c_tp_itemsize < base_pto.c_tp_itemsize:
         pto.c_tp_itemsize = base_pto.c_tp_itemsize
@@ -931,7 +931,10 @@
     if base:
         inherit_special(space, pto, base)
     for w_base in space.fixedview(from_ref(space, pto.c_tp_bases)):
-        inherit_slots(space, pto, w_base)
+        if isinstance(w_base, W_TypeObject):
+            inherit_slots(space, pto, w_base)
+        #else:
+        #   w_base is a W_ClassObject, ignore it
 
     if not pto.c_tp_setattro:
         from pypy.module.cpyext.object import PyObject_GenericSetAttr
diff --git a/pypy/module/sys/version.py b/pypy/module/sys/version.py
--- a/pypy/module/sys/version.py
+++ b/pypy/module/sys/version.py
@@ -10,7 +10,7 @@
 #XXX # sync CPYTHON_VERSION with patchlevel.h, package.py
 CPYTHON_API_VERSION        = 1013   #XXX # sync with include/modsupport.h
 
-PYPY_VERSION               = (5, 7, 0, "alpha", 0)    #XXX # sync patchlevel.h
+PYPY_VERSION               = (5, 8, 0, "alpha", 0)    #XXX # sync patchlevel.h
 
 
 import pypy
diff --git a/pypy/module/test_lib_pypy/cffi_tests/cffi0/test_parsing.py 
b/pypy/module/test_lib_pypy/cffi_tests/cffi0/test_parsing.py
--- a/pypy/module/test_lib_pypy/cffi_tests/cffi0/test_parsing.py
+++ b/pypy/module/test_lib_pypy/cffi_tests/cffi0/test_parsing.py
@@ -387,13 +387,14 @@
 def test_enum():
     ffi = FFI()
     ffi.cdef("""
-        enum Enum { POS = +1, TWO = 2, NIL = 0, NEG = -1};
+        enum Enum { POS = +1, TWO = 2, NIL = 0, NEG = -1, OP = (POS+TWO)-1};
         """)
     C = ffi.dlopen(None)
     assert C.POS == 1
     assert C.TWO == 2
     assert C.NIL == 0
     assert C.NEG == -1
+    assert C.OP == 2
 
 def test_stdcall():
     ffi = FFI()
diff --git a/rpython/jit/backend/x86/assembler.py 
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -349,15 +349,12 @@
         #
         mc.MOV(eax, heap(self.cpu.pos_exception()))
         mc.TEST_rr(eax.value, eax.value)
-        mc.J_il8(rx86.Conditions['NZ'], 0)
-        jnz_location = mc.get_relative_pos()
+        jnz_location = mc.emit_forward_jump('NZ')
         #
         mc.RET()
         #
         # patch the JNZ above
-        offset = mc.get_relative_pos() - jnz_location
-        assert 0 < offset <= 127
-        mc.overwrite(jnz_location-1, chr(offset))
+        mc.patch_forward_jump(jnz_location)
         # From now on this function is basically "merged" with
         # its caller and so contains DEFAULT_FRAME_BYTES bytes
         # plus my own return address, which we'll ignore next
@@ -834,16 +831,13 @@
         ofs = self.cpu.unpack_fielddescr(descrs.arraydescr.lendescr)
         mc.CMP_bi(ofs, 0xffffff)     # force writing 32 bit
         stack_check_cmp_ofs = mc.get_relative_pos() - 4
-        mc.J_il8(rx86.Conditions['GE'], 0)
-        jg_location = mc.get_relative_pos()
+        jg_location = mc.emit_forward_jump('GE')
         mc.MOV_si(WORD, 0xffffff)     # force writing 32 bit
         ofs2 = mc.get_relative_pos() - 4
         self.push_gcmap(mc, gcmap, store=True)
         mc.CALL(imm(self._frame_realloc_slowpath))
         # patch the JG above
-        offset = mc.get_relative_pos() - jg_location
-        assert 0 < offset <= 127
-        mc.overwrite(jg_location-1, chr(offset))
+        mc.patch_forward_jump(jg_location)
         self.frame_depth_to_patch.append(stack_check_cmp_ofs)
         self.frame_depth_to_patch.append(ofs2)
 
@@ -857,16 +851,13 @@
         ofs = self.cpu.unpack_fielddescr(descrs.arraydescr.lendescr)
         mc.CMP_bi(ofs, 0xffffff)
         stack_check_cmp_ofs = mc.get_relative_pos() - 4
-        mc.J_il8(rx86.Conditions['GE'], 0)
-        jg_location = mc.get_relative_pos()
+        jg_location = mc.emit_forward_jump('GE')
         mc.MOV_rr(edi.value, ebp.value)
         mc.MOV_ri(esi.value, 0xffffff)
         ofs2 = mc.get_relative_pos() - 4
         mc.CALL(imm(self.cpu.realloc_frame_crash))
         # patch the JG above
-        offset = mc.get_relative_pos() - jg_location
-        assert 0 < offset <= 127
-        mc.overwrite(jg_location-1, chr(offset))
+        mc.patch_forward_jump(jg_location)
         self.frame_depth_to_patch.append(stack_check_cmp_ofs)
         self.frame_depth_to_patch.append(ofs2)
 
@@ -1002,13 +993,10 @@
             self.mc.MOV(eax, heap(endaddr))             # MOV eax, [start]
             self.mc.SUB(eax, esp)                       # SUB eax, current
             self.mc.CMP(eax, heap(lengthaddr))          # CMP eax, [length]
-            self.mc.J_il8(rx86.Conditions['BE'], 0)     # JBE .skip
-            jb_location = self.mc.get_relative_pos()
+            jb_location = self.mc.emit_forward_jump('BE')#JBE .skip
             self.mc.CALL(imm(self.stack_check_slowpath))# CALL slowpath
             # patch the JB above                        # .skip:
-            offset = self.mc.get_relative_pos() - jb_location
-            assert 0 < offset <= 127
-            self.mc.overwrite(jb_location-1, chr(offset))
+            self.mc.patch_forward_jump(jb_location)
             #
 
     def _call_footer(self):
@@ -1242,15 +1230,12 @@
         return genop_cmp
 
     def _if_parity_clear_zero_and_carry(self):
-        self.mc.J_il8(rx86.Conditions['NP'], 0)
-        jnp_location = self.mc.get_relative_pos()
+        jnp_location = self.mc.emit_forward_jump('NP')
         # CMP EBP, 0: as EBP cannot be null here, that operation should
         # always clear zero and carry
         self.mc.CMP_ri(ebp.value, 0)
         # patch the JNP above
-        offset = self.mc.get_relative_pos() - jnp_location
-        assert 0 < offset <= 127
-        self.mc.overwrite(jnp_location-1, chr(offset))
+        self.mc.patch_forward_jump(jnp_location)
 
     def _cmpop_float(cond, rev_cond):
         is_ne           = cond == 'NE'
@@ -1728,10 +1713,11 @@
         # jump to jump over this GUARD_NO_EXCEPTION as well, if we can
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to