From issues-reply at bitbucket.org Thu Oct 1 17:14:18 2015 From: issues-reply at bitbucket.org (kote) Date: Thu, 01 Oct 2015 15:14:18 -0000 Subject: [pypy-issue] Issue #2147: Fatal RPython error (pypy/pypy) Message-ID: <20151001151418.25885.99260@app05.ash-private.bitbucket.org> New issue 2147: Fatal RPython error https://bitbucket.org/pypy/pypy/issues/2147/fatal-rpython-error kote: Hi, I've recently started using pypy-2.6.1 and found following exception in log: RPython traceback: File "pypy_module_pypyjit_interp_jit.c", line 115, in jump_absolute__AccessDirect_None File "rpython_jit_metainterp_warmstate.c", line 7381, in maybe_compile_and_run__star_5_1 File "rpython_jit_metainterp_warmstate.c", line 16217, in execute_assembler__star_2_2 File "rpython_jit_metainterp_compile.c", line 487, in ResumeGuardForcedDescr_handle_fail File "rpython_jit_metainterp_blackhole.c", line 90, in resume_in_blackhole File "rpython_jit_metainterp_resume.c", line 962, in blackhole_from_resumedata File "rpython_jit_metainterp_resume.c", line 2310, in ResumeDataDirectReader_consume_one_section File "rpython_jit_codewriter_jitcode.c", line 207, in enumerate_vars__unique_id File "rpython_jit_metainterp_resume.c", line 2198, in ResumeDataDirectReader_getvirtual_ptr Fatal RPython error: AssertionError There seem to be no issues with such exception, so hope that this can be useful. From issues-reply at bitbucket.org Fri Oct 2 10:44:10 2015 From: issues-reply at bitbucket.org (Prabhu Ramachandran) Date: Fri, 02 Oct 2015 08:44:10 -0000 Subject: [pypy-issue] Issue #2148: Significant performance degradation with 2.6.1 (pypy/pypy) Message-ID: <20151002084410.28724.36770@app13.ash-private.bitbucket.org> New issue 2148: Significant performance degradation with 2.6.1 https://bitbucket.org/pypy/pypy/issues/2148/significant-performance-degradation-with Prabhu Ramachandran: I have been noticing a large degradation of performance with 2.6.1 (when compared to 2.5.1) in a demo numerical code that I use for a class I teach. The code uses numpy and pypy. I have narrowed it down to a small example that I have attached. It requires numpy which I obtained from here: bitbucket.org/pypy/numpy and I just updated to the latest (bitbucket.org/pypy/numpy/commits/eb3a35530360956ce5b23fdddb4726a87298c0c4) on both 2.6.1 and 2.5.1. Please run the attached file using pypy 2.5.1 and 2.6.1. Here are my numbers: ``` $ pypy-2.5.1-osx64/bin/pypy bench.py Slow: 20 loops; n = 1000 avg, min, max: 0.0173585057259 0.0148329734802 0.0546190738678 Trying with the fast variant: 20 loops; n = 1000 avg, min, max: 0.0177025556564 0.0155758857727 0.0379099845886 $ pypy-2.6.1-osx64/bin/pypy bench.py Slow: 20 loops; n = 1000 avg, min, max: 0.307449471951 [ 0.29886508] [ 0.37315512] Trying with the fast variant: 20 loops; n = 1000 avg, min, max: 0.0272699356079 [ 0.02398992] [ 0.0569458] ``` There is a 20x reduction in my numbers on my Mac OS X machine with 2.6.1 when compared to 2.5.1. I have reproduced the issue on Linux also. I am using the same numpy version on both 2.5.1 and 2.6.1 so this doesn't look like a numpy issue per-se but more like an issue with mixed complex/floats and numpy data types that is specific to 2.6.1. There is also a weird issue with the 2.6.1 in that if I do not run the "slow" variant, the performance of the faster version is better! Please let me know if there are any questions you have. Thanks! From issues-reply at bitbucket.org Fri Oct 2 16:36:48 2015 From: issues-reply at bitbucket.org (Jason Madden) Date: Fri, 02 Oct 2015 14:36:48 -0000 Subject: [pypy-issue] Issue #2149: Memory leak for Python subclass of cpyext object with non-trivial tp_dealloc (pypy/pypy) Message-ID: <20151002143648.19253.33384@app02.ash-private.bitbucket.org> New issue 2149: Memory leak for Python subclass of cpyext object with non-trivial tp_dealloc https://bitbucket.org/pypy/pypy/issues/2149/memory-leak-for-python-subclass-of-cpyext Jason Madden: As [discussed on IRC](https://botbot.me/freenode/pypy/2015-09-30/?msg=50868264&page=3) and initially reported to [gevent](https://github.com/gevent/gevent/issues/660), if a pure-Python object subclasses a cpyext object that has a non trivial `tp_dealloc` (e.g., it stores additional instance data in its struct), memory can leak. This is because deallocating the pure-Python instance fails to call the `tp_dealloc` of the superclass. This is easy to demonstrate with Cython, though Cython is not necessary. Given a `base.pxd` like so: ```python cdef class Base: cdef public object thing ``` and a corresponding `base.py` like so: ```python class Base(object): def __init__(self): self.thing = [] ``` compile the cython code and then create a subclass in python: ```python from base import Base class Sub(Base): pass ``` A tool like objgraph will show that allocating instances of `Sub` leaks a new list each time. From issues-reply at bitbucket.org Sat Oct 3 21:11:50 2015 From: issues-reply at bitbucket.org (Richard Futrell) Date: Sat, 03 Oct 2015 19:11:50 -0000 Subject: [pypy-issue] Issue #2150: Behavior of inspect.isbuiltin differs between PyPy and CPython (pypy/pypy) Message-ID: <20151003191150.18759.99566@app08.ash-private.bitbucket.org> New issue 2150: Behavior of inspect.isbuiltin differs between PyPy and CPython https://bitbucket.org/pypy/pypy/issues/2150/behavior-of-inspectisbuiltin-differs Richard Futrell: I have some code that relies on `insect.isbuiltin` returning `True` for the `__getitem__` method of a dict. But PyPy returns `False`, differing from the behavior of CPython. In PyPy: ```python Python 2.7.9 (9c4588d731b7fe0b08669bd732c2b676cb0a8233, Mar 31 2015, 07:55:22) [PyPy 2.5.1 with GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>> d = {} >>>> import inspect >>>> inspect.isbuiltin(d.__getitem__) False ``` In CPython: ```python Python 2.7.9 (default, Apr 9 2015, 12:34:21) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> d = {} >>> import inspect >>> inspect.isbuiltin(d.__getitem__) True ``` From issues-reply at bitbucket.org Mon Oct 5 22:57:29 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 20:57:29 -0000 Subject: [pypy-issue] Issue #2151: s390x Instruction Encoding (pypy/pypy) Message-ID: <20151005205729.31285.79119@app06.ash-private.bitbucket.org> New issue 2151: s390x Instruction Encoding https://bitbucket.org/pypy/pypy/issues/2151/s390x-instruction-encoding Richard Plangger: The first step of this project is to implement the first tests to ensure the correct instruction encoding. Test cases comparing generated assembler to objdump (s390x eqivalent for test_rx86_64_auto_encoding) will be added to the source code. In addition it covers the most common op codes such as Arithmetic, Branches, Load/Store from memory. All of them in various flavors (register-register, register-memory, memory-memory, ...). The goal is to be able to correctly assemble simple functions (containing several operations in the body) and invoke them correctly. From issues-reply at bitbucket.org Mon Oct 5 22:59:38 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 20:59:38 -0000 Subject: [pypy-issue] Issue #2152: s390x (2) Bootstrap (pypy/pypy) Message-ID: <20151005205938.6435.74878@app14.ash-private.bitbucket.org> New issue 2152: s390x (2) Bootstrap https://bitbucket.org/pypy/pypy/issues/2152/s390x-2-bootstrap Richard Plangger: As there is no comparable architecture supported, the skeletal structure needs to be further extended to implement the full 64-bit s390x assembler backend. The current considered candidate as a 'template' is the x86 assembler backend, because of it's variable length instruction encoding (CISC). The target of this task is to prepare everything for the addition of the s390x backend. Ideally this means that the first tests of the test_runner should correctly pass and emit correct s390x assembler. From issues-reply at bitbucket.org Mon Oct 5 23:00:55 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 21:00:55 -0000 Subject: [pypy-issue] Issue #2153: s390x (3) Integer arithmetic, Guarding operations, Jumps (pypy/pypy) Message-ID: <20151005210055.13435.41981@app03.ash-private.bitbucket.org> New issue 2153: s390x (3) Integer arithmetic, Guarding operations, Jumps https://bitbucket.org/pypy/pypy/issues/2153/s390x-3-integer-arithmetic-guarding Richard Plangger: This first step tackles 1/3 of the test_runner test suite. It continues to extend the skeletal structure and implements many 'trivial' op codes for the assembler backend. It might include a change here and there to the code structure of the assembler emitter. From issues-reply at bitbucket.org Mon Oct 5 23:01:54 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 21:01:54 -0000 Subject: [pypy-issue] Issue #2154: s390x (4) Calls, Double precision floating points (pypy/pypy) Message-ID: <20151005210154.7777.61801@app07.ash-private.bitbucket.org> New issue 2154: s390x (4) Calls, Double precision floating points https://bitbucket.org/pypy/pypy/issues/2154/s390x-4-calls-double-precision-floating Richard Plangger: This task advances to the more challenging aspects of the backend implementation. It requires to implement calling and most of the double floating point operations. The main part will concern itself with calling conventions, the correct assembly and allocation of registers. From issues-reply at bitbucket.org Mon Oct 5 23:02:37 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 21:02:37 -0000 Subject: [pypy-issue] Issue #2155: s390x (5) Advance to 2/3 of the backend tests (pypy/pypy) Message-ID: <20151005210237.26113.13241@app05.ash-private.bitbucket.org> New issue 2155: s390x (5) Advance to 2/3 of the backend tests https://bitbucket.org/pypy/pypy/issues/2155/s390x-5-advance-to-2-3-of-the-backend Richard Plangger: This step further implements the missing opcodes and might remove more the limitations not conquered earlier. This is an intermediate progress step towards completion of test_runner. From issues-reply at bitbucket.org Mon Oct 5 23:03:33 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 21:03:33 -0000 Subject: [pypy-issue] Issue #2156: s390x (6) Completing test_runner (pypy/pypy) Message-ID: <20151005210333.27636.15174@app03.ash-private.bitbucket.org> New issue 2156: s390x (6) Completing test_runner https://bitbucket.org/pypy/pypy/issues/2156/s390x-6-completing-test_runner Richard Plangger: The task will require nearly all of the test_runner tests to run and correctly emit s390x machine code. It should include most features but can relax some features that are GC dependent. From issues-reply at bitbucket.org Mon Oct 5 23:04:14 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 21:04:14 -0000 Subject: [pypy-issue] Issue #2157: s390x (7) GC (pypy/pypy) Message-ID: <20151005210414.32060.93956@app14.ash-private.bitbucket.org> New issue 2157: s390x (7) GC https://bitbucket.org/pypy/pypy/issues/2157/s390x-7-gc Richard Plangger: First, the simple BoehmGC will be adapted (if necessary). The actual task is to implement all necessary routines to fully support incminimark. From issues-reply at bitbucket.org Mon Oct 5 23:05:25 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 21:05:25 -0000 Subject: [pypy-issue] Issue #2158: s390x (8) Towards a passing test suite (pypy/pypy) Message-ID: <20151005210525.11747.53383@app01.ash-private.bitbucket.org> New issue 2158: s390x (8) Towards a passing test suite https://bitbucket.org/pypy/pypy/issues/2158/s390x-8-towards-a-passing-test-suite Richard Plangger: Now that nearly all parts have been implemented, all other tests that in the pypy/ and rpython/ directories should pass. This ensures that the ''not'' backend related changes do not destroy the other backends and further harden the s390x implementation. From issues-reply at bitbucket.org Mon Oct 5 23:06:13 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 21:06:13 -0000 Subject: [pypy-issue] Issue #2159: s390x (9) Translation (pypy/pypy) Message-ID: <20151005210613.30570.1664@app05.ash-private.bitbucket.org> New issue 2159: s390x (9) Translation https://bitbucket.org/pypy/pypy/issues/2159/s390x-9-translation Richard Plangger: This step ensures that the translation correctly works using the GCC toolchain. This can be a time consuming task, to get things right. The passing test suite in the previous task will help a lot. From issues-reply at bitbucket.org Mon Oct 5 23:07:07 2015 From: issues-reply at bitbucket.org (Richard Plangger) Date: Mon, 05 Oct 2015 21:07:07 -0000 Subject: [pypy-issue] Issue #2160: s390x (10) Benchmark (pypy/pypy) Message-ID: <20151005210707.9513.19581@app06.ash-private.bitbucket.org> New issue 2160: s390x (10) Benchmark https://bitbucket.org/pypy/pypy/issues/2160/s390x-10-benchmark Richard Plangger: To evaluate the gain the PyPy JIT compiler is able to achieve, the benchmark suite will be run using the new s390x backend. This completes the first implementation of the s390x backend and gives insight on the benefit for PyPy on the s390x. From issues-reply at bitbucket.org Mon Oct 5 23:57:32 2015 From: issues-reply at bitbucket.org (ZyX_I) Date: Mon, 05 Oct 2015 21:57:32 -0000 Subject: [pypy-issue] Issue #2161: PyPy3 strftime does not accept unicode characters (pypy/pypy) Message-ID: <20151005215732.24008.66063@app06.ash-private.bitbucket.org> New issue 2161: PyPy3 strftime does not accept unicode characters https://bitbucket.org/pypy/pypy/issues/2161/pypy3-strftime-does-not-accept-unicode ZyX_I: Consider the following code: % pypy3 -c 'from datetime import datetime as dt; print(repr(dt.now().strftime(''\u231a'')))' | hexdump -C it outputs 00000000 27 ef bf bd ef bf bd ef bf bd 27 0a |'.........'.| 0000000c : basically a single quote, three U+FFFD REPLACEMENT CHARACTER characters, a single quote and newline. If you replace `pypy3` with `python3.4` you will see 00000000 27 e2 8c 9a 27 0a |'...'.| 00000006 which is what was expected: same surrounding and a single U+231A WATCH character. This happens with PyPy3-2.4.0, Gentoo amd64 linux with `USE='bzip2 gdbm jit ncurses -sqlite -tk'` (each USE flag listed, except jit produces either `--withmod-{use}` (`{use}`) or `--withoutmod-{use}` (`-{use}`) arguments, jit adds `--jit-backend=auto` argument). From issues-reply at bitbucket.org Tue Oct 6 22:30:47 2015 From: issues-reply at bitbucket.org (Ofir Shwartz) Date: Tue, 06 Oct 2015 20:30:47 -0000 Subject: [pypy-issue] Issue #2162: Pypy3 gzip.py does not support wt mode (pypy/pypy) Message-ID: <20151006203047.9990.78047@app04.ash-private.bitbucket.org> New issue 2162: Pypy3 gzip.py does not support wt mode https://bitbucket.org/pypy/pypy/issues/2162/pypy3-gzippy-does-not-support-wt-mode Ofir Shwartz: Error is received upon gzip.open: IOError: Mode wt not supported Python3 supports that without any problem. From issues-reply at bitbucket.org Wed Oct 7 18:07:08 2015 From: issues-reply at bitbucket.org (Cosimo Lupo) Date: Wed, 07 Oct 2015 16:07:08 -0000 Subject: [pypy-issue] Issue #2163: cannot create "wheels" with pypy on Windows (pypy/pypy) Message-ID: <20151007160708.2951.84240@app03.ash-private.bitbucket.org> New issue 2163: cannot create "wheels" with pypy on Windows https://bitbucket.org/pypy/pypy/issues/2163/cannot-create-wheels-with-pypy-on-windows Cosimo Lupo: I cannot generate Python wheels with pypy 2.6.1 on Windows. Whenever I try to do the usual `python setup.py bdist_wheel`, I get Windows `Error 32`. This error is usually triggered when a file is already open by another process and thus is "locked" by the OS. I'm not sure if this is a bug in pypy or in `wheel` package. The fact that the same `bdist_wheel` command does not produce the error when running under CPython seems to point to pypy... The `wheel` package provides a setuptools extension to create precompiled distributions. At line 383 of `bdist_wheel.py`, there's a call to `os.unlink` to delete a metadata file ("dependency_links.txt") if it is empty. I think It's this which is causing the Error 32 (if I let it pass, the process completes just fine -- but of course I keep the empty file). Here is the last part of the `python setup.py bdist_wheel` log, from a project I'm working on: https://ci.appveyor.com/project/anthrotype/brotli/build/1.0.144/job/sbhync8sn8lhw9oi Note that it happens with _any_ package I try to build wheels for -- not just the one in the example. I wonder if anyone else has tried to create precompiled wheel packages with pypy on Windows. Thanks for your support. Cheers, Cosimo From issues-reply at bitbucket.org Sun Oct 11 17:58:33 2015 From: issues-reply at bitbucket.org (Alex Gaynor) Date: Sun, 11 Oct 2015 15:58:33 -0000 Subject: [pypy-issue] Issue #2164: Add HTTPS for buildbot.pypy.org (pypy/pypy) Message-ID: <20151011155833.23711.37117@app07.ash-private.bitbucket.org> New issue 2164: Add HTTPS for buildbot.pypy.org https://bitbucket.org/pypy/pypy/issues/2164/add-https-for-buildbotpypyorg Alex Gaynor: Lots of people use it to download binaries, we should ensure it has HTTPS. From issues-reply at bitbucket.org Mon Oct 19 12:47:42 2015 From: issues-reply at bitbucket.org (Pete Vine) Date: Mon, 19 Oct 2015 10:47:42 -0000 Subject: [pypy-issue] Issue #2165: Default branch arm backend translation fails (unknown asm registers) (pypy/pypy) Message-ID: <20151019104742.356.47708@app11.ash-private.bitbucket.org> New issue 2165: Default branch arm backend translation fails (unknown asm registers) https://bitbucket.org/pypy/pypy/issues/2165/default-branch-arm-backend-translation Pete Vine: Trying to translate the latest default branch of pypy natively on an armv7 linux platform using gcc 4.9.2 and pypy 2.6.1, `PYPY_GC_MAX_DELTA=200MB pypy --jit loop_longevity=300 ../../rpython/bin/rpython --source -Ojit --jit-backend=arm targetpypystandalone` fails with: ``` #!python [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused -O3 -mcpu=cortex-a5 -I/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/stacklet.c -o /tmp/usession-default-0/rpython/translator/c/src/stacklet/stacklet.o [a918] translation-task} [Timer] Timings: [Timer] annotate --- 1395.2 s [Timer] =========================================== [Timer] Total: --- 1395.2 s [translation:info] Error: [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/goal/translate.py", line 318, in main [translation:info] drv.proceed(goals) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/driver.py", line 551, in proceed [translation:info] return self._execute(goals, task_skip = self._maybe_skip()) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/tool/taskengine.py", line 114, in _execute [translation:info] res = self._do(goal, taskcallable, *args, **kwds) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/driver.py", line 279, in _do [translation:info] res = func() [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/driver.py", line 316, in task_annotate [translation:info] s = annotator.build_types(self.entry_point, self.inputtypes) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 86, in build_types [translation:info] return self.build_graph_types(flowgraph, inputs_s, complete_now=complete_now) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 132, in build_graph_types [translation:info] self.complete() [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 186, in complete [translation:info] self.complete_pending_blocks() [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 181, in complete_pending_blocks [translation:info] self.processblock(graph, block) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 344, in processblock [translation:info] self.flowin(graph, block) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 415, in flowin [translation:info] self.consider_op(op) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/annrpython.py", line 587, in consider_op [translation:info] resultcell = op.consider(self) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/flowspace/operation.py", line 104, in consider [translation:info] return spec(annotator, *self.args) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/flowspace/operation.py", line 204, in specialized [translation:info] return impl(*[annotator.annotation(x) for x in other_args]) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/unaryop.py", line 882, in getattr [translation:info] return bookkeeper.pbc_getattr(self, s_attr) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/bookkeeper.py", line 465, in pbc_getattr [translation:info] return first.s_read_attribute(attr) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/description.py", line 1029, in s_read_attribute [translation:info] return self.bookkeeper.immutablevalue(value) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/bookkeeper.py", line 286, in immutablevalue [translation:info] result.dictdef.generalize_value(self.immutablevalue(ev)) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/annotator/bookkeeper.py", line 336, in immutablevalue [translation:info] x._cleanup_() [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 129, in _cleanup_ [translation:info] self.getdict(self.space) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 122, in getdict [translation:info] w_value = self.get(name) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 75, in get [translation:info] w_value = self.getdictvalue(space, name) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 87, in getdictvalue [translation:info] return self._load_lazily(space, name) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 97, in _load_lazily [translation:info] w_value = loader(space) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/interpreter/mixedmodule.py", line 180, in ifileloader [translation:info] d[name] = __import__(pkgroot+'.'+name, None, None, [name]) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/pypy/module/_continuation/interp_continuation.py", line 1, in [translation:info] from rpython.rlib.rstacklet import StackletThread [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rlib/rstacklet.py", line 2, in [translation:info] from rpython.rlib import _rffi_stacklet as _c [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rlib/_rffi_stacklet.py", line 23, in [translation:info] rffi_platform.verify_eci(eci.convert_sources_to_files()) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rtyper/tool/rffi_platform.py", line 94, in verify_eci [translation:info] configure(CConfig) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rtyper/tool/rffi_platform.py", line 251, in configure [translation:info] res[key] = value.question(writer.ask_gcc) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rtyper/tool/rffi_platform.py", line 556, in question [translation:info] ask_gcc("") [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/rtyper/tool/rffi_platform.py", line 198, in ask_gcc [translation:info] try_compile_cache([self.path], eci) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/tool/gcc_cache.py", line 68, in try_compile_cache [translation:info] platform.compile(c_files, eci) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/__init__.py", line 53, in compile [translation:info] ofiles = self._compile_o_files(cfiles, eci, standalone) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/__init__.py", line 75, in _compile_o_files [translation:info] ofiles.append(self._compile_c_file(self.cc, cfile, compile_args)) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/posix.py", line 40, in _compile_c_file [translation:info] cwd=str(cfile.dirpath())) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/__init__.py", line 139, in _execute_c_compiler [translation:info] self._handle_error(returncode, stdout, stderr, outname) [translation:info] File "/home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/platform/__init__.py", line 151, in _handle_error [translation:info] raise CompilationError(stdout, stderr) [translation:ERROR] CompilationError: CompilationError(err=""" [translation:ERROR] In file included from /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/slp_platformselect.h:12:0, [translation:ERROR] from /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/stacklet.c:20: [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h: In function ?slp_switch?: [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ?f7? in ?asm? [translation:ERROR] __asm__ volatile ( [translation:ERROR] ^ [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ?f6? in ?asm? [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ?f5? in ?asm? [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ?f4? in ?asm? [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ?f3? in ?asm? [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ?f2? in ?asm? [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ?f1? in ?asm? [translation:ERROR] /home/odroid/Downloads/cache/tmp/pypy-pypy-1c084d4f35cb/rpython/translator/c/src/stacklet/switch_arm_gcc.h:19:3: error: unknown register name ?f0? in ?asm? [translation:ERROR] """) [translation:ERROR] Processing block: [translation:ERROR] block at 128 is a [translation:ERROR] in (pypy.interpreter.baseobjspace:470)getbuiltinmodule [translation:ERROR] containing the following operations: [translation:ERROR] v0 = getattr(self_0, ('builtin_modules')) [translation:ERROR] w_mod_0 = getitem(v0, name_0) [translation:ERROR] --end-- ``` From issues-reply at bitbucket.org Tue Oct 20 00:17:19 2015 From: issues-reply at bitbucket.org (=?utf-8?q?Ionel_Cristian_M=C4=83rie=C8=99?=) Date: Mon, 19 Oct 2015 22:17:19 -0000 Subject: [pypy-issue] Issue #2166: Infinite loop in readinto (2.6.1) (pypy/pypy) Message-ID: <20151019221719.24870.40327@app06.ash-private.bitbucket.org> New issue 2166: Infinite loop in readinto (2.6.1) https://bitbucket.org/pypy/pypy/issues/2166/infinite-loop-in-readinto-261 Ionel Cristian M?rie?: The case is not simple bug alas, I could not figure out a simple way to repro. ```python import os import signalfd, signal fd = signalfd.signalfd(-1, [signal.SIGUSR1], signalfd.SFD_CLOEXEC | signalfd.SFD_NONBLOCK) fh = os.fdopen(fd, 'rb') signalfd.read_siginfo(fh) ``` You need to `pip install signalfd` - it uses cffi (source: https://github.com/ionelmc/python-signalfd/blob/master/src/signalfd/__init__.py#L90-L99) Strace output looks like ``` signalfd4(-1, [USR1], 8, O_NONBLOCK|O_CLOEXEC) = 3 fstat(3, {st_mode=0600, st_size=0, ...}) = 0 fcntl(3, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) fstat(3, {st_mode=0600, st_size=0, ...}) = 0 read(3, 0x41763f0, 128) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ef, 129) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ee, 130) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ed, 131) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ec, 132) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763eb, 133) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ea, 134) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e9, 135) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e8, 136) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e7, 137) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e6, 138) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e5, 139) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e4, 140) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e3, 141) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e2, 142) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e1, 143) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763e0, 144) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763df, 145) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763de, 146) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763dd, 147) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763dc, 148) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763db, 149) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763da, 150) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d9, 151) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d8, 152) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d7, 153) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d6, 154) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d5, 155) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d4, 156) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d3, 157) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d2, 158) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d1, 159) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763d0, 160) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763cf, 161) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ce, 162) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763cd, 163) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763cc, 164) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763cb, 165) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763ca, 166) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763c9, 167) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763c8, 168) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763c7, 169) = -1 EAGAIN (Resource temporarily unavailable) read(3, 0x41763c6, 170) = -1 EAGAIN (Resource temporarily unavailable) ``` The offset keeps incrementing. Does not happen on 2.6.0. From issues-reply at bitbucket.org Wed Oct 21 03:46:19 2015 From: issues-reply at bitbucket.org (Jay Oster) Date: Wed, 21 Oct 2015 01:46:19 -0000 Subject: [pypy-issue] Issue #2167: "cannot find gc roots!" occurs infrequently on PyPy 2.6.1 + gevent (pypy/pypy) Message-ID: <20151021014619.3073.79524@app04.ash-private.bitbucket.org> New issue 2167: "cannot find gc roots!" occurs infrequently on PyPy 2.6.1 + gevent https://bitbucket.org/pypy/pypy/issues/2167/cannot-find-gc-roots-occurs-infrequently Jay Oster: This occurs very infrequently. We have a cluster running 480 instances of PyPy + gevent. And over a 3 week period, we hit this error a total of 12 times. Because of the low frequency of occurrence, there isn't much we care to do about it (the service restarts automatically). And due to having no other information reported during the error condition, I have no way to help identify its cause. I'm willing to run one of the machines with a debug build of PyPy if that will help isolate the issue. The only trouble there is that it will be a waiting game for it to happen next. If anyone can provide instructions (or a precompiled debug build for Ubuntu) that would be immediately helpful. From issues-reply at bitbucket.org Wed Oct 21 10:36:54 2015 From: issues-reply at bitbucket.org (falsetru) Date: Wed, 21 Oct 2015 08:36:54 -0000 Subject: [pypy-issue] Issue #2168: ValueError: binary mode doesn't take an errors argument (pypy/pypy) Message-ID: <20151021083654.6242.24333@app06.ash-private.bitbucket.org> New issue 2168: ValueError: binary mode doesn't take an errors argument https://bitbucket.org/pypy/pypy/issues/2168/valueerror-binary-mode-doesnt-take-an falsetru: ValueError message mismatch. In CPython 2.7: ``` #!python >>> import io >>> io.open('/tmp/test.txt', 'wb', encoding='utf-8') Traceback (most recent call last): File "", line 1, in ValueError: binary mode doesn't take an encoding argument ``` In Pypy 2.6.1: ``` #!python >>>> import io >>>> io.open('/tmp/test.txt', 'wb', encoding='utf-8') Traceback (most recent call last): File "", line 1, in ValueError: binary mode doesn't take an errors argument ``` From issues-reply at bitbucket.org Fri Oct 23 15:04:18 2015 From: issues-reply at bitbucket.org (Yaroslav Fedevych) Date: Fri, 23 Oct 2015 19:04:18 -0000 Subject: [pypy-issue] Issue #2174: PyPy cannot be translated on OS X 10.11 (El Capitan) (pypy/pypy) Message-ID: <20151023190418.17335.77448@app14.ash-private.bitbucket.org> New issue 2174: PyPy cannot be translated on OS X 10.11 (El Capitan) https://bitbucket.org/pypy/pypy/issues/2174/pypy-cannot-be-translated-on-os-x-1011-el Yaroslav Fedevych: No matter if I use a fresh install or upgrade from Yosemite, with a Homebrew-installed OpenSSL, I always get this error upon trying to translate PyPy. ``` [platform:execute] clang -arch x86_64 -c -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/qr/n0s9dqcs1yj5vcb_5fbfphc80000gn/T/usession-default-5/platcheck_27.c -o /var/folders/qr/n0s9dqcs1yj5vcb_5fbfphc80000gn/T/usession-default-5/platcheck_27.o [translation:info] Error: [translation:info] File "/Users/jafd/git/pypy/rpython/translator/goal/translate.py", line 284, in main [translation:info] default_goal='compile') [translation:info] File "/Users/jafd/git/pypy/rpython/translator/driver.py", line 564, in from_targetspec [translation:info] spec = target(driver, args) [translation:info] File "targetpypystandalone.py", line 301, in target [translation:info] return self.get_entry_point(config) [translation:info] File "targetpypystandalone.py", line 352, in get_entry_point [translation:info] space = make_objspace(config) [translation:info] File "/Users/jafd/git/pypy/pypy/tool/option.py", line 35, in make_objspace [translation:info] return Space(config) [translation:info] File "/Users/jafd/git/pypy/pypy/interpreter/baseobjspace.py", line 397, in __init__ [translation:info] self.initialize() [translation:info] File "/Users/jafd/git/pypy/pypy/objspace/std/objspace.py", line 99, in initialize [translation:info] self.make_builtins() [translation:info] File "/Users/jafd/git/pypy/pypy/interpreter/baseobjspace.py", line 588, in make_builtins [translation:info] self.install_mixedmodule(mixedname, installed_builtin_modules) [translation:info] File "/Users/jafd/git/pypy/pypy/interpreter/baseobjspace.py", line 619, in install_mixedmodule [translation:info] modname = self.setbuiltinmodule(mixedname) [translation:info] File "/Users/jafd/git/pypy/pypy/interpreter/baseobjspace.py", line 459, in setbuiltinmodule [translation:info] None, None, ["Module"]).Module [translation:info] File "/Users/jafd/git/pypy/pypy/module/_hashlib/__init__.py", line 2, in [translation:info] from pypy.module._hashlib.interp_hashlib import algorithms, fetch_names [translation:info] File "/Users/jafd/git/pypy/pypy/module/_hashlib/interp_hashlib.py", line 3, in [translation:info] from rpython.rlib import rgc, ropenssl [translation:info] File "/Users/jafd/git/pypy/rpython/rlib/ropenssl.py", line 51, in [translation:info] include_dir='inc32', library_dir='out32'), [translation:info] File "/Users/jafd/git/pypy/rpython/rtyper/tool/rffi_platform.py", line 838, in configure_external_library [translation:info] raise last_error [translation:ERROR] CompilationError: CompilationError(err=""" [translation:ERROR] /var/folders/qr/n0s9dqcs1yj5vcb_5fbfphc80000gn/T/usession-default-5/platcheck_27.c:79:10: fatal error: 'openssl/ssl.h' file not found [translation:ERROR] #include [translation:ERROR] ^ [translation:ERROR] 1 error generated. [translation:ERROR] """) [translation] start debugger... > /Users/jafd/git/pypy/rpython/rtyper/tool/rffi_platform.py(838)configure_external_library() -> raise last_error ``` The backtrace from debugger: ``` /Users/jafd/git/pypy/rpython/bin/rpython(20)() -> main() /Users/jafd/git/pypy/rpython/translator/goal/translate.py(325)main() -> debug(True) /Users/jafd/git/pypy/rpython/translator/driver.py(564)from_targetspec() -> spec = target(driver, args) /Users/jafd/git/pypy/pypy/goal/targetpypystandalone.py(301)target() -> return self.get_entry_point(config) /Users/jafd/git/pypy/pypy/goal/targetpypystandalone.py(352)get_entry_point() -> space = make_objspace(config) /Users/jafd/git/pypy/pypy/tool/option.py(35)make_objspace() -> return Space(config) /Users/jafd/git/pypy/pypy/interpreter/baseobjspace.py(397)__init__() -> self.initialize() /Users/jafd/git/pypy/pypy/objspace/std/objspace.py(99)initialize() -> self.make_builtins() /Users/jafd/git/pypy/pypy/interpreter/baseobjspace.py(588)make_builtins() -> self.install_mixedmodule(mixedname, installed_builtin_modules) /Users/jafd/git/pypy/pypy/interpreter/baseobjspace.py(619)install_mixedmodule() -> modname = self.setbuiltinmodule(mixedname) /Users/jafd/git/pypy/pypy/interpreter/baseobjspace.py(459)setbuiltinmodule() -> None, None, ["Module"]).Module /Users/jafd/git/pypy/pypy/module/_hashlib/__init__.py(2)() -> from pypy.module._hashlib.interp_hashlib import algorithms, fetch_names /Users/jafd/git/pypy/pypy/module/_hashlib/interp_hashlib.py(3)() -> from rpython.rlib import rgc, ropenssl /Users/jafd/git/pypy/rpython/rlib/ropenssl.py(51)() -> include_dir='inc32', library_dir='out32'), > /Users/jafd/git/pypy/rpython/rtyper/tool/rffi_platform.py(838)configure_external_library() -> raise last_error ``` The system no longer ships OpenSSL in any form, so the include files are not available from vendor. So far, I have tried: * Setting $PKG_CONFIG_PATH * Setting $CFLAGS, $CPPFLAGS, $LDFLAGS * Using CPython and not a nightly build of PyPy The crash is still consistent and persistent, like a Kirby salesman desperate to sell you a vacuum cleaner. From issues-reply at bitbucket.org Mon Oct 26 18:31:12 2015 From: issues-reply at bitbucket.org (Carl Friedrich Bolz) Date: Mon, 26 Oct 2015 22:31:12 -0000 Subject: [pypy-issue] Issue #2175: add script to upload release packages (pypy/pypy) Message-ID: <20151026223112.10586.92417@app13.ash-private.bitbucket.org> New issue 2175: add script to upload release packages https://bitbucket.org/pypy/pypy/issues/2175/add-script-to-upload-release-packages Carl Friedrich Bolz: Just to document my research, here's a shell script to upload stuff to bitbucket: https://bitbucket.org/Swyter/bitbucket-curl-upload-to-repo-downloads/src maybe we can use that to automate the annoying upload process to bitbucket. From issues-reply at bitbucket.org Wed Oct 28 07:51:39 2015 From: issues-reply at bitbucket.org (Will Gardner) Date: Wed, 28 Oct 2015 11:51:39 -0000 Subject: [pypy-issue] Issue #2176: Fatal RPython error: ParseStringOverflowError (pypy/pypy) Message-ID: <20151028115139.5538.3540@app07.ash-private.bitbucket.org> New issue 2176: Fatal RPython error: ParseStringOverflowError https://bitbucket.org/pypy/pypy/issues/2176/fatal-rpython-error Will Gardner: Doing some data processing I get a Fatal RPython error when attempting to call: ``` #!python def num(s): """ Simple function for converting a string to an int or float. :param s: str :return int|float|None """ try: return int(s) except (TypeError, ValueError): try: return float(s) except (TypeError, ValueError): return None ``` with the string '18446744073625060068' (Specifically it occurs at ```return int(s)```). This seems to occur after the JIT kicks in and doesn't occur when it's been run elsewhere. Exact error output is: ``` RPython traceback: ... Fatal RPython error: ParseStringOverflowError ``` From issues-reply at bitbucket.org Thu Oct 29 03:16:47 2015 From: issues-reply at bitbucket.org (Jay Oster) Date: Thu, 29 Oct 2015 07:16:47 -0000 Subject: [pypy-issue] Issue #2177: documentation: build requires tk-dev on ubuntu (pypy/pypy) Message-ID: <20151029071647.21225.61097@app02.ash-private.bitbucket.org> New issue 2177: documentation: build requires tk-dev on ubuntu https://bitbucket.org/pypy/pypy/issues/2177/documentation-build-requires-tk-dev-on Jay Oster: The [build documentation](http://doc.pypy.org/en/latest/build.html) does not mention this dependency, but I had to install `tk-dev` on a fresh Ubuntu image to get a debug build working. From issues-reply at bitbucket.org Thu Oct 29 22:53:04 2015 From: issues-reply at bitbucket.org (Yuu Yamashita) Date: Fri, 30 Oct 2015 02:53:04 -0000 Subject: [pypy-issue] Issue #2178: no binary uploaded for PyPy 4.0.0 freebsd64 (pypy/pypy) Message-ID: <20151030025304.19811.51274@app12.ash-private.bitbucket.org> New issue 2178: no binary uploaded for PyPy 4.0.0 freebsd64 https://bitbucket.org/pypy/pypy/issues/2178/no-binary-uploaded-for-pypy-400-freebsd64 Yuu Yamashita: It's listed in http://pypy.org/download.html. The download link of https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-freebsd64.tar.bz2 is not working, though. From issues-reply at bitbucket.org Thu Oct 29 23:40:54 2015 From: issues-reply at bitbucket.org (cy2) Date: Fri, 30 Oct 2015 03:40:54 -0000 Subject: [pypy-issue] Issue #2179: open() blocks the thread, but only in a module, until the main module is ...finished? (pypy/pypy) Message-ID: <20151030034054.16272.39887@app15.ash-private.bitbucket.org> New issue 2179: open() blocks the thread, but only in a module, until the main module is ...finished? https://bitbucket.org/pypy/pypy/issues/2179/open-blocks-the-thread-but-only-in-a cy2: When I try to open a file in a thread, the call to open() blocks until my main thread has fallen off and run out of code. But only if that code was loaded from a module. It produces a deadlock if the main thread depends on any results from the thread subsequent to that call to open(), severely limiting what I/O a thread can do with the main thread blocking all open() calls from completing. Tried it on pypy3, not a problem on pypy2 apparantly. Python 3.2.5 (b2091e973da69152b3f928bfaabd5d2347e6df46, Sep 10 2015, 00:16:16) I can't compile the latest python. (3 hours compiling, then 70 pages of compiler warnings, with an error somewhere in there)