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"
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
tbodt has quit [Client Quit]
marr has quit [Ping timeout: 240 seconds]
tav has joined #pypy
mattip has quit [Ping timeout: 240 seconds]
mattip has joined #pypy
cloudyplain has joined #pypy
haypo has left #pypy [#pypy]
redj has quit [Ping timeout: 264 seconds]
redj has joined #pypy
Garen has joined #pypy
antocuni has quit [Ping timeout: 260 seconds]
tbodt has joined #pypy
tbodt has quit [Client Quit]
pilne has quit [Quit: Quitting!]
ArneBab has joined #pypy
ArneBab_ has quit [Ping timeout: 248 seconds]
tbodt has joined #pypy
tbodt has quit [Client Quit]
exarkun has quit [Ping timeout: 252 seconds]
exarkun has joined #pypy
forgottenone has joined #pypy
irclogs_io_bot has quit [Ping timeout: 240 seconds]
cloudyplain has quit [Remote host closed the connection]
cloudyplain has joined #pypy
cloudyplain has quit [Read error: Connection reset by peer]
rokujyouhitoma has joined #pypy
cloudyplain has joined #pypy
cloudyplain has quit [Read error: Connection reset by peer]
exarkun has quit [Ping timeout: 260 seconds]
exarkun has joined #pypy
rokujyouhitoma has quit [Remote host closed the connection]
cloudyplain has joined #pypy
vkirilichev has joined #pypy
cloudyplain has quit [Remote host closed the connection]
cloudyplain has joined #pypy
cloudyplain has quit [Read error: Connection reset by peer]
lritter has joined #pypy
cloudyplain has joined #pypy
vkirilichev has quit [Remote host closed the connection]
vkirilichev has joined #pypy
cloudyplain has quit [Read error: Connection reset by peer]
vkirilichev has quit [Remote host closed the connection]
<njs> mattip: (just to check, you're aware you can download free windows VMs from MS? it's very handy if you have the disk space.)
exarkun has quit [Ping timeout: 252 seconds]
exarkun has joined #pypy
vkirilichev has joined #pypy
vkirilichev has quit [Ping timeout: 264 seconds]
cloudyplain has joined #pypy
cloudyplain has quit [Read error: Connection reset by peer]
<kenaan> cfbolz regalloc-playground baece8cd15d9 /rpython/jit/backend/x86/: adds hints for target registers of jumps as well
<kenaan> cfbolz regalloc-playground 7a3cd6204340 /rpython/jit/backend/x86/: make allocation decisions in the LEA case a bit more flexible by freeing the argument
<kenaan> cfbolz regalloc-playground 58247cb00737 /rpython/jit/backend/llsupport/: test and fix for corner case
<kenaan> cfbolz regalloc-playground 7636f0eb120c /rpython/jit/backend/llsupport/test/test_regalloc.py: this one passes now
cloudyplain has joined #pypy
realitix has joined #pypy
<kenaan> cfbolz regalloc-playground d4ec0e2656cd /rpython/jit/backend/x86/: fix for duplicate jump args
<cfbolz> arigato: if you are around: help!
<cfbolz> my problem is: two comments (and maybe the code) in x86/regalloc.py and llsupport/regalloc.py don't agree
<cfbolz> specifically, in x86/regalloc.py:800 the comment about gc_level and in llsupport/regalloc.py:605 the comment about save_all_regs
<arigato> cfbolz: hi, yes
<cfbolz> in one case, gc_level=2 is supposed to save *all* regs, in the other, save_all_regs=1 is supposed to save all regs
<arigato> llsupport/regalloc.py is correct
<cfbolz> I suppose, but then read the logic in def _call in x86
<arigato> I think that 'gc_level' in x86/ has a different meaning
<cfbolz> there is a comment that says "we really should save all regs" and then passes in save_all_regs=2 to llsupport
<arigato> right, but that's a comment about shadowstack, so it should really say "we save all the registers CONTAINING GC REFS for shadowstack and asmgcc for now"
<cfbolz> no
<cfbolz> it's also about non-shadowstack now
<cfbolz> (which we maybe don't care about anyway?)
<arigato> i.e. asmgcc
<arigato> yes, we don't really care about that any more
<arigato> I don't really understand the comment about distinguishing call sites
<cfbolz> :-)
<cfbolz> me neither
<arigato> ah yes
<cfbolz> arigato: anyway, it's still super confusing, because the only thing the code *does* with gc_level is complicated logic what to pass as save_all_regs
<cfbolz> imo they should just use the same meaning
<arigato> (it says that the asmgcc-specific metadata is dumb for jit-generated code, in a way that we can't easily say which call sites have pointers in which registers)
<arigato> cfbolz: yes, agreed
<cfbolz> ok, I might try to clean that up
<arigato> thanks! maybe really create three constants in llsupport
<arigato> but well, note also:
<cfbolz> Yes, constants sounds good
<cfbolz> Yes?
<arigato> right now x86.py passes different values to save_all_regs in the two times it does call before_call()
<cfbolz> Yes, I noticed
<cfbolz> But it doesn't matter, because xrm stores no refs
<arigato> ah right, passing 0 or 1 is the same for xrm.before_call()
<arigato> no
<arigato> 0 or 2?
<cfbolz> Yes
<arigato> ok
<cfbolz> See how it's confusing
<cfbolz> ;-)
<arigato> yup :-)
vkirilichev has joined #pypy
exarkun has quit [Ping timeout: 260 seconds]
exarkun has joined #pypy
cstratak has joined #pypy
marr has joined #pypy
<krono> hey
<krono> arigato: do you have time for a rvmprof question?
vkirilichev has quit [Ping timeout: 264 seconds]
antocuni has joined #pypy
oberstet has joined #pypy
<arigato> krono: yes
<krono> We're currently not able to compile rsqueavm with vmprof support,
<krono> I presume somethign changed in vmprof and we have to adapt
<krono> Could you point me to something we have to change here? https://github.com/HPI-SWA-Lab/RSqueak/blob/master/rsqueakvm/plugins/profiler_plugin.py
<arigato> well, it had not enough tests and the author(s) of the change broke your use case
<arigato> although, no, I'm confusing with another interpreter
<arigato> it seems that you only call the vmprof_execute_code decorator once, right?
<arigato> I'd need some traceback
<krono> yes.
<krono> traceback: a moment please
<krono> (sorry, I get the error only at the end of translation, hence it takes a while)
vkirilichev has joined #pypy
<krono> (thats the complete buildlog)
irclogs_io_bot has joined #pypy
<arigato> seems you use 16 times the vmprof_execute_code decorator
<krono> O.o
<arigato> but the "Interpreter was patched for vmprof" appears only ince
<arigato> once
<krono> yes. We overwirte that stack_frame methoda and it should be the only overridden one
<krono> the mehtod has an optional boolean, tho
exarkun has quit [Ping timeout: 246 seconds]
exarkun has joined #pypy
<arigato> ah, yes, maybe there are only two versions (not 16)
<arigato> and that's with and without the optional boolean
<krono> yes
<arigato> ah, the decorator uses *args
<arigato> so yes, it is compiled in two versions
<arigato> if you work around that, it should work
<krono> ok, so I have to always hand in the optionals and it should work?
<arigato> yes
oberstet has quit [Ping timeout: 240 seconds]
<krono> ok, testing
<krono> arigato: shall I try to amend this in rvmprof and push?
<arigato> in rvmprof itself? how?
<krono> passing on **kwargs in the func or decorated_jitted_function?
<krono> I know, naive apporach :)
<arigato> no, you can't pass **kwargs in RPython functions
<krono> ah, sorry
<krono> been a whlie
<krono> *while
<krono> (afk, I'll report back later. Thanks for your help, armin)
vkirilichev has quit [Ping timeout: 248 seconds]
tormoz has quit [Ping timeout: 260 seconds]
antocuni has quit [Ping timeout: 252 seconds]
tormoz has joined #pypy
oberstet has joined #pypy
oberstet has quit [Remote host closed the connection]
oberstet has joined #pypy
<krono> arigato: compiled fine, thanks again :)
vkirilichev has joined #pypy
cloudyplain has quit [Remote host closed the connection]
cloudyplain has joined #pypy
Garen_ has joined #pypy
cloudyplain has quit [Read error: Connection reset by peer]
Garen has quit [Ping timeout: 260 seconds]
vkirilichev has quit [Ping timeout: 260 seconds]
danieljabailey has quit [Ping timeout: 240 seconds]
danieljabailey has joined #pypy
lritter has quit [Remote host closed the connection]
exarkun has quit [Read error: Connection reset by peer]
exarkun has joined #pypy
tav has quit [Quit: tav]
tav has joined #pypy
forgottenone has quit [Ping timeout: 240 seconds]
reaperhulk has left #pypy [#pypy]
vkirilichev has joined #pypy
antocuni has joined #pypy
vkirilichev has quit [Ping timeout: 246 seconds]
raynold has quit [Quit: Connection closed for inactivity]
adamholmberg has joined #pypy
reaperhulk has joined #pypy
vkirilichev has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
vkirilichev has quit [Ping timeout: 240 seconds]
yuyichao_ has quit [Ping timeout: 252 seconds]
adamholmberg has quit [Ping timeout: 240 seconds]
bbot2 has quit [Quit: buildmaster reconfigured: bot disconnecting]
bbot2 has joined #pypy
yuyichao_ has joined #pypy
marky1991 has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
vkirilichev has joined #pypy
<mattip> pycheck-macros seems to give a 10% speed up on pandas test suite, using xtest with 4 cores, runtime drops from ~750-800 secs to ~650-700
<mattip> I tried to mark the places that need STRING -> BYTES when merging into py3.5
fryguybob has joined #pypy
vkirilichev has quit [Ping timeout: 240 seconds]
<arigato> mattip: yes, just decompressing local5_8.zip in place, an existing locally-compiled pypy.exe stops working with pyexpat
<arigato> so I guess libexpat.dll is actually used, and broken in local5_8.zip
<arigato> ...meh, wait
<mattip> ok. I will try to take a look, but only next week. it may be the entire expat package (headers, lib, dll) are compiled that way
yuyichao_ has quit [Ping timeout: 246 seconds]
<kenaan> mattip pycheck-macros d9da470c2a62 /pypy/doc/whatsnew-head.rst: document, close branch to be merged
<kenaan> mattip default 2782c2c4ec0b /pypy/: merge pycheck-macros, which avoids cpyext for many Py*_Check function calls
<kenaan> mattip default c4c44cc4a4de /pypy/module/_csv/: make quoting error message more informative and cpython-compatible
<arigato> no clue, now reinstalling local2_4.zip doesn't fix the problem
<mattip> check your INCLUDE, LIB env settings?
<arigato> can I check which DLLs are loaded from libpypy-c.dll?
<arigato> ok, it's definitely not loading the libexpat.dll I think it does
<realitix> arigato: Hi! It was indeed an error in my code !
<mattip> in the locals bin dir there should be a depends.exe
<arigato> realitix: yes, I've seen, thanks!
<realitix> just by curiosity, why did you switch from py_malloc to malloc ?
<mattip> depends.exe libpypy-c.dll from the cmd prompt will show exactly the dlls since it uses the PATH
<arigato> mattip: "This version of depends.exe is not compatible with the version of Windows you're running. Check (etc.)"
<arigato> is that a 64-bit executable? maybe one that somehow manages to also give results for 32-bit DLLs?
<arigato> the VM I have is just 32-bit
<mattip> Can you download one?
<arigato> I *think* that the pypy binary is really linked statically
<arigato> I killed all libexpat.dll under the sun and it still loads
<mattip> it is meant to be, there was a bug I fixed to make it more cpython-like
yuyichao_ has joined #pypy
<arigato> right, but I have no clue why yesterday the very same executable produced correct results and now it produces incorrect ones, after I installed local5_8.zip
<mattip> untranslated uses the dll, -A uses static compiled
<mattip> strange, out of time, sorry. Feel free to leave it and I will try it in my windows build env with debugger next week
<arigato> thanks
<arigato> ok, probably solved the local mess and checked that libexpat.dll is still ok in local5_8.zip
tbodt has joined #pypy
<arigato> maybe the static libexpat.lib isn't
forgottenone has joined #pypy
vkirilichev has joined #pypy
<kenaan> asottile py_ssize_t 46c6c05fde4b /pypy/module/cpyext/api.py: Explicitly use Py_ssize_t as the Signed type in pypy c-api. The signature for the c-api uses Py_ssize_t for ...
<kenaan> asottile py_ssize_t 44574602ff71 /pypy/module/cpyext/parse/cpyext_object.h: Add `#pragma once` include guard to cpyext_object.h In order to get the definition of `Py_ssize_t`, other he...
<kenaan> arigo default ff810e9e706d /pypy/module/cpyext/: hg merge py_ssize_t PR #568 (asottile) Trying to use another "#define Signed", together with "#pragma once", to m...
<kenaan> arigo default a1608b11c5da /pypy/: merge heads
lritter has joined #pypy
vkirilichev has quit [Ping timeout: 248 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<arigato> CPython is slowly discovering that Java's GC is well thought-out after all
<arigato> specifically, I refer to PEP 556 which calls finalizers in a separate thread (yay)
tbodt has joined #pypy
Guest8550 has quit [Ping timeout: 248 seconds]
antocuni has quit [Ping timeout: 246 seconds]
oberstet has quit [Ping timeout: 240 seconds]
jamesaxl has joined #pypy
realitix has quit [Ping timeout: 260 seconds]
vkirilichev has joined #pypy
<cfbolz> arigato: heh. They could just jump to the recommendation of the Java community to never use finalizer ;-)
vkirilichev has quit [Ping timeout: 248 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
realitix has joined #pypy
adamholmberg has joined #pypy
tbodt has joined #pypy
adamholmberg has quit [Ping timeout: 240 seconds]
realitix has quit [Ping timeout: 248 seconds]
<fijal> they are realizing that too I think
marvin has joined #pypy
marvin is now known as Guest11245
vkirilichev has joined #pypy
cstratak has quit [Ping timeout: 255 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
tbodt has quit [Ping timeout: 248 seconds]
tbodt has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
lritter has quit [Quit: Leaving]
tbodt has joined #pypy
vkirilichev has quit [Remote host closed the connection]
<kenaan> rlamy py3.5 44ba82e7527f /lib-python/3/test/test_importlib/builtin/test_loader.py: Fix test for obscure difference with CPython (cf. test_builtin_reimport_mess() in pypy/module/imp/test/test_app.py)
<ronan> ^^^ well, that was a waste of time, who knew _imp.create_builtin() was so complicated?
<kenaan> cfbolz default 7de7062d9526 /rpython/jit/backend/: use constants to make the code less confusing
jcea has quit [Ping timeout: 246 seconds]
dunpeal has joined #pypy
<dunpeal> Hi. I tried to drop-in replace CPython 3 with the latest PyPy binary, and my performance dropped by a factor of 3x.
jcea has joined #pypy
<dunpeal> Is this very unusual? Easy fix? I expected PyPy to be far faster instead.
<tos9> Certainly would need to share something reproduceable or some information about it? There's nothing really to go on there.
<tos9> Yes it's unusual, although for PyPy3 probably slightly less so.
michaelgreene has joined #pypy
forgottenone has quit [Quit: Konversation terminated!]
jamesaxl has quit [Quit: WeeChat 1.8]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
jkbbwr has joined #pypy
vkirilichev has joined #pypy
yuyichao has joined #pypy
yuyichao_ has quit [Ping timeout: 248 seconds]
vkirilichev has quit [Ping timeout: 255 seconds]
<fijal> dunpeal: ok, so the first question is "what C extensions do you use?"
<fijal> dunpeal: second is "how long did your test run"
<fijal> and I have more questions after that :)
<njs> at least for now PEP 556 still only runs circular ref finalizers in a separate thread (and only if you opt in)
<fijal> njs: it's not a terrible idea overall!
<fijal> if you have multiple threads at least
<fijal> njs: any thoughts about our discussion with haypo last night?
<fijal> did you read it?
<njs> fijal: yeah, I sent him an email saying basically "if you think of switching to the "new" API as being an incremental thing instead of an all-at-once thing then aren't you and they basically agreeing?"
<fijal> I'm sorry I struggle to parse your sentence
<fijal> njs: do you think it's feasible for cpython to avoid a-subset-of-cython approach?
<njs> fijal: I suggested that if he goes through one function at a time deprecating/replacing instead of doing it as a big flag switch, then it basically is what you were saying ("let's kill these obvious things first") and in the long run also basically the same as what he wants to do
<njs> fijal: eh, the subset-of-cython approach is clearly nicer than having a public C API if we can get there, but my magic wand is broken, so...
<fijal> njs: well ok, let me rephrase it
<fijal> do you think the numeric community would be ok with it?
vkirilichev has joined #pypy
<fijal> if I came up with a working approach
jcea has quit [Remote host closed the connection]
<njs> the numerical community would love to have a practical path towards good JIT performance
<njs> and the Numba devs would also love to get out of the reimplementing-numpy business
<njs> so yeah, if you can do that, great
<fijal> ok, so that's a start of the conversation I guess
marky1991 has quit [Read error: Connection reset by peer]
yuyichao has quit [Ping timeout: 240 seconds]
yuyichao has joined #pypy
yuyichao_ has joined #pypy
yuyichao has quit [Ping timeout: 248 seconds]
nimaje1 has joined #pypy
nimaje1 is now known as nimaje
vkirilichev has quit [Remote host closed the connection]
tbodt has quit [Ping timeout: 260 seconds]
tbodt has joined #pypy
tbodt has quit [Ping timeout: 248 seconds]
tbodt has joined #pypy