cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | "the modern world where network packets and compiler optimizations are effectively hostile"
dmalcolm has joined #pypy
<mjacob> simpson: what do you plan exactly?
<mjacob> simpson: what do you mean by "do cps"?
<simpson> mjacob: I'd like to transform an incoming program to continuation-passing style and then take advantage of that to use continuations instead of exceptions for non-local control flow.
<mjacob> simpson: out of interest, how is the non-local control flow represented in the source language?
rokujyouhitoma has joined #pypy
marr has quit [Ping timeout: 255 seconds]
<simpson> mjacob: Syntactic support for single-shot delimited continuations. Examples are available here: https://stackoverflow.com/questions/44349434/are-there-interesting-single-shot-monads-besides-maybe-and-either
<ndash_> simpson: i bet pycket does it.
ssbr has quit [Ping timeout: 258 seconds]
<simpson> Probably.
rokujyouhitoma has quit [Ping timeout: 260 seconds]
<mjacob> simpson: did you already implement it without CPS?
<simpson> mjacob: Yeah. We use RPython exceptions to model ejection.
<simpson> A contributor complained that this was bad, and so now I'm here investigating alternatives.
[0__0] has quit [Ping timeout: 276 seconds]
<mjacob> simpson: my "guess" is that it's possible with continulets, but the answer to your question depends on how it is implemented
<mjacob> simpson: that's why i'm asking these stupid questions
<mjacob> if you point me to the relevant discussion, i might be able to say more
[0__0] has joined #pypy
<simpson> mjacob: No, it's fair. Basically the proposal is that we rebuild a non-trivial portion of our backend to do a CPS transformation, and then we execute by repeatedly building prompts and computing to their edges, like in shift/reset for Scheme. I'm mostly interested in knowing what my options are for continuations which work with the GC and JIT.
<mjacob> btw, what is the reason why exceptions are bad for this?
<mjacob> this = "for implementing single-shot delimited continuations"
<simpson> They're slow. Right now it takes about 5x as long to traverse a chain of repeated escapes compared to a chain of repeated ifs.
ssbr has joined #pypy
kipras is now known as kipras`away
<mjacob> simpson: stacklets (the underlying primitive of PyPy's continulets) are 'the generic RPython-level building block for "one-shot continuations"' (quote from the documentation), so these are the obvious candidates to implement what you want
<mjacob> simpson: it doesn't really answer your question, but i would recommend to try that route first
<mjacob> (without CPS)
<mjacob> simpson: if it turns out that stacklets are too slow, then this might give you a hint whether they should be used to implement CPS ;)
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Client Quit]
<kenaan> rlamy multiphase c0c2ccfe883f /pypy/module/cpyext/test/: Add test
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #pypy
<simpson> mjacob: Sweet, thanks.
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
ronan has quit [Ping timeout: 240 seconds]
_whitelogger has joined #pypy
yuyichao has joined #pypy
ArneBab has joined #pypy
ArneBab_ has quit [Ping timeout: 255 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
gclawes has quit [Ping timeout: 258 seconds]
pilne has quit [Quit: Quitting!]
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #pypy
tilgovi has joined #pypy
jamesaxl has quit [Ping timeout: 240 seconds]
tumbleweed has joined #pypy
tumbleweed has joined #pypy
tumbleweed has quit [Changing host]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 268 seconds]
dmalcolm has quit [Ping timeout: 260 seconds]
jamesaxl has joined #pypy
tilgovi has quit [Ping timeout: 246 seconds]
rokujyouhitoma has joined #pypy
dmalcolm has joined #pypy
rokujyouhitoma has quit [Ping timeout: 255 seconds]
exarkun has quit [Ping timeout: 255 seconds]
exarkun has joined #pypy
gclawes has joined #pypy
ssbr has quit [Remote host closed the connection]
jamesaxl has quit [Ping timeout: 276 seconds]
marky1991 has quit [Ping timeout: 276 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
exarkun has quit [Ping timeout: 240 seconds]
exarkun_ has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
leto_ni has joined #pypy
jamesaxl has joined #pypy
<mjacob> arigato: FYI, i fixed the revdb problem by passing --no-shared
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
antocuni has joined #pypy
exarkun_ has quit [Ping timeout: 268 seconds]
exarkun has joined #pypy
cstratak has joined #pypy
marr has joined #pypy
webmeister has quit [Ping timeout: 240 seconds]
webmeister has joined #pypy
[0__0] has quit [*.net *.split]
kanaka has quit [*.net *.split]
nimaje has quit [*.net *.split]
fryguybob has quit [*.net *.split]
jerith has quit [*.net *.split]
bogner has quit [*.net *.split]
plan_rich has quit [*.net *.split]
cerealized has quit [*.net *.split]
pybot has quit [*.net *.split]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
pybot has joined #pypy
fryguybob has joined #pypy
bogner has joined #pypy
jerith has joined #pypy
nimaje has joined #pypy
cerealized has joined #pypy
plan_rich has joined #pypy
kanaka has joined #pypy
[0__0] has joined #pypy
danieljabailey has quit [Quit: ZNC 1.6.4+deb1 - http://znc.in]
danieljabailey has joined #pypy
mihaid has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<LarstiQ> njs: some of the problems there came from interacting with non-transactional code, which I think should be easier on pypy due to starting from the gil?
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
exarkun has quit [Ping timeout: 255 seconds]
exarkun has joined #pypy
<kenaan> mattip default dcea72970920 /pypy/module/cpyext/: test, fix calling unbound object method with no args like np.int32.__array__()
dmalcolm has quit [Ping timeout: 255 seconds]
ronan has joined #pypy
dmalcolm has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
nimaje1 has joined #pypy
nimaje1 is now known as nimaje
nimaje has quit [Killed (wilhelm.freenode.net (Nickname regained by services))]
jcea has joined #pypy
oberstet has joined #pypy
<kenaan> fijal default 1a9ef5428d4e /rpython/tool/version.py: warn only if mercurial explodes
<kenaan> fijal default e3868e494742 /: merge
<kenaan> fijal default 85d7ced5c2a8 /rpython/tool/version.py: more of the same
ronan has quit [Ping timeout: 240 seconds]
marky1991 has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
<Remi_M> LarstiQ: Indeed, as long as we don't introduce atomic blocks and only use STM to replace the GIL, we don't have most of the problems mentioned in that article. But we did experiments with atomic blocks and there we did encounter some of the same issues.
<LarstiQ> Remi_M: I still need to finish the article you linked to me too
ronan has joined #pypy
Rhy0lite has joined #pypy
marky1991 has quit [Ping timeout: 240 seconds]
marr has quit [Ping timeout: 246 seconds]
jcea has quit [Ping timeout: 276 seconds]
rokujyouhitoma has joined #pypy
cstratak has quit [Quit: Leaving]
cstratak has joined #pypy
jcea has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
adamholmberg has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
marky1991 has joined #pypy
cstratak has quit [Ping timeout: 240 seconds]
jcea has quit [Remote host closed the connection]
jcea has joined #pypy
cstratak has joined #pypy
cstratak has quit [Remote host closed the connection]
cstratak has joined #pypy
jamesaxl has quit [Ping timeout: 260 seconds]
kanaka has quit [Changing host]
kanaka has joined #pypy
_main_ has joined #pypy
_main_ has quit [Read error: Connection reset by peer]
_main_ has joined #pypy
yuyichao has quit [Ping timeout: 276 seconds]
__main__ has quit [Read error: Connection reset by peer]
rokujyouhitoma has joined #pypy
_main_ is now known as __main__
rokujyouhitoma has quit [Ping timeout: 260 seconds]
yuyichao has joined #pypy
<kenaan> mattip default d6b37b7c15ee /pypy/module/cpyext/: test, fix for cpython compatibility when PyObject_RichCompareBool(a, a, ...)
mvantellingen has quit [Ping timeout: 240 seconds]
mvantellingen has joined #pypy
rokujyouhitoma has joined #pypy
leto_ni has quit [Ping timeout: 240 seconds]
rokujyouhitoma has quit [Ping timeout: 260 seconds]
antocuni has quit [Ping timeout: 255 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
realtime has joined #pypy
demonimin has quit [Remote host closed the connection]
demonimin has joined #pypy
Tiberium has joined #pypy
Tiberium has quit [Client Quit]
kipras`away is now known as kipras
adamholm_ has joined #pypy
rokujyouhitoma has joined #pypy
adamholmberg has quit [Ping timeout: 248 seconds]
<mattip> it turns out I was misinterpreting the MemoryError failures in the pandas test suite,
<mattip> np.int32.__array__() was raising a MemoryError, and had the impression there were system-level OOM errors
rokujyouhitoma has quit [Ping timeout: 240 seconds]
<mattip> now that I fixed the descriptor method error, pandas has only 81 failures left, about 30 have to do with sys.getsizeof()
<LarstiQ> how many were there before?
cstratak has quit [Quit: Leaving]
<mattip> ~130
* mattip updating the wiki-blog
Tiberium has joined #pypy
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
oberstet has quit [Ping timeout: 240 seconds]
exarkun has quit [Read error: Connection reset by peer]
exarkun has joined #pypy
adamholm_ has quit [Remote host closed the connection]
adamholmberg has joined #pypy
santagada has quit [Quit: Connection closed for inactivity]
ronan has quit [Quit: Ex-Chat]
ronan has joined #pypy
marr has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
Rhy0lite has quit [Quit: Leaving]
lritter has joined #pypy
ronan has quit [Ping timeout: 240 seconds]
pilne has joined #pypy
leto_ni has joined #pypy
adamholm_ has joined #pypy
adamholmberg has quit [Read error: Connection reset by peer]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
marky1991 has quit [Read error: Connection reset by peer]
lritter has quit [Quit: Leaving]
Tiberium has quit [Remote host closed the connection]
ronan has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 255 seconds]
ronan has quit [Ping timeout: 240 seconds]
leto_ni has quit [Ping timeout: 255 seconds]
adamholm_ has quit [Remote host closed the connection]
adamholmberg has joined #pypy
ronan has joined #pypy
adamholmberg has quit [Ping timeout: 276 seconds]
marr has quit [Ping timeout: 255 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
lritter has joined #pypy
lritter has quit [Quit: Leaving]
ronan has quit [Ping timeout: 240 seconds]
rokujyouhitoma has joined #pypy
ssbr has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
marky1991 has joined #pypy
mvantellingen has quit [Ping timeout: 240 seconds]
yuyichao has quit [Ping timeout: 258 seconds]
mvantellingen has joined #pypy
yuyichao has joined #pypy
marky1991 has quit [Ping timeout: 240 seconds]
yuyichao has quit [Read error: Connection reset by peer]