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