01:48 ilbot3 joined 05:20 domidumont joined 05:25 domidumont joined
Geth MoarVM: b34c374865 | (Samantha McVey)++ | src/strings/unicode_ops.c
[unicode-grant] unicmp_s can now reverse any of the collation levels

This changes the collation_mode argument to the unicmp_s op.
It soon became clear that there was no way to reverse the sorting of certain collation levels. To solve this, the collation_mode argument had to be changed. ... (16 more lines)
05:51
MoarVM: cc27eebf2e | (Samantha McVey)++ | src/strings/unicode_ops.c
[unicode-grant] handle additional possible cases in collation

This change should handle cases where the a collation value and b collation values match, and make sure we properly continue through the string.
We also make sure to handle matching strings except for length. If we have reversed quaternary enabled, we want to return the 1 if string a is longer than string b.
06:11 domidumont joined 07:39 domidumont joined 07:43 zakharyas joined 07:51 Voldenet joined 08:10 Voldenet joined 08:11 Voldenet joined 08:41 domidumont joined
jnthn morning o/ 08:44
08:46 domidumont joined
Geth MoarVM/even-moar-jit: bc9d818d00 | (Bart Wiegmans)++ | 2 files
Assign register types to live ranges

Because a live range can describe multiple nodes, we check if their register types match.
08:51
nwc10 good *, jnthn 08:52
*now* it's next week?
jnthn Apparently so 08:53
09:34 brrt joined 09:46 domidumont joined 10:05 zakharyas joined
brrt good *! 10:24
nwc10 good *, brrt 10:26
jnthn o/ brrt 10:28
10:32 lizmat joined 10:33 AlexDaniel joined
samcv good *(next week/thisweek) 10:36
good week
brrt ohai samcv
and nwc10, jnthn
samcv hey!
Geth MoarVM: b334565164 | (Jonathan Worthington)++ | 2 files
Handle value use decrements in instruction delete.

Rather than having them done ad-hoc in a couple of places, and forgotten about in others.
10:54
11:01 AlexDaniel joined
Geth MoarVM: 0837bd3257 | (Jonathan Worthington)++ | 3 files
When deleting a BB, decrement instruction usages.

So that we may be able to delete more instructions.
11:08
MoarVM: 9ece693fb8 | (Jonathan Worthington)++ | src/spesh/optimize.c
Move instruction deletion later.

