github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:00
reportable6 left
00:02
Kaypie left
00:03
reportable6 joined
00:08
tellable6 left
00:10
evalable6 joined
00:13
tellable6 joined
00:57
pamplemousse joined
01:10
evalable6 left
01:12
evalable6 joined
01:23
tellable6 left
01:27
tellable6 joined
02:11
pamplemousse left
02:23
pamplemousse joined
02:27
evalable6 left
02:28
tellable6 left
02:30
evalable6 joined
02:31
tellable6 joined
02:43
pamplemousse left,
pamplemousse joined
02:59
pamplemousse left
03:02
lucasb left
|
|||
Geth | MoarVM/fix_decoder_on_exceptions: e2f576370f | (Stefan Seifert)++ | 3 files Fix bogus "Decoder may not be used concurrently" after exceptions If stream decoding throws an exception (like on bad UTF-8) the deocder's in_use flag would stay set preventing any further use of the decoder. This can lead to great action-at-a-distance effects. Fix by extending the MVM_tc_(set|release)_ex_release_mutex mechanism to support such flags in addition to fully blown mutexes. This way we can keep the light weight in_use flag for the cost of a single bit test and branch when throwing exceptions. |
03:38 | |
MoarVM: e2f576370f | (Stefan Seifert)++ | 3 files Fix bogus "Decoder may not be used concurrently" after exceptions If stream decoding throws an exception (like on bad UTF-8) the deocder's in_use flag would stay set preventing any further use of the decoder. This can lead to great action-at-a-distance effects. Fix by extending the MVM_tc_(set|release)_ex_release_mutex mechanism to support such flags in addition to fully blown mutexes. This way we can keep the light weight in_use flag for the cost of a single bit test and branch when throwing exceptions. |
|||
MoarVM: 8c47931e20 | niner++ (committed using GitHub Web editor) | 3 files Merge pull request #1153 from MoarVM/fix_decoder_on_exceptions Fix bogus "Decoder may not be used concurrently" after exceptions |
|||
05:26
brrt joined
|
|||
brrt | .tell pamplemousse great! looking forward to it | 05:27 | |
tellable6 | brrt, I'll pass your message to pamplemousse | ||
nwc10 | good *, brrt | ||
brrt | good hi nwc10 | 05:28 | |
I think I've worked out how I want the linear IR nodes to look | 05:54 | ||
I can make 'm as small as 20 bytes, but I'd rather make that 16, so that 4 can fit on a single cache line | |||
but I don't know how to do that | 05:55 | ||
bbiab | |||
05:55
brrt left
06:00
reportable6 left
06:03
reportable6 joined
07:51
zakharyas joined
07:56
brrt joined
|
|||
brrt | ... I think I do know how to make them 16 bytes.... | 07:57 | |
nwc10 | good. because I was going to say "paste what you have, and I'll see what I can think of" | 07:58 | |
brrt | the 'size' parameter of the 'load' and 'store' operator is redundant; nodes always carray a size | ||
nwc10 | but if you're already there... | ||
brrt | I'll paste it anyway :-) | ||
nwc10 | I have a meeeeeeeeeting in about 2 minutes... | ||
brrt | I may have been wrong.... | 08:00 | |
gist.github.com/bdw/e5254580a7eb35...7c0df448b3 | 08:01 | ||
I even have a byte left :-D | |||
- STORE has two operands and a size parameter. But the size parameter can just go into the 'size' attribute | |||
- SCAST and UCAST have one operand and two parameters each... again, target size can be the size attribute, the only parameter needed then is the source size | 08:03 | ||
- IF and IFV have three arguments, but these will disappear when transformed into linear form anyway | 08:04 | ||
so two arguments is really enough | |||
(with 16 bytes, they'll fit into a register pair, too) | 08:05 | ||
size and type can be combined, too... but that may be too inconvenient to be worth it | |||
nwc10: I assume you already got there | 08:08 | ||
nwc10 | I have now escaped, but I have no coffee | 08:28 | |
brrt | this can be problemati | 08:29 | |
c | |||
that reminds me.... I need tea | 08:32 | ||
09:10
sena_kun joined
09:13
brrt left
09:51
fake_space_whale joined
12:00
reportable6 left
12:04
reportable6 joined
12:16
pamplemousse joined
12:20
Visitor joined
12:33
zakharyas left
12:40
pamplemousse left,
Visitor is now known as pamplemousse
|
|||
pamplemousse | o/ | 12:40 | |
tellable6 | 2019-08-19T05:27:41Z #moarvm <brrt> pamplemousse great! looking forward to it | 12:41 | |
12:41
lucasb joined
12:59
domidumont joined
13:09
brrt joined
13:26
Guest93053 joined
13:27
reportable6 left
13:32
reportable6 joined
13:34
shareable6 left,
committable6 left,
greppable6 left
13:35
squashable6 left,
committable6 joined
13:37
shareable6 joined
13:38
squashable6 joined,
greppable6 joined
|
|||
brrt | \o | 14:08 | |
timotimo | o/ | 14:09 | |
14:22
brrt left,
brrt joined
|
|||
pamplemousse | o/ brrt, timotimo | 14:22 | |
jnthn | m: say 25.4 / 28.8 | 15:03 | |
camelia | 0.881944 | ||
jnthn | Turns out a fix to args spesh to handle a missed case there has a positive effect on a DBIish insert benchmark :) | 15:06 | |
timotimo | oh, very nice | 15:09 | |
brrt | ohai pamplemousse, jnthn | 15:11 | |
jnthn | o/ brrt | 15:12 | |
brrt | jnthn: I saw your concurrency keynote on perlcon riga on youtube... very nice :-) | 15:13 | |
timotimo | yes, indeed | 15:14 | |
jnthn | :) | 15:16 | |
Kaiepi | can someone review github.com/MoarVM/MoarVM/pull/1152 ? i can't really continue with the grant work until this gets merged since the next changes i'm planning on doing depend on some of the refactors made here | 15:18 | |
jnthn | Kaiepi: Will see if I can take a look this evening | 15:19 | |
Kaiepi | thanks | ||
Geth | MoarVM: d1af2f2fcc | (Jonathan Worthington)++ | src/spesh/args.c Handle arg spesh native param passed a Scalar If the Scalar contains something of the appropriate type to unbox, then transform the parameter instruction into a decont_[ins]. Since failing args spesh has knock-on effects, this can have a quite positive impact. For example, it's worth ~10% off a DBIish insertion benchmark. |
15:22 | |
15:23
Guest93053 left
|
|||
timotimo | i wonder if my spesh comments helped find that | 15:26 | |
jnthn | Yes :) | 15:27 | |
Well, of note, they mentioned Scalar, which made it really clear what was wrong | |||
timotimo | \o/ | ||
the comments aren't all the same, i should unify them | 15:28 | ||
and maybe every spot where "goto cleanup" happens should also put a comment at least somewhere in the spesh dump | 15:29 | ||
jnthn | yeah, could be handy | 15:32 | |
timotimo | for example, we skip all the param op versions that have two alternative names in them | 15:33 | |
making that more easily searchable in the spesh dump with a "spesh arg bail:" message could be useful | |||
AlexDaniel | if tellable6 misbehaves again please ping me :) | ||
timotimo | AlexDaniel: could you make it smart enough to not tell when i quickly respond to someone telling me something? | 15:35 | |
AlexDaniel | timotimo: it shouldn't do that if you're on the channel, there was an issue with that which I hopefully fixedā¦ | 15:39 | |
timotimo | .tell AlexDaniel thank you for that | ||
tellable6 | timotimo, I'll pass your message to AlexDaniel | ||
AlexDaniel | oh, I see what you mean | ||
tellable6 | 2019-08-19T15:39:16Z #moarvm <timotimo> AlexDaniel thank you for that | ||
timotimo | yeah, that | ||
AlexDaniel | sure | ||
timotimo: hmm, now that I think about it, it's a bit more difficult. It has to either track if you were on the channel when .tell was issued, or it should save when you joined the channel | 15:43 | ||
both of which will take more than a single line to implement x) | |||
but option #1 isn't that bad actually | 15:45 | ||
tellable6: do you want it to silently not do anything? | |||
tellable6 | AlexDaniel, I haven't seen do around, did you mean o_? | ||
AlexDaniel | timotimo: oops, that was a question for you | 15:46 | |
15:46
brrt left
|
|||
timotimo | yeah, i think it should just drop the tell; would be fine if it were very conservative | 15:46 | |
jnthn: i think the handling of param_sp could be wrong in MVM_spesh_args | 16:03 | ||
param_sp and param_sn break out of the while loop for instructions | |||
but i have a BB here that has param_sp and param_sn in the same BB right in a row | |||
oh | 16:04 | ||
disregard that, the break is very obviously for the switch, not the while | |||
the actual case here is that a QAST::Op.new is being called with two positionals, and there's a param_sp, but it bails out because it finds no op that takes the argument with index 1 | 16:05 | ||
there doesn't seem to be any handling for param_sp in all of spesh? but MVM_spesh_args also doesn't bail out in that case. interesting. so we just rely on the regular implementation of param_sp to do what it needs to do? | 16:07 | ||
jnthn | I guess we must, yes | 16:10 | |
timotimo | we already specialize param_sn into "create a hash and populate it", any particular reason we don't do that with param_sp as well? | 16:11 | |
16:14
tellable6 left
16:17
tellable6 joined
|
|||
AlexDaniel | timotimo: test | 16:18 | |
.tell timotimo it should work now | |||
tellable6 | AlexDaniel, I'll pass your message to timotimo | ||
timotimo | AlexDaniel: thank you | ||
AlexDaniel | .tell evalable6 test test | ||
tellable6 | AlexDaniel, I'll pass your message to evalable6 | ||
16:45
sena_kun left
16:49
domidumont left
16:50
domidumont joined
18:00
reportable6 left
18:02
reportable6 joined
|
|||
AlexDaniel | .tell timotimo let's try againā¦ can you please say something? | 18:11 | |
tellable6 | AlexDaniel, I'll pass your message to timotimo | ||
timotimo | i surely can | ||
AlexDaniel | ok that part sorta works | ||
but I think in 10 minutes it'll still deliver the messageā¦ weird | |||
.tell timotimo smth smth | 18:13 | ||
tellable6 | AlexDaniel, I'll pass your message to timotimo | ||
timotimo | hum. | ||
AlexDaniel | hmm | ||
also seeing āUse of uninitialized value of type Any in string context.ā and no line number :) | |||
ok that was from delivered messages on #perl6-dev | 18:19 | ||
18:27
sena_kun joined
|
|||
AlexDaniel | .tell timotimo one more test | 18:35 | |
tellable6 | AlexDaniel, I'll pass your message to timotimo | ||
AlexDaniel | actually I'll use a bot for thatā¦ | 18:36 | |
.tell shareable6 test test | 18:37 | ||
tellable6 | AlexDaniel, I'll pass your message to shareable6 | ||
AlexDaniel | shareable6: help | ||
shareable6 | AlexDaniel, Like this: shareable6: f583f22 # See wiki for more examples: github.com/perl6/whateverable/wiki/Shareable | ||
AlexDaniel | .tell greppable6 test test | ||
tellable6 | AlexDaniel, I'll pass your message to greppable6 | ||
19:27
domidumont left
|
|||
timotimo | AlexDaniel: thanks | 19:30 | |
jnthn: what's the reason that spesh arg bails when any given arg isn't fetched by a corresponding instruction? | 19:37 | ||
jnthn | timotimo: An abundance of caution, I think :) | 19:51 | |
timotimo: Well, if you mean positional. | 19:52 | ||
timotimo | yes, positionals | ||
tellable6 | 2019-08-19T18:35:48Z #moarvm <AlexDaniel> timotimo one more test | ||
timotimo | damn it, AlexDaniel :) :) | ||
jnthn | I don't think we ever generate code with them missing, though | ||
timotimo | yes we do :) :) | ||
if there's a param_sp | |||
i'll make it not bail if a param_sp was seen, and see to it that param_sp generates tight code to grab stuff from the args buffer and put it into the array | 19:53 | ||
hm, though actually, there'll be some interesting stuff with regards to native arguments and such, they'll want boxed | |||
hum. but if i handle param_sp early enough, i can just emit regular boring param_rp_o args and register them with the code that would normally optimize them | 19:54 | ||
19:55
Altai-man_ joined
|
|||
timotimo | i'll just only handle the case when there either hasn't been a single param_ro_* yet, or the only one there has been was for an invocant, because param_sp doesn't get the invocant (i think? gotta check that) | 19:56 | |
gasp, jnthn | 19:57 | ||
we generate a fastcreate for the slurpy hash type | |||
but we don't check if it has an initialize function | |||
19:58
sena_kun left
|
|||
AlexDaniel | timotimo: :D | 19:58 | |
19:58
Kaiepi left
19:59
Kaiepi joined
|
|||
AlexDaniel | timotimo: also the timing doesn't make any sense xD | 19:59 | |
timotimo | thanks for working on this btw | ||
20:06
fake_space_whale left
20:12
brrt joined
|
|||
jnthn | timotimo: I...don't think there exists one with an initialize function? :) | 20:12 | |
But yeah, technically we probably should check that :) | 20:13 | ||
Also, you'll probably be able to steal boxing etc. logic from the path that optimizes slurpy hashes | |||
brrt | jnthn: would you be ok with a merge of expr-jit-float today? | ||
jnthn | brrt: Well, I've not had chance to review it, but I'm happy to trust your judgement on its readiness for merge :) | ||
I wonder if it'll make the Complex benchmark we have even faster... | 20:14 | ||
20:17
Altai-man_ left
|
|||
brrt | I don't really expect it would.... but then again | 20:18 | |
I mostly want it because I want the refactored register allocator API in for my next tasks | 20:19 | ||
20:19
fake_space_whale joined
|
|||
MasterDuke | brrt: have you done any benchmarking? | 20:24 | |
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2019/08/19/...were-back/ | 20:36 | |
brrt | MasterDuke: tbh, no :-) | 20:51 | |
samcv | hey brrt | 20:55 | |
AlexDaniel | timotimo: I have no idea how it could possibly behave the way it does :D | 21:07 | |
21:09
pamplemousse left
|
|||
timotimo | ha | 21:09 | |
great | |||
21:09
pamplemousse joined
|
|||
brrt | hey samcv | 21:11 | |
AlexDaniel | .tell timotimo hello world. This bug is crazy | 21:15 | |
tellable6 | AlexDaniel, I'll pass your message to timotimo | ||
timotimo | :) | 21:16 | |
ooh i didn't realize until now that param_sp takes an integer argument that decides at what position it'll start slurping up positionals, that makes so much sense | 21:22 | ||
21:35
brrt left
22:03
kiwi_50 joined
22:06
pamplemousse left
|
|||
AlexDaniel | timotimo: damn that's a good one | 22:24 | |
timotimo | what is? | 22:25 | |
AlexDaniel | timotimo: #92 | 22:26 | |
timotimo | well, see #perl6-dev | 22:27 | |
AlexDaniel | to I guess tellable6 is not going to deliver the message this time? | 22:58 | |
so* | |||
timotimo | maybe | 23:01 | |
23:10
rba left
23:12
rba joined
23:14
rba left,
rba joined
|
|||
timotimo | if we had a query thingie for spesh logs, i could now search for "elems ops that target the result of an sp_fastcreate that has a comment matching /slurpy positional/" and see if it's worth a lot to put an optimization for that in | 23:22 | |
23:28
rba left,
rba joined
23:29
rba left,
rba joined,
rba left
23:30
rba joined
23:36
kiwi_50 left
|