2017-07-05 11:38
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"
00:10
asmeurer_ has joined #pypy
00:17
yuyichao has quit [Read error: Connection reset by peer]
00:18
yuyichao has joined #pypy
00:44
marr has quit [Ping timeout: 240 seconds]
00:44
pilne has joined #pypy
00:56
rokujyouhitoma has joined #pypy
01:00
rokujyouhitoma has quit [Ping timeout: 255 seconds]
01:12
gclawes has quit [Ping timeout: 240 seconds]
01:27
tbodt has quit [Read error: Connection reset by peer]
01:28
gclawes has joined #pypy
01:29
tbodt has joined #pypy
01:57
rokujyouhitoma has joined #pypy
02:01
rokujyouhitoma has quit [Ping timeout: 240 seconds]
02:27
asmeurer_ has quit [Quit: asmeurer_]
02:42
Garen has joined #pypy
02:57
rokujyouhitoma has joined #pypy
02:58
ArneBab_ has joined #pypy
03:01
kawing-chiu has joined #pypy
03:02
rokujyouhitoma has quit [Ping timeout: 240 seconds]
03:03
ArneBab has quit [Ping timeout: 240 seconds]
03:11
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
03:12
<
kawing-chiu >
njs: could you elaborate a bit on numpy's weird needs? I'm curious on it.
03:15
<
njs >
it uses a lot of Python C APIs to efficiently interact with the interpreter, it defines types in C, ...
03:16
<
njs >
so like, for example, on my laptop, if x = np.float32(1), then x + x takes <80 ns on cpython
03:17
<
njs >
OTOH if you have a type defined in Python, 'class Float32: def __add__(self, other): return Float32()', then the fastest possible x + x is ~300 ns on CPython
03:17
<
Alex_Gaynor >
(gosh, adding two floats in anything more than like... 1ns sounds like too much)
03:17
<
njs >
(of course pypy is different, but no-one's going to accept a 3x slowdown on cpython)
03:17
<
njs >
Alex_Gaynor: yeah, it's all boxing/unboxing overhead
03:17
<
njs >
Alex_Gaynor: numpy is too slow actually, python manages to do it in ~10 ns
03:18
<
Alex_Gaynor >
njs: Python doesn't pay the dynamic dispatch overhead because there's a special case in ceval, although that might be integer only now that I think about it.
03:19
<
njs >
Alex_Gaynor: I don't think so? I think the only special case is for the str += str hack
03:20
<
Alex_Gaynor >
njs: ah, it has a special case for ints on 2.7, but not 3.x, probably because on 3.x adding two ints is a fully blown arbitrary precision operation with god knows how many memory reads/writes
03:22
<
njs >
Alex_Gaynor: that or victor decided that that special case wasn't worth it in the first place, judging from the comment in master :-)
03:25
<
kawing-chiu >
So, to make the numpy beast efficient in pypy, inevitably we need to rewrite part of it in pypy(rpython)?
03:27
pilne has quit [Quit: Quitting!]
03:38
asmeurer_ has joined #pypy
03:38
asmeurer_ has quit [Client Quit]
03:39
asmeurer_ has joined #pypy
03:52
<
njs >
kawing-chiu: in principle, we might be able to come up with some kind of input language that can be compiled into forms that are efficient on both cpython or pypy
03:52
<
njs >
kawing-chiu: this idea isn't very far developed though
03:54
tbodt has joined #pypy
03:58
rokujyouhitoma has joined #pypy
04:02
rokujyouhitoma has quit [Ping timeout: 240 seconds]
04:25
<
kawing-chiu >
njs: I see. Is cython considered a valid "input language"?
04:27
asmeurer_ has quit [Quit: asmeurer_]
04:34
asmeurer_ has joined #pypy
04:45
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
04:59
rokujyouhitoma has joined #pypy
04:59
<
njs >
kawing-chiu: something cython-ish seems like a good bet, yeah
05:04
rokujyouhitoma has quit [Ping timeout: 248 seconds]
05:31
jamesaxl has joined #pypy
06:00
rokujyouhitoma has joined #pypy
06:04
rokujyouhitoma has quit [Ping timeout: 240 seconds]
06:05
asmeurer_ has quit [Quit: asmeurer_]
06:19
jamesaxl has quit [Ping timeout: 255 seconds]
06:20
jamesaxl has joined #pypy
06:28
jamesaxl has quit [Read error: Connection reset by peer]
06:30
jamesaxl has joined #pypy
06:36
jamesaxl has quit [Ping timeout: 240 seconds]
06:37
yuyichao has quit [Ping timeout: 240 seconds]
06:37
jamesaxl has joined #pypy
06:45
demonimin has quit [Ping timeout: 240 seconds]
06:45
demonimin has joined #pypy
07:00
rokujyouhitoma has joined #pypy
07:05
rokujyouhitoma has quit [Ping timeout: 248 seconds]
07:14
<
kenaan >
cfbolz default 46ce5f43e718 /rpython/jit/backend/x86/regalloc.py: fix comment
07:41
yuyichao has joined #pypy
07:49
yuyichao has quit [Remote host closed the connection]
08:01
rokujyouhitoma has joined #pypy
08:05
rokujyouhitoma has quit [Ping timeout: 248 seconds]
08:12
yuyichao has joined #pypy
08:18
marr has joined #pypy
08:18
yuyichao has quit [Read error: Connection reset by peer]
08:22
the_drow has joined #pypy
08:30
<
fijal >
njs: for what is worth, it's fighting an uphill battle
08:30
<
fijal >
doing those operations is just TOO SLOW in python
08:30
<
fijal >
this is why cython, numba etc exist
08:31
<
fijal >
so my argument about speed is very different than the argument about semantics
08:31
<
fijal >
it's very hard to express numpy-style-platform-semantics in python
08:32
<
fijal >
(it comes to the same conclusion FYI)
08:35
ronan has quit [Ping timeout: 246 seconds]
08:41
<
njs >
fijal: I feel like I missed the beginning of this conversation :-)
08:41
<
njs >
not that there are any shortage of reasons why rewriting numpy as a pure python + cffi library isn't going to happen...
08:43
<
simpson >
Don't you need to figure out f2py too?
08:44
<
njs >
haha oh no f2py
08:45
<
njs >
yes f2py needs a lot of figuring out; there's only one person in the world who can maintain it and he refuses to use git...
08:45
<
njs >
OTOH numpy itself does not actually use f2py, even though it's shipped as part of numpy.
08:49
<
cfbolz >
njs: who is that person?
08:51
<
njs >
cfbolz: Pearu Peterson
09:02
rokujyouhitoma has joined #pypy
09:04
<
LarstiQ >
hmm, Estonia
09:06
rokujyouhitoma has quit [Ping timeout: 240 seconds]
09:51
raynold has quit [Quit: Connection closed for inactivity]
10:00
kawing-chiu has quit [Quit: Leaving]
10:03
rokujyouhitoma has joined #pypy
10:08
rokujyouhitoma has quit [Ping timeout: 276 seconds]
10:38
kolko has joined #pypy
10:52
kolko has quit [Read error: Connection reset by peer]
10:55
kolko has joined #pypy
11:00
marr has quit [Ping timeout: 240 seconds]
11:04
rokujyouhitoma has joined #pypy
11:08
rokujyouhitoma has quit [Ping timeout: 255 seconds]
11:10
jamesaxl has quit [Read error: Connection reset by peer]
11:12
jamesaxl has joined #pypy
11:13
nimaje1 has joined #pypy
11:13
nimaje1 is now known as nimaje
11:13
nimaje has quit [Killed (rajaniemi.freenode.net (Nickname regained by services))]
11:19
jamesaxl has quit [Read error: Connection reset by peer]
11:20
jamesaxl has joined #pypy
11:36
Yardanico has joined #pypy
11:43
marr has joined #pypy
12:03
marr has quit [Ping timeout: 240 seconds]
12:04
<
kenaan >
arigo default 2a268685e180 /rpython/rtyper/tool/rffi_platform.py: Apply part of PR #546
12:04
rokujyouhitoma has joined #pypy
12:09
rokujyouhitoma has quit [Ping timeout: 248 seconds]
12:16
<
arigato >
what is the status of sendmsg/recvmsg in py3.5?
12:18
<
cfbolz >
arigato: it's on a branch, you need to ask Mihai about the status
12:24
<
cfbolz >
I'll talk to him on Tuesday
12:31
jamesaxl has quit [Read error: Connection reset by peer]
12:33
yuyichao has joined #pypy
12:35
jamesaxl has joined #pypy
13:05
rokujyouhitoma has joined #pypy
13:09
rokujyouhitoma has quit [Ping timeout: 240 seconds]
13:13
jamesaxl has quit [Read error: Connection reset by peer]
13:15
jamesaxl has joined #pypy
13:29
jamesaxl has quit [Read error: Connection reset by peer]
13:31
jamesaxl has joined #pypy
13:43
pilne has joined #pypy
14:06
rokujyouhitoma has joined #pypy
14:10
rokujyouhitoma has quit [Ping timeout: 248 seconds]
14:12
cwillu has quit [Ping timeout: 240 seconds]
14:17
cwillu has joined #pypy
15:07
rokujyouhitoma has joined #pypy
15:11
gclawes_ has joined #pypy
15:11
rokujyouhitoma has quit [Ping timeout: 246 seconds]
15:14
gclawes has quit [Ping timeout: 248 seconds]
15:42
exarkun has quit [Ping timeout: 255 seconds]
15:46
exarkun has joined #pypy
15:50
jamesaxl has quit [Read error: Connection reset by peer]
15:52
jamesaxl has joined #pypy
16:07
rokujyouhitoma has joined #pypy
16:12
rokujyouhitoma has quit [Ping timeout: 240 seconds]
17:00
asmeurer__ has joined #pypy
17:08
rokujyouhitoma has joined #pypy
17:10
asmeurer__ has quit [Quit: asmeurer__]
17:13
rokujyouhitoma has quit [Ping timeout: 248 seconds]
17:25
tilgovi has joined #pypy
17:41
tilgovi has quit [Ping timeout: 246 seconds]
17:45
tbodt has joined #pypy
18:09
rokujyouhitoma has joined #pypy
18:13
rokujyouhitoma has quit [Ping timeout: 240 seconds]
18:52
yuyichao has quit [Read error: Connection reset by peer]
18:52
yuyichao has joined #pypy
18:52
yuyichao has quit [Client Quit]
18:54
yuyichao has joined #pypy
19:02
<
nanonyme >
xorAxAx, I'm astonished if that's remotely fast
19:04
<
xorAxAx >
nanonyme: its not complete, so the question is a bit irrelevant :-)
19:05
<
nanonyme >
xorAxAx, let me rephrase: I'm astonished if it will be remotely fast when it's fully complete
19:05
<
xorAxAx >
has anybody ever run emscripten on pypy? ;-)
19:06
<
simpson >
Yeah, it's called "pypy.js" IIRC.
19:06
<
xorAxAx >
ah, just found it
19:06
<
Yardanico >
but it's not maintained
19:08
<
xorAxAx >
hmm, only 12.7 MB
19:08
asmeurer__ has joined #pypy
19:09
adamholmberg has joined #pypy
19:09
adamholmberg has quit [Remote host closed the connection]
19:09
adamholmberg has joined #pypy
19:09
zware has quit [Ping timeout: 246 seconds]
19:10
rokujyouhitoma has joined #pypy
19:10
zware has joined #pypy
19:14
adamholmberg has quit [Ping timeout: 255 seconds]
19:14
rokujyouhitoma has quit [Ping timeout: 255 seconds]
19:41
asmeurer__ has quit [Quit: asmeurer__]
20:11
rokujyouhitoma has joined #pypy
20:15
rokujyouhitoma has quit [Ping timeout: 240 seconds]
20:16
ceridwen has quit [Ping timeout: 246 seconds]
20:16
ceridwen has joined #pypy
20:34
Yardanico has quit [Remote host closed the connection]
20:52
jamesaxl has quit [Quit: WeeChat 1.8]
21:02
Tiberium has joined #pypy
21:03
Tiberium has quit [Client Quit]
21:04
Yardanico has joined #pypy
21:11
rokujyouhitoma has joined #pypy
21:15
marr has joined #pypy
21:16
rokujyouhitoma has quit [Ping timeout: 240 seconds]
21:16
oberstet has quit [Ping timeout: 240 seconds]
21:22
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
21:35
tbodt has joined #pypy
21:41
ArneBab_ has quit [Ping timeout: 240 seconds]
21:45
ArneBab has joined #pypy
21:45
ArneBab has joined #pypy
21:45
ArneBab has quit [Changing host]
21:50
<
mattip >
njs: maybe later, but you can probably work out why I was pinging you :(
22:05
Garen has quit [Remote host closed the connection]
22:12
rokujyouhitoma has joined #pypy
22:17
rokujyouhitoma has quit [Ping timeout: 255 seconds]
22:22
[Arfrever] has quit [Ping timeout: 240 seconds]
22:24
[Arfrever] has joined #pypy
22:32
_whitelogger has joined #pypy
22:37
raynold has joined #pypy
23:13
rokujyouhitoma has joined #pypy
23:17
rokujyouhitoma has quit [Ping timeout: 240 seconds]
23:44
<
raynold >
ahh it's a wonderful day :D
23:55
Yardanico has quit [Read error: Connection reset by peer]
23:56
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
23:57
tbodt has joined #pypy
23:57
tbodt has quit [Client Quit]