Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-10-12

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

All times shown according to UTC.

Time Nick Message
00:05 releasable6 joined #moarvm
01:06 nwc10 joined #moarvm
01:56 ilbot3 joined #moarvm
01:56 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
05:06 brrt joined #moarvm
05:12 brrt dunno if y'all have seen this thing ruth posted: https://opensource.com/article/17/10/perl-turns-30
05:12 brrt but it was nice and positive :-)
05:13 brrt and i could well use that after the despair that is 'perl trainings at $dayjob'
05:14 brrt good *, #moarvm
05:32 patrickz joined #moarvm
06:06 domidumont joined #moarvm
06:07 domidumont joined #moarvm
06:14 AlexDaniel- joined #moarvm
06:15 brrt joined #moarvm
06:41 samcv good *
07:15 AlexDaniel- o/
07:29 leont joined #moarvm
07:34 Geth ¦ MoarVM: 716f2277ff | (Bart Wiegmans)++ | src/jit/linear_scan.c
07:34 Geth ¦ MoarVM: Remove redundant semicolon in _DEBUG
07:34 Geth ¦ MoarVM:
07:34 Geth ¦ MoarVM: Macro's are hard
07:34 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/716f2277ff
07:36 timotimo o/ brrt
07:37 brrt \o timotimo
07:37 Geth ¦ MoarVM/jit-expr-optimizer: 07b3be5f50 | (Bart Wiegmans)++ | src/jit/expr.c
07:37 Geth ¦ MoarVM/jit-expr-optimizer: Add expression tree equivalence function
07:37 Geth ¦ MoarVM/jit-expr-optimizer:
07:37 Geth ¦ MoarVM/jit-expr-optimizer: This is intended to be used in the optimizer. I'm not sure if I
07:37 Geth ¦ MoarVM/jit-expr-optimizer: should add a 'depth' parameter.
07:37 Geth ¦ MoarVM/jit-expr-optimizer: review: https://github.com/MoarVM/MoarVM/commit/07b3be5f50
07:37 Geth ¦ MoarVM/jit-expr-optimizer: 933d969092 | (Bart Wiegmans)++ | 6 files
07:37 Geth ¦ MoarVM/jit-expr-optimizer: [JIT] Simple tree-rewriting optimizer
07:37 Geth ¦ MoarVM/jit-expr-optimizer:
07:37 Geth ¦ MoarVM/jit-expr-optimizer: For some reason the multiple-referenced-loads optimization never seems
07:37 Geth ¦ MoarVM/jit-expr-optimizer: to run, which is funny because I really expected it to. But the
07:37 Geth ¦ MoarVM/jit-expr-optimizer: const idx -> addr optimization does.
07:37 Geth ¦ MoarVM/jit-expr-optimizer:
07:37 Geth ¦ MoarVM/jit-expr-optimizer: This probably needs a few more layers of abstraction, but for now it works.
07:37 Geth ¦ MoarVM/jit-expr-optimizer: review: https://github.com/MoarVM/MoarVM/commit/933d969092
07:38 timotimo ooooooh
07:42 brrt it was time for a new branch :-)
07:42 brrt this one i intend to keep rebased on master, i promise
07:42 brrt and not to let it run for 2 years
07:43 timotimo :D
07:45 brrt i have some vague ideas on how to do a generalized pattern match
07:46 brrt 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?
07:46 brrt no
07:47 brrt that would just require a MVM_jit_log_expr_tree(tc, tree) after the MVM_jit_expr_tree_optimize
07:47 brrt feel free to add it, logging and instrumentation is your game now :-)
07:48 brrt (the logmeister)
07:48 zakharyas joined #moarvm
07:49 * timotimo grabs a saw and some glue
07:51 timotimo i don't know what but something is causing desktop switches to be really slow on my desktop right now
07:51 timotimo i might just log out and back in or something
07:52 timotimo ... now the right monitor only has a desktop on one virtual desktop ?!
07:53 timotimo plasma may be pretty ... but sometimes ... wtf
07:54 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
07:54 releasable6 samcv, Details: https://gist.github.com/7d4d3040d92d59882f9e5bea1eda2fd2
07:55 samcv whoever accepted Julien Simonet <kernel.julien@gmail.com>'s 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:56 samcv will find the PR and comment on it in a sec
07:57 timotimo https://github.com/MoarVM/MoarVM/commit/2e303cf17554ea8b2953b769b06a5b25f3a4c7b0  -  for consideration
07:57 timotimo https://github.com/MoarVM/MoarVM/commit/824b28497ceab5a162a50ab6bcaa17bd1bf6a89d  -  as well
08:00 timotimo brrt: did you see that blocker ticket where merging the exprjit caused "last without loop construct" to show up in some code?
08:13 rba joined #moarvm
08:22 brrt i did not
08:23 brrt can you show me?
08:23 timotimo https://rt.perl.org/Public/Bug/Display.html?id=132269
08:24 timotimo note especially the requirement for a particular version of Net::HTTP
08:33 brrt seeing it
08:33 brrt let's hope we can golf that
08:41 AlexDaniel- heh… I thought I was doing a good job of pinging the right people :)
08:41 AlexDaniel- I guess not
08:41 AlexDaniel- timotimo++
08:47 brrt jit-bisect.pl to the rescue
09:01 jnthn morning o/
09:01 brrt morning jnthn
09:07 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
09:07 releasable6 jnthn, Details: https://gist.github.com/bf3afefd558a7c31c8784a678c7c3a82
09:07 jnthn Wow, and I thought it was *this* weekend :)
09:07 jnthn If I'd known I would have broken more things :P :P
09:07 timotimo nope, feel free to put in the most drastic changes you feel like in the next two days :)
09:07 jnthn haha
09:08 * jnthn takes care of some admin tasks, then will have the day for Perl 6 and related things :)
09:09 timotimo i have the day for resting my wrists again :|
09:10 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
09:11 timotimo 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:12 timotimo 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 timotimo but i want to redo the update communication from backend to frontend completely before i go on
09:17 jnthn Nice. Using Cro for the backend still?
09:18 timotimo yup
09:18 timotimo once i figured out that output was being held back, it was much smoother
09:18 timotimo 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
09:19 timotimo ugh, the impedance mismatch
09:19 jnthn :)
09:19 * jnthn wonders how to address the "output being held back" thing...
09:20 timotimo well, nativecall into the func that makes a pty, then openfd it? :\
09:20 timotimo i mean from-native-descriptor or what have we
09:20 timotimo how does the windows equivalent of what you'd need look?
09:20 jnthn Dunno, but from the node module I found trying to solve that same issue, ugly :S
09:21 timotimo bleh :(
09:23 leont joined #moarvm
09:24 timotimo jnthn: did you see? test-t is really close to 3 seconds
09:27 jnthn Yeah :)
09:28 timotimo i wonder how many times the nqp::splice improvement i made triggers in that benchmark
09:32 timotimo there's still more potential. if both are VMArray but have different slot types
09:33 timotimo extending or truncating integers while moving them over, say
09:41 * jnthn wonders how often that happens
09:43 dogbert2 jnthn: are you gonna work with race and hyper or are you hunting more SEGV's and hangs?
09:44 timotimo i imagine it could happen a whole lot, but only in very very few programs
09:46 jnthn dogbert2: going to work on that, seeing if I can reproduce https://rt.perl.org/Ticket/Display.html?id=132273 first
09:47 jnthn So far not, but bumping to latest revisions of things
09:48 jnthn Nope, no luck reproducing it
09:49 dogbert2 was Zoffix mentioning some SEGV yesterday
09:49 jnthn Yeah, this is the one
09:49 jnthn https://rt.perl.org/Ticket/Display.html?id=132273
09:49 dogbert2 I can probably reproduce it (famous last words)
09:50 * jnthn tries with GC stressing/debug on
09:50 domidumont joined #moarvm
09:52 jnthn Nope :(
09:52 jnthn Well, if i can't reproduce it...
09:53 dogbert2 true
09:53 jnthn Let me know if you have any luck doing so
09:54 dogbert2 sure
09:56 zakharyas joined #moarvm
10:08 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:09 dogbert2 perhaps some kind of core count problem
10:10 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
10:10 dogbert2 [SCHEDULER] Added a general worker thread
10:10 dogbert2 [SCHEDULER] Added a general worker thread
10:11 jnthn I thought it was just slow, not hanging?
10:12 dogbert2 still running on my machine, true I have a small nursery atm
10:12 dogbert2 it has started two worker threads and is still hanging
10:13 * dogbert2 turns off asan
10:13 timotimo what does that test do? it's maxing out three cores right now
10:14 timotimo it took a while but 38 just passed
10:14 timotimo the "lock provides mutual exclusion" test
10:14 jnthn Just creates a ton of contention, for the most part
10:14 timotimo all in all it took 1:36 elapsed at 260% cpu average
10:14 dogbert2 how many cores do you have timotimo?
10:14 timotimo four total
10:14 dogbert2 same here
10:16 dogbert2 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 dogbert2 and now it passed
10:18 dogbert2 but now it's waiting for test 39 instad
10:19 dogbert2 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 dogbert2 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
10:21 jnthn If it's in those places, looks like it's progresing still
10:23 dogbert2 perhaps it will complete if I continue to wait
10:23 * dogbert2 waits
10:23 brrt also, i figured out one super cool trick
10:24 brrt to the array-indices-as-pointers strategy
10:24 brrt basically, make sure you keep the first (zeroth) item free
10:24 brrt and you never 'allocate' that
10:25 brrt then 0 becomes a perfect substitute for NULL
10:27 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
10:27 synopsebot RT#132273 [new]: https://rt.perl.org/Ticket/Display.html?id=132273 [SEGV] while running t/spec/S17-supply/supplier-preserving.t
10:28 Zoffix Using `while t/fudgeandrun t/spec/S17-supply/supplier-preserving.t; do true; done`
10:29 Zoffix 5 times reproed it now. This is on a 4-core box
10:32 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
10:32 Zoffix dogbert2: 64-bit
10:33 dogbert2 have you tried disabling the jit?
10:34 Zoffix nope
10:34 * Zoffix leaves to work
10:35 Zoffix 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:36 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
10:36 * Zoffix &
10:43 robertle joined #moarvm
10:50 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:52 dogbert2 real 0m0.770s user 0m0.824s sys 0m0.064s   # xx 1
10:52 dogbert2 real 0m3.176s user 0m5.704s sys 0m0.376s   # xx 2
10:52 dogbert2 real 0m25.746s user 0m58.084s sys 0m1.084s # xx 3
10:53 dogbert2 are these numbers to be expected?
11:05 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]: https://rt.perl.org/Ticket/Display.html?id=132269 [REGRESSION][BUG] JIT removing loop construct and confusing last()
11:11 AlexDaniel- yeah?
11:11 AlexDaniel- brrt is on it, I think
11:12 jnthn lunch &
11:18 brrt bisect has found the offending code
11:18 brrt but
11:18 brrt i'm not sure what's wrong
11:28 dogbert2 real 2m8.043s user 4m42.604s sys 0m3.116s   # xx 4
11:44 dogbert2 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. https://gist.github.com/dogbert17/058f2b200142df34c91ca639308af702
12:00 zakharyas joined #moarvm
12:01 zakharyas1 joined #moarvm
12:16 jnthn dogbert2: Hm, curious.
12:20 buggable joined #moarvm
12:25 buggable joined #moarvm
12:26 buggable joined #moarvm
12:26 dogbert2 does it give any clues?
12:30 buggable joined #moarvm
12:31 jnthn Not immediately
12:31 jnthn That it needs some stress to repro is a good hint though
12:31 buggable joined #moarvm
12:32 releasable6 joined #moarvm
12:32 dogbert2 yes, just got it again with a spectest running in another window, same location
12:33 buggable joined #moarvm
12:33 dogbert2 MVM_dump_backtrace didn't give much TBH
12:33 dogbert2 (gdb) p MVM_dump_backtrace(tc)
12:33 dogbert2 at SETTING::src/core/Thread.pm:24  (./CORE.setting.moarvm:THREAD-ENTRY)
12:34 buggable joined #moarvm
12:34 dogbert2 it's about the shortest dump I've seen
12:43 quotable6 joined #moarvm
14:03 dogbert2 the SEGV occurs on the following line
14:03 dogbert2 0xb7c31a69 in MVM_serialization_demand_object (tc=0x804c5f8, sc=0xb3c29018, idx=71015) at src/6model/serialization.c:2741
14:03 dogbert2 2741     if (sc->body->root_objects[idx]) {
14:04 dogbert2 gdb says
14:04 dogbert2 (gdb) p *sc
14:04 dogbert2 $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}
14:24 timotimo that's much nuller than it should be
14:35 dogbert2 it does look a bit nully yes :)
14:39 timotimo annoyingly, valgrind could probably figure this out, but when valgrind's on there's no tests >_<
14:39 timotimo i don't think asan remembers the stack traces of places that allocate stuff?
14:39 timotimo only reports stack traces when something goes wrong, right?
14:39 dogbert2 timotimo: it retrieves the sc here https://github.com/MoarVM/MoarVM/blob/master/src/6model/sc.h#L27
14:39 timotimo on the other hand we can rr record it and hope to catch it
14:40 dogbert2 I have only seen stacktraces when something goes wrong with asan
14:40 timotimo right :\
14:40 dogbert2 haven't had any luck with asan or valgrind :(
14:41 dogbert2 asan triggered once when I didn't have debug info on :(
14:42 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
14:43 timotimo i think i'll go rest a little, hope my head unaches itself
14:44 dogbert2 rest well
14:58 brrt ouch, multiple threads
14:58 brrt in that example
14:59 timotimo yeah, only occurs when the system's under pressure
14:59 timotimo (turns out i didn't go rest at all)
15:06 dogbert2 bloody bug
15:13 jnthn Phew, just got the first mini example working with the new hyper/race infrastructure
15:14 jnthn Sequential: 1.2430863
15:14 jnthn Race: 0.53252432
15:14 jnthn It's even faster :)
15:15 timotimo it's nice to start up with (rather than just end up with) something fast
15:34 dogbert2 I guess it's not normal for sc's to be all null
15:35 dogbert2 it's odd that the pointer itself is not null when everything in the struct is
15:36 * dogbert2 can't get to the root of the problem, relocates instead &
16:07 brrt joined #moarvm
16:10 dogbert17 joined #moarvm
16:20 brrt you know what's kind of sad
16:20 brrt it's only when i'm golfing a bug
16:20 brrt and actually get to use perl6
16:20 brrt that is see how nice a langauge it really is
16:26 committable6 joined #moarvm
17:03 robertle joined #moarvm
17:10 domidumont joined #moarvm
17:21 dogbert17 joined #moarvm
17:31 tartal joined #moarvm
18:03 rba joined #moarvm
18:33 ggoebel joined #moarvm
18:39 zakharyas joined #moarvm
19:01 TimToady obviously you should golf more bugs :P
19:04 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?:
19:04 Zoffix m: ""; sub postfix:<!>($) {}; "{ 5! }";
19:04 camelia rakudo-moar 37689a: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤Negation metaoperator not followed by valid infix␤at <tmp>:1␤------> ""; sub postfix:<!>($) {}; "{ 5!⏏ }";␤    expecting any of:␤        infix␤        infix stopper␤»
19:04 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: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L64
19:06 Zoffix Mixed in this method: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L4754-L4977
19:08 Zoffix (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:13 TimToady or we're just storing the cache in the wrong place
19:14 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
19:14 Zoffix OK. I'll give that a shot in $n hours
19:14 TimToady though that might imply additional copies when descending
19:15 zakharyas joined #moarvm
19:15 TimToady errand &
19:18 zakharyas joined #moarvm
19:24 lizmat joined #moarvm
19:42 evalable6 joined #moarvm
20:40 Zoffix s/\$n hours/on the weekend, unless someone beats me/;
20:41 Zoffix Wanna understand how this stuff works better first.
20:41 lizmat_ joined #moarvm
21:27 Geth joined #moarvm
21:30 Geth joined #moarvm
21:32 Geth joined #moarvm
21:55 Geth joined #moarvm
21:56 Geth joined #moarvm
22:02 [equa] joined #moarvm
23:08 evalable6 joined #moarvm
23:28 evalable6 joined #moarvm
23:53 Geth_ joined #moarvm

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