01:34 colomon joined 01:48 ilbot3 joined
samcv oh mah gawd 02:12
if you type `gui` in lldb you get a curses gui :O
I have a perl6-lldb-m if you guys want it gist.github.com/a7a6e1c86fbfd4431c...f2cf69d6c8 02:16
should i make it part of perl6 yes or no?
can't figure out how to get it working hmm 02:19
oh well 02:21
MasterDuke i think timotimo was trying to create a perl6-lldb-m recently
samcv ah.
well i made one :p
MasterDuke but it doesn't work? 02:22
samcv no it works fine
typing gui in lldb just presents a mostly nonworking curses interface
but i read nline it's not even documented and not production ready
though it got me excited. lldb perl6 works great
MasterDuke ah, nice
samcv i don't have rlwrap functionality in it so i'm starting it with rlwrap 02:23
so i can get command history as well as editing
02:33 colomon joined 05:42 brrt joined
brrt good hi, #moarvm 05:53
nice work samcv++
(although, to be fair, even better than 'perl6-$program-m' would be to have $program perl6 05:54
but that is a lot more effort for the same 'benefit'
also, lizmat++ for the weekly 05:57
also, nice to see samcv will be at TPC::Ams
Geth MoarVM/even-moar-jit: 6c1d4f4176 | (Bart Wiegmans)++ | 2 files
Log problem with broken label

Now solved, it seems.
06:02
06:38 brrt joined
brrt fresh new bug coming up 06:43
06:59 domidumont joined 07:05 domidumont joined
brrt so, that code looks suspiciously inocent, but, we're leaving an inline, and we might not handle that perfectly just yet 07:15
but with jnthn++ improvements, the inliner is just much more effective than previously
yep, it's inline-sensitive 07:16
07:46 zakharyas joined 08:21 robertle joined
jnthn brrt: In theory, leaving an inline is just a goto :) 08:33
brrt yeah, it seems to be labelling isssues 08:40
i need to make stack-walking a bigger priority than it is now...
Geth MoarVM/spesh-worker: e713c780e4 | (Jonathan Worthington)++ | 3 files
Spesh correlation IDs should be a thread level.

This makes the analysis of stack frames rather easier to track. Also it eliminates the need for an atomic operation for correct analysis.
09:59
MoarVM/spesh-worker: d151a2a140 | (Jonathan Worthington)++ | src/spesh/stats.c
Add a call stack simulation to help build stats.
jnthn *at
Geth MoarVM/spesh-worker: d7e90021d1 | (Jonathan Worthington)++ | src/spesh/stats.c
Add a call stack simulation to help build stats.
10:01
jnthn Now without leftover debug stuff :)
10:16 zakharyas joined
Geth MoarVM/spesh-worker: f6d2e4392d | (Jonathan Worthington)++ | src/spesh/stats.c
Correct simulation pop calculation.
10:28
MoarVM/spesh-worker: 6e3d0f7f75 | (Jonathan Worthington)++ | 2 files
Collect static values; add to stats dumper.
MoarVM/spesh-worker: b606e24ae6 | (Jonathan Worthington)++ | src/core/frame.c
Logging should respect spesh being disabled.
10:40
MoarVM/spesh-worker: 991a256699 | (Jonathan Worthington)++ | src/moar.c
Disable spesh in initial load/deserialize.

This is typically one-shot code at startup; there's no need to pay for logging and optimization here.
10:48 Zoffix left 11:04 masak joined
masak :) 11:04
timotimo i haven't done anything with lldb. i probably don't even have it installed 11:24
but it would indeed be a fantastic idea to walk through $PATH and install a perl6-$program-m for every binary we find :P
MasterDuke oh, maybe it was [Coke] 11:32
timotimo just imagine the power we could have with perl6-libreoffice-m !! 11:34
MasterDuke perl6-rustcc-m, certain to make it to the front page of HN 11:36
11:38 domidumont joined
timotimo perl6-systemd-m 11:39
brrt lldb is pretty decent actually 11:46
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:48
perhaps lldb is much nicer to script than gdb si 11:50
because gdb's python scripting API has some ... annoying properties
jnthn back 11:51
brrt frankly, i'm more likely to modify and set manual 'breakpoints' in my code than to script the debugger 12:06
gdb's macro support is much better though
12:11 domidumont joined
timotimo brrt: did you see my spesh step-by-step tracer script? 12:19
i don't think you'd want to do that by hand :)
brrt true! 12:21
Geth MoarVM/spesh-worker: b1c3600a78 | (Jonathan Worthington)++ | src/spesh/stats.c
Stash by-callsite index into sim frame.
12:43
MoarVM/spesh-worker: cbe2e751ff | (Jonathan Worthington)++ | 7 files
Log parameters with their arg buffer index.

