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