timotimo clever bit of the day: 01:52
how do you compare an int with an Int?
obviously you box the int into an Int and do eq_I 01:53
timotimo same for subtraction of a num and a Num ... :( 02:37
it even boxes, then immediately unboxes again
diakopter timotimo: well, the compiler can't prove that the Int isn't bigger than the max int 05:50
(yet?) 05:51
lucasb hello there 16:20
I was trying to understand that string ropes bug
moritz howdy
lucasb oh, hey moritz. thanks for fixing that empty signarture smartmatch bug :)
moritz lucasb: you're welcome. It turned out to be easy enough for me to do with my rusty skills :-) 16:21
now I'm fighting with vagrant, virtual networks, ansible and debian instead :-) 16:22
lucasb I just wanted to describe my understanding of the string bug. 16:27
It seems it only happens on the special situation when there's a string with 2 or more strands, with repetitions and when you ask substr for a specific offset into the string.
I tried to read the source code of MVM_string_{concatenate,repeat,substring} to understand, but it looks ok.
So, my guess is that the bug may live in the MVMGraphemeIter functions, maybe more specific in the MVM_string_gi_move_to function, which is called by the substr function.
here is a section of the code: github.com/MoarVM/MoarVM/blob/mast....h#L89-L97 16:28
in there, you can see 2 lines: 16:29
MVMuint32 remaining_reps = remaining / rep_graphs
gi->repetitions -= remaining_reps
konobi how goes things on the moarvm front?
moritz: sounds like you need to get on the docker train 16:30
lucasb when remaining is 1 and rep_graphs is greater than 1, than remaining_reps gets assigned 0 16:31
and then 0 repetitions is decremented, that's where I think may lie some bug
moritz konobi: then I struggler with docker, virtual networks, ansible and debian :-)
*struggle 16:32
konobi moritz: github.com/mobify/dmit
and a lot of what you do with ansible can be done with docker build 16:33
moritz well, I'll eventually jump onto the docker wagon, but not yet 16:35
konobi would be nice to have a perl6/moarvm docker image
easy dev env for anyone 16:36
moritz konobi: like hub.docker.com/r/pmakholm/perl6/ ?
konobi nice 16:37
timotimo lucasb: i'm glad you're looking into this bug 17:08
sadly i'm no wiser than you 17:09
lucasb timotimo: I think you're much more wiser than me :) 17:15
I took several days to read the source and try to understand 17:16
I hope jnthn can have some time to take a look at it later
jnthn: ^^^
the commit that introduced that code was github.com/MoarVM/MoarVM/commit/56...db03558342 17:17
in summary, I think the issue is blindly dividing "remaining / rep_graphs" and expecting that the result will always be greater than 0 17:20
timotimo right, so we want a float division and a ceil? 17:24
lucasb or maybe just a special case: if (remaining < rep_graphs) then ... else do the usual thing 17:26
timotimo seems a little bit smelly to have that. i dunno
jnthn is too tired to look at code (been tired all day :S) 21:53
But I suspect lucasb++ has got it tracked down to the right place...it makes sense
Will see if I can make more sense of it once I've more brane :)