Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-11-15

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

All times shown according to UTC.

Time Nick Message
00:15 Ven joined #moarvm
01:21 tokuhiro_ joined #moarvm
02:54 dalek MoarVM: fc4043f | hoelzro++ | Configure.pl:
02:54 dalek MoarVM: Document ASAN_OPTIONS
02:54 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/fc4043f9a5
04:03 lizmat joined #moarvm
04:14 TimToady joined #moarvm
04:46 xiaomiao joined #moarvm
04:53 tokuhiro_ joined #moarvm
05:18 tokuhiro_ joined #moarvm
07:21 tokuhiro_ joined #moarvm
07:56 xiaomiao joined #moarvm
08:45 domidumont joined #moarvm
09:34 domidumont1 joined #moarvm
10:16 vendethiel joined #moarvm
10:24 domidumont joined #moarvm
11:04 kjs_ joined #moarvm
11:22 tokuhiro_ joined #moarvm
11:37 Ven joined #moarvm
11:39 kjs_ joined #moarvm
11:46 Ven joined #moarvm
12:30 Ven joined #moarvm
12:46 Ven joined #moarvm
13:00 Ven_ joined #moarvm
13:02 Ven__ joined #moarvm
13:15 Ven joined #moarvm
13:30 Ven joined #moarvm
13:31 brrt joined #moarvm
13:33 brrt good *
13:33 brrt ehm, i saw something worrying about segv and strawberry perl
13:33 brrt which makes me think of windows
13:34 brrt for, ehm, obvious reasons
13:35 brrt i wonder if i still have a windows iso around
13:38 brrt oh, it was cygx
13:38 brrt i do not, currently, have a windows iso :-(
13:38 * brrt wonders if it more trouble to get a new one than to load it from the backup disk
13:44 timotimo you're a student, are you not?
13:44 timotimo usually students get access to a portal of microsoft stuff where they can get ... oh, wait
13:44 timotimo you need a windows to run the downloader ...
13:45 brrt oh, i have an evaluation iso alright
13:45 brrt it's just stashed somewhere
13:46 Ven joined #moarvm
13:48 kjs_ joined #moarvm
13:51 timotimo mhh
14:03 Ven joined #moarvm
14:16 Ven joined #moarvm
14:19 kjs_ joined #moarvm
14:35 brrt joined #moarvm
14:36 brrt ehm, i can kind of see why code *should* crash :-)
14:37 timotimo all code should always crash
14:37 timotimo what are you refering to here, though?
14:37 timotimo also, did you have a chance to look at my latest jit patch? it's potentially wrong :|
14:38 brrt the one one master
14:38 brrt it is certainly wrong :-)
14:38 brrt let's see;
14:39 timotimo aha!
14:39 brrt line 1997, compare TMP2 with FUNCTION, while TMP2 is not set
14:39 timotimo when i was working on this my eyes kind of glazed over :(
14:39 timotimo so having a clean spec test run was enough for me
14:40 timotimo will you commit&push a fix or shall i do the honors?
14:40 timotimo um
14:40 brrt i'll fix
14:40 timotimo no
14:40 timotimo TMP2 is set
14:40 brrt there is more
14:41 timotimo TMP2 gets set to get_spesh_slot(blah) in front of the switch
14:41 brrt ah, tmp2 is spesh_idx
14:41 timotimo right
14:41 brrt you're right
14:45 timotimo the code is largely copy-pasted from one of the other guard ops there with only a few adjustments made (or rather: needed)
14:49 brrt i see
14:49 brrt whoever did design a function call within a guard...
14:49 Ven joined #moarvm
15:09 tokuhiro_ joined #moarvm
15:19 kjs_ joined #moarvm
15:21 tokuhiro_ joined #moarvm
15:42 psch hm, how do i make sense of --dump output..? :S
15:42 zakharyas joined #moarvm
15:44 psch well, what i can see is that it seems to confirm what i saw inside gdb, which is that a getlex is looking two frames outwards, but only one exists
15:45 psch although the getlex call doesn't appear there, but from the <main> frame there's only one outer, and no inner...
15:48 kjs_ joined #moarvm
15:49 timotimo psch: oof. in general i find the spesh output more readable, but if you're getting lexes for wrong outers, spesh itself will probably asplode before it dumps a spesh graph
15:51 psch another thing i can't make sense of is "checkarity 1, -1" calls, but they also appear in non-breaking code so i guess that's fine...
15:51 timotimo with a constant number?
15:51 timotimo oh, of course
15:52 psch yeah, literal as quoted
15:52 timotimo checkarity uses the current routine's argument buffer
15:52 timotimo to figure out if the arguments make sense for the given routine's signature
15:52 psch ...that doesn't really help :D
15:53 psch but yeah, it's probably not it, in any case
15:53 psch how do i get the spesh output?  'cause i guess it's worth a try
15:53 timotimo env MVM_SPESH_LOG=some_filename.txt
15:56 psch that's nearly 100k lines o.o
15:58 timotimo yeah
15:58 timotimo you'll want to search for the name of the frame you're interested in
16:00 psch hm, --dump seemed to suggest the frame i'm looking for is <main>, but that's not in the log
16:00 psch i don't see any line annotation for the method i'm looking for either
16:00 psch nor its prot
16:00 psch +o
16:00 timotimo hm. you can search for line numbers %)
16:01 psch yeah, that's what i mean :P
16:01 timotimo oh
16:01 timotimo damn
16:02 timotimo is there a lot of code to reproduce your problem?
16:02 timotimo like any local patches?
16:02 psch i suppose that mean i don't reach the bit i care about, 'cause that throws an adhoc, right?
16:02 psch timotimo: it's nine++'s bool_enum branch
16:02 timotimo mhm
16:02 timotimo well, if the exception happens before spesh got a chance to run the code a bunch of times, then yeah, it won't be in the output
16:02 psch all i changed was another null check for f in getlex
16:02 psch in interp.c that is
16:02 psch +add
16:03 timotimo you can still run that code in a for loop and just catch that exception
16:03 timotimo that'll probably make it spesh
16:04 psch ahh, yes
16:04 psch i now at least see the findmethod for .pick
16:07 timotimo brrt: is there anything obvious we can do to make gdb not get so surprised by jit-related backtraces?
16:10 psch hm, so the getlex is for &EXHAUST, apparently
16:10 timotimo oh
16:11 timotimo that's for how we do return from inner scopes or something
16:12 psch iirc the contents of the SEGVing method don't even matter
16:12 psch as in, it should run self.^enum_value_list.pick($n), but even with just True or something it also SEGVs
16:13 timotimo hurgh?
16:13 psch well, i'm rebuilding to confirm :S
16:17 psch ah, no, i was wrong about that.  phew :P
16:18 timotimo i should have a new look at the "spesh diff" tool i once wanted to make, but which was way too slow
16:18 timotimo last time i looked wasn't only before the GLR.
16:19 brrt sorry, was off
16:20 brrt we should look at gdb spesh integration
16:20 domidumont joined #moarvm
16:21 timotimo well, what kind of thing would that be? some API gdb offers? or making our jit frames formed more "traditionally"?
16:24 brrt yes, gdb has an api
16:24 brrt i mean gdb jit integration
16:24 timotimo oh
16:26 brrt https://sourceware.org/gdb/onlinedocs/gdb/JIT-Interface.html
16:26 psch building sub form of pick instead of method form now... curious what happens :S
16:26 psch 'cause that should introduce another outer, maybe all is fine then :P
16:29 timotimo brrt: so my jit code for the new guards isn't broken? well, at least it's not obviously broken :)
16:30 brrt oh yes, it is still broken
16:30 brrt i'm just running a spectest
16:30 brrt and finding that my rakudo is outdated
16:30 timotimo damn
16:32 Ven joined #moarvm
16:33 kjs_ joined #moarvm
16:33 dalek MoarVM: 4d19b3f | brrt++ | src/jit/emit_x64.dasc:
16:33 dalek MoarVM: Bugfix in sp_guardrw(conc|type)
16:33 dalek MoarVM:
16:33 dalek MoarVM: We should test rax (RV) for results; and treat values as invalidated
16:33 dalek MoarVM: after a call.
16:33 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4d19b3fe47
16:34 timotimo oh, good. thanks for the fix!
16:34 * brrt is currently spectesting and intalling vs2013
16:34 brrt yw :-)
16:35 brrt easy enough to happen, i think
16:35 timotimo spectest vs2013? i didn't know they had a perl6 compiler!
16:37 brrt spectesting, comma, and installing vs2013 :-P
16:37 timotimo :)
16:38 brrt except for hanging sockets, this works cleanly for me
16:42 psch hrm, sub form pick SEGVs, explicit return SEGVs
16:42 psch which means the problem is probably actually below NQP level..?
16:43 timotimo that's possible
16:43 psch as in, the SEGV isn't from a check that's missing, but because moar is doing something actually wrong
16:43 psch (if that makes sense...)
16:43 timotimo did you try turning off spesh for this yet?
16:43 psch yeah
16:43 timotimo if turning off spesh makes things work i'm sure it's my fault things go wrong :D
16:43 psch well, it doesnt :P
16:44 timotimo phew
16:44 brrt https://sourceware.org/gdb/onlinedocs/gdb/Custom-Debug-Info.html#Custom-Debug-Info < this is of interest, i think
16:47 Ven joined #moarvm
16:53 brrt http://stackoverflow.com/questions/4418708/whats-the-rationale-for-null-terminated-strings
16:53 brrt haven't seen the right answer yet
16:53 brrt the right answer is 'CPUs'
16:54 timotimo with a null-terminated string you can have strings of any length you want, without having to invent an open-ended varint format to encode the size
16:54 timotimo i guess?
16:57 brrt that's one thing
16:58 brrt with a null-terminated string, you can loop like: read, test, do-something, jumpback
16:58 brrt and, this costs you only 2 registers, at worst
16:59 brrt without a null-terminated string, you have to keep the original size, an index, the pointer, the value, that's 4 registers
16:59 brrt it's costly on an old machine
17:22 tokuhiro_ joined #moarvm
17:24 timotimo OIC
17:26 kjs_ joined #moarvm
17:45 nwc10 brrt++ # ASAN doesn't SEGV
17:46 timotimo hooray!
18:18 Ven joined #moarvm
18:33 Ven joined #moarvm
18:34 Ven joined #moarvm
19:04 Ven joined #moarvm
19:27 brrt joined #moarvm
19:49 Ven joined #moarvm
20:04 Ven joined #moarvm
20:05 psch well, i did finally get the idea to check if going outwards one level less works, and it does
20:07 psch the while loop in getlex in interp.c still looks somehow off to me vOv
20:10 colomon joined #moarvm
20:15 kjs_ joined #moarvm
20:18 cygx joined #moarvm
20:18 cygx jnthn: nine: https://github.com/MoarVM/MoarVM/issues/295
20:20 Ven joined #moarvm
20:34 Ven joined #moarvm
20:34 Ven joined #moarvm
20:35 Ven joined #moarvm
21:04 brrt joined #moarvm
21:24 tokuhiro_ joined #moarvm
21:34 Ven_ joined #moarvm
21:37 kjs_ joined #moarvm
21:41 zakharyas joined #moarvm
21:54 Ven joined #moarvm
22:07 zakharyas joined #moarvm
22:08 Ven joined #moarvm
22:22 Ven joined #moarvm
23:15 kjs_ joined #moarvm
23:43 Ven joined #moarvm

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