cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end ) | use cffi for calling C | if a pep adds a mere 25-30 [C-API] functions or so, it's a drop in the ocean (cough) - Armin
<arigato>
probably related to the new ssl-on-cffi recently added to the default branch
<mattip>
:(
<mattip>
thanks, I missed that failure
<arigato>
(also, test_ssl has been failing for a while, I guess you looked at it after you merged ssl-on-cffi?)
<antocuni>
simpson: are you talking about float('inf') in RPython code, aren't you? In that case yes, it is not supported. The "official" way is to use rlib.rfloat.INFINITY
<mattip>
yeah
<antocuni>
look e.g. at objspace.std.floatobject._pow or pypy.module._pypyjson.interp_decoder.decode_infinity
<arigato>
mattip: the issue in cffi-ssl is difficult to reproduce reliably, but I think I fixed it
<arigato>
it might have been some multithreaded initialization going on
<mattip>
that would explain why it is inconsistent
<mattip>
thanks!
<arigato>
filling some internal fields with some values while another thread would fill other values (the thread switch occurs likely when we call some space function)
<mattip>
so not properly acquiring the GIL?
<arigato>
everything runs with the GIL, but some functions or helpers unexpectedly release it temporarily
<arigato>
see the comment before "def _new_function_type" in _cffi_backend/newtype.py
<arigato>
and this _new_function_type() is called from realize_c_type(), where the problem occurs
<mattip>
there are other calls to newtype.* in there, maybe others also need guards
<arigato>
I made the whole realize_c_type thread-safe with a lock
<mattip>
I guess I will let things settle down before doing another release candidate. There is too much churn right now
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
<arigato>
right
<kenaan>
arigo default 36cf5ebfa3ec /pypy/module/_cffi_backend/realize_c_type.py: oops, fix for 853267f08f60: the final update of cached_types should occur while we still have the lock (maybe it wo...