So that more usage counts might have gone to zero, allowing further deletions.
jnthn Still not nailing all we could, but moving it after second_pass causes explosions that will need some debugging. 11:11
lizmat wonders what jnthn's thoughts are on my answer to stackoverflow.com/questions/446239...que-arrays
jnthn When I read the question I actually thought of either some wrapper around Array or some subclass of it :) 11:13
The mixin does that fine
With the caveat that WHICH is still a bit in flux 11:14
lunch; bbiab 11:15
samcv oh guys did you ever figure out what that segfault was. and is it related to my segfault? 11:19
brrt, any idea ? it seems to die in garbage collectiong gist.github.com/samcv/9f7d8820cb9e...9aaf88b6e2 11:20
and it only crashes if MoarVM is compiled with debugging
actually now i have it crashing with debugging off :P 11:24
in any case there is a bug :P
and it always crashes after the exact same number of seconds of running 11:25
brrt well, that's something
lizmat if there's a way to have your processor run slower, does it still crash at the same time?
brrt i really haven't looked at it tbh
have you tried making it crash under lldb / gdb 11:26
lizmat that would rule out time based bug vs number of instructions executed bug
brrt $your-favorite-debugger
samcv you can reproduce it easily
brrt are you on linux or on mac?
samcv just clone github.com/samcv/perl6-Font-QueryInfo
linux
brrt hmm, so, i'm not
samcv clone the project. then run ./examples/*.p6
brrt not here anyway
samcv would be curious if it happens on os x 11:27
brrt sure, i'll try it out
samcv command line arg is a folder with 30+ fonts in it
just pick the system font folder or whatever. though i'm not sure the layout of them. i have /usr/share/fonts with several folders in it, and just picked one with a lot of fonts in it
gets through 72-73 font files before crashing 11:28
even if they're not the same font folders etc, though it shouldn't matter since it uses run to start an external program. there's no start blocks, just Proc using run 11:29
so at least that is nice, how reproducible it is for me
brrt uhuh 11:30
i'll try it out :-)
i need to get my rakudo up to date again, though
samcv how old is it?
brrt i'm often a month behind or so 11:32
because it's inconvenient to merge in master in between my own series of commits 11:33
samcv well you can try it
it may crash
brrt buidling now 11:34
samcv k
jnthn m: say 10133107324 - 9989918603 12:13
camelia 143188721
lizmat 143M, not bad :-)
jnthn Yeah, that's off the million lines benchmark 12:14
And arising from the optimizations I committed earlier today
dogbert17_ is the program quicker than P5 now? 12:17
jnthn Not quite 12:18
But it's rather close
Perl 5 uses 9,111,729,472 instructions to our 9,989,918,603 12:19
There may be further things we can get out of it, but I'm turning my attention to the output side of things now 12:23
timotimo that's like 8% or so!
dogbert17_ it's almost within the margin of error :) 12:24
jnthn (In fact, I *know* there's quite a bit more we can squeeze out of it. :))
(But they need spesh work and I want to figure out the bigger picture direction of spesh first.)
timotimo dogbert17_: except instruction counts are rather precise
jnthn They're precise, but they aren't everything :) 12:25
timotimo so the margin of error is a lot tighter than when you use wallclock timing or cpu timing
of course
this is only about instructions executed, but different instructions can have wildly different costs
on top of the different access times for the different levels of cache
jnthn Anyway, next up is looking into getting output sped up 12:26
(I'll look at proc stuff a little later in the week.) 12:27
nwc10 one might win from this starting point just by making sure all the structs don't have holes
and (second order churn creation) whether the hot things are close enough to be on the same cache line
samcv i gotta go to bed all. night o/
jnthn 'night, samcv o/ 12:28
nwc10 the latter part of that sounds like crazy premature optimisation talk
jnthn Putting things that are related to each other next to each other in structs is generally good for code quality too :)
12:32 zakharyas joined
brrt samcv: can reproduce 12:34
pointer to past fromspace
dogbert17_ are there any cheap wins to be had on the output side of things?
jnthn dogbert17_: Yes :) 12:37
But first I need to do some refactors so we can get them. :)
dogbert17_ cool 12:43
m: say (((1,2,3),(4,5,6)),((7,8,9),(10,11,12))).tree(*.self, *.reverse, *.rotate) # TimToady on a roll 12:44
camelia (((5 6 4) (2 3 1)) ((11 12 10) (8 9 7)))
samcv jnthn, we can just add a new op. it's called yes
jnthn :P
samcv brrt, what does pointer to past fromspace mean? it has an incorrect pointer? 12:45
anyway i should be asleep :P night
jnthn Yeah, that tends to mean an outdated pointer was found 12:46
brrt uhuh
don't ask me to debug it further, i don't know :-) 12:47
jnthn Usually due to a missing MVMROOT
Though there can be other causes
timotimo can we please add an nqp::quine op? writing a quine in perl6 is too many characters :P 12:55
13:56 domidumont joined
[Coke] My only request is that any new nqp ops must have docs. :P 13:58
14:02 domidumont joined 14:47 geekosaur joined 15:31 domidumont joined 15:55 zakharyas joined 15:57 zakharyas joined 16:19 brrt joined 16:23 brrt1 joined 16:38 dogbert17 joined 16:57 ilmari joined 18:10 dogbert11 joined 18:14 ilmari_ joined 18:15 sivoais_ joined 18:23 timotimo joined, JimmyZ joined 19:04 domidumont joined 19:16 AlexDaniel joined 19:44 synopsebot6 joined
samcv morning 20:49
[Coke]++ on new ops having docs
21:10 nwc10 joined 21:21 arnsholt joined
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/06/19/...l-6-books/ 21:26
21:26 yoleaux joined
jnthn \o/ 21:28
lizmat++
samcv well i figured out how i'm going to fix reversing certain collation levels and making sure secondary/tertiary levels don't override primary 21:43
and will be easier than I thought. i thought i'd have to add some logic to do it in stages, but in fact i can just reverse the collation values for string a and string b for that codepoint
so instead of: 750 + 24 + 5 (normal) let's say we reverse the secondary level: 750 - 24 + 5 21:44
jnthn I'm not on the perl6-users mailing list, but re the question on SIGPIPE being ignored by default, commit 2c5974bc11938 did it and the message explains why.
samcv so that can cause a case where we end up ignoring the primary level, if the primary level of string a and string b are similar for that codepoint. so all i'm going to do is just *reverse* the collation values. put the values for a onto b and b onto 21:45
always nice when you think of simple solutions
21:45 yoleaux joined
jnthn :-) 21:45
Simpicity takes time and effort
samcv :-) 21:46
i will have to now figure out how to get the values into the correct places. but that's often the issue is it not 21:47
places at the right time etc
err actually that won't work. but it will be okay. this should at least help me get to the next stage aka collation extreme mode 22:02
still helped me think of something else 22:03
Geth MoarVM: bd2576e824 | (Samantha McVey)++ | src/strings/unicode_ops.c
[unicode-grant] store collation levels in an array not a single value

This fixes a bug where reversing secondary and tertiary levels could cause the primary level to be overridden as a result. The Unicode Collation Algorithm makes it very clear that this is not acceptable functionality. The bug could cause ‘1’ to be sorted below the ‘a’ due to their primary collation values being similar; ... (10 more lines)
22:55
MoarVM: ee49c831d0 | (Samantha McVey)++ | src/strings/unicode_ops.c
[unicode-grant] handle if quaternary is both enabled and reversed

If quaternary is both enabled AND reversed, then we must make sure that these two cancel each other out and we return 0 if all the collation values are so far equal.
samcv yay. that's nice and fixed
jnthn samcv++ 23:02
'night o/