Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-08-19

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

All times shown according to UTC.

Time Nick Message
01:49 ilbot3 joined #moarvm
01:49 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
05:30 brrt joined #moarvm
05:31 brrt good * #moarvm
05:31 brrt did we get to review TheLemonMans PR yet
05:32 brrt guess not
05:32 brrt okay, it looks good enough
05:32 brrt going to run a test and then probably merge
05:37 dalek MoarVM/even-moar-jit: d99334c | brrt++ | docs/jit/register-allocator.org:
05:37 dalek MoarVM/even-moar-jit: More notes on linear scan
05:37 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/d99334c5c3
06:07 brrt hmmm
06:07 brrt it looks and compiles correctly for sure
06:07 brrt but i dunno what the 'actually thrown at' bit is about
06:26 dalek MoarVM: 8911949 | LemonBoy++ | src/core/ (3 files):
06:26 dalek MoarVM: Remove keep_caller from MVMFrame
06:26 dalek MoarVM:
06:26 dalek MoarVM: Fixes some cases (RT #128803) where the backtraces would be abruptly
06:26 dalek MoarVM: truncated due to an optimization introduced in cecf5729.
06:26 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128803
06:26 dalek MoarVM: As suggested by @jnthn [1] the best solution is to simply revert the
06:26 dalek MoarVM: optimization as it's not worth it anymore.
06:26 dalek MoarVM:
06:26 dalek MoarVM: [1] http://irclog.perlgeek.de/moarvm/2016-08-17#i_13040630
06:26 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8911949904
06:27 brrt joined #moarvm
06:38 TheLemonMan joined #moarvm
06:50 travis-ci joined #moarvm
06:50 travis-ci MoarVM build passed. LemonBoy 'Remove keep_caller from MVMFrame
06:50 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/153478145 https://github.com/MoarVM/MoarVM/compare/0cb920b69ea0...891194990450
06:50 travis-ci left #moarvm
07:03 TheLemonMan 'morning #moarvm!
07:13 lizmat joined #moarvm
08:04 zakharyas joined #moarvm
10:09 Zoffix TheLemonMan, would you add yourself to CREDITS, so you get creddited with proper name you want in the releases? https://github.com/rakudo/rakudo/blob/nom/CREDITS
10:26 Zoffix TheLemonMan, we also have #perl6-dev if you were interesting in joining
10:26 TheLemonMan Zoffix, oh, I don't feel like I've contributed anything worthwile yet :)
10:28 Zoffix TheLemonMan, still :) The contributing script will pick up your commits and right now you show up as 'LemonBoy' :)
10:30 TheLemonMan so, it seems there's some unwanted sign-extension going on when accessing attributes with getattr_i even though the field's been marked with an unsigned native type
10:31 TheLemonMan the NQP side specifies $MVM_reg_int64 as type of the result register and so does the getattr_i opcode
11:11 dalek MoarVM: fa43417 | LemonBoy++ | src/core/bytecodedump.c:
11:11 dalek MoarVM: Correctly NULL-terminate the buffer in MVM_vm_dump_file.
11:11 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/fa43417445
11:11 dalek MoarVM: 31eccd7 | jnthn++ | src/core/bytecodedump.c:
11:11 dalek MoarVM: Merge pull request #392 from LemonBoy/dump-trailing-null
11:11 dalek MoarVM:
11:11 dalek MoarVM: Correctly NULL-terminate the buffer in MVM_vm_dump_file.
11:11 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/31eccd7673
12:27 camelia joined #moarvm
12:34 zakharyas1 joined #moarvm
13:25 kjs_ joined #moarvm
13:39 kjs_ joined #moarvm
13:50 zakharyas joined #moarvm
14:14 unmatched} I'm getting *** Error in `/home/cpan/CPANPRC/rakudo/install/bin/moar': double free or corruption (fasttop): 0x0000000005fc9430 ***" about 30% of the time when running S17-procasync/no-runaway-file-limit.t
14:14 unmatched} And this likely was brought in (or got exposed by) in the today's nqp/moarvm bump, because I was stresstesting yesterday a lot and this failure never came up.
14:15 [Coke] Not many moarvm commits to test: -2016.07-17-g40948f6
14:15 [Coke] +2016.07-24-g31eccd7
14:16 * unmatched} doesn't know how to test
14:17 unmatched} Do I just checkout a particular commit in nqp/MoarVM ?
14:17 unmatched} in rakudo's repo
14:18 [Coke] pretty sure that if you do that, the nqp config will rebuild it with the "right" verison.
14:18 [Coke] *verison
14:18 [Coke] *VERSION
14:18 [Coke] you can pass in specific versions with rakudo's Configure command, however.
14:18 nine You don't have to re-compile nqp and rakudo after changing moar
14:18 [Coke] perl Configure.pl --gen-nqp --gen-moar=sha1
14:19 [Coke] nine: not always, but sometimes.
14:19 nine yes
14:19 [Coke] you could try that here, sure. build and install moarvm and retry?
14:19 [Coke] (from your already checked out moar repo inside your rakudo checkout)
14:22 unmatched} will do
14:22 unmatched} It's really flappy. Two runs dies right away, then many runs doesn't die: https://gist.github.com/zoffixznet/9ee7467b279b2801d3fdeada33498099
14:42 nine Just for fun I ran a spectest without fudging. Let's say it's less than encouraging :P
14:42 unmatched} :(
14:43 nine On the bright side, it made me stumble across a hang: my $a = 10; $a[0] := 1
14:43 unmatched} The perl Configure.pl --gen-nqp --gen-moar=330b1b44ab07df548ca75bb61dc8c3d6b354b8ad didn't do anything it seels
14:44 unmatched} *seems... It's probably just sees I'm using newer version or something, so it doesn't bother changing?
14:44 nine The hang has a rather trivial fix: https://github.com/rakudo/rakudo/commit/4431bfb0a03395788a732498eb2757c76653fcc2
14:45 nine Oh, I'm in the wrong channel!
14:49 unmatched} "You asked me to build 330b1b44ab07df548ca75bb61dc8c3d6b354b8ad, but 2016.07-20-g330b1b4 is not new enough to satisfy version 2016.07-24-g31eccd7"
15:00 unmatched} And if I just go in nqp/MoarVM, checkout, then perl Configure.pl; make; make install;, $*VM.version still gives me the wrong version. Is it meant to get updated?
15:09 timotimo TheLemonMan: i'd expect we want a getattr_u and/or setattr_u, though i'm not sure why sign-extension would happen with access
15:09 timotimo unless it's a shorter unsigned type, of course?
15:10 TheLemonMan timotimo, happens with u64 aswell
15:11 TheLemonMan the code calls the get_int accessor, that's where I think the first extension happens
15:12 timotimo i think you might be a lot more knowledgable about this than me :)
15:12 timotimo if you're interested in adding a new op, start with src/core/oplist and use tools/update_ops.p6
15:13 TheLemonMan we could also repurpose getaddr_i by finding a way to check the destination register type
15:17 timotimo it'd have to be passed in by the caller, which would mean code-gen's got a say in this
15:17 timotimo alternatively, check the frame's static info's local types information blob from the interpreter or something
15:18 timotimo once we jit that, we'll constant fold that
15:18 timotimo (which we'll also have to do, of course)
15:18 timotimo GTG!
15:55 timotimo there's also a bug we have where ++ on a "small" int variable will lose the variable's smallness
15:58 TheLemonMan hmm, got an one-liner to show that ?
15:58 timotimo m: my int8 $foo = 127; $foo++; say $foo
15:58 camelia rakudo-moar dd5c28: OUTPUT«-128␤»
15:58 timotimo ... oh?
15:58 timotimo m: my uint8 $foo = 0; $foo--; say $foo
15:58 camelia rakudo-moar dd5c28: OUTPUT«-1␤»
15:58 timotimo there, unsignedness is what gets lost ... i guess?
15:59 TheLemonMan nice
15:59 timotimo we're not emitting the truncate (or what its name is) op after the ++ or --
16:11 lizmat joined #moarvm
16:35 TheLemonMan m: sub prefix:<++>(int8:D $a is rw) { $a }; my int8 $foo = 127; say ++$foo;
16:35 camelia rakudo-moar dd5c28: OUTPUT«===SORRY!===␤At Frame 2, Instruction 9, op 'decont_i', operand 0, MAST::Local of wrong type (1) specified; expected 4␤»
16:35 unmatched} :o
16:36 timotimo hah
16:36 timotimo :D or :U don't make sense for int8 and other native types
16:36 timotimo because we don't have a way to signal undefined values
16:37 TheLemonMan yeah, it's a copy/paste leftover from the Int module
16:38 unmatched} Any idea how I can make rakudo use a different moarvm version?
16:39 timotimo sure
16:39 unmatched} If I do perl Configure.pl; make; make install in nqp/MoarVM that doesn't seem to be what ends up being used by ./perl6-m
16:39 timotimo my_moar_binary Perl6.moarvm ...
16:39 timotimo just cat perl6-m
16:39 unmatched} ah
16:39 unmatched} timotimo++ thanks
16:41 unmatched} uuhhh $ ./perl6-m -e 'say $*VM.version' ===SORRY!=== Method 'protect' not found for invocant of class 'Any'
16:41 TheLemonMan need to rebuild nqp with the other moarvm :P
16:42 timotimo mhm
16:43 timotimo well, a method on Any sounds more like something else is broken
16:43 timotimo er, i mean
16:44 timotimo it's clearly hoping to have a Lock somewhere where it gets an Any - perhaps an undefined value? - instead
16:44 unmatched} Screw it... The -Ofun is lost on me.
16:46 unmatched} This is the modified version of the S17-procasync/no-runaway-file-limit.t test that seems to segfault more often than the original. If anyone else wants to chase the flapper. https://gist.github.com/zoffixznet/56542718459362a5990ad9b44b8edab6
16:47 kjs_ joined #moarvm
17:23 unmatched} Rakudobugged that flapper: https://rt.perl.org/Ticket/Display.html?id=128992
17:23 kjs_ joined #moarvm
17:42 unmatched} Failing to reproduce it now, after nuking rakudo dir and building everything from scratch :/ I wonder if it went away or just hiding.
17:44 TheLemonMan https://ptpb.pw/fCRQ the decont_i is wrong as the opcode expects an i64 and finds an i8
17:55 TheLemonMan m: sub way(int8 $a is rw) { $a = 3; }; my int8 $a = 0; way($a); say $a;
17:55 camelia rakudo-moar 079da9: OUTPUT«3␤»
18:37 unmatched} Well, I'm closing that ticket. For the past hour and 20m, I have been running that test in a loop in two terminals along with the entire stresstest in a loop, and none failed
18:37 unmatched} So it may have been something unrelated to code :/
19:24 unmatched} m: sub foo␤ #= some docs {}␤say &foo.WHY
19:24 camelia rakudo-moar 079da9: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Missing block␤at <tmp>:3␤------> sub foo⏏<EOL>␤    expecting any of:␤        new name to be defined␤»
19:24 unmatched} oops, wc
19:24 [Coke] ye?
19:40 unmatched} :|
19:40 unmatched} pulled in rakudo changes and rebuilt again and booom.. the segfault is back. Happens quite regularly too :/
19:42 domidumont joined #moarvm
19:48 domidumont joined #moarvm
20:41 pyrimidine joined #moarvm
22:56 lizmat joined #moarvm
23:36 Zoffix joined #moarvm

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