This is much simpler to process than first trying to find the bytecode instruction, then process it into the index.
jnthn Butts, I've got a GC screw-up in there somewhere 12:45
12:59 domidumont joined 13:02 domidumont joined
Geth MoarVM/spesh-worker: 3eccd31f8e | (Jonathan Worthington)++ | src/spesh/stats.c
Missing write barrier on storing logged value.
13:04
jnthn 'twas that, it seems 13:05
13:08 lizmat joined
lizmat jnthn: is this a known issue? ` perl6 -e 'prompt "123"' ` this produce an error message under `bash on win10`: 13:27
with 2017.06, just asked on #perl6 13:28
jnthn Was an issue, but I believed it to be fixed before 2017.06 13:31
lizmat apparently not :-(
will ask to rakudobug 13:32
jnthn I suspect the emulation layer is handing back an unexpected errno
That differs from the one that you'd get on a real linux
So probably confined to bash on win10
13:52 ilmari[m] joined 14:07 ilmari[m] joined
Geth MoarVM/spesh-worker: 48864d90f4 | (Jonathan Worthington)++ | 2 files
Aggregate and dump arg type tuples.
14:08
14:09 zakharyas joined
jnthn For anyone curiously following along, the statistics dump currently has entries that look something like gist.github.com/jnthn/d61102684b3d...cc55869a25 14:14
I show this one in particular because it shows a case where spesh to date mighta done something unfortunate 14:15
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
Rather than having this overview
14:16 AlexDaniel joined
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
In which case it makes sense to make a specialization guarded only on the first arg's type, but not the megamorphic second arg
Now we'll have the stats to actually do that :) 14:17
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?
ilmari concurrent? concatenat(e|ing)?
nine Concrete?
As opposed to the TypeObj 14:19
jnthn Concrete
ilmari (ā€¦ || (ā€¦ && ā€¦)), even
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
jnthn Indeed. 14:22
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
jnthn wonders if there's some historical reason for the divergence
ilmari I also noticed that the commit that made it into else if flipped the order 14:24
I'd have thougth the simple comparison would be cheaper than the function call (unless that's a trivial inline function)
jnthn The reading line by line case is just vastly more common
It is an inline function and in the common case also an integer comparison, though 14:25
ilmari fair enough
Geth MoarVM: 33e46e26c5 | (Jonathan Worthington)++ | src/strings/utf8.c
Eliminate duplicate code in utf8 decoder.

  ilmari++ for noticing.
14:31
ilmari jnthn: the other decoders have the same issue] 14:34
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
(Though not today) 14:38
Will clear it up for those then.
14:46 brrt joined 14:50 zakharyas joined, lizmat joined
[Coke] lldb++ yes please 14:55
MasterDuke [Coke]: i believe samcv got it working last night. gist.github.com/a7a6e1c86fbfd4431c...f2cf69d6c8 14:56
Geth MoarVM/spesh-worker: 419bd4ab99 | (Jonathan Worthington)++ | 3 files
Data structure for by-offset type/value stats.
15:16
MoarVM/spesh-worker: f461fb2171 | (Jonathan Worthington)++ | src/spesh/stats.c
Keep type/value logs attached to a sim frame.

These can only be incorporated into the model once we know which parameter type tuple to place it under.
15:30
MoarVM/spesh-worker: ebab3c3bae | (Jonathan Worthington)++ | 2 files
Start creating/dumping by offset entries.

Don't contain the data logged at that offset yet.
15:51
MoarVM/spesh-worker: 884ceb0a75 | (Jonathan Worthington)++ | 2 files
Aggregate type/value counts at offsets.
16:14
MoarVM/spesh-worker: 1434cef888 | (Jonathan Worthington)++ | src/spesh/log.c
Fix copy-pasto in invoke logging.
16:17
jnthn Only OSR stats to fold into the model tomorrow 16:18
And then I'll move on to re-designing the log guards
Uh, actually the argument guards 16:19
16:24 brrt joined
Geth MoarVM/spesh-worker: 50196b504c | (Jonathan Worthington)++ | 2 files
Add up and store OSR hits.
16:27
jnthn Actually they were pretty easy :)
afk for now 16:29
brrt oh, bummer 16:32
was just about to ask what the FH_START and FH_END annotations mean, exactly, again 16:33
timotimo something with handlers 16:34
yeah, handlers. like for exceptions/control exceptions 16:35
no?
16:39 Zoffix joined 17:49 lizmat joined
jnthn Frame handler start, frame handler end 18:39
They mark out the regions of exception handlers
They are taken from the handlers table on the static frame 18:40
We then make a derived table post-optimization
18:50 zakharyas joined 19:02 domidumont joined 19:22 lizmat joined 19:27 brrt joined
brrt right :-) 19:29
i've decided to bite the bullet and start handling all annotations within the expr jit 19:30
now that i have flushing functionality that should be safely writeable
(and also the guard node functionality) 19:33
20:14 lizmat joined 20:55 robertle joined
jnthn ++brrt :) 21:20
samcv ok i fixed that clearing bug :) yay 22:10
jnthn Nice :) 22:40
Sleep time for me; 'night
timotimo nite jnthn 22:41
22:59 TimToady joined 23:50 evalable6 joined, quotable6 joined, committable6 joined, greppable6 joined, bloatable6 joined, benchable6 joined, unicodable6 joined, bisectable6 joined, statisfiable6 joined