_whitelogger has joined #pypy
tbodt has quit [Read error: Connection reset by peer]
tbodt has joined #pypy
marr has quit [Ping timeout: 276 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
gclawes has quit [Ping timeout: 268 seconds]
tilgovi has joined #pypy
tilgovi has quit [Ping timeout: 276 seconds]
FlecheBleue has joined #pypy
tbodt has quit [Read error: Connection reset by peer]
tbodt has joined #pypy
gclawes has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
yuyichao has quit [Ping timeout: 276 seconds]
ArneBab has joined #pypy
ArneBab_ has quit [Ping timeout: 260 seconds]
jcea has quit [Quit: jcea]
pilne has quit [Quit: Quitting!]
FlecheBleue has quit [Quit: FlecheBleue]
gclawes has quit [Ping timeout: 240 seconds]
gclawes has joined #pypy
lritter has joined #pypy
lritter has quit [Remote host closed the connection]
yuyichao has joined #pypy
yuyichao_ has joined #pypy
yuyichao has quit [Ping timeout: 260 seconds]
_whitelogger has joined #pypy
yuyichao_ has quit [Ping timeout: 276 seconds]
lritter has joined #pypy
glyph has quit [Quit: End of line.]
glyph has joined #pypy
oberstet has joined #pypy
wleslie has joined #pypy
glyph has quit [Remote host closed the connection]
glyph has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
yuyichao_ has joined #pypy
realitix has joined #pypy
kenaan has quit [Ping timeout: 268 seconds]
marr has joined #pypy
yuyichao_ has quit [Ping timeout: 268 seconds]
cstratak has joined #pypy
lritter has quit [Quit: Leaving]
yuyichao_ has joined #pypy
yuyichao_ has quit [Ping timeout: 240 seconds]
amaury has joined #pypy
kenaan has joined #pypy
<kenaan> arigo pypy.org[extradoc] 7f0b7f8ad4a6 /don1.html: update the values
arigato has joined #pypy
antocuni_ has joined #pypy
yuyichao_ has joined #pypy
cstratak has quit [Quit: Leaving]
yuyichao_ has quit [Ping timeout: 260 seconds]
lesshaste has joined #pypy
<lesshaste> hi all
<lesshaste> https://stackoverflow.com/q/44811418/2179021 has an interesting and curious example of a pypy slowdown
<wleslie> I suspect the answer is the `[1] +`
antocuni_ is now known as antocuni
<antocuni> apparently not
yuyichao_ has joined #pypy
<lesshaste> oh I see. It might have had to copy the entire list to prepend. The thing is that the list actually isn't that long
<antocuni> no really, I tried to run the program; on my machine sieve is 3.92 secs, sieve_var is 4.01; without the "[2]+", sieve_var becomes 3.99
<lesshaste> right
<antocuni> but the point is that sieve_var is slower also on cpython O_o
<LarstiQ> if nums[i] == 0
<LarstiQ> ?
<LarstiQ> I remember that being pathological
<antocuni> what do you mean?
<LarstiQ> antocuni: there was a discussion here, a few weeks back I think
<lesshaste> antocuni, in pypy 2.7 on windows 64 bit I get 7.9s for sieve_var and 9.7s for sieve for print len(sieve(4*10**7))
<lesshaste> for for me at least it is the opposite way round for cpython to pypy
<lesshaste> that is sieve_var is faster for cpython
<lesshaste> but slower for pypy
<LarstiQ> antocuni: let me look up a reference to log
<LarstiQ> antocuni: around here https://botbot.me/freenode/pypy/msg/86925578/
<antocuni> ah but wait
<antocuni> this program is silly
<antocuni> it actually does the same amount of inner loop iterations
<antocuni> because all the even numbers are "1-ed" out at the first iterations of the outer loop
raynold has quit [Quit: Connection closed for inactivity]
<antocuni> if you just add "i+=1" to the inner loop, you see that the total number of iterations is similar
yuyichao_ has quit [Ping timeout: 260 seconds]
<lesshaste> antocuni, that's not right
<antocuni> LarstiQ: ah but they were talking about *RPython* lists, not applevel ones
<lesshaste> antocuni, I just added a counter to the inner most loop
<LarstiQ> antocuni: I'm just a friendly pattern matching service, I leave profiling to you ;)
<lesshaste> I get 74877725 for sieve_var and 94877723 for sieve
amaury has quit [Read error: Connection reset by peer]
<antocuni> never mind
amaury has joined #pypy
<antocuni> I was using "i" for the counter, which is already used :)
<lesshaste> :)
* arigato wrote an answer
<cfbolz> arigato: long double in cpython ctypes does not give you extra precision at all
<cfbolz> (of course)
<lesshaste> hmm.. armin rigo just added an answer
<antocuni> arigato: we should add a ZeroOrOneListStrategy :)
<arigato> cfbolz: are you sure there is no way?
<njs> I hear there's an answer from armin
<lesshaste> njs, there is but is it right?
<cfbolz> arigato: didn't look at the code, but eg this suggest so: https://stackoverflow.com/questions/423404/long-double-returns-and-ctypes
cstratak has joined #pypy
<arigato> cfbolz: yes, indeed
<cfbolz> lesshaste: it's easy enough to try his suggestion to see whether arigato is right. I suspect he is (as usual ;-) )
<arigato> cfbolz: ah no, this answer gives a trick to keep extra precision
<cfbolz> the second one?
<arigato> yes
<njs> long double is awful, tell people not to use it
<cfbolz> arigato: basically by doing everything in C
<lesshaste> cfbolz, :)
<arigato> cfbolz: yes, but I'm saying, it is possible
amaury has quit [Ping timeout: 246 seconds]
<arigato> there is no point in the pull request if the same trick doesn't work
<cfbolz> indeed
<arigato> (or at least I think there is no point, but well)
yuyichao_ has joined #pypy
cstratak has quit [Quit: Leaving]
<LarstiQ> lesshaste: the point about relative speeds of cpu and memory seems rather relevant, number of iterations is the same order anyway
<lesshaste> LarstiQ, I think that only makes sense if the time is dominated by the line nums[i] == 0 and not nums[j] = 1 which happens many more times
<lesshaste> is there a line by line profiler for pypy?
<arigato> ah, right, "nums[j] = 1" happens many more times anyway. that makes my point even more valid
yuyichao_ has quit [Remote host closed the connection]
<lesshaste> arigato, sorry which point?
<LarstiQ> lesshaste: cpu is waiting for memory
<arigato> in my answer to SO
yuyichao_ has joined #pypy
<lesshaste> arigato, ah.. but I don't get it. Is nums[j] happens much less in sieve_var
<lesshaste> and it dominates the time
<lesshaste> then why would sieve_var be slower?
<arigato> uh, I think "nums[j]=1" happen exactly the same amount of times in both versions
<lesshaste> arigato, I don't think so.. just run https://bpaste.net/show/bfbd7e66bdcb
<lesshaste> where it counts it explicitly
<arigato> ah no, indeed, but the difference is only for i==2
antocuni_ has joined #pypy
<arigato> that means that just counting is wrong, again for low-level CPU cache reasons
<arigato> the difference might seem big, but in reality, this difference is only writing "1" in every other entry of the list in order
flechebleue has joined #pypy
<arigato> which is much, much faster than writing "1" in less predictible locations
<lesshaste> I get 192570204 for sieve_var and 242570202 for sieve for with 10**8 for example
<lesshaste> arigato, so what is the time dominated by if not that line?
<arigato> yes, and the difference is 10**8 / 2
<arigato> I think the time is dominated by that line but only when it is executing for non-very-small values of i
<arigato> i.e. when it is writing "1" at what looks like random places to the CPU
antocuni has quit [Ping timeout: 276 seconds]
yuyichao_ has quit [Ping timeout: 276 seconds]
<lesshaste> arigato, so is the current hypothesis that the extra iterations sieve_var does are just very cheap?
<lesshaste> arigato, and the remaining ones that both sieve and sieve_var do are the expensive ones for some reason?
<arigato> yes
<lesshaste> sorry.. the extra iterations sieve does
<njs> it basically does 1 extra iteration, and that's a straight bulk pass through memory; later on the memory accesses are way more unpredictable and probably taking cache misses all the time
<lesshaste> njs, it does many more than 1 iteration
<lesshaste> 1 extra iteration I mean
<arigato> it does what njs said, plus what I said in my SO answer
<arigato> both of which are relatively very cheap
<lesshaste> njs, I am trying 3*10**8 where sieve does 745994568 inner iterations
<njs> lesshaste: all the other iterations bounce out on the if nums[i] == 0 part
<lesshaste> and sieve_var does 595994570
<lesshaste> njs, that is the count of the innermost loop
<njs> lesshaste: the first iteration sets nums[i] = 1 for all the even i, so after that it's very very similar to doing a range with a step of 2
<cfbolz> how do caches even
<lesshaste> arigato, and windows just remains a mystery? It's sieve_var is definitely slower in windows than sieve
<arigato> lesshaste: I tried to give in my answer "it's 2x faster if you do that instead", i.e. I don't know why you get 10% differences but also don't think we should worry a lot
<lesshaste> it does seem odd that the extra 149999998 iterations apparently cost nothing
<lesshaste> but I will leave it at that :)
<njs> lesshaste: yes, those inner iterations are all on the very first pass, and they're a super-predictable linear memory scan, so the prefetcher probably kicks in and you get full memory bandwidth instead of memory latency
<lesshaste> njs, interesting
<cfbolz> arigato: you can get a 7x speedup by switching to bytearray ;-)
<arigato> of course it doesn't make sense that doing more work runs in 10% less time, but that's within the nonsense I'm getting used to for CPUs
<arigato> cfbolz: ah, bytearrays :-) of course
<lesshaste> cfbolz, nice!
<njs> lesshaste: have you run it repeatedly in a loop to make sure those numbers have stabilized after warmup etc etc, at least as much as they're going to?
<lesshaste> njs, yes and I never get exactly the same time twice :)
<lesshaste> njs, but the one that should be faster is always slower
<antocuni_> "perf stat" shows indeed that both sieve and sieve_var spend most of the time in stalled cycles
<lesshaste> antocuni_, oh that's interesting!
<cfbolz> Thus confirming Armin's theory
yuyichao_ has joined #pypy
<lesshaste> fwiw (745994568 - 595994570)/595994570 is about 25%
* antocuni_ --> lunch
arigato has quit [Quit: Leaving]
antocuni_ has quit [Ping timeout: 255 seconds]
nimaje1 has joined #pypy
nimaje1 is now known as nimaje
nimaje has quit [Killed (orwell.freenode.net (Nickname regained by services))]
kipras is now known as kipras`away
cstratak has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 246 seconds]
amaury has joined #pypy
jcea has joined #pypy
ronan has quit [Ping timeout: 240 seconds]
horrid has joined #pypy
ronan has joined #pypy
<horrid> Hello, I have managed to make wxpython-cffi work with PyPy5.8.0 and matplotlib and show plots on the screen (steps are here: https://gist.github.com/HorridBro/8b650dcedd4f75399fa94b8e00f23e34). It seems that there are many modifications needed for this to work and I am not sure how it's best to continue to push this code on the 2 repos, especially
<horrid> in wxpython-cffi. Can you please give me some advice?
ELFrederich has joined #pypy
ELFrederich has quit [Client Quit]
ELFrederich has joined #pypy
antocuni_ has joined #pypy
and1 has joined #pypy
<and1> Hi, I've upgraded from PyPy 5.4.1 to 5.8.0 and I'm getting "TypeError('ref() does not take keyword arguments"
<and1> it's in cassandra-driver package
antocuni_ is now known as antocuni
<antocuni> and1: could you please paste the full traceback?
amaury has quit [Ping timeout: 240 seconds]
<and1> It's problematic, because it seems it's an inner exception: NoHostAvailable: ('Unable to connect to any servers', {'127.0.0.1': TypeError('ref() does not take keyword arguments',)})
<antocuni> the only "ref()" function I can think of is weakref.ref; but without more info, it's a bit problematic to help
<and1> it's probably this line:
<and1> cassandra/cluster.py: self_weakref = weakref.ref(self, callback=partial(_clear_watcher, weakref.proxy(connection)))
mattip has joined #pypy
<antocuni> this does not seem to work even on CPython
<and1> I just checked your code on pypy 5.4.1 and it works
<and1> >>>> weakref.ref(A(), callback=lambda: None)
<and1> <weakref at 0x00007f305cb34f00; to 'A'>
<antocuni> ok, but this is probably by accident. I claim that the cassandra code should not rely on the fact that "callback" is a keyword, since on CPython it is not
yuyichao_ has quit [Read error: Connection reset by peer]
<antocuni> I bet that this precise line of code is executed only on PyPy but never on CPython?
yuyichao_ has joined #pypy
<and1> I checked it on CPython 2.7.6 and it works also
<and1> >>> weakref.ref(A(), callback=lambda: None)
<and1> <weakref at 0x7f036f739050; dead>
<antocuni> uh
<antocuni> on my CPython 2.7.12 it doesn't
<and1> can you make it work? It seems it's a simple fix.
<antocuni> I'd like to understand what's going on first
<and1> isn't it a simple issue with args passing?
<antocuni> yes but it doesn't explain why it doesn't work on CPython
<and1> it's changed in 2.7.12 only
<antocuni> I see
<antocuni> so it's GOOD that it fails
<antocuni> earlier, it simply ignored callback silently
<and1> yes, but what about compatibility?
<antocuni> it was a bug, we fixed it
<antocuni> you should report the issue to cassandra
<mattip> horrid: cool! In your script I only see one change to wxpython-cffi, in line 28. Am I missing something?
<mattip> horrid: anyhow, the path forward would probably be a pull request to wxpython-cffi,
<mattip> with both the fix and documenting your steps (use of wxWidgets 3.0.3 seems critical and not mentioned on the README)
<and1> antocuni: ok
cstratak has quit [Quit: Leaving]
<antocuni> pypy's c6167130f731 is the changeset which disabled the callback keyword argument
<horrid> mattip: yes,that is the only modified line, but the problem is more deep. I saw that core.pi is generated faulty. In a normal build.py you shouldn't be needing to remove parts of a generated .pi. This is one of my dillemas that I haven't figured out
<antocuni> we did it in the stdlib-2.7.12 branch, because now the stdlib contains a test which explicitly checks that ref(..., callback=...) fails
<horrid> mattip: I'll proceed with a pull request, but don't know exactly where to start working on fixing the faulty .pi generation
and1 has quit [Quit: Leaving]
<horrid> mattip: do you have any pointers from where I can grab this to analyze?
<mattip> horrid: there is some documentation on the original GSOC work somewhere, let me look it up
cstratak has joined #pypy
<ELFrederich> I have an argument to a function "const char dataset_name[WSO_name_size_c + 1]"... and above I put "#define WSO_name_size_c ..." and when I try to build I get this... cffi.error.FFIError: :9: unsupported expression: expected a simple numeric constant
commandoline_ has joined #pypy
<mattip> horrid: you may find this blog helpful http://waedt.blogspot.com, reading from oldest to newest
<mattip> ELFrederich: that is in ffi.cdef() correct? AFAIK pycparser does not understand macros like 'WSO_name_size_c +1'
<ELFrederich> mattip: I get same error without the "+ 1"
<horrid> mattip: Thank you ! I will start reading and come back to you .
<ELFrederich> mattip: if I go and change #define WSO_name_size_c ..." to "#define WSO_name_size_c 128" then it works... even with the +1
<mattip> horrid: I may have been too hasty, looking over that he does not go into enough detail
<mattip> ELFrederich: well, as usual when I try to help with CFFI I am wrong, so I will just be silent
<ELFrederich> ;-)
<mattip> horrid: you may want to file an issue on the bitbucket repo of wxpython-cffi, amaury also rarely shows up here
<ELFrederich> I have a feeling this stuff used to work... I have a file in Git from 2015 (the last time I tried porting my Cython stuff to cffi) that has this kind of stuff in it
bjs has quit [Ping timeout: 255 seconds]
flechebleue has quit [Ping timeout: 240 seconds]
<mattip> horrid: I found this link on the ProjectPhoenix web site, called 'HowTheBuildToolsWork',
<mattip> but it is empty :(
Rhy0lite has joined #pypy
<mattip> ahh, found https://wiki.wxpython.org/ProjectPhoenix/DevelopmentProcess which describes the etg generators
adamholmberg has joined #pypy
<ELFrederich> any cffi people here?... know how I can have a function in a cdef which takes a character array deifned like... "const char dataset_name[WSO_name_size_c + 1]"? ... maybe fijal?
<LarstiQ> const char *?
Fleche has joined #pypy
<ELFrederich> LarstiQ: that might work for function arguments but what about members of structs?
<LarstiQ> ELFrederich: I'd have to direct you to someone with cffi experience
<LarstiQ> and/or the documentation
* LarstiQ doesn't know atm
commandoline_ has quit [Ping timeout: 240 seconds]
commandoline_ has joined #pypy
Ryanar has joined #pypy
DanielWHolth has joined #pypy
yuyichao_ has quit [Read error: Connection reset by peer]
commandoline has quit [Quit: Bye!]
commandoline has joined #pypy
<mattip> ELFrederich: for people who might join later, what version of cffi?
<ELFrederich> mattip: I'm on the latest that pypi gave me... 1.10.0 looks like
<mattip> ok
<cfbolz> ELFrederich: could you post a self contained example?
marky1991 has joined #pypy
<mattip> ELFrederich: couldn't resist. For me it works if I do
<mattip> ffi.cdef('#define WSO_name_size_c 10')
<mattip> ffi.cdef('int array[WSO_name_size_c +1]')
<mattip> but not if I do ffi.cdef('#define WSO_name_size_c ...')
<mattip> since then ffi.cdef('int array[WSO_name_size_c +1]') becomes ffi.cdef('int array[... +1]')
jiffe has quit [Quit: WeeChat 1.9]
Ryanar has quit [Ping timeout: 255 seconds]
jiffe has joined #pypy
* mattip trying -A on translated cpyext-injection
<mattip> array_realize from numpy.py is never called during injection
<antocuni> mattip: what is cpyext-injection?
<mattip> antocuni: a branch to "hijack" NumPy ndarray methods with numpypy ones
<antocuni> to get the best of both worlds? Sounds very cool
<cfbolz> mattip: actually, I was wondering: is there a set of numpy-specific benchmarks anywhere?
<cfbolz> like, non-microbenchmark ones?
amaury has joined #pypy
* mattip pulling up the links
<cfbolz> mattip: if there are, feel free to answer "just google yourself" ;-)
<mattip> cfbolz: I only have microbenchmarks, but numfocus started an effort once
<mattip> and this one was active a while ago https://github.com/yarikoptic/numpy-vbench
amaury has quit [Ping timeout: 276 seconds]
SunDwarf has quit [Ping timeout: 240 seconds]
mwhudson has quit [Ping timeout: 240 seconds]
mwhudson has joined #pypy
mwhudson has joined #pypy
mwhudson has quit [Changing host]
SunDwarf has joined #pypy
amaury has joined #pypy
amaury has quit [Ping timeout: 276 seconds]
realitix has quit [Ping timeout: 255 seconds]
mattip has left #pypy ["bye"]
DanielWHolth has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
<cfbolz> _main_0: thanks
<cfbolz> mattip: ^^
tbodt has joined #pypy
wleslie has quit [Quit: ~~~ Crash in JIT!]
realitix has joined #pypy
yuyichao_ has joined #pypy
bjs has joined #pypy
realitix has quit [Ping timeout: 260 seconds]
yuyichao_ has quit [Ping timeout: 258 seconds]
yuyichao_ has joined #pypy
jcea has quit [Ping timeout: 276 seconds]
stevie has joined #pypy
marr has quit [Ping timeout: 260 seconds]
marr has joined #pypy
yuyichao_ has quit [Remote host closed the connection]
yuyichao_ has joined #pypy
yuyichao_ has quit [Remote host closed the connection]
yuyichao_ has joined #pypy
pilne has joined #pypy
cstratak has quit [Ping timeout: 240 seconds]
yuyichao_ has quit [Remote host closed the connection]
yuyichao_ has joined #pypy
amaury has joined #pypy
_main_0 has quit [Read error: Connection reset by peer]
__main__ has joined #pypy
__main__ has quit [Read error: Connection reset by peer]
__main__ has joined #pypy
stevie has quit [Ping timeout: 260 seconds]
arigato has joined #pypy
<ELFrederich> sup arigato ... know how I can have a function in a cdef which takes a character array defined like... "const char dataset_name[WSO_name_size_c + 1]"?
jcea has joined #pypy
<arigato> if that's a parameter, then you can say "const char dataset_name[]" instead; these two are 100% equivalent C code
<ELFrederich> arigato: okay... thanks. And for struct members I can put "const char dataset_name[...]" right?
<arigato> yes
* ELFrederich forgot that they're equivalent.... though if I remember correctly something like "int data[height][width]" needs one of those
<arigato> yes
<arigato> then it becomes more complicated
lesshaste has quit [Ping timeout: 260 seconds]
<arigato> I'd have to check again, but I think you can say "int data[height][widht]" if height and width are not expressions but just constants
lesshaste has joined #pypy
lesshaste is now known as Guest81854
Guest81854 has quit [Client Quit]
<ELFrederich> A suggestion please. I have a C library where I have a corresponding .py file for each .h file (120 files) where I basically mark up the function definitions with extra meta-data about whether things are input or output. So for <foo/bar.h> I have a definitions/foo/bar.py which I use to generate a proper foo/bar.py and a foo/bar_build.py
<ELFrederich> ... so my question. With 120 *_build.py files where they all share a lot of structures, do I need to cdef all those typedefs and struct definitions in each one?
yuyichao_ has quit [Remote host closed the connection]
yuyichao_ has joined #pypy
<ELFrederich> ... or is there a way for one FFI to "import" a cdef from another FFI object?
<ELFrederich> I realize that C works where each compilation unit basically #includes something with definitions so maybe repeating "#define unsigned int tag_t" on all 120 files isn't terrible. Was just wondering if there is a better way
<arigato> ronan: no
<arigato> ELFrederich: you should make only one ffi=FFI() object
<arigato> ronan: ffi.include() may roughly work but is going to be a complete mess to handle 120 .h files
<ELFrederich> arigato: I think I've done that before and it took forever to load... though this was several years ago and it was using .verify()
<arigato> ELFrederich: yes, nowadays with ffi.set_source() it should not be a problem any more
<ELFrederich> arigato: I wanted to have it organized rather than having a huge file. The one from a couple years ago was over 100k lines
<arigato> just make one FFI object somewhere, and import it in all your .py files
<arigato> or rather, "ffibuilder = FFI()" I guess
<ELFrederich> arigato: here is a sampling of my auto-generated code: https://paste.pound-python.org/show/K7suHyRNejd7aDvi2x3b/
<ELFrederich> arigato: okay... so just one ffibuilder and in my setup.py I put a single module in cffi_modules=["MyBindings/blah_build.py:ffibuilder"]
<arigato> yes
raynold has joined #pypy
<arigato> you'll get only one .so file, produced by compiling a single large .c file, but that should be fine
oberstet has quit [Ping timeout: 260 seconds]
* arigato off
arigato has quit [Read error: Connection reset by peer]
Taggnostr has quit [Read error: Connection reset by peer]
Taggnostr has joined #pypy
ELFrederich has quit [Quit: Page closed]
<kenaan> rlamy default 5a8f2cdedcd0 /pypy/module/cpyext/: Don't use magical api object in pypy.module.cpyext.test.test_number
yuyichao_ has quit [Read error: Connection reset by peer]
kipras`away is now known as kipras
commandoline_ has quit [Quit: Bye!]
slacky has joined #pypy
tav has quit [Quit: Hakuna Matata!]
tav has joined #pypy
Rhy0lite has quit [Quit: Leaving]
tormoz has quit [Ping timeout: 240 seconds]
tormoz has joined #pypy
larsivi has joined #pypy
mattip has joined #pypy
Fleche has quit [Ping timeout: 255 seconds]
mattip has left #pypy ["bye"]
marky1991 has quit [Ping timeout: 260 seconds]
marky1991 has joined #pypy
yuyichao_ has joined #pypy
amaury has quit [Ping timeout: 255 seconds]
amaury has joined #pypy
Hodgestar has quit [Ping timeout: 258 seconds]
tumbleweed has quit [Ping timeout: 258 seconds]
Hodgestar has joined #pypy
tumbleweed has joined #pypy
tumbleweed has joined #pypy
tumbleweed has quit [Changing host]
antocuni has quit [Ping timeout: 258 seconds]
amaury has quit [Ping timeout: 240 seconds]
adamholmberg has quit [Remote host closed the connection]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 276 seconds]
asmeurer__ has joined #pypy
Fleche has joined #pypy