00:05
releasable6 joined
01:06
nwc10 joined
01:56
ilbot3 joined
05:06
brrt joined
|
|||
brrt | dunno if y'all have seen this thing ruth posted: opensource.com/article/17/10/perl-turns-30 | 05:12 | |
but it was nice and positive :-) | |||
and i could well use that after the despair that is 'perl trainings at $dayjob' | 05:13 | ||
good *, #moarvm | 05:14 | ||
05:32
patrickz joined
06:06
domidumont joined
06:07
domidumont joined
06:14
AlexDaniel- joined
06:15
brrt joined
|
|||
samcv | good * | 06:41 | |
AlexDaniel- | o/ | 07:15 | |
07:29
leont joined
|
|||
Geth | MoarVM: 716f2277ff | (Bart Wiegmans)++ | src/jit/linear_scan.c Remove redundant semicolon in _DEBUG Macro's are hard |
07:34 | |
timotimo | o/ brrt | 07:36 | |
brrt | \o timotimo | 07:37 | |
Geth | MoarVM/jit-expr-optimizer: 07b3be5f50 | (Bart Wiegmans)++ | src/jit/expr.c Add expression tree equivalence function This is intended to be used in the optimizer. I'm not sure if I should add a 'depth' parameter. |
||
MoarVM/jit-expr-optimizer: 933d969092 | (Bart Wiegmans)++ | 6 files [JIT] Simple tree-rewriting optimizer For some reason the multiple-referenced-loads optimization never seems to run, which is funny because I really expected it to. But the const idx -> addr optimization does. This probably needs a few more layers of abstraction, but for now it works. |
|||
timotimo | ooooooh | 07:38 | |
brrt | it was time for a new branch :-) | 07:42 | |
this one i intend to keep rebased on master, i promise | |||
and not to let it run for 2 years | |||
timotimo | :D | 07:43 | |
brrt | i have some vague ideas on how to do a generalized pattern match | 07:45 | |
e..g the (idx $base (const $value) $scale) to (addr $base $value * $scale) | 07:46 | ||
timotimo | there isn't a pre- and post-optimize output for diffing? | ||
brrt | no | ||
that would just require a MVM_jit_log_expr_tree(tc, tree) after the MVM_jit_expr_tree_optimize | 07:47 | ||
feel free to add it, logging and instrumentation is your game now :-) | |||
(the logmeister) | 07:48 | ||
07:48
zakharyas joined
|
|||
timotimo grabs a saw and some glue | 07:49 | ||
i don't know what but something is causing desktop switches to be really slow on my desktop right now | 07:51 | ||
i might just log out and back in or something | |||
... now the right monitor only has a desktop on one virtual desktop ?! | 07:52 | ||
plasma may be pretty ... but sometimes ... wtf | 07:53 | ||
samcv | releasable6, status | 07:54 | |
releasable6 | samcv, Next release in 9 days and ≈11 hours. 1 blocker. Changelog for this release was not started yet | ||
samcv, Details: gist.github.com/7d4d3040d92d59882f...ea1eda2fd2 | |||
samcv | whoever accepted Julien Simonet [email@hidden.address] PR, i really don't like how one of the commit, the full text of the commit is "Typo" and another the first line is 'typo' with 3 words in the body | 07:55 | |
will find the PR and comment on it in a sec | 07:56 | ||
timotimo | github.com/MoarVM/MoarVM/commit/2e...25f3a4c7b0 - for consideration | 07:57 | |
github.com/MoarVM/MoarVM/commit/82...bd1bf6a89d - as well | |||
brrt: did you see that blocker ticket where merging the exprjit caused "last without loop construct" to show up in some code? | 08:00 | ||
08:13
rba joined
|
|||
brrt | i did not | 08:22 | |
can you show me? | 08:23 | ||
timotimo | rt.perl.org/Public/Bug/Display.html?id=132269 | ||
note especially the requirement for a particular version of Net::HTTP | 08:24 | ||
brrt | seeing it | 08:33 | |
let's hope we can golf that | |||
AlexDaniel- | heh… I thought I was doing a good job of pinging the right people :) | 08:41 | |
I guess not | |||
timotimo++ | |||
brrt | jit-bisect.pl to the rescue | 08:47 | |
jnthn | morning o/ | 09:01 | |
brrt | morning jnthn | ||
jnthn | releasable6: status | 09:07 | |
releasable6 | jnthn, Next release in 9 days and ≈9 hours. 1 blocker. Changelog for this release was not started yet | ||
jnthn, Details: gist.github.com/bf3afefd558a7c31c8...678c7c3a82 | |||
jnthn | Wow, and I thought it was *this* weekend :) | ||
If I'd known I would have broken more things :P :P | |||
timotimo | nope, feel free to put in the most drastic changes you feel like in the next two days :) | ||
jnthn | haha | ||
jnthn takes care of some admin tasks, then will have the day for Perl 6 and related things :) | 09:08 | ||
timotimo | i have the day for resting my wrists again :| | 09:09 | |
jnthn | Are they improving some? | 09:10 | |
timotimo | it looks like a two-humped curve of badness, the first one for the right wrist, the second one for the left :P | ||
as i try to do less with the right hand and more with the left, it gets more strain than it's used to i suppose | 09:11 | ||
the heap analyzer web frontend can now tell the backend what file to load and then choose which snapshots to load into memory | 09:12 | ||
but i want to redo the update communication from backend to frontend completely before i go on | |||
jnthn | Nice. Using Cro for the backend still? | 09:17 | |
timotimo | yup | 09:18 | |
once i figured out that output was being held back, it was much smoother | |||
i started putting foo-bar style keys in my hashes that come from the heap analyzer model, and ended up replacing - in keys with _ so i wouldn't have to ["foo-bar"] in javascript | |||
ugh, the impedance mismatch | 09:19 | ||
jnthn | :) | ||
jnthn wonders how to address the "output being held back" thing... | |||
timotimo | well, nativecall into the func that makes a pty, then openfd it? :\ | 09:20 | |
i mean from-native-descriptor or what have we | |||
how does the windows equivalent of what you'd need look? | |||
jnthn | Dunno, but from the node module I found trying to solve that same issue, ugly :S | ||
timotimo | bleh :( | 09:21 | |
09:23
leont joined
|
|||
timotimo | jnthn: did you see? test-t is really close to 3 seconds | 09:24 | |
jnthn | Yeah :) | 09:27 | |
timotimo | i wonder how many times the nqp::splice improvement i made triggers in that benchmark | 09:28 | |
there's still more potential. if both are VMArray but have different slot types | 09:32 | ||
extending or truncating integers while moving them over, say | 09:33 | ||
jnthn wonders how often that happens | 09:41 | ||
dogbert2 | jnthn: are you gonna work with race and hyper or are you hunting more SEGV's and hangs? | 09:43 | |
timotimo | i imagine it could happen a whole lot, but only in very very few programs | 09:44 | |
jnthn | dogbert2: going to work on that, seeing if I can reproduce rt.perl.org/Ticket/Display.html?id=132273 first | 09:46 | |
So far not, but bumping to latest revisions of things | 09:47 | ||
Nope, no luck reproducing it | 09:48 | ||
dogbert2 | was Zoffix mentioning some SEGV yesterday | 09:49 | |
jnthn | Yeah, this is the one | ||
rt.perl.org/Ticket/Display.html?id=132273 | |||
dogbert2 | I can probably reproduce it (famous last words) | ||
jnthn tries with GC stressing/debug on | 09:50 | ||
09:50
domidumont joined
|
|||
jnthn | Nope :( | 09:52 | |
Well, if i can't reproduce it... | |||
dogbert2 | true | 09:53 | |
jnthn | Let me know if you have any luck doing so | ||
dogbert2 | sure | 09:54 | |
09:56
zakharyas joined
|
|||
dogbert2 | jnthn, there's also the scheduler problem with t/spec/S17-promise/lock-async.t test 38, it has a tendency to hang | 10:08 | |
perhaps some kind of core count problem | 10:09 | ||
timotimo | i'd like it if the overseer process for the thread pool scheduler would fire less often if the program doesn't do much | 10:10 | |
dogbert2 | ok 37 - And can unlock it again | ||
[SCHEDULER] Added a general worker thread | |||
jnthn | I thought it was just slow, not hanging? | 10:11 | |
dogbert2 | still running on my machine, true I have a small nursery atm | 10:12 | |
it has started two worker threads and is still hanging | |||
dogbert2 turns off asan | 10:13 | ||
timotimo | what does that test do? it's maxing out three cores right now | ||
it took a while but 38 just passed | 10:14 | ||
the "lock provides mutual exclusion" test | |||
jnthn | Just creates a ton of contention, for the most part | ||
timotimo | all in all it took 1:36 elapsed at 260% cpu average | ||
dogbert2 | how many cores do you have timotimo? | ||
timotimo | four total | ||
dogbert2 | same here | ||
on my current run, nursery 32768 * 4, it has started two worker threads, first one, then a second after more than a minute | 10:16 | ||
and now it passed | |||
but now it's waiting for test 39 instad | 10:18 | ||
3 Thread 0xb13ffb40 (LWP 6946) "moar" 0xb72ce466 in MVM_frame_move_to_heap (tc=0xb2882b28, frame=0xb28a38e0) at src/core/frame.c:640 | 10:19 | ||
2 Thread 0xa35ffb40 (LWP 6947) "moar" 0xb72e839f in MVM_continuation_control (tc=0xb2880bf0, protect=1, tag=0xb1464108, code=0xb2837b28, res_reg=0xa9338e8) at src/core/continuation.c:60 | |||
jnthn | If it's in those places, looks like it's progresing still | 10:21 | |
dogbert2 | perhaps it will complete if I continue to wait | 10:23 | |
dogbert2 waits | |||
brrt | also, i figured out one super cool trick | ||
to the array-indices-as-pointers strategy | 10:24 | ||
basically, make sure you keep the first (zeroth) item free | |||
and you never 'allocate' that | |||
then 0 becomes a perfect substitute for NULL | 10:25 | ||
dogbert2 | test 39 has completed, took quite a few minutes | 10:27 | |
Zoffix | RT#132273 ... Just built a freshly squeezed checkout... It segfaulted on the very first run | ||
synopsebot | RT#132273 [new]: rt.perl.org/Ticket/Display.html?id=132273 [SEGV] while running t/spec/S17-supply/supplier-preserving.t | ||
Zoffix | Using `while t/fudgeandrun t/spec/S17-supply/supplier-preserving.t; do true; done` | 10:28 | |
5 times reproed it now. This is on a 4-core box | 10:29 | ||
dogbert2 | Zoffix: is that on your 32 bit box? | 10:32 | |
Zoffix | with latest roast you can stick that loop to run and it'll stop when failure occurs | ||
dogbert2: 64-bit | |||
dogbert2 | have you tried disabling the jit? | 10:33 | |
Zoffix | nope | 10:34 | |
Zoffix leaves to work | |||
P.S.: having trouble reproing with `while ./perl6 t/spec/S17-supply/supplier-preserving.t; do true; done` so it might be something happening when STDOUT/ERR are non-TTYs or something | 10:35 | ||
dogbert2 | 727.78user 31.18system 7:13.89elapsed 174%CPU (0avgtext+0avgdata 431304maxresident)k (t/spec/S17-promise/lock-async.t with --no-optimize and 32768 * 4 nursery) | 10:36 | |
Zoffix | oh wait, nm, it took longer but it segfaulted still | ||
Zoffix & | |||
10:43
robertle joined
|
|||
dogbert2 | some more datapoints wrt to t/spec/S17-promise/lock-async.t. If I lift out both tests to a separate file and change lines 75 and 88 (the xx lines) I get | 10:50 | |
real 0m0.770s user 0m0.824s sys 0m0.064s # xx 1 | 10:52 | ||
real 0m3.176s user 0m5.704s sys 0m0.376s # xx 2 | |||
real 0m25.746s user 0m58.084s sys 0m1.084s # xx 3 | |||
are these numbers to be expected? | 10:53 | ||
Zoffix | BTW, on the topic of tickets, there's this ticket that's marked as release blocker: RT#132269 | 11:05 | |
synopsebot | RT#132269 [new]: rt.perl.org/Ticket/Display.html?id=132269 [REGRESSION][BUG] JIT removing loop construct and confusing last() | ||
AlexDaniel- | yeah? | 11:11 | |
brrt is on it, I think | |||
jnthn | lunch & | 11:12 | |
brrt | bisect has found the offending code | 11:18 | |
but | |||
i'm not sure what's wrong | |||
dogbert2 | real 2m8.043s user 4m42.604s sys 0m3.116s # xx 4 | 11:28 | |
jnthn, Zoffix: finally managed to reproduce the SEGV Zoffix has been seeing, had to put the system under som stress (running a spectest in another window) in order for it to trigger. gist.github.com/dogbert17/058f2b20...39308af702 | 11:44 | ||
12:00
zakharyas joined
12:01
zakharyas1 joined
|
|||
jnthn | dogbert2: Hm, curious. | 12:16 | |
12:20
buggable joined
12:25
buggable joined
12:26
buggable joined
|
|||
dogbert2 | does it give any clues? | 12:26 | |
12:30
buggable joined
|
|||
jnthn | Not immediately | 12:31 | |
That it needs some stress to repro is a good hint though | |||
12:31
buggable joined
12:32
releasable6 joined
|
|||
dogbert2 | yes, just got it again with a spectest running in another window, same location | 12:32 | |
12:33
buggable joined
|
|||
dogbert2 | MVM_dump_backtrace didn't give much TBH | 12:33 | |
(gdb) p MVM_dump_backtrace(tc) | |||
at SETTING::src/core/Thread.pm:24 (./CORE.setting.moarvm:THREAD-ENTRY) | |||
12:34
buggable joined
|
|||
dogbert2 | it's about the shortest dump I've seen | 12:34 | |
12:43
quotable6 joined
|
|||
dogbert2 | the SEGV occurs on the following line | 14:03 | |
0xb7c31a69 in MVM_serialization_demand_object (tc=0x804c5f8, sc=0xb3c29018, idx=71015) at src/6model/serialization.c:2741 | |||
2741 if (sc->body->root_objects[idx]) { | |||
gdb says | 14:04 | ||
(gdb) p *sc | |||
$3 = {common = {header = {sc_forward_u = {forwarder = 0x0, sc = {sc_idx = 0, idx = 0}, sci = 0x0, st = 0x0}, owner = 0, flags = 0, size = 0}, st = 0x0}, body = 0x0} | |||
timotimo | that's much nuller than it should be | 14:24 | |
dogbert2 | it does look a bit nully yes :) | 14:35 | |
timotimo | annoyingly, valgrind could probably figure this out, but when valgrind's on there's no tests >_< | 14:39 | |
i don't think asan remembers the stack traces of places that allocate stuff? | |||
only reports stack traces when something goes wrong, right? | |||
dogbert2 | timotimo: it retrieves the sc here github.com/MoarVM/MoarVM/blob/mast...l/sc.h#L27 | ||
timotimo | on the other hand we can rr record it and hope to catch it | ||
dogbert2 | I have only seen stacktraces when something goes wrong with asan | 14:40 | |
timotimo | right :\ | ||
dogbert2 | haven't had any luck with asan or valgrind :( | ||
asan triggered once when I didn't have debug info on :( | 14:41 | ||
timotimo | yeah, it's probably impossible to recreate in valgrind | 14:42 | |
dogbert2 | will do a few more asan runs and hope for the best | ||
timotimo | i think i'll go rest a little, hope my head unaches itself | 14:43 | |
dogbert2 | rest well | 14:44 | |
brrt | ouch, multiple threads | 14:58 | |
in that example | |||
timotimo | yeah, only occurs when the system's under pressure | 14:59 | |
(turns out i didn't go rest at all) | |||
dogbert2 | bloody bug | 15:06 | |
jnthn | Phew, just got the first mini example working with the new hyper/race infrastructure | 15:13 | |
Sequential: 1.2430863 | 15:14 | ||
Race: 0.53252432 | |||
It's even faster :) | |||
timotimo | it's nice to start up with (rather than just end up with) something fast | 15:15 | |
dogbert2 | I guess it's not normal for sc's to be all null | 15:34 | |
it's odd that the pointer itself is not null when everything in the struct is | 15:35 | ||
dogbert2 can't get to the root of the problem, relocates instead & | 15:36 | ||
16:07
brrt joined
16:10
dogbert17 joined
|
|||
brrt | you know what's kind of sad | 16:20 | |
it's only when i'm golfing a bug | |||
and actually get to use perl6 | |||
that is see how nice a langauge it really is | |||
16:26
committable6 joined
17:03
robertle joined
17:10
domidumont joined
17:21
dogbert17 joined
17:31
tartal joined
18:03
rba joined
18:33
ggoebel joined
18:39
zakharyas joined
|
|||
TimToady | obviously you should golf more bugs :P | 19:01 | |
timotimo | bugs don't have the right aerodynamic properties to be used for golf | 19:04 | |
Zoffix | TimToady: can you give me a hint for how fix this?: | ||
m: ""; sub postfix:<!>($) {}; "{ 5! }"; | |||
camelia | ===SORRY!=== Error while compiling <tmp> Negation metaoperator not followed by valid infix at <tmp>:1 ------> ""; sub postfix:<!>($) {}; "{ 5!⏏ }"; expecting any of: infix infix stopper |
||
Zoffix | It got broken by Slang Refactor we did in March and now the cached langs in %quote_lang_cache don't get updated when a new op is mixed into grammar: github.com/rakudo/rakudo/blob/nom/...ar.nqp#L64 | ||
Mixed in this method: github.com/rakudo/rakudo/blob/nom/...4754-L4977 | 19:06 | ||
(and I found the cache is the cause by disabling the caching and then the bug got fixed; both the broken and unbroken version store 3 keys in the cache for that code, so I'm guessing the mixing-in of new ops now clones the lang or something and the cache needs to be nuked, perhaps) | 19:08 | ||
TimToady | or we're just storing the cache in the wrong place | 19:13 | |
Zoffix | Oh. Maybe. When i tried to nuke it from `method add_categorical` (via a method call), it still remained. | 19:14 | |
TimToady | if we stored it in the current language it might automatically scope correctlier | ||
Zoffix | OK. I'll give that a shot in $n hours | ||
TimToady | though that might imply additional copies when descending | ||
19:15
zakharyas joined
|
|||
TimToady | errand & | 19:15 | |
19:18
zakharyas joined
19:24
lizmat joined
19:42
evalable6 joined
|
|||
Zoffix | s/\$n hours/on the weekend, unless someone beats me/; | 20:40 | |
Wanna understand how this stuff works better first. | 20:41 | ||
20:41
lizmat_ joined
21:27
Geth joined
21:30
Geth joined
21:32
Geth joined
21:55
Geth joined
21:56
Geth joined
22:02
[equa] joined
23:08
evalable6 joined
23:28
evalable6 joined
23:53
Geth_ joined
|