00:07
lue joined
00:31
benabik joined
00:43
cognominal joined
|
|||
japhb | Something weird is going on with nqp-m when outputting from rc-forest-fire. If I run 'nqp-m nqp/rc-forest-fire 16 16 100' then perhaps half the time, instead of ending the run with a normal looking frame, the output is corrupted -- some rows twice as wide, the frame number in the corner wrong or in the wrong spot, the shell prompt invisible and somewhere in the middle of the printed frame. | 01:18 | |
*But* this doesn't occur if I put an nqp::sleep(0.01) after the '$f.step;' line. Higher sleep times work too; too much shorter and the output is corrupted again. | 01:20 | ||
I've confirmed at a straight shell, in a screen, and in a screen over ssh, and the behavior is the same in all cases, so I don't think it's a problem with how the output is being rendered. | 01:21 | ||
I have a sneaking suspicion that really fixing this (whatever it is) could make I/O on Moar much more stable, but it's just a hunch. The problem just happens to trigger a pattern match somewhere in my brain. | 01:23 | ||
01:47
ilbot3 joined
06:23
oetiker joined
06:26
woolfy left
06:38
zakharyas joined
|
|||
jnthn | japhb: I've not encountered a situation where I/O (at least, aside from the async socket stuff which is still a WIP) was unstable. | 06:56 | |
06:57
FROGGS joined
|
|||
jnthn | japhb: So, not really sure what's going on there... | 06:58 | |
japhb: Where's the script in question? | |||
nwc10 | jnthn: business as usual - ASAN only unhappy with t/spec/S17-lowlevel/lock.rakudo.moar | 08:59 | |
09:07
Util joined
|
|||
FROGGS | that is the real error for lwp-simple: | 09:31 | |
Program received signal SIGSEGV, Segmentation fault. | |||
0x00007ffff79dcfa4 in MVM_6model_try_cache_type_check () from /home/froggs/dev/star/work-m/rakudo-star-2014.05/install/lib/libmoar.so | |||
optimize_bb is in the bt | 09:32 | ||
(gdb) p *obj | 09:33 | ||
$1 = {header = {owner = 44763016, flags = 0, size = 0, sc_forward_u = {forwarder = 0x2856c78, sc = {sc_idx = 42298488, idx = 0}, st = 0x2856c78}}, st = 0x0} | |||
from: | 09:34 | ||
0x00007ffff79dcfa4 in MVM_6model_try_cache_type_check (tc=tc@entry=0x6035e0, obj=0x7ffff678bde8, type=0x2857e60, result=result@entry=0x7fffffffd640) at src/6model/6model.c:280 | |||
280 MVMuint16 i, elems = STABLE(obj)->type_check_cache_length; | |||
okay, it definitely is a spesh bug | 09:50 | ||
optimize_istype sometimes gets garbage | 09:51 | ||
timotimo | oh crap | 09:52 | |
didnt i make that? | |||
FROGGS | timotimo: the thing in optimize_istype already is messed up | 09:53 | |
err | |||
in MVM_spesh_get_facts(tc, g, ins->operands[1]) | |||
timotimo | oh, huh | ||
jnthn | yes, that's a garbage address | 10:12 | |
Can you dump the facts? | 10:13 | ||
(what get_facts returns) | |||
FROGGS | (gdb) p *MVM_spesh_get_facts(tc, (MVMSpeshGraph *)0x6632470, ((MVMSpeshIns *)0x6ecdd90)->operands[1]) | 11:55 | |
$1 = {flags = 13, usages = 1, type = 0x7ffff678c6f8, decont_type = 0x0, value = {o = 0x0, i64 = 0, i32 = 0, i16 = 0, i8 = 0 '\000', n32 = 0, n64 = 0, s = 0x0}} | |||
(gdb) p *MVM_spesh_get_facts(tc, (MVMSpeshGraph *)0x6632470, ((MVMSpeshIns *)0x6ecdd90)->operands[2]) | |||
$2 = {flags = 23, usages = 1, type = 0x2857e60, decont_type = 0x0, value = {o = 0x2857e60, i64 = 42303072, i32 = 42303072, i16 = 32352, i8 = 96 '`', n32 = 1,96151293e-37, | |||
n64 = 2,0900494588748753e-316, s = 0x2857e60}} | |||
jnthn | hm, that type pointer in the first one looks bogus... | 11:57 | |
FROGGS | (gdb) p *0x7ffff678c6f8 | 12:01 | |
$3 = 95801272 | |||
whatever that means | |||
(gdb) p *0x2857e60 | |||
$4 = 1 | |||
12:29
donaldh joined
|
|||
timotimo | hmm, we didn't end up fixing the string performance for this month's release | 12:45 | |
moritz | there's still another release next month :-) | 12:50 | |
timotimo | aye | ||
jnthn | That's the nice thing about monthly releases :) | 12:56 | |
timotimo | somehow i'm not really blown away by these benchmarks; at least by the one-year-progress aspect of it | 12:58 | |
jnthn | Remember it's a log graph | 13:03 | |
The improvements to Rakudo are fairly notable. | |||
(A factor of 5 difference is the difference between a 50fps game and a 10fps one - which is a "can I even use Perl 6 for X" difference) | 13:10 | ||
tadzik | :) | 13:13 | |
13:14
FROGGS joined
|
|||
timotimo | troo | 13:17 | |
log-log is counterintuitive :( | |||
perl5 is still a long way away for our rakudo's | 13:18 | ||
the difference in start-up-time and memory usage for mostly empty programs is quite gigantic, too | 13:21 | ||
still hoping someone gets around to making chunks of the core setting loaded on-demand | |||
FROGGS | that would be premature atm I think | 13:23 | |
timotimo | how so? | 13:24 | |
FROGGS | I'd say there a holes in the spec and in the implementation that are like 1000 times more important than using 98MB less mem for a one-liner | 13:28 | |
are* | |||
14:07
btyler joined
15:11
jnap joined
16:55
zakharyas joined
|
|||
FROGGS | jnthn: I was not able to hunt that bug any further, so I checked out the older version of MIME::Base64 | 17:25 | |
jnthn: and will run module tests with latest vm/compiler versions now | |||
jnthn | FROGGS: How do I recreate that bug? | 17:59 | |
FROGGS: Or can you set MVM_SPESH_LOG=spesh_log and run the thing that SEGVs and send me it? | 18:00 | ||
FROGGS | jnthn: you should get it by installing latest MIME::Base64 and LWP::Simple | ||
jnthn: I can, just need to switch back to newer versions of the modules | |||
18:02
jnap joined
|
|||
FROGGS | jnthn: I hope I put enough stamps on it :o) | 18:07 | |
18:11
btyler joined
|
|||
jnthn | FROGGS: Thanks; dinner now, will look in a bit. | 18:19 | |
FROGGS | k | 18:20 | |
timotimo | jnthn: should i still paste that for loop thingie that gives the fixup handlers error into a github issue? | 18:56 | |
jnthn | timotimo: yeah, please...I'll take a look at that now, though | ||
timotimo | OK fair enough | ||
github.com/MoarVM/MoarVM/issues/104 | 18:58 | ||
jnthn | Reproduced it. | 19:08 | |
FROGGS | hmmm, my r-m* fails with the same version [Coke]++ has (and his passes) | 19:09 | |
19:19
raiph joined
|
|||
dalek | arVM: 98ced1e | jnthn++ | src/spesh/ (7 files): Fix frame handler end move in instruction deletion Closes #104. |
19:30 | |
19:32
donaldh joined
|
|||
jnthn | timotimo: One bug squishd. :) | 19:33 | |
19:38
brrt joined
|
|||
brrt | \o #moarvm | 19:39 | |
jnthn | o/ brrt | ||
brrt | how's today been :-) | ||
FROGGS | hi brrt | ||
my today was okay :o) | 19:40 | ||
brrt | hi froggs, jntnh :-) | ||
jnthn | tiring, but the week's teaching is done. | ||
The week's traveling is yet to come. | |||
brrt | oh, yes, exciting :-) | 19:41 | |
mine has been ... tiring as well. first moment i get some time to think today | |||
oh, by the way,i was wrong about the move node (again) | 19:42 | ||
i forgot the register-by-register combinatoions, which are at least 4x4, so that gives us 16*6 = 96 ? combinations | |||
and that is severely restricting the number of registers we could use | 19:43 | ||
anyway, i already have a better idea for now :-) | 19:44 | ||
hoelzro - i saw it in my mail too (the dynasm tutorial / reference) | 19:46 | ||
it's a good resource i think | 19:47 | ||
something i did not see but which is really really handy | 19:48 | ||
you can end dynasm statements with a semicolon | |||
and that makes automatic c-mode indentation and coloring work :-) | 19:49 | ||
19:56
zakharyas joined,
carlin joined
|
|||
jnthn | FROGGS: Seeing if I can reproduce the issue now | 19:59 | |
brrt | /join #polari | 20:00 | |
huh, that doesn't work in empathy? | |||
jnthn | fail :) | ||
Did you accidentally a space before it? | |||
brrt | perhaps | ||
likely | |||
:-) | 20:01 | ||
jnthn | At least it wasn't /join #phpfanclub :P | ||
FROGGS | jnthn: if you need more infos or tests, I have the shell still open | 20:02 | |
jnthn: #phpfanclub is empty :( | |||
but in #php are 652 ppl | 20:03 | ||
jnthn | FROGGS: binary-and-long-line.t failed a test...is that same for you? | 20:05 | |
FROGGS | no | ||
that's mine: modules/perl6-lwp-simple/t/get-w3-latin1-utf8.t | 20:06 | ||
modules/Perl6-MIME-Base64/t/binary-and-long-line.t always passes here | 20:07 | ||
jnthn | may be a windows line ending issue | 20:08 | |
--notests it | 20:09 | ||
URI installed | |||
t/get-perl6-org.t and t/get-unsized.t both SEGV for me. | |||
FROGGS | O.o | ||
hopefully the very same bug :o) | 20:10 | ||
jnthn | argh...how do I get Panda not to trash the .work after the fail... | ||
FROGGS | wow, #php is not very nice :o) | ||
jnthn: remove the rm_RF calls? | 20:11 | ||
jnthn | or ^C at an opportune point :) | ||
FROGGS | hehe | ||
grep for rm_rf if you arn't lucky | |||
brrt | i didn't add the space that time jntnh :-p | 20:13 | |
FROGGS | brrt: but now you spelled him wrong, twice :P | 20:15 | |
brrt | :-( not my day | ||
FROGGS | ahh, np, just make no typos in your code :o) | 20:16 | |
timotimo | FROGGS: how did you find out? | ||
FROGGS | timotimo: find out what? | 20:17 | |
timotimo | that #php isn't nice | 20:18 | |
FROGGS | timotimo: well, I'm in there | ||
and one is asking a question and like five ppl say him that they do not want to answer, and he wasn't trolling | 20:19 | ||
timotimo | o_O | ||
FROGGS | <cythrawll> you're using mysql_* functions how much crazier can it get? | 20:20 | |
<javalover> oh gawd | |||
* diegoholiveira hat die Verbindung getrennt (Quit: My iMac has gone to sleep. ZZZzzzā¦) | |||
<javalover> i can't take this you racist people | |||
as I said... | |||
brrt kind of has to see for himself | 20:21 | ||
20:22
brrt left,
brrt joined
|
|||
timotimo | er ... wow. | 20:22 | |
brrt | that stuff is pretty nasty, it seems | 20:23 | |
FROGGS - fwiw, i think this is a 'PHP should be OOP' kind of discussion | 20:27 | ||
FROGGS | they could just try to explain better, instead of denying answers... but that is enough OT here :o) | 20:29 | |
jnthn | FROGGS: Yes, it's in optimize_istype | 20:32 | |
FROGGS | cool! | ||
but I guess the problems sits somewhere way earlier | |||
jnthn | yeah | 20:41 | |
dalek | arVM: 9ebdc64 | jnthn++ | src/spesh/graph.c: Fix copy-pasto in spesh graph GC marking. |
20:44 | |
FROGGS | is that related? | 20:45 | |
jnthn | That's it. | 20:46 | |
FROGGS | uhhh | ||
20:46
vendethiel joined
|
|||
jnthn | Thus why the pointer was garbage. | 20:46 | |
FROGGS | I've already pulled, made the dummy release and configured :o) | ||
let's see | |||
jnthn | I did notice another issue in that code that I'll address now too | 20:47 | |
FROGGS | jnthn++ | ||
timotimo | i need to run that single benchmark again :3 | ||
now that it will no longer crash | |||
jnthn | One rather less likely to actually manifest itself. | ||
FROGGS | awesome! | ||
jnthn | But want to fix it too before I forget it :) | 20:48 | |
Anyway, above commit should nail the issue with LWP | |||
dalek | arVM: 21e548c | jnthn++ | src/spesh/graph.c: Add missing marking of known value facts. |
20:58 | |
arVM: e68d0ea | jnthn++ | docs/ChangeLog: Two more ChangeLog notes. |
20:59 | ||
jnthn | So, I'm traveling tomorrow, so will cut the MoarVM release this evening. | 21:00 | |
21:04
btyler_ joined
|
|||
dalek | arVM: d253acc | jnthn++ | README.markdown: README tweaks. |
21:05 | |
nwc10 | jnthn: ASAN is looking happy at 9ebdc64af5 | ||
FROGGS | jnthn++ # confirmed, it works! | ||
nwc10 | but I don't think I can get you an answer for anything later before tomorow morning, so too late | ||
t/spec/S32-io/IO-Socket-Async.t not reliable | 21:07 | ||
t/spec/S17-lowlevel/lock.rakudo.moar the usual. | |||
jnthn | yeah | ||
I plan to look at those two in the next release cycle | |||
I was rather short on good concentration time in the last month, and inlining was hard enough to nom it all | 21:08 | ||
nwc10 | oh my, yes, inlining looked big | ||
bit like my pizza at lunchtime | |||
jnthn | Well, and it's not all the way there yet, but the really hard stuff is done. | ||
nwc10 | (except that I got to nom it) | ||
I guess stuff like "don't inline if it uses extops" was punting, not "never" | |||
jnthn | Right | ||
Same with frame handlers. | 21:09 | ||
The deopt was the really tricky piece, tbh. | |||
The graph merge was more tedious and fiddly than hard. | |||
21:18
vendethiel joined
|
|||
brrt | hmm, moar-jit can't build nqp it seems | 21:19 | |
thats weird | |||
FROGGS | merge in MoarVM/master? | 21:21 | |
jnthn | Check the jit log? :) | 21:22 | |
brrt | no, its a jit bug | ||
doing that | |||
code looks good, though | |||
FROGGS | jitterbug | ||
brrt | its weirder | ||
apparantly its' trying to enter a NULL jitcode | |||
it is | |||
and that is being caught | |||
but how is it possible at all, is what i'm wondering | 21:23 | ||
nwc10 | ask valgrind what valgrind thinks? | ||
brrt | that is a great idea | ||
21:25
japhb_ joined
|
|||
brrt | no, its weirder | 21:26 | |
but i probably know why | |||
hmm | 21:27 | ||
or not | |||
here's the thing | 21:29 | ||
nqp throws the 'try to enter NULL jitcode', whcih is what happens with the sp_jit_enter opcode and the jitcode pointer is null | |||
i.e. unintiialized | |||
so i try to throw an exception before that is assigned to null | 21:30 | ||
nope, doesn't happen | |||
brrt just had another awesome idea wrt to return-value-handling | 21:32 | ||
why not allocate an extra register, and put the return-value pointer there? then, the graph constructor can insert any extra 'work' ops after using that register | 21:33 | ||
nwc10 | jnthn: same result for d253acc4e1d350 and I should go to bed | 21:36 | |
jnthn | nwc10: Thanks for testing; sleep well :) | 21:38 | |
21:45
donaldh joined
|
|||
dalek | arVM: 1dc4118 | jnthn++ | VERSION: Bump VERSION. |
22:02 | |
brrt | oh, i see | 22:04 | |
(i'm just talking to myself, nothing to see here :-)) | |||
jnthn | :) | ||
brrt | hmmmm | 22:10 | |
what seems to happen is that some codes calls the MVM_OP_sp_enter_jit opcode, but there is no jitcode set | 22:11 | ||
i.e. no compiled function | |||
and... that should be impossible, really | 22:13 | ||
i.e. | |||
it should be caught before that | |||
jnthn | hmmm | 22:14 | |
brrt | that, or the spesh cand is replaced but its bytecode is not? | ||
i can't believe that, though | |||
jnthn | deopt does that but...I don't think you're doing anything that could trigger that | 22:15 | |
oh, and it does replace bytecode | 22:16 | ||
So not even then. | |||
brrt | what are things that can trigger deopt? sp_guard*, right? | ||
jnthn | yeah, well, and there's deopt_all, but you have to be deeper in the stack for that. | 22:18 | |
And you aren't. | |||
Because iiuc, you can't compile invoke yet? | |||
brrt | nope | 22:19 | |
jnthn | Can always dump the backtrace each time you enter JIT code and see if there's anything intersting to see | 22:20 | |
brrt | that may be a good idea | 22:22 | |
dalek | arVM: bb37476 | jnthn++ | src/6model/reprs/MVMMultiCache.c: Don't look "inside" container type objects. Fixes various multi-cache related SEGVs when talking about Scalar. |
22:32 | |
brrt | i.. don't think i'm going to find the bug today :-( | 22:35 | |
jnthn | Well, sometimes sleeping on it helps a lot :) | 22:40 | |
brrt | true | 22:48 | |
my current best guess is that spesh and jit claim the same opcode number | |||
although that'd be weird | |||
but possible, i guess | 22:49 | ||
hmm, now i'm a bit of stuck | |||
(make -j is awesome, though) | 22:51 | ||
22:51
nebuchad` joined
|
|||
brrt | ok, i'm going to sleep | 22:54 | |
brrt off | |||
dalek | href="https://moarvm.org:">moarvm.org: fd21c48 | jnthn++ | / (3 files): Update site for 2014.06 release. |
23:08 | |
jnthn | www.moarvm.org/ # 2014.06 is out :) | ||
And I'm off. 'night | 23:12 | ||
timotimo | Gnite jnthn | 23:17 | |
23:23
bcode_ joined
23:45
japhb joined
|