adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
<kenaan>
arigo shadowstack-issue2722 d92c072bcab5 /pypy/module/sys/vm.py: Seems to work as expected, writing down a comment here after I debugged a multi-threaded problem that...
<kenaan>
arigo shadowstack-issue2722 d14d5e009ca0 /: close branch, ready to merge
<arigato>
...ok that seems to be open to a completely improbable but not impossible bug
<arigato>
if you start several threads, and then you have code produced by the jit that calls back sys.setrecursionlimit()
<arigato>
the sys.setrecursionlimit() will reallocate all the thread's shadowstacks
<arigato>
if you're very unlucky, thread B's new shadowstack ends up at the very same address as thread A's old shadowstack
<arigato>
then the JIT has got a problem because it uses the shadowstack pointer across a call but only to detect if the shadowstack may need to be reloaded because it's from another thread
<arigato>
...ok the JIT does that only when it uses call_release_gil
<arigato>
so you need Yet More Strange code to trigger that bug
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
marky1991 has joined #pypy
<mattip>
since 3.8 release is very close, should we just skip 3.7 and jump to 3.8 as our next development target
<mattip>
?
jcea has joined #pypy
moei has joined #pypy
fryguybob has quit [Read error: Connection reset by peer]
fryguybob has joined #pypy
jcea has quit [Remote host closed the connection]
mattip has quit [Remote host closed the connection]
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
phinxy has quit [Quit: Lost terminal]
<cfbolz>
mattip: it would be an option, yes. We should discuss it
antocuni has quit [Ping timeout: 244 seconds]
jcea has joined #pypy
marky1991 has quit [Ping timeout: 244 seconds]
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
forgottenone has quit [Quit: Konversation terminated!]
Rhy0lite has quit [Quit: Leaving]
asmeurer_ has joined #pypy
marky1991 has quit [Ping timeout: 250 seconds]
marky1991 has joined #pypy
Zaab1t has joined #pypy
<energizer>
where do i find the ast->bytecode compiler code?
<cfbolz>
energizer: in pypy/interpreter/astcompiler
<energizer>
cfbolz: thanks
Zaab1t has quit [Quit: bye bye friends]
asmeurer_ has quit [Quit: asmeurer_]
Garen_ has joined #pypy
niceplace has quit [Ping timeout: 250 seconds]
dansan_ has joined #pypy
Garen has quit [Ping timeout: 250 seconds]
glyph has quit [Ping timeout: 250 seconds]
dansan has quit [Ping timeout: 250 seconds]
glyph has joined #pypy
Garen_ has quit [Read error: Connection reset by peer]
niceplace has joined #pypy
Garen has joined #pypy
mattip has joined #pypy
<catern>
on cffi 1.12, "a = ffi.new("foo*"); a[0]" and "b = ffi.from_buffer("foo[]", data); b[0]", the former gives me a CDataOwn and the latter gives me just a CData
<catern>
is there anything I can do to get the second to be owning as well? :(
<catern>
I was looking forward to this feature
<catern>
the reason this is relevant to me is that I want to use ffi.from_buffer to turn a bytebuffer holding a single struct, into a CFFI object
<catern>
I'm not using it on arrays, just single structs, and so it's a hassle to use [0] everywhere
<catern>
maybe I can more directly ask: if I have a Python "bytes" object, and I want to interpret that as a single C struct, what's the best way to do that?