I have begun running own tests on win32.
http://buildbot.pypy.org/summary?builder=own-win-x86-32
Almost all of the module._cffi_backend.test.test_c failures are caused by id(x) returning a long where an int is expected in rlib\objectmodel.py compute_unique_id. Note that this passes after translation on applevel tests, so it seems there is a difference between the non-translated and translated versions of compute_unique_id which AFAIK returns a lltype.Signed .

would this fix be acceptable? On which platforms does compute_unique_id return a r_longlong ?
Matti

--- a/rpython/rlib/objectmodel.py       Sun Mar 09 23:17:48 2014 +0200
+++ b/rpython/rlib/objectmodel.py       Mon Mar 10 00:32:41 2014 +0200
@@ -432,6 +432,10 @@
     costly depending on the garbage collector.  To remind you of this
     fact, we don't support id(x) directly.
     """
+    v = id(x)
+    if sys.platform == 'win32':
+        from rpython.rlib.rarithmetic import intmask
+        v = intmask(v)
     return id(x)      # XXX need to return r_longlong on some platforms

 def current_object_addr_as_int(x):


_______________________________________________
pypy-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to