[pypy-commit] pypy reverse-debugger: hg merge default

2018-05-23 Thread arigo
Author: Armin Rigo 
Branch: reverse-debugger
Changeset: r94653:dd287c100ac7
Date: 2018-05-23 16:12 +0200
http://bitbucket.org/pypy/pypy/changeset/dd287c100ac7/

Log:hg merge default

diff too long, truncating to 2000 out of 4168 lines

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -56,3 +56,5 @@
  release-pypy3.5-v5.10.0
 09f9160b643e3f02ccb8c843b2fbb4e5cbf54082 release-pypy3.5-v5.10.0
 3f6eaa010fce78cc7973bdc1dfdb95970f08fed2 release-pypy3.5-v5.10.1
+ab0b9caf307db6592905a80b8faffd69b39005b8 release-pypy2.7-v6.0.0
+fdd60ed87e941677e8ea11acf9f1819466521bf2 release-pypy3.5-v6.0.0
diff --git a/dotviewer/font/NOTICE b/dotviewer/font/COPYING.txt
rename from dotviewer/font/NOTICE
rename to dotviewer/font/COPYING.txt
diff --git a/lib_pypy/_ctypes/array.py b/lib_pypy/_ctypes/array.py
--- a/lib_pypy/_ctypes/array.py
+++ b/lib_pypy/_ctypes/array.py
@@ -82,8 +82,11 @@
 def _CData_output(self, resarray, base=None, index=-1):
 from _rawffi.alt import types
 # If a char_p or unichar_p is received, skip the string interpretation
-if base._ffiargtype != types.Pointer(types.char_p) and \
-   base._ffiargtype != types.Pointer(types.unichar_p):
+try:
+deref = type(base)._deref_ffiargtype()
+except AttributeError:
+deref = None
+if deref != types.char_p and deref != types.unichar_p:
 # this seems to be a string if we're array of char, surprise!
 from ctypes import c_char, c_wchar
 if self._type_ is c_char:
@@ -120,6 +123,12 @@
 value = self(*value)
 return _CDataMeta.from_param(self, value)
 
+def _build_ffiargtype(self):
+return _ffi.types.Pointer(self._type_.get_ffi_argtype())
+
+def _deref_ffiargtype(self):
+return self._type_.get_ffi_argtype()
+
 def array_get_slice_params(self, index):
 if hasattr(self, '_length_'):
 start, stop, step = index.indices(self._length_)
@@ -248,6 +257,5 @@
 _type_ = base
 )
 cls = ArrayMeta(name, (Array,), tpdict)
-cls._ffiargtype = _ffi.types.Pointer(base.get_ffi_argtype())
 ARRAY_CACHE[key] = cls
 return cls
diff --git a/lib_pypy/_ctypes/basics.py b/lib_pypy/_ctypes/basics.py
--- a/lib_pypy/_ctypes/basics.py
+++ b/lib_pypy/_ctypes/basics.py
@@ -49,10 +49,13 @@
 else:
 return self.from_param(as_parameter)
 
+def _build_ffiargtype(self):
+return _shape_to_ffi_type(self._ffiargshape_)
+
 def get_ffi_argtype(self):
 if self._ffiargtype:
 return self._ffiargtype
-self._ffiargtype = _shape_to_ffi_type(self._ffiargshape_)
+self._ffiargtype = self._build_ffiargtype()
 return self._ffiargtype
 
 def _CData_output(self, resbuffer, base=None, index=-1):
diff --git a/lib_pypy/_ctypes/pointer.py b/lib_pypy/_ctypes/pointer.py
--- a/lib_pypy/_ctypes/pointer.py
+++ b/lib_pypy/_ctypes/pointer.py
@@ -70,7 +70,12 @@
 self._ffiarray = ffiarray
 self.__init__ = __init__
 self._type_ = TP
-self._ffiargtype = _ffi.types.Pointer(TP.get_ffi_argtype())
+
+def _build_ffiargtype(self):
+return _ffi.types.Pointer(self._type_.get_ffi_argtype())
+
+def _deref_ffiargtype(self):
+return self._type_.get_ffi_argtype()
 
 from_address = cdata_from_address
 
diff --git a/lib_pypy/_ctypes/structure.py b/lib_pypy/_ctypes/structure.py
--- a/lib_pypy/_ctypes/structure.py
+++ b/lib_pypy/_ctypes/structure.py
@@ -160,6 +160,10 @@
 raise AttributeError("_fields_ is final")
 if self in [f[1] for f in value]:
 raise AttributeError("Structure or union cannot contain itself")
+if self._ffiargtype is not None:
+raise NotImplementedError("Too late to set _fields_: we already "
+"said to libffi that the structure type %s is opaque"
+% (self,))
 names_and_fields(
 self,
 value, self.__bases__[0],
diff --git a/pypy/doc/architecture.rst b/pypy/doc/architecture.rst
--- a/pypy/doc/architecture.rst
+++ b/pypy/doc/architecture.rst
@@ -73,3 +73,63 @@
 This division between bytecode evaluator and object space gives a lot of
 flexibility.  One can plug in different :doc:`object spaces ` to get
 different or enriched behaviours of the Python objects.
+
+Layers
+--
+
+RPython
+~~~
+:ref:`RPython ` is the language in which we write 
interpreters.
+Not the entire PyPy project is written in RPython, only the parts that are
+compiled in the translation process. The interesting point is that RPython
+has no parser, it's compiled from the live python objects, which makes it
+possible to do all kinds of metaprogramming during import time. In short,
+Python is a meta programming language for RPython.
+
+The RPython standard library is to be found in the ``rlib`` subdirectory.
+

[pypy-commit] pypy reverse-debugger: hg merge default

2016-09-07 Thread arigo
Author: Armin Rigo 
Branch: reverse-debugger
Changeset: r86927:b13abdc2e1b3
Date: 2016-09-07 14:43 +0200
http://bitbucket.org/pypy/pypy/changeset/b13abdc2e1b3/

Log:hg merge default

diff too long, truncating to 2000 out of 212749 lines

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -27,3 +27,9 @@
 40497617ae91caa1a394d8be6f9cd2de31cb0628 release-pypy3.3-v5.2
 c09c19272c990a0611b17569a0085ad1ab00c8ff release-pypy2.7-v5.3
 7e8df3df96417c16c2d55b41352ec82c9c69c978 release-pypy2.7-v5.3.1
+68bb3510d8212ae9efb687e12e58c09d29e74f87 release-pypy2.7-v5.4.0
+68bb3510d8212ae9efb687e12e58c09d29e74f87 release-pypy2.7-v5.4.0
+77392ad263504df011ccfcabf6a62e21d04086d0 release-pypy2.7-v5.4.0
+050d84dd78997f021acf0e133934275d63547cc0 release-pypy2.7-v5.4.1
+050d84dd78997f021acf0e133934275d63547cc0 release-pypy2.7-v5.4.1
+0e2d9a73f5a1818d0245d75daccdbe21b2d5c3ef release-pypy2.7-v5.4.1
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -74,6 +74,7 @@
   Seo Sanghyeon
   Ronny Pfannschmidt
   Justin Peel
+  Raffael Tfirst
   David Edelsohn
   Anders Hammarquist
   Jakub Gustak
@@ -117,7 +118,6 @@
   Wenzhu Man
   John Witulski
   Laurence Tratt
-  Raffael Tfirst
   Ivan Sichmann Freitas
   Greg Price
   Dario Bertini
@@ -141,6 +141,7 @@
   tav
   Taavi Burns
   Georg Brandl
+  Nicolas Truessel
   Bert Freudenberg
   Stian Andreassen
   Wanja Saatkamp
@@ -211,6 +212,7 @@
   Vaibhav Sood
   Alan McIntyre
   Alexander Sedov
+  p_ziesch...@yahoo.de
   Attila Gobi
   Jasper.Schulz
   Christopher Pope
@@ -221,6 +223,7 @@
   Arjun Naik
   Valentina Mukhamedzhanova
   Stefano Parmesan
+  touilleMan
   Alexis Daboville
   Jens-Uwe Mager
   Carl Meyer
@@ -229,12 +232,14 @@
   Gabriel
   Lukas Vacek
   Kunal Grover
+  Aaron Gallagher
   Andrew Dalke
   Sylvain Thenault
   Jakub Stasiak
   Nathan Taylor
   Vladimir Kryachko
   Omer Katz
+  Mark Williams
   Jacek Generowicz
   Alejandro J. Cura
   Jacob Oscarson
@@ -355,12 +360,15 @@
   yasirs
   Michael Chermside
   Anna Ravencroft
+  pizi
   Andrey Churin
   Dan Crosta
+  Eli Stevens
   Tobias Diaz
   Julien Phalip
   Roman Podoliaka
   Dan Loewenherz
+  werat
 
   Heinrich-Heine University, Germany 
   Open End AB (formerly AB Strakt), Sweden
diff --git a/_pytest/python.py b/_pytest/python.py
--- a/_pytest/python.py
+++ b/_pytest/python.py
@@ -498,7 +498,10 @@
 """ Collector for test methods. """
 def collect(self):
 if hasinit(self.obj):
-pytest.skip("class %s.%s with __init__ won't get collected" % (
+# XXX used to be skip(), but silently skipping classes
+# XXX just because they have been written long ago is
+# XXX imho a very, very, very bad idea
+pytest.fail("class %s.%s with __init__ won't get collected" % (
 self.obj.__module__,
 self.obj.__name__,
 ))
diff --git a/lib-python/2.7/distutils/sysconfig_pypy.py 
b/lib-python/2.7/distutils/sysconfig_pypy.py
--- a/lib-python/2.7/distutils/sysconfig_pypy.py
+++ b/lib-python/2.7/distutils/sysconfig_pypy.py
@@ -122,22 +122,24 @@
 """Dummy method to let some easy_install packages that have
 optional C speedup components.
 """
+def customize(executable, flags):
+command = compiler.executables[executable] + flags
+setattr(compiler, executable, command)
+
 if compiler.compiler_type == "unix":
 compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
 compiler.shared_lib_extension = get_config_var('SO')
 if "CPPFLAGS" in os.environ:
 cppflags = shlex.split(os.environ["CPPFLAGS"])
-compiler.compiler.extend(cppflags)
-compiler.compiler_so.extend(cppflags)
-compiler.linker_so.extend(cppflags)
+for executable in ('compiler', 'compiler_so', 'linker_so'):
+customize(executable, cppflags)
 if "CFLAGS" in os.environ:
 cflags = shlex.split(os.environ["CFLAGS"])
-compiler.compiler.extend(cflags)
-compiler.compiler_so.extend(cflags)
-compiler.linker_so.extend(cflags)
+for executable in ('compiler', 'compiler_so', 'linker_so'):
+customize(executable, cflags)
 if "LDFLAGS" in os.environ:
 ldflags = shlex.split(os.environ["LDFLAGS"])
-compiler.linker_so.extend(ldflags)
+customize('linker_so', ldflags)
 
 
 from sysconfig_cpython import (
diff --git a/lib_pypy/_ctypes/function.py b/lib_pypy/_ctypes/function.py
--- a/lib_pypy/_ctypes/function.py
+++ b/lib_pypy/_ctypes/function.py
@@ -342,7 +342,7 @@
 thisarg = cast(thisvalue, POINTER(POINTER(c_void_p)))
 keepalives, newargs, argtypes, outargs, errcheckargs = (
 self._convert_args(argtypes, args[1:], kwargs))
-newargs.insert(0, thisvalue.value)
+newargs.insert(0, thisarg)
 argtypes.insert(0, c_void_p)
  

[pypy-commit] pypy reverse-debugger: hg merge default

2016-08-24 Thread arigo
Author: Armin Rigo 
Branch: reverse-debugger
Changeset: r86505:670d925b3853
Date: 2016-08-24 19:06 +0200
http://bitbucket.org/pypy/pypy/changeset/670d925b3853/

Log:hg merge default

diff too long, truncating to 2000 out of 15666 lines

diff --git a/dotviewer/graphparse.py b/dotviewer/graphparse.py
--- a/dotviewer/graphparse.py
+++ b/dotviewer/graphparse.py
@@ -85,10 +85,11 @@
 pass
 
 def splitline(line, re_word = re.compile(r'[^\s"]\S*|["]["]|["].*?[^\\]["]')):
+import ast
 result = []
 for word in re_word.findall(line):
 if word.startswith('"'):
-word = eval(word)
+word = ast.literal_eval(word)
 result.append(word)
 return result
 
diff --git a/include/PyPy.h b/include/PyPy.h
--- a/include/PyPy.h
+++ b/include/PyPy.h
@@ -2,7 +2,11 @@
 #define _PYPY_H_
 
 /* This header is meant to be included in programs that use PyPy as an
-   embedded library. */
+   embedded library.
+
+   NOTE: this is deprecated.  Instead, use cffi's embedding support:
+   http://cffi.readthedocs.org/en/latest/embedding.html
+*/
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/lib-python/2.7/test/test_hash.py b/lib-python/2.7/test/test_hash.py
--- a/lib-python/2.7/test/test_hash.py
+++ b/lib-python/2.7/test/test_hash.py
@@ -174,7 +174,7 @@
 
 class StringlikeHashRandomizationTests(HashRandomizationTests):
 if check_impl_detail(pypy=True):
-EMPTY_STRING_HASH = -1
+EMPTY_STRING_HASH = -2
 else:
 EMPTY_STRING_HASH = 0
 
diff --git a/lib_pypy/_ctypes/basics.py b/lib_pypy/_ctypes/basics.py
--- a/lib_pypy/_ctypes/basics.py
+++ b/lib_pypy/_ctypes/basics.py
@@ -167,7 +167,7 @@
 else:
 return self.value
 
-def __buffer__(self):
+def __buffer__(self, flags):
 return buffer(self._buffer)
 
 def _get_b_base(self):
@@ -199,10 +199,13 @@
 return tp._alignmentofinstances()
 
 @builtinify
-def byref(cdata):
+def byref(cdata, offset=0):
 # "pointer" is imported at the end of this module to avoid circular
 # imports
-return pointer(cdata)
+ptr = pointer(cdata)
+if offset != 0:
+ptr._buffer[0] += offset
+return ptr
 
 def cdata_from_address(self, address):
 # fix the address: turn it into as unsigned, in case it's a negative number
diff --git a/lib_pypy/_pypy_winbase_build.py b/lib_pypy/_pypy_winbase_build.py
new file mode 100644
--- /dev/null
+++ b/lib_pypy/_pypy_winbase_build.py
@@ -0,0 +1,91 @@
+# Note: uses the CFFI out-of-line ABI mode.  We can't use the API
+# mode because ffi.compile() needs to run the compiler, which
+# needs 'subprocess', which needs 'msvcrt' and '_subprocess',
+# which depend on '_pypy_winbase_cffi' already.
+#
+# Note that if you need to regenerate _pypy_winbase_cffi and
+# can't use a preexisting PyPy to do that, then running this
+# file should work as long as 'subprocess' is not imported
+# by cffi.  I had to hack in 'cffi._pycparser' to move an
+#'import subprocess' to the inside of a function.  (Also,
+# CPython+CFFI should work as well.)
+#
+# This module supports both msvcrt.py and _subprocess.py.
+
+from cffi import FFI
+
+ffi = FFI()
+
+ffi.set_source("_pypy_winbase_cffi", None)
+
+# -- MSVCRT --
+
+ffi.cdef("""
+typedef unsigned short wint_t;
+
+int _open_osfhandle(intptr_t osfhandle, int flags);
+intptr_t _get_osfhandle(int fd);
+int _setmode(int fd, int mode);
+int _locking(int fd, int mode, long nbytes);
+
+int _kbhit(void);
+int _getch(void);
+wint_t _getwch(void);
+int _getche(void);
+wint_t _getwche(void);
+int _putch(int);
+wint_t _putwch(wchar_t);
+int _ungetch(int);
+wint_t _ungetwch(wint_t);
+""")
+
+# -- SUBPROCESS --
+
+ffi.cdef("""
+typedef struct {
+DWORD  cb;
+char * lpReserved;
+char * lpDesktop;
+char * lpTitle;
+DWORD  dwX;
+DWORD  dwY;
+DWORD  dwXSize;
+DWORD  dwYSize;
+DWORD  dwXCountChars;
+DWORD  dwYCountChars;
+DWORD  dwFillAttribute;
+DWORD  dwFlags;
+WORD   wShowWindow;
+WORD   cbReserved2;
+LPBYTE lpReserved2;
+HANDLE hStdInput;
+HANDLE hStdOutput;
+HANDLE hStdError;
+} STARTUPINFO, *LPSTARTUPINFO;
+
+typedef struct {
+HANDLE hProcess;
+HANDLE hThread;
+DWORD  dwProcessId;
+DWORD  dwThreadId;
+} PROCESS_INFORMATION, *LPPROCESS_INFORMATION;
+
+DWORD WINAPI GetVersion(void);
+BOOL WINAPI CreatePipe(PHANDLE, PHANDLE, void *, DWORD);
+BOOL WINAPI CloseHandle(HANDLE);
+HANDLE WINAPI GetCurrentProcess(void);
+BOOL WINAPI DuplicateHandle(HANDLE, HANDLE, HANDLE, LPHANDLE,
+DWORD, BOOL, DWORD);
+BOOL WINAPI CreateProcessA(char *, char *, void *,
+   void *, BOOL, DWORD, char *,
+   char *, LPSTARTUPINFO, LPPROCESS_INFORMATION);
+DWORD WINAPI WaitForSingleObject(HANDLE, DWORD);
+BOOL WINAPI GetExitCodeProcess(HANDLE, LPDWORD);
+BOOL WINAPI TerminateProcess(HANDLE, UINT);
+HANDLE WINAPI GetStdHandle(DWORD);
+""")
+

[pypy-commit] pypy reverse-debugger: hg merge default

2016-07-01 Thread arigo
Author: Armin Rigo 
Branch: reverse-debugger
Changeset: r85508:496ddf1997fe
Date: 2016-07-01 23:33 +0200
http://bitbucket.org/pypy/pypy/changeset/496ddf1997fe/

Log:hg merge default

diff --git a/rpython/translator/tool/make_dot.py 
b/rpython/translator/tool/make_dot.py
--- a/rpython/translator/tool/make_dot.py
+++ b/rpython/translator/tool/make_dot.py
@@ -51,7 +51,7 @@
   ports=None,
   ):
 d = locals()
-attrs = [('%s="%s"' % (x, _quote(d[x])))
+attrs = [('%s="%s"' % (x, d[x].replace('"', '\\"').replace('\n', 
'\\n')))
  for x in ['label', 'style', 'color', 'dir', 'weight']]
 self.emit('edge [%s];' % ", ".join(attrs))
 if ports:
@@ -69,7 +69,7 @@
   width="0.75",
   ):
 d = locals()
-attrs = [('%s="%s"' % (x, _quote(d[x])))
+attrs = [('%s="%s"' % (x, d[x].replace('"', '\\"').replace('\n', 
'\\n')))
  for x in ['shape', 'label', 'color', 'fillcolor', 'style', 
'width']]
 self.emit('%s [%s];' % (safename(name), ", ".join(attrs)))
 
@@ -193,7 +193,7 @@
 name2 = self.blockname(link.target)
 label = " ".join(map(repr, link.args))
 if link.exitcase is not None:
-label = "%s: %s" %(_quote(repr(link.exitcase)), label)
+label = "%s: %s" %(repr(link.exitcase).replace('\\', ''), 
label)
 self.emit_edge(name, name2, label, style="dotted", color="red")
 else:
 self.emit_edge(name, name2, label, style="solid")
@@ -237,6 +237,3 @@
 # not a keyword
 name = ''.join([CHAR_MAP[c] for c in name])
 return '_' + name
-
-def _quote(s):
-return s.replace('\\', '').replace('"', '\\"').replace('\n', '\\n')
___
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit


[pypy-commit] pypy reverse-debugger: hg merge default

2016-07-01 Thread arigo
Author: Armin Rigo 
Branch: reverse-debugger
Changeset: r85500:600dfa2a7206
Date: 2016-07-01 19:38 +0200
http://bitbucket.org/pypy/pypy/changeset/600dfa2a7206/

Log:hg merge default

diff too long, truncating to 2000 out of 4923 lines

diff --git a/lib_pypy/datetime.py b/lib_pypy/datetime.py
--- a/lib_pypy/datetime.py
+++ b/lib_pypy/datetime.py
@@ -839,7 +839,7 @@
 month = self._month
 if day is None:
 day = self._day
-return date(year, month, day)
+return date.__new__(type(self), year, month, day)
 
 # Comparisons of date objects with other.
 
@@ -1356,7 +1356,8 @@
 microsecond = self.microsecond
 if tzinfo is True:
 tzinfo = self.tzinfo
-return time(hour, minute, second, microsecond, tzinfo)
+return time.__new__(type(self),
+hour, minute, second, microsecond, tzinfo)
 
 def __nonzero__(self):
 if self.second or self.microsecond:
@@ -1566,8 +1567,9 @@
 microsecond = self.microsecond
 if tzinfo is True:
 tzinfo = self.tzinfo
-return datetime(year, month, day, hour, minute, second, microsecond,
-tzinfo)
+return datetime.__new__(type(self),
+year, month, day, hour, minute, second,
+microsecond, tzinfo)
 
 def astimezone(self, tz):
 if not isinstance(tz, tzinfo):
diff --git a/pypy/doc/config/commandline.txt b/pypy/doc/config/commandline.txt
--- a/pypy/doc/config/commandline.txt
+++ b/pypy/doc/config/commandline.txt
@@ -9,7 +9,7 @@
 PyPy Python interpreter options
 ---
 
-The following options can be used after ``translate.py
+The following options can be used after ``rpython
 targetpypystandalone`` or as options to ``py.py``.
 
 .. GENERATE: objspace
@@ -22,7 +22,7 @@
 General translation options
 ---
 
-The following are options of ``translate.py``.  They must be
+The following are options of ``bin/rpython``.  They must be
 given before the ``targetxxx`` on the command line.
 
 * `--opt -O:`__ set the optimization level `[0, 1, size, mem, 2, 3]`
diff --git a/pypy/doc/config/index.rst b/pypy/doc/config/index.rst
--- a/pypy/doc/config/index.rst
+++ b/pypy/doc/config/index.rst
@@ -15,12 +15,12 @@
 
 ./py.py <`objspace options`_>
 
-and the ``translate.py`` translation entry
+and the ``rpython/bin/rpython`` translation entry
 point which takes arguments of this form:
 
 .. parsed-literal::
 
-./translate.py <`translation options`_> 
+./rpython/bin/rpython <`translation options`_> 
 
 For the common case of  being ``targetpypystandalone.py``,
 you can then pass the `object space options`_ after
@@ -28,7 +28,7 @@
 
 .. parsed-literal::
 
-./translate.py <`translation options`_> targetpypystandalone.py <`objspace 
options`_>
+./rpython/bin/rpython <`translation options`_> targetpypystandalone.py 
<`objspace options`_>
 
 There is an `overview`_ of all command line arguments that can be
 passed in either position.
diff --git a/pypy/doc/config/opt.rst b/pypy/doc/config/opt.rst
--- a/pypy/doc/config/opt.rst
+++ b/pypy/doc/config/opt.rst
@@ -4,8 +4,8 @@
 This meta-option selects a default set of optimization
 settings to use during a translation.  Usage::
 
-translate.py --opt=#
-translate.py -O#
+bin/rpython --opt=#
+bin/rpython -O#
 
 where ``#`` is the desired optimization level.  The valid choices are:
 
diff --git a/pypy/doc/config/translation.dont_write_c_files.txt 
b/pypy/doc/config/translation.dont_write_c_files.txt
--- a/pypy/doc/config/translation.dont_write_c_files.txt
+++ b/pypy/doc/config/translation.dont_write_c_files.txt
@@ -1,4 +1,4 @@
 write the generated C files to ``/dev/null`` instead of to the disk. Useful if
-you want to use translate.py as a benchmark and don't want to access the disk.
+you want to use translation as a benchmark and don't want to access the disk.
 
 .. _`translation documentation`: ../translation.html
diff --git a/pypy/doc/config/translation.fork_before.txt 
b/pypy/doc/config/translation.fork_before.txt
--- a/pypy/doc/config/translation.fork_before.txt
+++ b/pypy/doc/config/translation.fork_before.txt
@@ -1,4 +1,4 @@
 This is an option mostly useful when working on the PyPy toolchain. If you use
-it, translate.py will fork before the specified phase. If the translation
+it, translation will fork before the specified phase. If the translation
 crashes after that fork, you can fix the bug in the toolchain, and continue
 translation at the fork-point.
diff --git a/pypy/doc/cppyy.rst b/pypy/doc/cppyy.rst
--- a/pypy/doc/cppyy.rst
+++ b/pypy/doc/cppyy.rst
@@ -122,7 +122,7 @@
 $ hg up reflex-support # optional
 
 # This example shows python, but using pypy-c is faster and uses less 
memory
-$ python rpython/translator/goal/translate.py --opt=jit 

[pypy-commit] pypy reverse-debugger: hg merge default

2016-06-27 Thread arigo
Author: Armin Rigo 
Branch: reverse-debugger
Changeset: r85394:b32e244515cd
Date: 2016-06-27 11:07 +0200
http://bitbucket.org/pypy/pypy/changeset/b32e244515cd/

Log:hg merge default

diff too long, truncating to 2000 out of 3264 lines

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -26,3 +26,4 @@
 40497617ae91caa1a394d8be6f9cd2de31cb0628 release-pypy3.3-v5.2
 40497617ae91caa1a394d8be6f9cd2de31cb0628 release-pypy3.3-v5.2
 c09c19272c990a0611b17569a0085ad1ab00c8ff release-pypy2.7-v5.3
+7e8df3df96417c16c2d55b41352ec82c9c69c978 release-pypy2.7-v5.3.1
diff --git a/lib_pypy/greenlet.egg-info b/lib_pypy/greenlet.egg-info
--- a/lib_pypy/greenlet.egg-info
+++ b/lib_pypy/greenlet.egg-info
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: greenlet
-Version: 0.4.9
+Version: 0.4.10
 Summary: Lightweight in-process concurrent programming
 Home-page: https://github.com/python-greenlet/greenlet
 Author: Ralf Schmitt (for CPython), PyPy team
diff --git a/lib_pypy/greenlet.py b/lib_pypy/greenlet.py
--- a/lib_pypy/greenlet.py
+++ b/lib_pypy/greenlet.py
@@ -1,7 +1,7 @@
 import sys
 import _continuation
 
-__version__ = "0.4.9"
+__version__ = "0.4.10"
 
 # 
 # Exceptions
diff --git a/pypy/doc/cpython_differences.rst b/pypy/doc/cpython_differences.rst
--- a/pypy/doc/cpython_differences.rst
+++ b/pypy/doc/cpython_differences.rst
@@ -315,13 +315,28 @@
 
  - ``complex``
 
+ - ``str`` (empty or single-character strings only)
+
+ - ``unicode`` (empty or single-character strings only)
+
+ - ``tuple`` (empty tuples only)
+
+ - ``frozenset`` (empty frozenset only)
+
 This change requires some changes to ``id`` as well. ``id`` fulfills the
 following condition: ``x is y <=> id(x) == id(y)``. Therefore ``id`` of the
 above types will return a value that is computed from the argument, and can
 thus be larger than ``sys.maxint`` (i.e. it can be an arbitrary long).
 
-Notably missing from the list above are ``str`` and ``unicode``.  If your
-code relies on comparing strings with ``is``, then it might break in PyPy.
+Note that strings of length 2 or greater can be equal without being
+identical.  Similarly, ``x is (2,)`` is not necessarily true even if
+``x`` contains a tuple and ``x == (2,)``.  The uniqueness rules apply
+only to the particular cases described above.  The ``str``, ``unicode``,
+``tuple`` and ``frozenset`` rules were added in PyPy 5.4; before that, a
+test like ``if x is "?"`` or ``if x is ()`` could fail even if ``x`` was
+equal to ``"?"`` or ``()``.  The new behavior added in PyPy 5.4 is
+closer to CPython's, which caches precisely the empty tuple/frozenset,
+and (generally but not always) the strings and unicodes of length <= 1.
 
 Note that for floats there "``is``" only one object per "bit pattern"
 of the float.  So ``float('nan') is float('nan')`` is true on PyPy,
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.1.rst
release-pypy2.7-v5.3.0.rst
release-5.1.1.rst
release-5.1.0.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.1.rst
whatsnew-pypy2-5.3.0.rst
whatsnew-5.1.0.rst
whatsnew-5.0.0.rst
diff --git a/pypy/doc/release-pypy2.7-v5.3.1.rst 
b/pypy/doc/release-pypy2.7-v5.3.1.rst
new file mode 100644
--- /dev/null
+++ b/pypy/doc/release-pypy2.7-v5.3.1.rst
@@ -0,0 +1,41 @@
+==
+PyPy 5.3.1
+==
+
+We have released a bugfix for PyPy2.7-v5.3.0, released last week,
+due to issues_ reported by users.
+
+Thanks to those who reported the issues.
+
+.. _issues: http://doc.pypy.org/en/latest/whatsnew-pypy2-5.3.1.html
+
+What is PyPy?
+=
+
+PyPy is a very compliant Python interpreter, almost a drop-in replacement for
+CPython 2.7. 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, Mac OS X 64, Windows 32, 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://pypyjs.org
+
+Please update, and continue to help us make PyPy better.
+
+Cheers
+
+The PyPy Team
+
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,10 +1,14 @@
-=
+==
 

[pypy-commit] pypy reverse-debugger: hg merge default

2016-06-13 Thread arigo
Author: Armin Rigo 
Branch: reverse-debugger
Changeset: r85122:ea07e83296cd
Date: 2016-06-13 11:59 +0200
http://bitbucket.org/pypy/pypy/changeset/ea07e83296cd/

Log:hg merge default

diff too long, truncating to 2000 out of 4843 lines

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -25,3 +25,4 @@
 80ef432a32d9baa4b3c5a54c215e8ebe499f6374 release-5.1.2
 40497617ae91caa1a394d8be6f9cd2de31cb0628 release-pypy3.3-v5.2
 40497617ae91caa1a394d8be6f9cd2de31cb0628 release-pypy3.3-v5.2
+c09c19272c990a0611b17569a0085ad1ab00c8ff release-pypy2.7-v5.3
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 Sthrk
+  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
-  t...@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 Gaczyski
   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) {