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
|