Author: Armin Rigo <[email protected]>
Branch: rpython-hash
Changeset: r89832:daf38d35f189
Date: 2017-01-30 13:56 +0100
http://bitbucket.org/pypy/pypy/changeset/daf38d35f189/
Log: obscure translation issues
diff --git a/pypy/module/posix/interp_posix.py
b/pypy/module/posix/interp_posix.py
--- a/pypy/module/posix/interp_posix.py
+++ b/pypy/module/posix/interp_posix.py
@@ -1324,6 +1324,12 @@
raise wrap_oserror(space, e)
return space.wrap(res)
+class SigCheck:
+ pass
+_sigcheck = SigCheck()
+def _signal_checker():
+ _sigcheck.space.getexecutioncontext().checksignals()
+
@unwrap_spec(n=int)
def urandom(space, n):
"""urandom(n) -> str
@@ -1331,9 +1337,12 @@
Return a string of n random bytes suitable for cryptographic use.
"""
context = get(space).random_context
- signal_checker = space.getexecutioncontext().checksignals
try:
- return space.wrap(rurandom.urandom(context, n, signal_checker))
+ # urandom() takes a final argument that should be a regular function,
+ # not a bound method like 'getexecutioncontext().checksignals'.
+ # Otherwise, we can't use it from several independent places.
+ _sigcheck.space = space
+ return space.wrap(rurandom.urandom(context, n, _signal_checker))
except OSError as e:
raise wrap_oserror(space, e)
diff --git a/rpython/rlib/debug.py b/rpython/rlib/debug.py
--- a/rpython/rlib/debug.py
+++ b/rpython/rlib/debug.py
@@ -441,7 +441,7 @@
except OSError as e:
os.write(2, "Could not start GDB: %s" % (
os.strerror(e.errno)))
- raise SystemExit
+ os._exit(1)
else:
time.sleep(1) # give the GDB time to attach
diff --git a/rpython/rlib/rsiphash.py b/rpython/rlib/rsiphash.py
--- a/rpython/rlib/rsiphash.py
+++ b/rpython/rlib/rsiphash.py
@@ -14,6 +14,7 @@
from rpython.rlib import rgc, jit, rposix
from rpython.rlib.rarithmetic import r_uint64, r_uint32, r_uint
from rpython.rlib.rawstorage import misaligned_is_fine
+from rpython.rlib.nonconst import NonConstant
from rpython.rtyper.lltypesystem import lltype, llmemory, rffi, rstr
from rpython.rtyper.lltypesystem.lloperation import llop
from rpython.rtyper.extregistry import ExtRegistryEntry
@@ -116,6 +117,8 @@
(init_func,) = init
else:
init_func = initialize_from_env
+ if NonConstant(0):
+ init_func() # pre-annotate it
llop.call_at_startup(lltype.Void, llhelper(_FUNC, init_func))
def _internal_enable_siphash24():
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit