Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-06-30

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 samcv yay and now working with single codepoint keys too. woo
00:02 samcv now i can do a dance metaphorically
00:22 * timotimo offers high-fives
00:23 buggable joined #moarvm
01:34 samcv :)
01:49 ilbot3 joined #moarvm
01:49 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
02:33 ggoebel joined #moarvm
03:19 geekosaur joined #moarvm
05:30 brrt joined #moarvm
05:40 brrt okay, other than uncovering a label off-by-one, which is almost certainly either dynasm's problem, i'm no further in figuring out what's wrong
05:43 brrt i'm stuck in a very tight loop that checks if a key exists for the same substring
05:43 brrt that is weird, innit
06:00 brrt what if the labels are somehow wrong...
06:01 samcv dynasm labels?
06:06 brrt yeah
06:07 samcv how would you find out?
06:12 brrt well, i know for one thing, that there is an off-by-one
06:12 brrt because i'm supposed to jump to 0x5ff
06:12 brrt and i
06:12 brrt 'm jumping to 0x600
06:12 brrt that has very unserious effects so far
06:12 brrt but still
06:13 samcv why doesn't it have more serious effects?. curious
06:13 samcv sounds like something that could screw things
06:14 brrt well, there is a preamble to every basic block
06:14 brrt and it loads the current 'reentry' label to a variable
06:15 brrt and when it does that, it assigns it to the %rax register first
06:15 brrt ('cause it is a 64 bit number)
06:15 brrt well, if you want to affect a 64 bit register in x64, you have to prefix your op
06:16 brrt with a 'rex' (register extension) byte
06:16 brrt if you don't have that byte, it will be interpreted as a 32 bit operation
06:16 brrt so you'll be writing to $eax, rather than $rax, and your reentry label is just 32 bits wide
06:18 brrt which is only important if you throw an exception or something
06:20 samcv hmm so maybe why they haven't caught this bug yes?
06:20 brrt well
06:20 brrt fairly sure it's because i'm holding it wrong somehow
06:20 brrt also
06:20 brrt nobody cares about dynasm
06:21 samcv except us :P?
06:21 brrt it's like this tiny library designed only to write the bootstrap VM for luajit
06:21 brrt yes
06:21 samcv yeah i had never heard of it before
06:21 brrt it's a cool little library, for sure
06:21 samcv before i started work on perl 6 that is i mean
06:22 brrt (true facebook engineering: rocksdb, a database for fast storage.)
06:22 brrt (let's write a *fast* database, this time)
06:22 brrt :sarcasm:
06:24 brrt i'm wondering what assumption with regards to labels i'm breaking….
06:25 domidumont joined #moarvm
06:31 domidumont joined #moarvm
08:30 zakharyas joined #moarvm
09:23 lizmat joined #moarvm
11:07 brrt joined #moarvm
11:17 Geth joined #moarvm
11:46 robertle joined #moarvm
12:44 jnthn Righty, I've a little hacking time...
12:50 nwc10 famous last words...
12:50 jnthn :P
12:50 jnthn Will see if I can get a little more spesh progress in :)
13:22 Geth ¦ MoarVM/spesh-worker: dc9a63cd8f | (Jonathan Worthington)++ | 4 files
13:22 Geth ¦ MoarVM/spesh-worker: Start giving frames a spesh log correlation ID.
13:22 Geth ¦ MoarVM/spesh-worker:
13:22 Geth ¦ MoarVM/spesh-worker: Only when they are warm enough, and up to the point that they have
13:22 Geth ¦ MoarVM/spesh-worker: logged enough. Note that the invocations and spesh limit fields of
13:22 Geth ¦ MoarVM/spesh-worker: MVMStaticFrame will go away after the refactor, leaving it the same
13:22 Geth ¦ MoarVM/spesh-worker: size as they started. In MVMFrame, spesh_log_idx and osr_count will
13:22 Geth ¦ MoarVM/spesh-worker: be able to be removed, and we might back this new field 16 bits if
13:23 Geth ¦ MoarVM/spesh-worker: that will win better packing.
13:23 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/dc9a63cd8f
13:40 Geth ¦ MoarVM/spesh-worker: 1fb27e574e | (Jonathan Worthington)++ | 3 files
13:40 Geth ¦ MoarVM/spesh-worker: Write unspecialized call entries into the log.
13:40 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/1fb27e574e
13:51 Geth ¦ MoarVM/spesh-worker: e1e802a122 | (Jonathan Worthington)++ | 3 files
13:51 Geth ¦ MoarVM/spesh-worker: Write OSR points into spesh log.
13:51 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/e1e802a122
13:52 timotimo i should delete a bunch of branches i don't need any more
14:08 Geth ¦ MoarVM/spesh-worker: f6f896ffa5 | (Jonathan Worthington)++ | 4 files
14:08 Geth ¦ MoarVM/spesh-worker: Add parameter type logging.
14:08 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/f6f896ffa5
14:15 timotimo threw out a few
14:15 timotimo i think it was 111 branches before, now it's 97
14:15 timotimo i'll want to look at a few and see if their changes have made it into moar "in spirit", so i can throw them out, too
14:17 timotimo i'll be on the road for a bit first, though
14:35 Geth ¦ MoarVM/spesh-worker: 41419418df | (Jonathan Worthington)++ | 3 files
14:35 Geth ¦ MoarVM/spesh-worker: Log lexical/attr types, static lexical values.
14:35 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/41419418df
14:46 Geth ¦ MoarVM/spesh-worker: 62c762b350 | (Jonathan Worthington)++ | 3 files
14:46 Geth ¦ MoarVM/spesh-worker: Log the outcome of decont operations.
14:46 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/62c762b350
14:51 jnthn Figuring out how we'll log return value types in this scheme will be a tad more interesting
14:59 committable6 joined #moarvm
15:01 Geth ¦ MoarVM/spesh-worker: 898758839d | (Jonathan Worthington)++ | 3 files
15:01 Geth ¦ MoarVM/spesh-worker: Log the target of an invocation.
15:01 Geth ¦ MoarVM/spesh-worker:
15:01 Geth ¦ MoarVM/spesh-worker: This is new information that spesh has in the past not had available
15:01 Geth ¦ MoarVM/spesh-worker: to it. It will be used to help us to do better in the case of having
15:01 Geth ¦ MoarVM/spesh-worker: predictable closures.
15:01 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/898758839d
15:04 jnthn The ret val is the only thing left. I guess we'll have to put it at the point of actually writing the return value into the calling frame.
15:06 jnthn Next week will bring about the larger changes, I guess.
15:06 jnthn I'll have to figure out a plan for that
15:21 Geth ¦ MoarVM/spesh-worker: 36567ce7a8 | (Jonathan Worthington)++ | 3 files
15:21 Geth ¦ MoarVM/spesh-worker: Log types that are returned to a frame.
15:21 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/36567ce7a8
15:21 jnthn Well, that gets us writing all the relevant information from the interpreter into the log
15:23 jnthn Spectest looks alright also
15:23 jnthn A bit slower, but that's no surprise
15:33 jnthn Alright, enough for this week. :)
15:35 jnthn I think my plan for next week is getting the data from logs collated usefully, then refactoring the way we do guards, and then moving specialization work over to the thread. In the process I'll also introduce the certain specializations.
15:35 jnthn bbl o/
15:40 domidumont joined #moarvm
16:34 domidumont joined #moarvm
17:41 domidumont joined #moarvm
17:43 timotimo hm, if we log the invocation target, is that going to be the code object that's actually the closure, and thus different every time?
17:44 samcv good *
18:04 robertle joined #moarvm
18:30 AlexDaniel joined #moarvm
18:43 domidumont joined #moarvm
19:08 MasterDuke joined #moarvm
19:11 MasterDuke timotimo: backtrace from a segfault when trying to profile DrForr's List format parser test: https://gist.github.com/MasterDuke17/d8872bebdb4551c4d4ebda54682092fd
19:16 samcv on todays schedule is getting each collation element into an enum. so we don't have to store the full value, just a reference to a c array which will have the actual value. should save a lot of space
19:16 timotimo MasterDuke: threads, eh?
19:19 timotimo MasterDuke: it works just fine on my end, the profiling
19:19 MasterDuke i have to remove the lib/.precomp directory for it to segv
19:20 timotimo right
19:20 timotimo no big surprise, since precomp causes threads to happen
19:20 MasterDuke and then the test takes minutes
19:21 timotimo only if it has to precomp, you mean?
19:21 MasterDuke runs relatively quickly otherwise
19:21 MasterDuke yeah
19:21 timotimo okay so compiling the library is the slow part
19:22 timotimo Grammar.pm6 seems to be the culprit
19:22 FROGGS joined #moarvm
19:50 timotimo mergesubrules and mergesubstates are both not even speshed. maybe the baseline spesh optimization feature in the future will make this run a bit faster
19:56 timotimo it's somewhat easy to figure out why something doesn't get jitted. why someone doesn't get speshed on the other hand ... :\

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary