ceridwen has quit [Read error: Connection reset by peer]
ceridwen has joined #pypy
jacob22_ has joined #pypy
jacob22 has quit [Ping timeout: 260 seconds]
marr has quit [Ping timeout: 240 seconds]
ronan has quit [Ping timeout: 255 seconds]
ronan has joined #pypy
lritter_ has joined #pypy
brent_ has quit [Ping timeout: 240 seconds]
akash47 has quit [Quit: leaving]
mattip has left #pypy ["bye"]
jcea has quit [Quit: jcea]
ArneBab has joined #pypy
ArneBab has joined #pypy
ArneBab has quit [Changing host]
lritter__ has joined #pypy
ArneBab_ has quit [Ping timeout: 260 seconds]
lritter_ has quit [Ping timeout: 240 seconds]
john51 has joined #pypy
inglesp_ has joined #pypy
krono_ has joined #pypy
altendky_ has joined #pypy
ec\_ has joined #pypy
geov has joined #pypy
gsnedder1 has joined #pypy
akash47 has joined #pypy
commandoline_ has joined #pypy
altendky has quit [*.net *.split]
jamesaxl has quit [*.net *.split]
john51_ has quit [*.net *.split]
lapinot has quit [*.net *.split]
commandoline has quit [*.net *.split]
inglesp has quit [*.net *.split]
krono has quit [*.net *.split]
ec\ has quit [*.net *.split]
gsnedders has quit [*.net *.split]
tormoz has quit [*.net *.split]
krono_ is now known as krono
inglesp_ is now known as inglesp
altendky_ is now known as altendky
lapinot has joined #pypy
brent_ has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/3085 [amaury: force build, py3.5]
tilgovi has joined #pypy
altendky has quit [Quit: Connection closed for inactivity]
jamadden has quit [Quit: Leaving.]
brent_ has quit [Ping timeout: 240 seconds]
jen has joined #pypy
<jen> For bypassing could a CRDT be used for the objects in many threads?
<jen> Or am I not understanding the problem...
<jen> *bypassing GIL
<jen> oops
<o11c> jen: there are all sorts of ways to bypass the GIL, but none which are efficient *and* preserve close-to-cpython semantics
tilgovi has quit [Quit: No Ping reply in 180 seconds.]
vkirilichev has joined #pypy
tilgovi has joined #pypy
jen has quit [Ping timeout: 260 seconds]
vkirilichev has quit [Remote host closed the connection]
jamadden has joined #pypy
jamadden has quit [Client Quit]
amstan has joined #pypy
<amstan> Hello, how does one populate a struct with a zero length array in it? https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
<amstan> in cffi
<amstan> i tried declaring a buffer of the fished length, then casting it to a "struct mystruct*"
<amstan> my non array fields seem fine (when i update them, the data in my buffer updates too), but my array seems to be stored somewhere completelly different
gbutnaru has quit [Quit: Leaving]
<o11c> amstan: write it as a flexarr instead
tilgovi has quit [Remote host closed the connection]
<o11c> >>> ffi.cdef('struct Bar { int head; char len[]; };')
<o11c> >>> ffi.new('struct Bar *', (3, b'abc'))
tilgovi has joined #pypy
<o11c> (wow I messed those variable names up)
realitix has joined #pypy
<amstan> o11c: hmm, pretty good
<amstan> o11c: hmm, it seems to be overallocating a little bit
<amstan> for example, assuming the sizeof the int for "head" is for, the size of the whole thing would be 8
<amstan> not sure why it's not doing 7
<amstan> since there's only 3 elements in bytes
<amstan> nvm, i was stupid and used bytes around it when i didn't have to
jamadden has joined #pypy
jamadden has quit [Client Quit]
cstratak has joined #pypy
cstratak has quit [Remote host closed the connection]
cstratak has joined #pypy
marr has joined #pypy
arigato has joined #pypy
tilgovi has quit [Quit: No Ping reply in 180 seconds.]
tilgovi has joined #pypy
vkirilichev has joined #pypy
oberstet has joined #pypy
jamadden has joined #pypy
jamadden has quit [Client Quit]
antocuni has joined #pypy
fniephaus has quit [Ping timeout: 255 seconds]
fniephaus has joined #pypy
pilne has joined #pypy
John has joined #pypy
<John> hi all
marr has quit [Ping timeout: 255 seconds]
<John> if i say "the difference between pypy and C is negligible (roughly 2x slower), and often PyPy will be faster than Java"
<John> Is that a bold-faced lie? :P
<John> Because i don't feel it is.
<LarstiQ> it really depends on what you're doing
<John> re-writing shitty C++ programs into Python
<John> or shitty Java programs
pilne has quit [Client Quit]
<John> I mean, from empirical evidence, i write much faster programs that do the same thing as a Java program, in pypy. every time.
<LarstiQ> John: well add "in my experience" and it won't be a lie? ;)
<John> But its mainly because i notice shortcuts and things that the Java guy didnt. but is that a function of PyPy's? I believe it to be, because i wouldnt have seen the shortcut if i was worrying about types and stuff
<John> Yeah, hehe, i've been doing that for like, this whole section i'm writing, so i was hoping i could leave out the qualifier this one time
<John> but i guess it wouldnt be science if i wrote it in plain english that people would easily understand what im getting at -_-
amaury has joined #pypy
tilgovi has quit [Quit: No Ping reply in 180 seconds.]
tilgovi has joined #pypy
jamadden has joined #pypy
jamadden has quit [Client Quit]
phlebas has quit []
jamadden has joined #pypy
phlebas has joined #pypy
jamadden has quit [Client Quit]
amaury has quit [Ping timeout: 240 seconds]
jeroud has quit []
jeroud has joined #pypy
John has left #pypy [#pypy]
antocuni has quit [Ping timeout: 260 seconds]
arigato has quit [Read error: Connection reset by peer]
samth has quit []
samth has joined #pypy
jamadden has joined #pypy
tilgovi has quit [Quit: No Ping reply in 180 seconds.]
tilgovi has joined #pypy
jcea has joined #pypy
<gsnedder1> was there not someone working on a JVM in RPython at some point?
gsnedder1 is now known as gsnedders
ssbr has quit [Ping timeout: 258 seconds]
ssbr has joined #pypy
amaury has joined #pypy
tilgovi has quit [Quit: No Ping reply in 180 seconds.]
tilgovi has joined #pypy
antocuni has joined #pypy
Rhy0lite has joined #pypy
amaury has quit [Ping timeout: 240 seconds]
marr has joined #pypy
tilgovi has quit [Ping timeout: 246 seconds]
marky1991 has joined #pypy
Tiberium has joined #pypy
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
John has joined #pypy
<John> hi all
Tiberium has quit [Remote host closed the connection]
<John> i appreciate that pypy can improve performance by typing, and in some instances remove operations that are not required
Tiberium has joined #pypy
<John> but can it detect the usage of some algorithm, such as a merge sort, and replace it with another, such as a quick sort?
Tiberium has quit [Remote host closed the connection]
<LarstiQ> John: that's not how it works
<John> right
<LarstiQ> and, as a layperson, that seems a rather hairy research topic in general
<John> right
<LarstiQ> John: have you read the jit papers?
<John> no, none. to be honest they're beyond me
<LarstiQ> how do you know if you did not read them? ;P
<John> heheh, good point :)
<John> Well i'm jut trying to convey the jist of what PyPy does to a lay person
<John> Actually im trying to convey how programs can be optimised by a developer, but that optimisation usually comes at the cost of readability
Tiberium has joined #pypy
<John> however PyPy gives one the benefits of simple code whilst also being fast
<John> By "essentially detecting unessecary operations are re-writing the code to avoid performing them"
<John> Operations being op code
<John> Oh, i quoted myself wrong. I also mention that it occurs while the code is running
<John> regardless, my next topic on optimising programs is using a different algorithm that achieves the same result. And i say that JIT compilers aren't capable of doing such large changes.
<John> But i just wanted to make sure i'm not wrong there, and PyPy doesnt, in fact, also replace one kind of sort with another, or similar
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
Tiberium has quit [Quit: Leaving]
oberstet2 has joined #pypy
Guest95884 has quit [Ping timeout: 240 seconds]
Tiberium has joined #pypy
oberstet has quit [Ping timeout: 264 seconds]
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
vkirilic_ has joined #pypy
vkirilichev has quit [Ping timeout: 255 seconds]
John has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
John has joined #pypy
marvin has joined #pypy
marvin is now known as Guest49274
rmesta has joined #pypy
rmesta1 has joined #pypy
rmesta has quit [Ping timeout: 246 seconds]
rmesta1 has left #pypy [#pypy]
yuyichao has quit [Ping timeout: 264 seconds]
jamesaxl has joined #pypy
brent_ has joined #pypy
yuyichao has joined #pypy
John has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
John has joined #pypy
John has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
lritter__ has quit [Ping timeout: 260 seconds]
John has joined #pypy
John has quit [Client Quit]
vkirilic_ has quit [Remote host closed the connection]
John has joined #pypy
John has quit [Client Quit]
John has joined #pypy
DragonSA has joined #pypy
DragonSA has joined #pypy
DragonSA has quit [Changing host]
John has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
tilgovi has joined #pypy
ceridwen has quit [Ping timeout: 246 seconds]
ceridwen has joined #pypy
tilgovi_ has joined #pypy
tilgovi has quit [Ping timeout: 260 seconds]
realitix has quit [Ping timeout: 255 seconds]
jeroud has quit [Remote host closed the connection]
samth has quit [Remote host closed the connection]
phlebas has quit [Remote host closed the connection]
jeroud has joined #pypy
samth has joined #pypy
pilne has joined #pypy
phlebas has joined #pypy
jamesaxl has quit [Read error: Connection reset by peer]
Taggnostr has quit [Ping timeout: 240 seconds]
jamesaxl has joined #pypy
realitix has joined #pypy
Taggnostr has joined #pypy
realitix has quit [Ping timeout: 268 seconds]
cstratak has quit [Remote host closed the connection]
cstratak has joined #pypy
tilgovi_ has quit [Ping timeout: 268 seconds]
oberstet2 has quit [Ping timeout: 240 seconds]
tilgovi has joined #pypy
<Cheery> This is a JIT trace of paeth predictor http://codepad.org/qSotcYgp
<Cheery> any idea what I could improve here?
<Alex_Gaynor> +1235: p132 = getfield_gc_r(ConstPtr(ptr131), descr=<FieldP space.multimethod.Multimethod.inst_version 48>)
<Alex_Gaynor> I don't know anything about your application, but if you can make version immutable or quassiimutable you can remove the getfield and guard_valu
<Alex_Gaynor> e
<Cheery> ~:|
<Cheery> Alex_Gaynor: those other guards may result from that guard?
<Cheery> overall I guess some of them are just from the branching.
<Cheery> the paeth predictor is this kind of thing, run in a loop.
amaury has joined #pypy
Tiberium has quit [Quit: Leaving]
DragonSA has quit [Quit: Konversation terminated!]
geov has quit [Remote host closed the connection]
vkirilichev has joined #pypy
tormoz has joined #pypy
tilgovi has quit [Ping timeout: 268 seconds]
jcea has quit [Read error: Connection reset by peer]
jcea1 has joined #pypy
jcea1 is now known as jcea
<kenaan> ntruessel quad-color-gc 4cee2f816dc0 /rpython/translator/c/src/qcgc/: Update qcgc source files
oberstet2 has joined #pypy
amaury has quit [Ping timeout: 260 seconds]
tilgovi has joined #pypy
marky1991 has quit [Ping timeout: 240 seconds]
nimaje1 has joined #pypy
nimaje1 is now known as nimaje
nimaje has quit [Killed (adams.freenode.net (Nickname regained by services))]
brent_ has quit [Ping timeout: 268 seconds]
cstratak has quit [Ping timeout: 240 seconds]
Rhy0lite has quit [Quit: Leaving]
amaury has joined #pypy
jamesaxl has quit [Quit: WeeChat 1.7]
Demeisen has quit [Remote host closed the connection]
Demeisen has joined #pypy
tilgovi has quit [Ping timeout: 240 seconds]
tilgovi has joined #pypy
oberstet2 has quit [Ping timeout: 268 seconds]
<Cheery> here's the hot loop
<Cheery> do you guys have any idea what I could still improve here?
tilgovi has quit [Ping timeout: 258 seconds]
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
<simpson> Cheery: Method lookup isn't inlined.
<simpson> +600: p171 = getfield_gc_r(p1, descr=<FieldP space.customobject.CustomObject.inst_custom_interface 8 pure>)
<simpson> +618: p174 = call_r(ConstClass(Interface.lookup_method), p171, ConstPtr(ptr173), descr=<Callr 8 rr EF=4>)
<Cheery> simpson: I understand why. Interface parent is not immutable.
<Cheery> I set it immutable now.
<simpson> Cheery: You may also have to promote() it, depending on how your reds and greens shake out.
<Cheery> simpson: if I run imagemagick's convert, it takes 30ms on converting the png to jpg.
daishan has left #pypy [#pypy]
<Cheery> whereas this program takes 500ms to open it.
vkirilichev has quit [Remote host closed the connection]
<simpson> Okay. I'm just pointing out the first thing that I saw. There's probably other things too.
<Cheery> simpson: one thing I see here is that there's lot of guards here.
<Cheery> guard_nonnull_class
<Cheery> guard_nonnull
<Cheery> guard_not_forced
<Cheery> etc.
<simpson> Yes, but you can't remove guards directly. Guards are usually a response to something.
<Cheery> I've understood so.
<Cheery> also in the start of some places there are whole lot of +1057: p52 = getarrayitem_gc_r(p22, 14, descr=<ArrayP 8>)
<Cheery> I suppose those are due to virtualization
<simpson> Oh, e.g.
<simpson> +761: p177 = getfield_gc_r(p1, descr=<FieldP space.customobject.CustomObject.inst_storage 24 pure>)
<simpson> +765: p178 = getfield_gc_r(p177, descr=<FieldP list.items 16>)
<simpson> +770: p180 = getarrayitem_gc_r(p178, 5, descr=<ArrayP 8>)
<simpson> In this example, this is because p1 is still red, so we can't specialize based on its locals.
<Cheery> how do I find that point, by searching with the .storage ?
<simpson> Probably. I don't know what your inner interpreter looks like.
<simpson> And of course, if this is supposed to be a red field, then nothing's wrong!
amaury has quit [Ping timeout: 240 seconds]
marky1991_2 has joined #pypy
marky1991_2 has quit [Remote host closed the connection]
marky1991_2 has joined #pypy
marky1991 has quit [Ping timeout: 268 seconds]
antocuni has quit [Ping timeout: 260 seconds]