00:25
fotis has joined #pypy
00:27
lritter has quit [Ping timeout: 276 seconds]
00:27
lritter_ has joined #pypy
00:30
fotis has quit [Ping timeout: 256 seconds]
02:25
fotis has joined #pypy
02:30
fotis has quit [Ping timeout: 255 seconds]
03:58
lritter_ has quit [Quit: Leaving]
04:26
fotis has joined #pypy
04:30
fotis has quit [Ping timeout: 272 seconds]
05:10
kor1 has quit [Read error: Connection reset by peer]
05:12
kor1 has joined #pypy
05:15
kor1 has quit [Client Quit]
06:04
smarr has quit [Quit: Connection closed for inactivity]
06:05
stkrdknmibalz has quit [Remote host closed the connection]
06:26
fotis has joined #pypy
06:31
fotis has quit [Ping timeout: 256 seconds]
07:29
fotis has joined #pypy
07:35
Julian has joined #pypy
07:39
gef has joined #pypy
07:41
fotis has quit [Ping timeout: 276 seconds]
07:42
Eclipse2212 has joined #pypy
07:54
gef_ has joined #pypy
07:57
gef has quit [Ping timeout: 276 seconds]
08:16
<
mattip >
rpython tests on win64 finished with "failure" instead of "exception", maybe a fluke but maybe due to updating libffi
08:29
gef has joined #pypy
08:29
arigo_ is now known as arigato
08:29
gef_ has quit [Quit: No Ping reply in 240 seconds.]
08:29
gef_ has joined #pypy
08:30
<
mattip >
arigato: any idea why the rpython test_rgil test of test_after_thread_switch fails on win64 with double the number of thread switches
08:30
<
mattip >
is the test flaky or the windows rgil switch flaky?
08:31
<
mattip >
(not double, it is actually 4x)
08:32
<
arigato >
only on win64? no, we should look at the C code produced
08:34
otisolsen70 has joined #pypy
08:34
<
arigato >
looks like it could bring down performance
08:36
* mattip
trying to debug it
09:30
greedom has joined #pypy
09:37
fotis has joined #pypy
09:42
fotis has quit [Ping timeout: 256 seconds]
10:05
Julian has quit [Ping timeout: 272 seconds]
10:38
tazle has quit [Ping timeout: 272 seconds]
10:46
<
mattip >
in rpython/rlib/rposix.py there is a context manager so that a call with an invalid fd will not crash the windows app
10:48
<
mattip >
pre-visual2015 it used a tricky _PyVerify_fd() call, which was turned into a empty function when we moved to visual2015+
10:48
<
mattip >
but the function still was called with the gil, so that is 1 of the 4 rgil acquisitions
10:49
<
mattip >
that was all replaced with a call to a new API to replace the "crash on invalid fd" handler with one to do nothing
10:50
<
mattip >
and another call to restore the old behaviour
10:50
<
mattip >
so that is another 2 rgil acquisitions
10:53
<
mattip >
the construct now looks like "with rposix.SuppressIPH(): <do something with fd>"
10:54
<
mattip >
I guess we could do better if we do all that in one C call
11:17
Julian has joined #pypy
11:37
fotis has joined #pypy
11:42
fotis has quit [Ping timeout: 255 seconds]
11:48
<
mattip >
80-20 rule: it seems read() and write() would be the first functions to wrap in C since they are probably the most-used ones
11:52
smarr has joined #pypy
11:53
<
mattip >
there is also fread, fwrite in cpyext/api.py, but those could be replaced with os.read/os.write
12:24
gef_ has quit [Ping timeout: 256 seconds]
12:24
gef has quit [Ping timeout: 272 seconds]
12:27
gef has joined #pypy
12:55
<
mattip >
heh, and just like that virtualenv released a version with a fix for the recent libffi win64 changes
13:07
gef has quit [Ping timeout: 256 seconds]
13:08
antocuni_ is now known as antocuni
13:10
gef has joined #pypy
13:31
gef_ has joined #pypy
13:31
gef has quit [Read error: Connection reset by peer]
13:34
greedom has quit [Remote host closed the connection]
13:38
fotis has joined #pypy
13:43
fotis has quit [Ping timeout: 272 seconds]
14:16
otisolsen70 has quit [Quit: Leaving]
14:20
Eclipse2212 has quit [Quit: WeeChat 3.1]
14:53
kor1 has joined #pypy
15:21
gef_ has quit [Ping timeout: 272 seconds]
15:34
gef has joined #pypy
15:38
fotis has joined #pypy
15:43
fotis has quit [Ping timeout: 255 seconds]
15:57
gef has quit [Ping timeout: 252 seconds]
16:07
stkrdknmibalz has joined #pypy
16:09
<
mattip >
rpython on win64 is hanging in rpython/jit/backend/llsupport/test/test_codemap.py when it calls into unpack_traceback (in codemap.py)
16:10
<
mattip >
there is a "while True" loop there, I don't see what is changing between iterations of the loop
16:10
<
mattip >
it looks to me like once the first iteration fails, it will continue forever
16:11
stkrdknmibalz has quit [Quit: WeeChat 3.0.1]
16:17
<
mattip >
ahh, it is getting stuck in the loop in yield_bytecode_at_address
16:19
stkrdknmibalz has joined #pypy
16:24
gef has joined #pypy
16:27
<
mattip >
the codemap source in llsupport/src/codemap.c seems to assume pointers are long, where on win64 they are long long
16:27
<
mattip >
arigato: does that look OK to you?
16:31
gef has quit [Ping timeout: 272 seconds]
16:32
gef_ has joined #pypy
16:32
gef has joined #pypy
16:37
gef_ has quit [Ping timeout: 245 seconds]
16:37
gef has quit [Ping timeout: 245 seconds]
16:41
gef has joined #pypy
16:47
gef has quit [Ping timeout: 265 seconds]
16:55
stkrdknmibalz has quit [Remote host closed the connection]
16:56
gef has joined #pypy
17:02
gef has quit [Ping timeout: 258 seconds]
17:04
ambv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
17:17
gef has joined #pypy
17:17
gef_ has joined #pypy
17:25
gef_ has quit [Ping timeout: 255 seconds]
17:25
gef has quit [Ping timeout: 255 seconds]
17:26
Dejan has joined #pypy
17:38
fotis has joined #pypy
17:39
Dejan has quit [Quit: Leaving]
17:41
gef has joined #pypy
17:42
fotis has quit [Ping timeout: 252 seconds]
17:47
gef has quit [Ping timeout: 276 seconds]
17:59
kor1 has quit [Quit: Leaving.]
17:59
Julian has quit [Quit: leaving]
18:08
gef has joined #pypy
18:14
gef has quit [Ping timeout: 272 seconds]
18:29
gef has joined #pypy
18:29
gef_ has joined #pypy
18:34
gef_ has quit [Ping timeout: 256 seconds]
18:34
gef has quit [Ping timeout: 256 seconds]
18:49
lritter has joined #pypy
18:49
gef has joined #pypy
18:58
gef has quit [Ping timeout: 265 seconds]
19:12
<
mattip >
ahh, they are not really pointers, they are bytecode addresses
19:28
gef has joined #pypy
19:30
jryans has quit [Read error: Connection reset by peer]
19:30
daubers has quit [Remote host closed the connection]
19:33
<
mattip >
looking in another direction
19:33
<
mattip >
The spec for win64 calls is that the callee is expected to restore RBX, RBP, RDI, RSI, RSP, R12, R13, R14, R15, and XMM6-XMM15
19:34
<
mattip >
in jit/backend/x86/runner.py I see only ebx, esi, edi, r12, r14, r15
19:38
fotis has joined #pypy
19:42
fotis has quit [Ping timeout: 245 seconds]
20:03
gef has quit [Ping timeout: 272 seconds]
20:15
gef_ has joined #pypy
20:15
gef has joined #pypy
20:22
greedom has joined #pypy
20:23
gef_ has quit [Ping timeout: 250 seconds]
20:24
gef has quit [Ping timeout: 268 seconds]
20:24
greedom has quit [Remote host closed the connection]
20:27
kor1 has joined #pypy
20:37
gef has joined #pypy
20:52
jryans has joined #pypy
20:55
gef has quit [Ping timeout: 246 seconds]
20:59
daubers has joined #pypy
21:04
raek has joined #pypy
21:10
fotis has joined #pypy
21:11
tazle has joined #pypy
21:15
fotis has quit [Ping timeout: 245 seconds]
22:46
fotis has joined #pypy
22:51
gef has joined #pypy
22:51
fotis has quit [Ping timeout: 252 seconds]
23:04
<
smarr >
hmmm, so, I assumed the following would result in the lookup call being elided, but it doesn't work (there's a call in the trace)
23:04
<
smarr >
@elidable_promote("0,1")
23:04
<
smarr >
def _lookup(self, layout, obj):
23:05
<
smarr >
reading the documentation of `@elidable` I guess all arguments need to be constants/promoted values. Is there any way to ignore a specific argument?
23:06
<
smarr >
I need the object in the lookup, there's a fallback case (transitioning objects with outdated shapes), but it doesn't influence the lookup results in the normal case.
23:07
<
smarr >
Ideally, I'd just do the following in the interpreter:
23:07
<
smarr >
location = self._lookup(layout, self_obj)
23:07
<
smarr >
layout = self_obj.get_object_layout()
23:07
<
smarr >
return location.read_fn(location, self_obj)