Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-07-04

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

All times shown according to UTC.

Time Nick Message
01:34 colomon joined #moarvm
01:48 ilbot3 joined #moarvm
01:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
02:12 samcv oh mah gawd
02:12 samcv if you type `gui` in lldb you get a curses gui :O
02:16 samcv I have a perl6-lldb-m if you guys want it https://gist.github.com/a7a6e1c86fbfd4431ce99af2cf69d6c8
02:16 samcv should i make it part of perl6 yes or no?
02:19 samcv can't figure out how to get it working hmm
02:21 samcv oh well
02:21 MasterDuke i think timotimo was trying to create a perl6-lldb-m recently
02:21 samcv ah.
02:21 samcv well i made one :p
02:22 MasterDuke but it doesn't work?
02:22 samcv no it works fine
02:22 samcv typing gui in lldb just presents a mostly nonworking curses interface
02:22 samcv but i read nline it's not even documented and not production ready
02:22 samcv though it got me excited. lldb perl6 works great
02:22 MasterDuke ah, nice
02:23 samcv i don't have rlwrap functionality in it so i'm starting it with rlwrap
02:23 samcv so i can get command history as well as editing
02:33 colomon joined #moarvm
05:42 brrt joined #moarvm
05:53 brrt good hi, #moarvm
05:53 brrt nice work samcv++
05:54 brrt (although, to be fair, even better than 'perl6-$program-m' would be to have $program perl6
05:54 brrt but that is a lot more effort for the same 'benefit'
05:57 brrt also, lizmat++ for the weekly
05:57 brrt also, nice to see samcv will be at TPC::Ams
06:02 Geth ¦ MoarVM/even-moar-jit: 6c1d4f4176 | (Bart Wiegmans)++ | 2 files
06:02 Geth ¦ MoarVM/even-moar-jit: Log problem with broken label
06:02 Geth ¦ MoarVM/even-moar-jit:
06:02 Geth ¦ MoarVM/even-moar-jit: Now solved, it seems.
06:02 Geth ¦ MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/6c1d4f4176
06:38 brrt joined #moarvm
06:43 brrt fresh new bug coming up
06:59 domidumont joined #moarvm
07:05 domidumont joined #moarvm
07:15 brrt so, that code looks suspiciously inocent, but, we're leaving an inline, and we might not handle that perfectly just yet
07:15 brrt but with jnthn++ improvements, the inliner is just much more effective than previously
07:16 brrt yep, it's inline-sensitive
07:46 zakharyas joined #moarvm
08:21 robertle joined #moarvm
08:33 jnthn brrt: In theory, leaving an inline is just a goto :)
08:40 brrt yeah, it seems to be labelling isssues
08:40 brrt i need to make stack-walking a bigger priority than it is now...
09:59 Geth ¦ MoarVM/spesh-worker: e713c780e4 | (Jonathan Worthington)++ | 3 files
09:59 Geth ¦ MoarVM/spesh-worker: Spesh correlation IDs should be a thread level.
09:59 Geth ¦ MoarVM/spesh-worker:
09:59 Geth ¦ MoarVM/spesh-worker: This makes the analysis of stack frames rather easier to track. Also
09:59 Geth ¦ MoarVM/spesh-worker: it eliminates the need for an atomic operation for correct analysis.
09:59 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/e713c780e4
09:59 Geth ¦ MoarVM/spesh-worker: d151a2a140 | (Jonathan Worthington)++ | src/spesh/stats.c
09:59 Geth ¦ MoarVM/spesh-worker: Add a call stack simulation to help build stats.
09:59 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/d151a2a140
09:59 jnthn *at
10:01 Geth ¦ MoarVM/spesh-worker: d7e90021d1 | (Jonathan Worthington)++ | src/spesh/stats.c
10:01 Geth ¦ MoarVM/spesh-worker: Add a call stack simulation to help build stats.
10:01 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/d7e90021d1
10:01 jnthn Now without leftover debug stuff :)
10:16 zakharyas joined #moarvm
10:28 Geth ¦ MoarVM/spesh-worker: f6d2e4392d | (Jonathan Worthington)++ | src/spesh/stats.c
10:28 Geth ¦ MoarVM/spesh-worker: Correct simulation pop calculation.
10:28 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/f6d2e4392d
10:28 Geth ¦ MoarVM/spesh-worker: 6e3d0f7f75 | (Jonathan Worthington)++ | 2 files
10:28 Geth ¦ MoarVM/spesh-worker: Collect static values; add to stats dumper.
10:28 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/6e3d0f7f75
10:40 Geth ¦ MoarVM/spesh-worker: b606e24ae6 | (Jonathan Worthington)++ | src/core/frame.c
10:40 Geth ¦ MoarVM/spesh-worker: Logging should respect spesh being disabled.
10:40 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/b606e24ae6
10:40 Geth ¦ MoarVM/spesh-worker: 991a256699 | (Jonathan Worthington)++ | src/moar.c
10:40 Geth ¦ MoarVM/spesh-worker: Disable spesh in initial load/deserialize.
10:40 Geth ¦ MoarVM/spesh-worker:
10:40 Geth ¦ MoarVM/spesh-worker: This is typically one-shot code at startup; there's no need to pay for
10:40 Geth ¦ MoarVM/spesh-worker: logging and optimization here.
10:40 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/991a256699
10:48 Zoffix left #moarvm
11:04 masak joined #moarvm
11:04 masak :)
11:24 timotimo i haven't done anything with lldb. i probably don't even have it installed
11:24 timotimo but it would indeed be a fantastic idea to walk through $PATH and install a perl6-$program-m for every binary we find :P
11:32 MasterDuke oh, maybe it was [Coke]
11:34 timotimo just imagine the power we could have with perl6-libreoffice-m !!
11:36 MasterDuke perl6-rustcc-m, certain to make it to the front page of HN
11:38 domidumont joined #moarvm
11:39 timotimo perl6-systemd-m
11:46 brrt lldb is pretty decent actually
11:48 timotimo LLDB has been structured from the beginning to be scriptable in two ways -- a Unix Python session can initiate/run a debug session non-interactively using LLDB; and within the LLDB debugger tool, Python scripts can be used to help with many tasks, including inspecting program data, iterating over containers and determining if a breakpoint should stop execution or continue.
11:50 timotimo perhaps lldb is much nicer to script than gdb si
11:50 timotimo because gdb's python scripting API has some ... annoying properties
11:51 * jnthn back
12:06 brrt frankly, i'm more likely to modify and set manual 'breakpoints' in my code than to script the debugger
12:06 brrt gdb's macro support is much better though
12:11 domidumont joined #moarvm
12:19 timotimo brrt: did you see my spesh step-by-step tracer script?
12:19 timotimo i don't think you'd want to do that by hand :)
12:21 brrt true!
12:43 Geth ¦ MoarVM/spesh-worker: b1c3600a78 | (Jonathan Worthington)++ | src/spesh/stats.c
12:43 Geth ¦ MoarVM/spesh-worker: Stash by-callsite index into sim frame.
12:43 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/b1c3600a78
12:43 Geth ¦ MoarVM/spesh-worker: cbe2e751ff | (Jonathan Worthington)++ | 7 files
12:43 Geth ¦ MoarVM/spesh-worker: Log parameters with their arg buffer index.
12:43 Geth ¦ MoarVM/spesh-worker:
12:43 Geth ¦ MoarVM/spesh-worker: This is much simpler to process than first trying to find the bytecode
12:43 Geth ¦ MoarVM/spesh-worker: instruction, then process it into the index.
12:43 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/cbe2e751ff
12:45 jnthn Butts, I've got a GC screw-up in there somewhere
12:59 domidumont joined #moarvm
13:02 domidumont joined #moarvm
13:04 Geth ¦ MoarVM/spesh-worker: 3eccd31f8e | (Jonathan Worthington)++ | src/spesh/stats.c
13:04 Geth ¦ MoarVM/spesh-worker: Missing write barrier on storing logged value.
13:04 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/3eccd31f8e
13:05 jnthn 'twas that, it seems
13:08 lizmat joined #moarvm
13:27 lizmat jnthn: is this a known issue?  ` perl6 -e 'prompt "123"' ` this produce an error message under `bash on win10`:
13:28 lizmat with 2017.06, just asked on #perl6
13:31 jnthn Was an issue, but I believed it to be fixed before 2017.06
13:31 lizmat apparently not :-(
13:32 lizmat will ask to rakudobug
13:32 jnthn I suspect the emulation layer is handing back an unexpected errno
13:32 jnthn That differs from the one that you'd get on a real linux
13:32 jnthn So probably confined to bash on win10
13:52 ilmari[m] joined #moarvm
14:07 ilmari[m] joined #moarvm
14:08 Geth ¦ MoarVM/spesh-worker: 48864d90f4 | (Jonathan Worthington)++ | 2 files
14:08 Geth ¦ MoarVM/spesh-worker: Aggregate and dump arg type tuples.
14:08 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/48864d90f4
14:09 zakharyas joined #moarvm
14:14 jnthn For anyone curiously following along, the statistics dump currently has entries that look something like https://gist.github.com/jnthn/d61102684b3ddde8e375e6cc55869a25
14:15 jnthn I show this one in particular because it shows a case where spesh to date mighta done something unfortunate
14:16 jnthn If the 10th call was "hot enough to start specializing", and that call just happened to have the second of the type tuples, it woulda specialized for the least common thing
14:16 jnthn Rather than having this overview
14:16 AlexDaniel joined #moarvm
14:16 jnthn There's some other nice cases in the data where the first type across all the tuples is consistent but the latter types are not
14:16 jnthn In which case it makes sense to make a specialization guarded only on the first arg's type, but not the megamorphic second arg
14:17 jnthn Now we'll have the stats to actually do that :)
14:18 ilmari jnthn: couldn't the if (MVM_string_decode_stream_maybe_sep(…) { … } else if (stopper_chars && …) { … } be written as just if (MVM_string_decode_stream_maybe_sep(…) || stopper_chars && …) { … }?
14:18 MasterDuke what does 'Conc' mean?
14:18 ilmari concurrent? concatenat(e|ing)?
14:18 nine Concrete?
14:19 nine As opposed to the TypeObj
14:19 jnthn Concrete
14:19 ilmari (… || (… && …)), even
14:20 jnthn ilmari: Hm, looks like
14:20 ilmari the compiler might be clever enough to realise that the bodies are identical, but I wouldn't bet on it
14:22 jnthn Indeed.
14:23 nine Also having only one body is a clear sign to the human reader that the same actions should happen in both cases.
14:23 ilmari yeah
14:23 * jnthn wonders if there's some historical reason for the divergence
14:24 ilmari I also noticed that the commit that made it into else if flipped the order
14:24 ilmari I'd have thougth the simple comparison would be cheaper than the function call (unless that's a trivial inline function)
14:24 jnthn The reading line by line case is just vastly more common
14:25 jnthn It is an inline function and in the common case also an integer comparison, though
14:25 ilmari fair enough
14:31 Geth ¦ MoarVM: 33e46e26c5 | (Jonathan Worthington)++ | src/strings/utf8.c
14:31 Geth ¦ MoarVM: Eliminate duplicate code in utf8 decoder.
14:31 Geth ¦ MoarVM:
14:31 Geth ¦ MoarVM: ilmari++ for noticing.
14:31 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/33e46e26c5
14:34 ilmari jnthn: the other decoders have the same issue]
14:35 ilmari utf8-c8 also has a similar, but not quite identical construct
14:35 jnthn Yeah; I'm planing a different approach for the byte level ones
14:38 jnthn (Though not today)
14:38 jnthn Will clear it up for those then.
14:46 brrt joined #moarvm
14:50 zakharyas joined #moarvm
14:50 lizmat joined #moarvm
14:55 [Coke] lldb++ yes please
14:56 MasterDuke [Coke]: i believe samcv got it working last night. https://gist.github.com/a7a6e1c86fbfd4431ce99af2cf69d6c8
15:16 Geth ¦ MoarVM/spesh-worker: 419bd4ab99 | (Jonathan Worthington)++ | 3 files
15:16 Geth ¦ MoarVM/spesh-worker: Data structure for by-offset type/value stats.
15:16 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/419bd4ab99
15:30 Geth ¦ MoarVM/spesh-worker: f461fb2171 | (Jonathan Worthington)++ | src/spesh/stats.c
15:30 Geth ¦ MoarVM/spesh-worker: Keep type/value logs attached to a sim frame.
15:30 Geth ¦ MoarVM/spesh-worker:
15:30 Geth ¦ MoarVM/spesh-worker: These can only be incorporated into the model once we know which
15:30 Geth ¦ MoarVM/spesh-worker: parameter type tuple to place it under.
15:30 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/f461fb2171
15:51 Geth ¦ MoarVM/spesh-worker: ebab3c3bae | (Jonathan Worthington)++ | 2 files
15:51 Geth ¦ MoarVM/spesh-worker: Start creating/dumping by offset entries.
15:51 Geth ¦ MoarVM/spesh-worker:
15:51 Geth ¦ MoarVM/spesh-worker: Don't contain the data logged at that offset yet.
15:51 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/ebab3c3bae
16:14 Geth ¦ MoarVM/spesh-worker: 884ceb0a75 | (Jonathan Worthington)++ | 2 files
16:14 Geth ¦ MoarVM/spesh-worker: Aggregate type/value counts at offsets.
16:14 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/884ceb0a75
16:17 Geth ¦ MoarVM/spesh-worker: 1434cef888 | (Jonathan Worthington)++ | src/spesh/log.c
16:17 Geth ¦ MoarVM/spesh-worker: Fix copy-pasto in invoke logging.
16:17 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/1434cef888
16:18 jnthn Only OSR stats to fold into the model tomorrow
16:18 jnthn And then I'll move on to re-designing the log guards
16:19 jnthn Uh, actually the argument guards
16:24 brrt joined #moarvm
16:27 Geth ¦ MoarVM/spesh-worker: 50196b504c | (Jonathan Worthington)++ | 2 files
16:27 Geth ¦ MoarVM/spesh-worker: Add up and store OSR hits.
16:27 Geth ¦ MoarVM/spesh-worker: review: https://github.com/MoarVM/MoarVM/commit/50196b504c
16:27 jnthn Actually they were pretty easy :)
16:29 jnthn afk for now
16:32 brrt oh, bummer
16:33 brrt was just about to ask what the FH_START and FH_END annotations mean, exactly, again
16:34 timotimo something with handlers
16:35 timotimo yeah, handlers. like for exceptions/control exceptions
16:35 timotimo no?
16:39 Zoffix joined #moarvm
17:49 lizmat joined #moarvm
18:39 jnthn Frame handler start, frame handler end
18:39 jnthn They mark out the regions of exception handlers
18:40 jnthn They are taken from the handlers table on the static frame
18:40 jnthn We then make a derived table post-optimization
18:50 zakharyas joined #moarvm
19:02 domidumont joined #moarvm
19:22 lizmat joined #moarvm
19:27 brrt joined #moarvm
19:29 brrt right :-)
19:30 brrt i've decided to bite the bullet and start handling all annotations within the expr jit
19:30 brrt now that i have flushing functionality that should be safely writeable
19:33 brrt (and also the guard node functionality)
20:14 lizmat joined #moarvm
20:55 robertle joined #moarvm
21:20 jnthn ++brrt :)
22:10 samcv ok i fixed that clearing bug :) yay
22:40 jnthn Nice :)
22:40 jnthn Sleep time for me; 'night
22:41 timotimo nite jnthn
22:59 TimToady joined #moarvm
23:50 evalable6 joined #moarvm
23:50 quotable6 joined #moarvm
23:50 committable6 joined #moarvm
23:50 greppable6 joined #moarvm
23:50 bloatable6 joined #moarvm
23:50 benchable6 joined #moarvm
23:50 unicodable6 joined #moarvm
23:50 bisectable6 joined #moarvm
23:50 statisfiable6 joined #moarvm

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