<mattip>
but I thought the point of handles is to make sure to close all the arguments to a function call
<mattip>
so how can 'keep' stay alive between the function calls?
Atque has quit [Remote host closed the connection]
Atque has joined #pypy
<cfbolz>
mattip: isn't this a test about
<cfbolz>
an illegal use of the API?
Atque has quit [Ping timeout: 268 seconds]
<mattip>
right, but how does "mod.g() == len(s)" even pass on CPython?
<mattip>
mod.g() should raise, since it should be using an invalid handle
<mattip>
(it used to crash on PyPy, but now raises)
<mattip>
maybe I should ask on the hpy IRC channel
<cfbolz>
mattip: I suspect it works by accident, because a handle is just a PyObject* outside debug mode
Atque has joined #pypy
<mattip>
ok, let's go with the "works by accident", I fixed the test assuming that is correct
lastmikoi has quit [Quit: ...]
lastmikoi has joined #pypy
Atque has quit [Ping timeout: 268 seconds]
derpydoo has joined #pypy
Atque has joined #pypy
jcea has joined #pypy
<mattip>
progress: extra_tests/hpy_tests does not crash, there are less that 10 failures/errors
<mattip>
on the hpy-0.0.4 branch
<phlebas>
Is there a way for me to open a merge request for pypy/benchmarks on heptapod? It seems I cannot a repository without manual (human) action on their side, so I cannot create a merge request without access to the repo itself to push my branch there?
<phlebas>
s/I cannot/I cannot fork/
<Hodgestar>
mattip: antocuni will know better than me, but I think reading the comment at the top of hpy/debug/src/debug_internal.h might help. If I understand debug mode correctly, then, in that test, "keep" is a DHPy handle (i.e. an HPy containing a pointer to a DebugHandle). Thus it's valid to store it for the implementation of the debug context within the HPy repo. I don't know too much about debug mode in PyPy (maybe it is the same, maybe not).
<Hodgestar>
Outside of debug mode, of course storing the handle in keep is totally broken and could do almost anything if used later.
<mattip>
so maybe this is a bug with how PyPy manages handles. There is a rpython-level handle manager on top of the c-level one
<mattip>
the rpython debug handle manager does not have a closed_handles list
<ronan>
phlebas: heptapod doesn't do forks, you need to ask for access to the repo
<Hodgestar>
mattip: Maybe the PyPy debug handle manager hasn't had the feature added?
<mattip>
was this a 0.0.4 addition?
jcea has quit [Quit: jcea]
jcea has joined #pypy
Atque has quit [Remote host closed the connection]
Atque has joined #pypy
jcea has quit [Ping timeout: 256 seconds]
Atque has quit [Remote host closed the connection]
Atque has joined #pypy
otisolsen70 has quit [Quit: Leaving]
<Hodgestar>
mattip: It was.
<Hodgestar>
Or at least the test was.
<Hodgestar>
The general structure of debug mode hasn't changed much since 0.0.3, but the new tests relies on the hpy repo implementation. We could probably revisit the semantics a bit if needed.
derpydoo has quit [Ping timeout: 244 seconds]
Atque has quit [Remote host closed the connection]