01:49
ilbot3 joined
05:30
brrt joined
|
|||
brrt | good * #moarvm | 05:31 | |
did we get to review TheLemonMans PR yet | |||
guess not | 05:32 | ||
okay, it looks good enough | |||
going to run a test and then probably merge | |||
dalek | arVM/even-moar-jit: d99334c | brrt++ | docs/jit/register-allocator.org: More notes on linear scan |
05:37 | |
brrt | hmmm | 06:07 | |
it looks and compiles correctly for sure | |||
but i dunno what the 'actually thrown at' bit is about | |||
dalek | arVM: 8911949 | LemonBoy++ | src/core/ (3 files): Remove keep_caller from MVMFrame Fixes some cases (RT #128803) where the backtraces would be abruptly truncated due to an optimization introduced in cecf5729. As suggested by @jnthn [1] the best solution is to simply revert the optimization as it's not worth it anymore. [1] irclog.perlgeek.de/moarvm/2016-08-17#i_13040630 |
06:26 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128803 | ||
06:27
brrt joined
06:38
TheLemonMan joined
06:50
travis-ci joined
|
|||
travis-ci | MoarVM build passed. LemonBoy 'Remove keep_caller from MVMFrame | 06:50 | |
travis-ci.org/MoarVM/MoarVM/builds/153478145 github.com/MoarVM/MoarVM/compare/0...1194990450 | |||
06:50
travis-ci left
|
|||
TheLemonMan | 'morning #moarvm! | 07:03 | |
07:13
lizmat joined
08:04
zakharyas joined
|
|||
Zoffix | TheLemonMan, would you add yourself to CREDITS, so you get creddited with proper name you want in the releases? github.com/rakudo/rakudo/blob/nom/CREDITS | 10:09 | |
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 :) | ||
Zoffix | TheLemonMan, still :) The contributing script will pick up your commits and right now you show up as 'LemonBoy' :) | 10:28 | |
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:30 | |
the NQP side specifies $MVM_reg_int64 as type of the result register and so does the getattr_i opcode | 10:31 | ||
dalek | arVM: fa43417 | LemonBoy++ | src/core/bytecodedump.c: Correctly NULL-terminate the buffer in MVM_vm_dump_file. |
11:11 | |
arVM: 31eccd7 | jnthn++ | src/core/bytecodedump.c: Merge pull request #392 from LemonBoy/dump-trailing-null Correctly NULL-terminate the buffer in MVM_vm_dump_file. |
|||
12:27
camelia joined
12:34
zakharyas1 joined
13:25
kjs_ joined
13:39
kjs_ joined
13:50
zakharyas joined
|
|||
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 | |
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. | |||
[Coke] | Not many moarvm commits to test: -2016.07-17-g40948f6 | 14:15 | |
+2016.07-24-g31eccd7 | |||
unmatched} doesn't know how to test | 14:16 | ||
Do I just checkout a particular commit in nqp/MoarVM ? | 14:17 | ||
in rakudo's repo | |||
[Coke] | pretty sure that if you do that, the nqp config will rebuild it with the "right" verison. | 14:18 | |
*verison | |||
*VERSION | |||
you can pass in specific versions with rakudo's Configure command, however. | |||
nine | You don't have to re-compile nqp and rakudo after changing moar | ||
[Coke] | perl Configure.pl --gen-nqp --gen-moar=sha1 | ||
nine: not always, but sometimes. | 14:19 | ||
nine | yes | ||
[Coke] | you could try that here, sure. build and install moarvm and retry? | ||
(from your already checked out moar repo inside your rakudo checkout) | |||
unmatched} | will do | 14:22 | |
It's really flappy. Two runs dies right away, then many runs doesn't die: gist.github.com/zoffixznet/9ee7467...da33498099 | |||
nine | Just for fun I ran a spectest without fudging. Let's say it's less than encouraging :P | 14:42 | |
unmatched} | :( | ||
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 | ||
*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: github.com/rakudo/rakudo/commit/44...c76653fcc2 | ||
Oh, I'm in the wrong channel! | 14:45 | ||
unmatched} | "You asked me to build 330b1b44ab07df548ca75bb61dc8c3d6b354b8ad, but 2016.07-20-g330b1b4 is not new enough to satisfy version 2016.07-24-g31eccd7" | 14:49 | |
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:00 | ||
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 | |
unless it's a shorter unsigned type, of course? | |||
TheLemonMan | timotimo, happens with u64 aswell | 15:10 | |
the code calls the get_int accessor, that's where I think the first extension happens | 15:11 | ||
timotimo | i think you might be a lot more knowledgable about this than me :) | 15:12 | |
if you're interested in adding a new op, start with src/core/oplist and use tools/update_ops.p6 | |||
TheLemonMan | we could also repurpose getaddr_i by finding a way to check the destination register type | 15:13 | |
timotimo | it'd have to be passed in by the caller, which would mean code-gen's got a say in this | 15:17 | |
alternatively, check the frame's static info's local types information blob from the interpreter or something | |||
once we jit that, we'll constant fold that | 15:18 | ||
(which we'll also have to do, of course) | |||
GTG! | |||
there's also a bug we have where ++ on a "small" int variable will lose the variable's smallness | 15:55 | ||
TheLemonMan | hmm, got an one-liner to show that ? | 15:58 | |
timotimo | m: my int8 $foo = 127; $foo++; say $foo | ||
camelia | rakudo-moar dd5c28: OUTPUT«-128» | ||
timotimo | ... oh? | ||
m: my uint8 $foo = 0; $foo--; say $foo | |||
camelia | rakudo-moar dd5c28: OUTPUT«-1» | ||
timotimo | there, unsignedness is what gets lost ... i guess? | ||
TheLemonMan | nice | 15:59 | |
timotimo | we're not emitting the truncate (or what its name is) op after the ++ or -- | ||
16:11
lizmat joined
|
|||
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» | ||
unmatched} | :o | ||
timotimo | hah | 16:36 | |
:D or :U don't make sense for int8 and other native types | |||
because we don't have a way to signal undefined values | |||
TheLemonMan | yeah, it's a copy/paste leftover from the Int module | 16:37 | |
unmatched} | Any idea how I can make rakudo use a different moarvm version? | 16:38 | |
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 | ||
timotimo | my_moar_binary Perl6.moarvm ... | ||
just cat perl6-m | |||
unmatched} | ah | ||
timotimo++ thanks | |||
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 | ||
timotimo | mhm | 16:42 | |
well, a method on Any sounds more like something else is broken | 16:43 | ||
er, i mean | |||
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. | ||
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. gist.github.com/zoffixznet/5654271...b44b8edab6 | 16:46 | ||
16:47
kjs_ joined
|
|||
unmatched} | Rakudobugged that flapper: rt.perl.org/Ticket/Display.html?id=128992 | 17:23 | |
17:23
kjs_ joined
|
|||
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:42 | |
TheLemonMan | ptpb.pw/fCRQ the decont_i is wrong as the opcode expects an i64 and finds an i8 | 17:44 | |
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» | ||
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 | |
So it may have been something unrelated to code :/ | |||
m: sub foo #= some docs {}say &foo.WHY | 19:24 | ||
camelia | rakudo-moar 079da9: OUTPUT«===SORRY!=== Error while compiling <tmp>Missing blockat <tmp>:3------> sub foo⏏<EOL> expecting any of: new name to be defined» | ||
unmatched} | oops, wc | ||
[Coke] | ye? | ||
unmatched} | :| | 19:40 | |
pulled in rakudo changes and rebuilt again and booom.. the segfault is back. Happens quite regularly too :/ | |||
19:42
domidumont joined
19:48
domidumont joined
20:41
pyrimidine joined
22:56
lizmat joined
23:36
Zoffix joined
|