antocuni changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | "PyPy: the Gradual Reduction of Magic (tm)"
<kenaan_>
rlamy default 82244130bf34 /pypy/module/_io/interp_stringio.py: Add readline() and readline_universal() methods to UnicodeIO, and stop sharing the implementation with textio
<antocuni>
arigato: FWIW, I'm still debugging the vmprof+stacklet issue. As usual I am confused and I'm not sure to understand what's going on, but I think it's more or less the following:
<antocuni>
1) vmprof sampling is controlled by a C variable signal_handler_ignore: if it's 0, we take samples, if it's >0, we don't
<antocuni>
2) vmprof_stop_sampling does basically signal_handler_ignore++; vmprof_start_sampling does signal_handler_ignore--
<antocuni>
3) signal_hanlder_ignore is statically initialized to 1
<antocuni>
4) in 386b50664e3e, you call stop_sampling inside StackletThread.new: this means that as soon as we create a _continulet, signal_handler_ignore becomes 2 (or more), and so we NEVER take samples
<antocuni>
uhm, maybe my theory is wrong, because we call start_sampling before returning the new
<antocuni>
as usual, I have a hard time trying to follow the control flow
raynold has quit [Quit: Connection closed for inactivity]
dddddd has joined #pypy
<antocuni>
ok, I think that what happens is this:
<antocuni>
enter new: stop_sampling(), ignore_signals == 2
<arigato>
yes, it's missing in new_stacklet_callback
<arigato>
it should do start_sampling() at the beginning, and stop_sampling() at the end
oberstet2 has quit [Ping timeout: 248 seconds]
<arigato>
before my change a few days ago, only switch() had the calls, which was clearly wrong because the switch can e.g. return from a dying stacklet
<mattip>
no, it is from module/_continuation/interp_continuation.py:47 eventually calling cintf.save_rvmprof_stack(), which calls vmprof_stop_sampling()
<antocuni>
in my idea, cintf.save_rvmprof_stack would call the "stop_sampling" I linked above
<mattip>
ahh then it would work.
<antocuni>
yes, and most importantly it would also allow us to write deeper tests and check that vmprof is actually enabled when we want
<mattip>
couldn't we do that without the we_are_translated hack by looking at the log? But yes, I see where it might be easier
<antocuni>
which log?
<antocuni>
but apart from that, a simulated {start,stop}_sampling has other advantages: e.g. we can easily reset it to a known value when the test start
tbodt has joined #pypy
<mattip>
ok, will require some refactoring of save_rmvprof_stack, restore_rvmprof_stack in cintf.py
<antocuni>
yes, likely
<antocuni>
I'd say that cintf.py should NEVER be used directly outside of rvmprof/
raynold has joined #pypy
<mattip>
+1
<mattip>
that completes the picture for me and then 72001f56a97f could be reverted
<kenaan_>
mattip buildbot a64690c374cf /bot2/pypybuildbot/builds.py: cleanup, add ensurepip step for TranslatedTests (downloading only) builders (ARM) builders that translate call e...
<mattip>
hopefully that is the last buildbot change needed to support the extra tests under a virtualenv,