[pypy-commit] pypy guard-compatible: avoid interaction with other usages of random.random()

2017-02-08 Thread arigo
Author: Armin Rigo 
Branch: guard-compatible
Changeset: r90008:5d42d925abed
Date: 2017-02-08 11:12 +0100
http://bitbucket.org/pypy/pypy/changeset/5d42d925abed/

Log:avoid interaction with other usages of random.random()

diff --git a/rpython/rlib/jit.py b/rpython/rlib/jit.py
--- a/rpython/rlib/jit.py
+++ b/rpython/rlib/jit.py
@@ -397,11 +397,12 @@
 def setup_method(self, meth):
 global _we_are_jitted_interpreted
 seed = random.random()
-print "seed", seed
-random.seed(seed)
+print "RandomWeAreJittedTestMixin: seed", seed
+r = random.Random()
+r.seed(seed)
 self.orig_we_are_jitted = _we_are_jitted_interpreted
 def _we_are_jitted_interpreted_random():
-result = random.random() > 0.5
+result = r.random() > 0.5
 return result
 _we_are_jitted_interpreted = _we_are_jitted_interpreted_random
 
___
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit


[pypy-commit] pypy guard-compatible: fix merge

2017-02-08 Thread arigo
Author: Armin Rigo 
Branch: guard-compatible
Changeset: r90007:e0be031fa6c2
Date: 2017-02-08 11:12 +0100
http://bitbucket.org/pypy/pypy/changeset/e0be031fa6c2/

Log:fix merge

diff --git a/rpython/rlib/test/test_jit.py b/rpython/rlib/test/test_jit.py
--- a/rpython/rlib/test/test_jit.py
+++ b/rpython/rlib/test/test_jit.py
@@ -4,7 +4,7 @@
 from rpython.annotator.model import UnionError
 from rpython.rlib.jit import (hint, we_are_jitted, JitDriver, elidable_promote,
 JitHintError, oopspec, isconstant, conditional_call,
-elidable, unroll_safe, dont_look_inside, conditional_call_edliable,
+elidable, unroll_safe, dont_look_inside, conditional_call_elidable,
 enter_portal_frame, leave_portal_frame, elidable_compatible,
 RandomWeAreJittedTestMixin)
 from rpython.rlib.rarithmetic import r_uint
___
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit


[pypy-commit] pypy optinfo-into-bridges: merge default

2017-02-08 Thread cfbolz
Author: Carl Friedrich Bolz 
Branch: optinfo-into-bridges
Changeset: r90009:189d2e2db7ad
Date: 2017-02-08 11:39 +0100
http://bitbucket.org/pypy/pypy/changeset/189d2e2db7ad/

Log:merge default

diff too long, truncating to 2000 out of 156212 lines

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -77,3 +77,5 @@
 ^.hypothesis/
 ^release/
 ^rpython/_cache$
