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"
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
gbutnaru has quit [Ping timeout: 240 seconds]
marky1991 has joined #pypy
asmeurer_____ has quit [Quit: asmeurer_____]
gbutnaru has joined #pypy
marr has quit [Ping timeout: 268 seconds]
rokujyouhitoma has joined #pypy
raynold has joined #pypy
rokujyouhitoma has quit [Ping timeout: 268 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
asmeurer_ has joined #pypy
realtime has quit [Read error: Connection reset by peer]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
ArneBab_ has joined #pypy
ArneBab has quit [Ping timeout: 260 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 276 seconds]
infernix has quit [Read error: Connection reset by peer]
infernix has joined #pypy
pilne has quit [Quit: Quitting!]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
tormoz has quit [Ping timeout: 240 seconds]
oberstet2 has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
forgottenone has joined #pypy
oberstet2 has quit [Ping timeout: 260 seconds]
oberstet2 has joined #pypy
moei has quit [Quit: Leaving...]
arigato has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
Remi_M has joined #pypy
<fijal> yuvipanda: ok, I can give it a deeper loo
<fijal> k
<yuvipanda> fijal: hah, cool! :)
<yuvipanda> I just got a 99M file to upload
<yuvipanda> anything over 100 is killed with a connection reset by peer immediately
<fijal> there might be more than one mechanism to stop you ;-)
<yuvipanda> yeah
<yuvipanda> connection reset sounds like nginx or iptables, but more probably nginx (if it's based on content-length maybe)
<yuvipanda> the amount of rollbacks in the code baffles me. I'm not sure why that's happening
<yuvipanda> is there a way for me to tell from vmprof total 'wall time' spent on a function?
<yuvipanda> than just relative time?
<fijal> nope
<fijal> (it does not have notiont of time FYI)
<fijal> you could guess, but not
<fijal> no
<yuvipanda> right
demonimin has quit [Ping timeout: 240 seconds]
realitix has joined #pypy
demonimin has joined #pypy
demonimin has quit [Changing host]
demonimin has joined #pypy
forgottenone has quit [Ping timeout: 240 seconds]
forgottenone has joined #pypy
rokujyouhitoma has joined #pypy
<njs> yuvipanda: cprofile will at least tell you how many times the rollback code is called, so you know whether it's one giant call or 1000000 little calls
<yuvipanda> njs: right. I know it gets called at the end of every request tho...
<yuvipanda> njs: I'm now unsure if it is necessary or not.
<yuvipanda> not sure if that is necessary ofc
<njs> oh odd.
<yuvipanda> it looks like possible defensive programming, in case a commit was forgotten earlier.
<njs> of course "wait we're doing this thing that takes a ton of time and we don't need to" is the ideal outcome from profiling, so hopefully it's that :-)
<njs> one might hope that the db library is clever enough to realize that if the very last command on a connection as a commit then the rollback is unnecessary
<njs> but perhaps not...
<yuvipanda> njs: plus the fact that it's tornado complicates things - idk if we have one session per connection or not...
rokujyouhitoma has quit [Ping timeout: 260 seconds]
<njs> yeah I can't help you there
<yuvipanda> njs: am also not sure if cpython had the same profile.
<yuvipanda> njs: so it's possible this is something that's cheaper with cpython and we didn't notice...
<njs> or everything else is more expensive :-)
<fijal> maze of passages all alike....
<yuvipanda> right :D
<njs> (but like fijal noted yesterday, ORMs sometimes do weird "clever" things that cause pypy to break out of JIT-mode and get slow, it's not impossible you're hitting one of those)
<yuvipanda> yeah
<yuvipanda> I should tweak my dockerfiles so I can easily switch between pypy and cpython
<fijal> njs: did you look through my pycon ru slides by any chance?
<njs> fijal: didn't I chat with you about them the other day?
<fijal> maybe :)
<fijal> conferences are weird - they erase my ability to commit to long term memory
<njs> I think the conclusion was "yep those problems sure are hard problems" :-)
<fijal> click
<fijal> njs: ok, now I remember :)
<njs> (and I whined that mutating generator locals is totally a legitimate use case)
<fijal> yes, yes, you remind me exactly about the conversation :)
<njs> :-)
<yuvipanda> njs: also, not sure if you saw - the patch fixed the SSL corruption :) I still can't comment on bitbucket tho
<njs> fijal: so what's the status of no-GIL pypy?
<fijal> njs: we need to write the blog post what we want to do, I think
<realitix> Hello fijal and arigato. During his keynote, Armin Ronacher said that pypy copy the mistakes of CPython. Do you know what he was talking about ?
<fijal> bug-to-bug compatibility
<fijal> C API
<fijal> such stuff
<realitix> yes but is there others choices ?
<realitix> to keep cope compatible
<realitix> code*
<LarstiQ> realitix: the difference is in philosophy, wether to aim for best compatibility, or to fork the Python language for a "better" one
<fijal> we tried not supporting C API
ronan has joined #pypy
<njs> realitix: I'm not sure he even meant this as a criticism of pypy
<realitix> i agree
<arigato> yuvipanda: thanks for confirming that the SSL corruption is now fixed :-)
<yuvipanda> np, arigato! thanks for fixing it!
ronan has quit [Quit: Ex-Chat]
ronan has joined #pypy
ronan has quit [Read error: Connection reset by peer]
ronan has joined #pypy
<arigato> remote: abort: abandoned transaction found!
<arigato> remote: (run 'hg recover' to clean up transaction)
<arigato> on bitbucket's pypy
<arigato> do I need to actually do something like logging in somewhere, or do I just wait?
glyph has quit [Quit: End of line.]
glyph has joined #pypy
ronan has quit [Quit: Ex-Chat]
<LarstiQ> arigato: when doing what?
<LarstiQ> hg pull works for me
<arigato> hg push
rokujyouhitoma has joined #pypy
<arigato> let's hope it won't take 2 weeks
rokujyouhitoma has quit [Ping timeout: 255 seconds]
<LarstiQ> wonder if you can give ssh://hg@bitbucket.org/pypy/pypy to -R
cstratak has joined #pypy
<arigato> no
ronan has joined #pypy
vkirilichev has joined #pypy
antocuni has joined #pypy
marr has joined #pypy
<fijal> can we update rpython package on pypi?
<fijal> ronny: did you upload that?
<yuvipanda> how much of a slowdown do you expect from cpext on pypy?
<yuvipanda> wondering if pycurl will be much slower
<fijal> a lot, in principle
ronan has quit [Quit: Ex-Chat]
ronan has joined #pypy
rokujyouhitoma has joined #pypy
rmariano has joined #pypy
<ronny> fijal: did you mean ronan ?
<fijal> yes I did
<fijal> ronan: ^^^
<ronan> fijal: yes I did upload it
<fijal> can we do another release?
<ronan> yes, in principle
<fijal> what's stopping us?
<ronan> bitbucket working, for one
<fijal> fair
rokujyouhitoma has quit [Ping timeout: 276 seconds]
raynold has quit [Quit: Connection closed for inactivity]
antocuni_ has joined #pypy
antocuni has quit [Ping timeout: 248 seconds]
<arigato> note that my complain about bitbucket is only to push
asmeurer_ has quit [Quit: asmeurer_]
rubdos has quit [Quit: WeeChat 1.7.1]
antocuni__ has joined #pypy
<ronan> arigato: yes, but I'd like to run tests on buildbot - we can't do that without pushing
antocuni_ has quit [Ping timeout: 260 seconds]
<arigato> running tests doesn't push to pypy/pypy??
* arigato lunch
arigato has quit [Quit: Leaving]
<fijal> ronan: what's stopping you?
<ronan> I need to merge stuff, then push, then run tests
<fijal> ok
antocuni__ has quit [Ping timeout: 255 seconds]
ronan has quit [Ping timeout: 240 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
ronan has joined #pypy
vkirilichev has quit [Remote host closed the connection]
nimaje1 has joined #pypy
nimaje1 is now known as nimaje
nimaje has quit [Killed (verne.freenode.net (Nickname regained by services))]
inad922 has joined #pypy
ronan has quit [Quit: Ex-Chat]
ronan__ has joined #pypy
ronan__ is now known as ronan
vkirilichev has joined #pypy
vkirilichev has quit [Remote host closed the connection]
vkirilichev has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
rmariano has quit [Ping timeout: 260 seconds]
mihneas has joined #pypy
<yuvipanda> njs: fijal to close the loop, we used vmprof to figure out that sqlalchemy was hitting us, and it was a bug in our code that was making us do far more noop DB rollbacks than necessary.
<yuvipanda> njs: fijal we fixed it, and now everything is much faster :)
mihneas has quit [Client Quit]
<yuvipanda> http://vmprof.com/#/7dbd4b7c-e164-43e4-bc06-b2da4042e40c is a new profile, and almost all the hotspots are in hashlib
<yuvipanda> so that's great!
<fijal> yuvipanda: cool, what are the raw numbers?
<yuvipanda> fijal: don't have good comparison numbers between pypy and cpython yet.
<yuvipanda> I'll probably have something by end of the week :)
<yuvipanda> fijal: do you know if the cpext overhead (vs cffi, say) is like 10x or more like 1.5x? just trying to guess order of magnitude :)
<yuvipanda> fijal: anyway, am going to sleep now - it's 5AM! It would be very useful for us if you could find time to raise the vmprof.com limit :D we've sorted out our problems rn for upto 1.5k users, and beyond that the profile is > 100M limit :D
<fijal> more like 5x
Rhy0lite has joined #pypy
<yuvipanda> fijal: hmm, that shouldn't be too bad.
<fijal> plan_rich: can you look into that?
<yuvipanda> we can probably live with that for now
rubdos has joined #pypy
magniff has joined #pypy
antocuni__ has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 268 seconds]
Ryanar has joined #pypy
antocuni__ is now known as antocuni
arigato has joined #pypy
magniff has quit [Quit: Page closed]
adamholmberg has joined #pypy
magniff has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
Rhy0lite has quit [Quit: Leaving]
Rhy0lite has joined #pypy
<ronan> arigato: may I complain about revdb?
<arigato> meh
<arigato> add an issue?
Rhy0lite has quit [Ping timeout: 255 seconds]
Rhy0lite has joined #pypy
ronan has quit [Ping timeout: 240 seconds]
<LarstiQ> yuvipanda: sounds like an excellent story for a guest blogpost on morepypy.blogspot
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
yuyichao has quit [Ping timeout: 240 seconds]
ronan has joined #pypy
yuyichao has joined #pypy
mattip has joined #pypy
arigato has quit [Quit: Leaving]
arigato has joined #pypy
gclawes has quit [Ping timeout: 240 seconds]
forgottenone has quit [Quit: Konversation terminated!]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
gclawes has joined #pypy
<arigato> thanks
* LarstiQ gets `4 integrity errors encountered!`
<LarstiQ> and some corrupt .hgsubstate's
<arigato> is anyone responsible for the "contrib/virtualenv-pypy" subrepos? that seem to have appeared recently
<fijal> on BB?
<arigato> yes, in pypy/pypy
<fijal> Our apologies, but the repository "virtualenv-pypy" has been deleted.
<fijal> or where do you find it?
<fijal> plan_rich: ping
vkirilichev has quit [Remote host closed the connection]
<kenaan> arigo default 3c4fb99e0c59 /pypy/module/gc/: Issue #2612 Simplify gc.get_referrers(). Before, it wasn't guaranteed to return the opposite result as gc.get_ref...
<arigato> "hg push" works now
<arigato> ronan: ^^
<LarstiQ> arigato: was your `hg verify` output different from https://hastebin.com/xodohociza.vbs ?
<pjenvey> arigato: any thoughts on https://bitbucket.org/pypy/pypy/issues/2590/finalizers-heavily-stress-gc my last comment's invalid, I was confusing app/interp level __del__s
<arigato> yes, I've got a different "hg verify" result on different repos...
<arigato> but always something along the same lines
<arigato> and on one repo, no error at all
<arigato> pjenvey: I didn't investigate so far
<arigato> yes, I think your last comment is invalid, because W_Roots should use only the new finalizer queues, not the old-style rpzthon __del__, indeed
antocuni has quit [Ping timeout: 255 seconds]
* arigato is on Windows and Windows likes to switch my keyboard to the US style at *entirely random points in time*: that's why that previous line contains "rpzthon" but "finalizer". it switched in the middle
<pjenvey> =]
<TheAdversary> pjenvey: Error: Spurious "]". You may want to quote your arguments with double quotes in order to prevent extra brackets from being evaluated as nested commands.
<benbangert> lol
<mattip> +]
<mattip> =}
<mattip> =]
<TheAdversary> mattip: Error: Spurious "]". You may want to quote your arguments with double quotes in order to prevent extra brackets from being evaluated as nested commands.
<arigato> what exactly is this bot?
realitix has quit [Quit: Leaving]
<fijal> good question
<fijal> TheAdversary: help
<TheAdversary> fijal: (help [<plugin>] [<command>]) -- This command gives a useful description of what <command> does. <plugin> is only necessary if the command is in more than one plugin. You may also want to use the 'list' command to list all available plugins and commands.
<fijal> TheAdversary: list
<TheAdversary> fijal: Admin, Aka, Anonymous, AutoMode, Channel, ChannelStats, Conditional, Config, Ctcp, Dict, Dunno, Factoids, Filter, Format, Games, Google, Herald, Internet, Karma, Lart, Later, Limiter, Math, MessageParser, Misc, Network, News, NickAuth, NickCapture, Nickometer, Note, Owner, Plugin, PluginDownloader, Praise, RSS, Reply, Scheduler, Seen, Services, ShrinkUrl, Status, String, Success, (1 more message)
<fijal> TheAdversary: owner
<fijal> TheAdversary: Owner
<fijal> TheAdversary: help owner
<TheAdversary> fijal: Error: There is no command "owner". However, "Owner" is the name of a loaded plugin, and you may be able to find its provided commands using 'list Owner'.
<fijal> TheAdversary: list Owner
<TheAdversary> fijal: announce, defaultcapability, defaultplugin, disable, enable, flush, ircquote, load, logmark, quit, reload, reloadlocale, rename, unload, unrename, and upkeep
<fijal> I have no idea
<fijal> do we have a bot policy here?
<dash> whois info indicates it belongs to 'Hasimir'
<fijal> whoever that is
<LarstiQ> it looks like a supybot
<arigato> I vaguely remember this bot, maybe search in the logs
mvantellingen has quit [Read error: Connection reset by peer]
mvantellingen has joined #pypy
<kenaan> rlamy cpyext-leakchecking 20521e5ee07a /pypy/module/cpyext/: Mark the tp_bases of non-heap types as immortal
<kenaan> rlamy cpyext-leakchecking 683cc621ceca /pypy/module/cpyext/test/test_cpyext.py: Filter out interned string from leakfinder output
<kenaan> rlamy cpyext-leakchecking e698bd62fa9d /pypy/module/cpyext/buffer.py: Fix leaking pybuf.c_format
cstratak has quit [Quit: Leaving]
rokujyouhitoma has joined #pypy
cstratak has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]
<mattip> TheAdversary: Praise ronan
<TheAdversary> mattip: Error: There are no praises in my database for #.
oberstet2 has quit [Ping timeout: 240 seconds]
<arigato> :-)
<mattip> LarstiQ: agreed
asmeurer__ has joined #pypy
redj has quit [Read error: Connection reset by peer]
arigato has quit [Quit: Leaving]
asmeurer__ has quit [Quit: asmeurer__]
arigato has joined #pypy
vkirilichev has joined #pypy
cstratak has quit [Quit: Leaving]
magniff has quit [Ping timeout: 260 seconds]
inad922 has quit [Ping timeout: 240 seconds]
<ronan> arigato: is revdb incompatible with cpyext tests?
<ronan> arigato: the replay crashes inside load_cpyext_module()
rokujyouhitoma has joined #pypy
tbodt has joined #pypy
<arigato> ronan: I think so
<arigato> yes, I used revdb once on the cpyext tests
<arigato> ...so I mean, "no" (sorry, missed the "in" in "incompatible")
rokujyouhitoma has quit [Ping timeout: 240 seconds]
<ronan> arigato: but did you import an extension in an app-level test?
<arigato> I think so; at least I ran tests that make, compile, and then import a snippet at app-level
<arigato> the crash you're getting is familiar, btw
<arigato> although it only means "something is wrong somewhere"
<arigato> so a bit of fun debugging revdb in gdb
<arigato> enabling printing details to stderr when recording, etc.
<arigato> the error only means that revdb's reloading gets out of sync with the recorded log
<arigato> then it crashes because it sees nonsense
<ronan> ah, I see
<yuvipanda> LarstiQ: that'll be awesome! We will probably talk about this at JupyterCon in a month too
<LarstiQ> yuvipanda: fijal/cfbolz/arigato can probably tell you more about how a guest blogpost would work
* LarstiQ is mostly a user who would like to read such a thing :)
* yuvipanda nods :)
<yuvipanda> we'll have one on the Jupyter blog anyway ;)
vkirilichev has quit [Remote host closed the connection]
rmariano has joined #pypy
<mattip> yuvipanda: this is our blog https://morepypy.blogspot.com
<mattip> I think our last guest post was this one https://morepypy.blogspot.com/2015/06/pypy-and-ijson-guest-blog-post.html
<LarstiQ> how time flies :/
rokujyouhitoma has joined #pypy
forgottenone has joined #pypy
rokujyouhitoma has quit [Ping timeout: 258 seconds]
yuyichao has quit [Ping timeout: 248 seconds]
yuyichao has joined #pypy
asmeurer_ has joined #pypy
antocuni has joined #pypy
asmeurer_ has quit [Quit: asmeurer_]
<mattip> if a PyObject has a ob_pypy_link, is there an easy way to find out if that pypy_link is not referenced anywhere and collectable?
<mattip> then we could directly release it in decref when the PyObject's refcount reaches rawrefcount.REFCNT_FROM_PYPY
rokujyouhitoma has joined #pypy
forgottenone has quit [Remote host closed the connection]
rokujyouhitoma has quit [Ping timeout: 255 seconds]
Rhy0lite has quit [Quit: Leaving]
asmeurer_ has joined #pypy
vkirilichev has joined #pypy
<arigato> mattip: no
<arigato> it's as hard as the problem of releasing unclosed file objects
<mattip> ok, it should just be an optimization anyway, the gc should be collecting correctly
* mattip am optimistic I will find the problem
<mattip> by comparing when refcnt reaches 0 on cpython vs pypy
<mattip> s/0/whatever passes for 0/
<mattip> setting a watchpoint I see cpython decrefs the callargs in call_function, it seems we do not?
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 268 seconds]
<mattip> false alarm. The args tuple in the function call in PyPy has an effective refcnt of 0, but is kept alive by its pypy_link, all is seemingly OK
rmariano has quit [Ping timeout: 240 seconds]
Ryanar has quit [Ping timeout: 246 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
antocuni has quit [Ping timeout: 240 seconds]
adamholmberg has quit [Remote host closed the connection]
arigato has quit [Quit: Leaving]
asmeurer_ has quit [Quit: asmeurer_]
vkirilichev has quit [Remote host closed the connection]
asmeurer_ has joined #pypy
rokujyouhitoma has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rokujyouhitoma has quit [Ping timeout: 248 seconds]
asmeurer_ has quit [Quit: asmeurer_]
asmeurer_ has joined #pypy
tbodt has joined #pypy
tav has quit [Read error: Connection reset by peer]
tav has joined #pypy
jcea has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 260 seconds]