+
+pypy/module/cppyy/.+/*\.pcm
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -28,7 +28,7 @@
 DEALINGS IN THE SOFTWARE.
 
 
-PyPy Copyright holders 2003-2016
+PyPy Copyright holders 2003-2017
 --- 
 
 Except when otherwise stated (look for LICENSE files or information at
diff --git a/_pytest/__init__.py b/_pytest/__init__.py
--- a/_pytest/__init__.py
+++ b/_pytest/__init__.py
@@ -1,2 +1,2 @@
 #
-__version__ = '2.5.2'
+__version__ = '2.9.2'
diff --git a/_pytest/_argcomplete.py b/_pytest/_argcomplete.py
--- a/_pytest/_argcomplete.py
+++ b/_pytest/_argcomplete.py
@@ -88,9 +88,6 @@
 return completion
 
 if os.environ.get('_ARGCOMPLETE'):
-# argcomplete 0.5.6 is not compatible with python 2.5.6: print/with/format
-if sys.version_info[:2] < (2, 6):
-sys.exit(1)
 try:
 import argcomplete.completers
 except ImportError:
diff --git a/_pytest/_code/__init__.py b/_pytest/_code/__init__.py
new file mode 100644
--- /dev/null
+++ b/_pytest/_code/__init__.py
@@ -0,0 +1,12 @@
+""" python inspection/code generation API """
+from .code import Code  # noqa
+from .code import ExceptionInfo  # noqa
+from .code import Frame  # noqa
+from .code import Traceback  # noqa
+from .code import getrawcode  # noqa
+from .code import patch_builtins  # noqa
+from .code import unpatch_builtins  # noqa
+from .source import Source  # noqa
+from .source import compile_ as compile  # noqa
+from .source import getfslineno  # noqa
+
diff --git a/_pytest/_code/_py2traceback.py b/_pytest/_code/_py2traceback.py
new file mode 100644
--- /dev/null
+++ b/_pytest/_code/_py2traceback.py
@@ -0,0 +1,81 @@
+# copied from python-2.7.3's traceback.py
+# CHANGES:
+# - some_str is replaced, trying to create unicode strings
+#
+import types
+
+def format_exception_only(etype, value):
+"""Format the exception part of a traceback.
+
+The arguments are the exception type and value such as given by
+sys.last_type and sys.last_value. The return value is a list of
+strings, each ending in a newline.
+
+Normally, the list contains a single string; however, for
+SyntaxError exceptions, it contains several lines that (when
+printed) display detailed information about where the syntax
+error occurred.
+
+The message indicating which exception occurred is always the last
+string in the list.
+
+"""
+
+# An instance should not have a meaningful value parameter, but
+# sometimes does, particularly for string exceptions, such as
+# >>> raise string1, string2  # deprecated
+#
+# Clear these out first because issubtype(string1, SyntaxError)
+# would throw another exception and mask the original problem.
+if (isinstance(etype, BaseException) or
+isinstance(etype, types.InstanceType) or
+etype is None or type(etype) is str):
+return [_format_final_exc_line(etype, value)]
+
+stype = etype.__name__
+
+if not issubclass(etype, SyntaxError):
+return [_format_final_exc_line(stype, value)]
+
+# It was a syntax error; show exactly where the problem was found.
+lines = []
+try:
+msg, (filename, lineno, offset, badline) = value.args
+except Exception:
+pass
+else:
+filename = filename or ""
+lines.append('  File "%s", line %d\n' % (filename, lineno))
+if badline is not None:
+if isinstance(badline, bytes):  # python 2 only
+badline = badline.decode('utf-8', 'replace')
+lines.append(u'%s\n' % badline.strip())
+if offset is not None:
+caretspace = badline.rstrip('\n')[:offset].lstrip()
+# non-space whitespace (likes tabs) must be kept for alignment
+caretspace = ((c.isspace() and c or ' ') for c in caretspace)
+# only three spaces to account for offset1 == pos 0
+lines.append('   %s^\n' % ''.join(caretspace))
+value = msg
+
+lines.append(_format_final_exc_line(stype, value))
+return lines
+
+def _format_final_exc_line(etype, value):
+"""Return a list of a single line -- normal case for 
format_exception_only"""
+valuestr = _some_str(value)
+if value is None or not valuestr:
+line = "%s\n" % etype
+else:
+line = "%s: %s\n" % (etype, valuestr)
+return line
+
+def _some_str(value):
+try:
+return unicode(value)
+except Exception:
+try:
+return str(value)
+except Exception:
+pass
+return '' % type(value).__name__
diff -

[pypy-commit] pypy vmprof-native: some more changes to the native test

2017-02-08 Thread plan_rich
Author: Richard Plangger 
Branch: vmprof-native
Changeset: r90010:d671b63850ea
Date: 2017-02-08 19:37 +0100
http://bitbucket.org/pypy/pypy/changeset/d671b63850ea/

Log:some more changes to the native test

diff --git a/rpython/rlib/rvmprof/cintf.py b/rpython/rlib/rvmprof/cintf.py
--- a/rpython/rlib/rvmprof/cintf.py
+++ b/rpython/rlib/rvmprof/cintf.py
@@ -46,7 +46,7 @@
 
 eci_kwds = dict(
 include_dirs = [SRC, SHARED, BACKTRACE, UDIS86],
-includes = ['rvmprof.h', 'vmprof_stack.h'],
+includes = ['rvmprof.h','vmprof_stack.h'],
 libraries = _libs,
 separate_module_files = [
 SRC.join('rvmprof.c'),
@@ -99,6 +99,7 @@
 return CInterface(locals())
 
 
+
 class CInterface(object):
 def __init__(self, namespace):
 for k, v in namespace.iteritems():
diff --git a/rpython/rlib/rvmprof/src/rvmprof.c 
b/rpython/rlib/rvmprof/src/rvmprof.c
--- a/rpython/rlib/rvmprof/src/rvmprof.c
+++ b/rpython/rlib/rvmprof/src/rvmprof.c
@@ -16,16 +16,3 @@
 #include "shared/vmprof_main_win32.h"
 #endif
 
-void dump_native_symbols(int fileno)
-{
-// TODOPyObject * mod = NULL;
-// TODO
-// TODOmod = PyImport_ImportModuleNoBlock("vmprof");
-// TODOif (mod == NULL)
-// TODOgoto error;
-// TODO
-// TODOPyObject_CallMethod(mod, "dump_native_symbols", "(l)", fileno);
-// TODO
-// TODOerror:
-// TODOPy_XDECREF(mod);
-}
diff --git a/rpython/rlib/rvmprof/src/rvmprof.h 
b/rpython/rlib/rvmprof/src/rvmprof.h
--- a/rpython/rlib/rvmprof/src/rvmprof.h
+++ b/rpython/rlib/rvmprof/src/rvmprof.h
@@ -21,7 +21,6 @@
 #define RPY_EXPORTED  extern __attribute__((visibility("default")))
 #endif
 
-
 RPY_EXTERN char *vmprof_init(int fd, double interval, int memory,
  int lines, const char *interp_name, int native);
 RPY_EXTERN void vmprof_ignore_signals(int);
diff --git a/rpython/rlib/rvmprof/src/shared/symboltable.c 
b/rpython/rlib/rvmprof/src/shared/symboltable.c
--- a/rpython/rlib/rvmprof/src/shared/symboltable.c
+++ b/rpython/rlib/rvmprof/src/shared/symboltable.c
@@ -170,11 +170,6 @@
 }
 }
 
-#else
-// other platforms than linux & mac os x
-void dump_all_known_symbols(int fd) {
-// oh, nothing to do!! a not supported platform
-}
 #endif
 
 #ifdef __unix__
@@ -247,3 +242,193 @@
 #endif
 return 0;
 }
+
+#ifdef RPYTHON_VMPROF
+
+#define WORD_SIZE sizeof(long)
+#define ADDR_SIZE sizeof(void*)
+#define MAXLEN 1024
+
+void _dump_native_symbol(int fileno, void * addr, char * sym, int linenumber, 
char * filename) {
+char natsym[64];
+off_t pos_before;
+struct str {
+void * addr;
+// NOTE windows 64, not supported yet
+long size;
+char str[1024];
+} s;
+pos_before = lseek(fileno, 0, SEEK_CUR);
+lseek(fileno, 0, SEEK_END);
+
+s.addr = addr;
+/* must mach ':::'
+ * 'n' has been chosen as lang here, because the symbol
+ * can be generated from several languages (e.g. C, C++, ...)
+ */
+// MARKER_NATIVE_SYMBOLS is \x08
+write(fileno, "\x08", 1);
+if (sym == NULL || sym[0] == '\x00') {
+snprintf(natsym, 64, "", addr);
+sym = natsym;
+}
+if (filename != NULL) {
+s.size = snprintf(s.str, 1024, "n:%s:%d:%s", sym, linenumber, 
filename);
+} else {
+s.size = snprintf(s.str, 1024, "n:%s:%d:-", sym, linenumber);
+}
+write(fileno, &s, sizeof(void*)+sizeof(long)+s.size);
+
+lseek(fileno, pos_before, SEEK_SET);
+}
+
+int _skip_string(int fileno)
+{
+long chars;
+int count = read(fileno, &chars, sizeof(long));
+LOG("reading string of %d chars\n", chars);
+if (count <= 0) {
+return 1;
+}
+lseek(fileno, chars, SEEK_CUR);
+
+return 0;
+}
+
+int _skip_header(int fileno, int * version, int * flags)
+{
+unsigned char r[4];
+(void)read(fileno, r, 4);
+unsigned char count = r[3];
+*version = (r[0] & 0xff) << 8 | (r[1] & 0xff);
+*flags = r[2];
+lseek(fileno, (int)count, SEEK_CUR);
+return 0;
+}
+
+long _read_word(int fileno)
+{
+long w;
+read(fileno, &w, WORD_SIZE);
+return w;
+}
+
+void * _read_addr(int fileno)
+{
+void * a;
+read(fileno, &a, ADDR_SIZE);
+return a;
+}
+
+int _skip_word(int fileno)
+{
+lseek(fileno, WORD_SIZE, SEEK_CUR);
+return 0;
+}
+
+int _skip_addr(int fileno)
+{
+lseek(fileno, ADDR_SIZE, SEEK_CUR);
+return 0;
+}
+
+int _skip_time_and_zone(int fileno)
+{
+lseek(fileno, sizeof(int64_t)*2 + 8, SEEK_CUR);
+return 0;
+}
+
+
+void dump_native_symbols(int fileno)
+{
+// only call this function
+off_t orig_pos, cur_pos;
+char marker;
+ssize_t count;
+int version;
+int flags;
+int memory, lines, native;
+orig_pos = lseek(fileno, 0, SEEK_CUR);
+
+lseek(fileno, 5*WORD_SIZE, SEEK_SET);
+
+while (1) {
+LOG("pre read\n");
+count = read(fileno, &marker, 1);
+LOG("post read\n");
+if (count <= 0) {
+break;
+}
+cur_pos = lseek(fileno, 0

[pypy-commit] pypy guard-compatible: Update comments with a plan

2017-02-08 Thread arigo
Author: Armin Rigo 
Branch: guard-compatible
Changeset: r90011:f8ac0ceb09a5
Date: 2017-02-08 19:53 +0100
http://bitbucket.org/pypy/pypy/changeset/f8ac0ceb09a5/

Log:Update comments with a plan

diff --git a/rpython/jit/backend/x86/guard_compat.py 
b/rpython/jit/backend/x86/guard_compat.py
--- a/rpython/jit/backend/x86/guard_compat.py
+++ b/rpython/jit/backend/x86/guard_compat.py
@@ -9,38 +9,62 @@
 
 
 #
-# GUARD_COMPATIBLE(reg, const-ptr) produces the following assembler.
-# We also have the normal failure code at , which is
-# not put in the assembler but only in a field of the descr.  In the
-# following code, ofs(x) means the offset in the GC table of the
-# pointer 'x':
+# GUARD_COMPATIBLE(reg, const-ptr) produces the same assembler as
+# a GUARD_VALUE.  In the following code, ofs(x) means the offset in
+# the GC table of the pointer 'x':
 #
-# MOV reg2, [RIP + ofs(_backend_choices)]# LOAD_FROM_GC_TABLE
-# CMP reg, [reg2 + bc_most_recent]
+# MOV reg2, [RIP + ofs(const-ptr)] # LOAD_FROM_GC_TABLE
+# CMP reg, reg2
+# JNE recovery_stub
+#   sequel:
+# 
+#
+# The difference is that 'recovery_stub' does not jump to one of the
+# 'failure_recovery_code' versions, but instead it jumps to
+# 'expand_guard_compatible'.  The latter calls invoke_find_compatible.
+# The result is one of:
+#
+#   * 0: bail out.  We jump to the 'failure_recovery_code'.
+#
+#   * -1: continue running on the same path.  We patch ofs(const-ptr)
+# to contain the new value, and jump to 'sequel'.
+#
+#   * otherwise, it's the address of a bridge.  We jump to that bridge.
+#
+# This is the basic idea, but not the truth.  Things are more
+# complicated because we cache in the assembler the
+# invoke_find_compatible call results.  'expand_guard_compatible'
+# actually allocates a '_backend_choices' object, copies on it
+# various data it got from the recovery_stub, then patches the
+# recovery stub to this (the original recovery stub was padded if
+# necessary to have enough room):
+#
+#   recovery_stub:
+# MOV R11, [RIP + ofs(_backend_choices)]
+# CMP reg, [R11 + bc_most_recent]
 # JNE slow_case
-# JMP *[reg2 + bc_most_recent + 8]
+# JMP *[R11 + bc_most_recent + 8]
 #   slow_case:
-# PUSH RDX# save
-# PUSH RAX# save
-# MOV RDX=reg2, RAX=reg
-#RDX is the _backend_choices object, RAX is the value to search for
-# JMP search_tree# see below
-#   sequel:
+# PUSH RAX# save the original value of RAX
+# MOV RAX, reg# the value to search for
+# JMP *[R11 + bc_search_tree]# x86-64: trick for a compact encoding
 #
-# The faildescr for this guard is a GuardCompatibleDescr.  We add to
-# them a few fields:
+# The faildescr for the GUARD_COMPATIBLE is a GuardCompatibleDescr.
+# Fields relevant for this discussion:
 #
-# - _backend_choices_addr: points inside the GC table, to
-#  ofs(_backend_choices)
-# - _backend_sequel_label: points to the  label
-# - _backend_failure_recovery: points to the  label
-# - _backend_gcmap: a copy of the gcmap at this point
+# - _backend_ptr_addr: points inside the GC table, to ofs(const-ptr).
+#  ofs(_backend_choices) is just afterwards.
+#  Initially _backend_choices is NULL.
+# - adr_jump_offset: raw address of the 'sequel' label (this field
+#is the same as on any other GuardDescr)
 #
-# The '_backend_choices' object itself is a separate GC struct/array
-# with the following fields:
+# The '_backend_choices' object itself, when allocated, is a separate
+# GC struct/array with the following fields:
 #
-# - bc_faildescr: a copy of the faildescr of that guard
+# - bc_faildescr: a reference to the faildescr of that guard
+# - bc_gcmap: a copy of the gcmap at this point
 # - bc_gc_table_tracer: only for a gc_writebarrier()
+# - bc_search_tree: always the 'search_tree' label below
 # - bc_most_recent: 1 pair (gcref, asmaddr)
 # - bc_list: N pairs (gcref, asmaddr) sorted according to gcref
 #
@@ -48,66 +72,70 @@
 # gcrefs move, and ignores the tail of bc_list which contains the
 # invalid gcref of value -1.
 #
-# Initially, the _backend_choices contains a list of length 1, and
-# both bc_most_recent and bc_list[0] contain the same pair (gcref,
-# sequel), where 'gcref' is the 2nd argument to guard_compatible() and
-#  is the address of the label above.
-#
-# In general, the list can grow to contain all items for which
-# find_compatible() was called and returned non-zero.  Every entry
-# caches the result in 'asmaddr'.  The separate 'most_recent' entry
-# caches the last value seen, along with the result of
-# find_compatible().  If this find_compatible() returned zero, then
-# the cache entry contains the 'fail_guard' label below as the
-# 'asmaddr' value (such a value is never found inside bc_list, only in
-# bc_most_recent).
+# The bc_list 

[pypy-commit] pypy buffer-cleanup: Close branch buffer-cleanup

2017-02-08 Thread rlamy
Author: Ronan Lamy 
Branch: buffer-cleanup
Changeset: r90012:ae3f90797917
Date: 2017-02-08 20:40 +
http://bitbucket.org/pypy/pypy/changeset/ae3f90797917/

Log:Close branch buffer-cleanup

___
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit


[pypy-commit] pypy py3.5: Merged in buffer-cleanup (pull request #515)

2017-02-08 Thread rlamy
Author: Ronan Lamy 
Branch: py3.5
Changeset: r90013:3059a0362786
Date: 2017-02-08 20:40 +
http://bitbucket.org/pypy/pypy/changeset/3059a0362786/

Log:Merged in buffer-cleanup (pull request #515)

Buffer cleanup

diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -25,15 +25,6 @@
   reds=['items', 'w_iterator'])
 
 
-@specialize.memo()
-def _does_override_buffer_w(type):
-return type.buffer_w != W_Root.buffer_w
-
-@specialize.memo()
-def _does_override_buffer_w_ex(type):
-return type.buffer_w_ex != W_Root.buffer_w_ex
-
-
 class W_Root(object):
 """This is the abstract root class of all wrapped objects that live
 in a 'normal' object space like StdObjSpace."""
@@ -223,15 +214,8 @@
 return None
 
 def buffer_w(self, space, flags):
-if _does_override_buffer_w_ex(self.__class__):
-return self.buffer_w_ex(space, flags)[0]
 return self.__buffer_w(space, flags).buffer_w(space, flags)
 
-def buffer_w_ex(self, space, flags):
-if _does_override_buffer_w(self.__class__):
-return self.buffer_w(space, flags), 'B', 1
-return self.__buffer_w(space, flags).buffer_w_ex(space, flags)
-
 def __buffer_w(self, space, flags):
 if flags & space.BUF_WRITABLE:
 w_impl = space.lookup(self, '__wbuffer__')
@@ -1469,15 +1453,6 @@
 raise oefmt(self.w_TypeError,
 "'%T' does not support the buffer interface", w_obj)
 
-def buffer_w_ex(self, w_obj, flags):
-# New buffer interface, returns a buffer based on flags 
(PyObject_GetBuffer)
-# Returns extra information: (buffer, typecode, itemsize)
-try:
-return w_obj.buffer_w_ex(self, flags)
-except BufferInterfaceNotFound:
-raise oefmt(self.w_TypeError,
-"'%T' does not support the buffer interface", w_obj)
-
 def readbuf_w(self, w_obj):
 # Old buffer interface, returns a readonly buffer 
(PyObject_AsReadBuffer)
 try:
diff --git a/pypy/module/_rawffi/array.py b/pypy/module/_rawffi/array.py
--- a/pypy/module/_rawffi/array.py
+++ b/pypy/module/_rawffi/array.py
@@ -91,6 +91,8 @@
 W_DataInstance.__init__(self, space, memsize, address)
 self.length = length
 self.shape = shape
+self.fmt = shape.itemcode
+self.itemsize = shape.size
 
 def descr_repr(self, space):
 addr = rffi.cast(lltype.Unsigned, self.ll_buffer)
@@ -105,8 +107,7 @@
 raise segfault_exception(space, "setting element of freed array")
 if num >= self.length or num < 0:
 raise OperationError(space.w_IndexError, space.w_None)
-unwrap_value(space, write_ptr, self.ll_buffer, num,
- self.shape.itemcode, w_value)
+unwrap_value(space, write_ptr, self.ll_buffer, num, self.fmt, w_value)
 
 def descr_setitem(self, space, w_index, w_value):
 try:
@@ -123,8 +124,7 @@
 raise segfault_exception(space, "accessing elements of freed 
array")
 if num >= self.length or num < 0:
 raise OperationError(space.w_IndexError, space.w_None)
-return wrap_value(space, read_ptr, self.ll_buffer, num,
-  self.shape.itemcode)
+return wrap_value(space, read_ptr, self.ll_buffer, num, self.fmt)
 
 def descr_getitem(self, space, w_index):
 try:
@@ -141,19 +141,16 @@
 
 @unwrap_spec(num=int)
 def descr_itemaddress(self, space, num):
-itemsize = self.shape.size
-ptr = rffi.ptradd(self.ll_buffer, itemsize * num)
+ptr = rffi.ptradd(self.ll_buffer, self.itemsize * num)
 return space.wrap(rffi.cast(lltype.Unsigned, ptr))
 
 def getrawsize(self):
-itemsize = self.shape.size
-return itemsize * self.length
+return self.itemsize * self.length
 
 def decodeslice(self, space, w_slice):
 if not space.isinstance_w(w_slice, space.w_slice):
 raise oefmt(space.w_TypeError, "index must be int or slice")
-letter = self.shape.itemcode
-if letter != 'c':
+if self.fmt != 'c':
 raise oefmt(space.w_TypeError, "only 'c' arrays support slicing")
 w_start = space.getattr(w_slice, space.wrap('start'))
 w_stop = space.getattr(w_slice, space.wrap('stop'))
@@ -192,9 +189,6 @@
 for i in range(len(value)):
 ll_buffer[start + i] = value[i]
 
-def buffer_w_ex(self, space, flags):
-return self.buffer_w(space, flags), self.shape.itemcode, 
self.shape.size
-
 
 W_ArrayInstance.typedef = TypeDef(
 'ArrayInstance',
diff --git a/pypy/module/_rawffi/buffer.py b/pypy/module/_rawffi/buffer.py
--- a/pypy/module/_rawffi/buffer.py
+++ b/pypy/module/_rawffi/buffer.py
@@ -14,6 +14,12 @@
 def getlength(self):
 return

[pypy-commit] pypy default: Bump greenlet version

2017-02-08 Thread alex_gaynor
Author: Alex Gaynor 
Branch: 
Changeset: r90014:fef27077c286
Date: 2017-02-08 23:15 -0500
http://bitbucket.org/pypy/pypy/changeset/fef27077c286/

Log:Bump greenlet version

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.11
+Version: 0.4.12
 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.11"
+__version__ = "0.4.12"
 
 # 
 # Exceptions
___
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit


[pypy-commit] extradoc extradoc: merge heads

2017-02-08 Thread arigo
Author: Armin Rigo 
Branch: extradoc
Changeset: r5776:b8a362c95c2d
Date: 2017-02-09 07:46 +0100
http://bitbucket.org/pypy/extradoc/changeset/b8a362c95c2d/

Log:merge heads

diff --git a/sprintinfo/leysin-winter-2017/people.txt 
b/sprintinfo/leysin-winter-2017/people.txt
--- a/sprintinfo/leysin-winter-2017/people.txt
+++ b/sprintinfo/leysin-winter-2017/people.txt
@@ -11,6 +11,7 @@
  == ===
 Armin Rigo  private
 Richard Plangger 26.02/04.02Ermina
+Remi Meier   (?)27.02/04.02 Ermina
  == ===
 
 **NOTE:** lodging is by default in Ermina.  There are two ~4 people
___
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit


[pypy-commit] extradoc extradoc: Slides, same as for pyconza2016

2017-02-08 Thread arigo
Author: Armin Rigo 
Branch: extradoc
Changeset: r5775:a242a484e2ab
Date: 2017-02-09 07:41 +0100
http://bitbucket.org/pypy/extradoc/changeset/a242a484e2ab/

Log:Slides, same as for pyconza2016

diff --git a/talk/swisspython2017/abstract.txt 
b/talk/swisspython2017/abstract.txt
--- a/talk/swisspython2017/abstract.txt
+++ b/talk/swisspython2017/abstract.txt
@@ -2,7 +2,7 @@
 
 
 RevDB is an experimental "reverse debugger" for Python, similar to
-UndoDB-GDB or LL for C. You run your program once, in "record" mode,
+UndoDB-GDB or RR for C. You run your program once, in "record" mode,
 producing a log file; once you get buggy behavior, you start the
 reverse-debugger on the log file. It gives an (improved) pdb-like
 experience, but it is replaying your program exactly as it ran---all
diff --git a/talk/pyconza2016/revdb/Makefile 
b/talk/swisspython2017/revdb/Makefile
copy from talk/pyconza2016/revdb/Makefile
copy to talk/swisspython2017/revdb/Makefile
diff --git a/talk/pyconza2016/revdb/author.latex 
b/talk/swisspython2017/revdb/author.latex
copy from talk/pyconza2016/revdb/author.latex
copy to talk/swisspython2017/revdb/author.latex
--- a/talk/pyconza2016/revdb/author.latex
+++ b/talk/swisspython2017/revdb/author.latex
@@ -6,5 +6,5 @@
 \ \ \ \ \ \ \ \ \ \includegraphics[scale=0.05]{pypylogo.png}}
 
 
-\institute{PyCon ZA 2016}
-\date{October 2016}
+\institute{Swiss Python Summit 2017}
+\date{February 2017}
diff --git a/talk/pyconza2016/revdb/demo/demo1.py 
b/talk/swisspython2017/revdb/demo/demo1.py
copy from talk/pyconza2016/revdb/demo/demo1.py
copy to talk/swisspython2017/revdb/demo/demo1.py
diff --git a/talk/pyconza2016/revdb/demo/todo.txt 
b/talk/swisspython2017/revdb/demo/todo.txt
copy from talk/pyconza2016/revdb/demo/todo.txt
copy to talk/swisspython2017/revdb/demo/todo.txt
diff --git a/talk/pyconza2016/revdb/stylesheet.latex 
b/talk/swisspython2017/revdb/stylesheet.latex
copy from talk/pyconza2016/revdb/stylesheet.latex
copy to talk/swisspython2017/revdb/stylesheet.latex
diff --git a/talk/pyconza2016/revdb/talk.pdf 
b/talk/swisspython2017/revdb/talk.pdf
copy from talk/pyconza2016/revdb/talk.pdf
copy to talk/swisspython2017/revdb/talk.pdf
index 
51c4b5737abc9af5a4d043416a98f1afae522e8d..936eb31c60797aab7e3b6d9bb269723da9440b49
GIT binary patch

[cut]

diff --git a/talk/pyconza2016/revdb/talk.rst 
b/talk/swisspython2017/revdb/talk.rst
copy from talk/pyconza2016/revdb/talk.rst
copy to talk/swisspython2017/revdb/talk.rst
--- a/talk/pyconza2016/revdb/talk.rst
+++ b/talk/swisspython2017/revdb/talk.rst
@@ -6,7 +6,7 @@
 Introduction
 ===
 
-* I am Armin Rigo, part of the PyPy project since 13 years
+* I am Armin Rigo, part of the PyPy project since the start (14 years)
 
   * PyPy is another implementation of Python
 
@@ -92,9 +92,9 @@
 
 * Track multiple processes
 
-* Windows (for $?)
+* Windows (contract possible)
 
-* Python 3 (soon?)
+* Python 3 (soon)
 
 
 Comparison
___
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit


[pypy-commit] extradoc extradoc: include the text of the demo inside the pdf, just in case

2017-02-08 Thread arigo
Author: Armin Rigo 
Branch: extradoc
Changeset: r5777:417f4214a5b6
Date: 2017-02-09 07:57 +0100
http://bitbucket.org/pypy/extradoc/changeset/417f4214a5b6/

Log:include the text of the demo inside the pdf, just in case

diff --git a/talk/swisspython2017/revdb/demo/_demo1.png 
b/talk/swisspython2017/revdb/demo/_demo1.png
new file mode 100644
index 
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fa6836abd3a312117a6bdef3d42cc70cc2ebec40
GIT binary patch

[cut]

diff --git a/talk/swisspython2017/revdb/talk.pdf 
b/talk/swisspython2017/revdb/talk.pdf
index 
936eb31c60797aab7e3b6d9bb269723da9440b49..0b5bbf46bda5af01898f6b0594e0d5dd76055487
GIT binary patch

[cut]

diff --git a/talk/swisspython2017/revdb/talk.rst 
b/talk/swisspython2017/revdb/talk.rst
--- a/talk/swisspython2017/revdb/talk.rst
+++ b/talk/swisspython2017/revdb/talk.rst
@@ -21,6 +21,13 @@
 * Demo
 
 
+What is a reverse debugger?
+===
+
+.. image:: demo/_demo1.png
+   :scale: 25%
+
+
 How is that possible??
 ==
 
___
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit