Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-06-19

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

All times shown according to UTC.

Time Nick Message
01:48 ilbot3 joined #moarvm
01:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
05:20 domidumont joined #moarvm
05:25 domidumont joined #moarvm
05:51 Geth ¦ MoarVM: b34c374865 | (Samantha McVey)++ | src/strings/unicode_ops.c
05:51 Geth ¦ MoarVM: [unicode-grant] unicmp_s can now reverse any of the collation levels
05:51 Geth ¦ MoarVM:
05:51 Geth ¦ MoarVM: This changes the collation_mode argument to the unicmp_s op.
05:51 Geth ¦ MoarVM:
05:51 Geth ¦ MoarVM: It soon became clear that there was no way to reverse the sorting of
05:51 Geth ¦ MoarVM: certain collation levels. To solve this, the collation_mode argument
05:51 Geth ¦ MoarVM: had to be changed.
05:51 Geth ¦ MoarVM: <…commit message has 16 more lines…>
05:51 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b34c374865
05:51 Geth ¦ MoarVM: cc27eebf2e | (Samantha McVey)++ | src/strings/unicode_ops.c
05:51 Geth ¦ MoarVM: [unicode-grant] handle additional possible cases in collation
05:51 Geth ¦ MoarVM:
05:51 Geth ¦ MoarVM: This change should handle cases where the a collation value
05:51 Geth ¦ MoarVM: and b collation values match, and make sure we properly continue
05:51 Geth ¦ MoarVM: through the string.
05:51 Geth ¦ MoarVM:
05:51 Geth ¦ MoarVM: We also make sure to handle matching strings except for length.
05:51 Geth ¦ MoarVM: If we have reversed quaternary enabled, we want to return
05:51 Geth ¦ MoarVM: the 1 if string a is longer than string b.
05:51 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/cc27eebf2e
06:11 domidumont joined #moarvm
07:39 domidumont joined #moarvm
07:43 zakharyas joined #moarvm
07:51 Voldenet joined #moarvm
07:51 Voldenet joined #moarvm
08:10 Voldenet joined #moarvm
08:11 Voldenet joined #moarvm
08:41 domidumont joined #moarvm
08:44 jnthn morning o/
08:46 domidumont joined #moarvm
08:51 Geth ¦ MoarVM/even-moar-jit: bc9d818d00 | (Bart Wiegmans)++ | 2 files
08:51 Geth ¦ MoarVM/even-moar-jit: Assign register types to live ranges
08:51 Geth ¦ MoarVM/even-moar-jit:
08:51 Geth ¦ MoarVM/even-moar-jit: Because a live range can describe multiple nodes, we check if their
08:51 Geth ¦ MoarVM/even-moar-jit: register types match.
08:51 Geth ¦ MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/bc9d818d00
08:52 nwc10 good *, jnthn
08:52 nwc10 *now* it's next week?
08:53 jnthn Apparently so
09:34 brrt joined #moarvm
09:46 domidumont joined #moarvm
10:05 zakharyas joined #moarvm
10:24 brrt good *!
10:26 nwc10 good *, brrt
10:28 jnthn o/ brrt
10:32 lizmat joined #moarvm
10:33 AlexDaniel joined #moarvm
10:36 samcv good *(next week/thisweek)
10:36 samcv good week
10:36 brrt ohai samcv
10:36 brrt and nwc10, jnthn
10:36 samcv hey!
10:54 Geth ¦ MoarVM: b334565164 | (Jonathan Worthington)++ | 2 files
10:54 Geth ¦ MoarVM: Handle value use decrements in instruction delete.
10:54 Geth ¦ MoarVM:
10:54 Geth ¦ MoarVM: Rather than having them done ad-hoc in a couple of places, and
10:54 Geth ¦ MoarVM: forgotten about in others.
10:54 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b334565164
11:01 AlexDaniel joined #moarvm
11:08 Geth ¦ MoarVM: 0837bd3257 | (Jonathan Worthington)++ | 3 files
11:08 Geth ¦ MoarVM: When deleting a BB, decrement instruction usages.
11:08 Geth ¦ MoarVM:
11:08 Geth ¦ MoarVM: So that we may be able to delete more instructions.
11:08 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0837bd3257
11:08 Geth ¦ MoarVM: 9ece693fb8 | (Jonathan Worthington)++ | src/spesh/optimize.c
11:08 Geth ¦ MoarVM: Move instruction deletion later.
11:08 Geth ¦ MoarVM:
11:08 Geth ¦ MoarVM: So that more usage counts might have gone to zero, allowing further
11:08 Geth ¦ MoarVM: deletions.
11:08 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/9ece693fb8
11:11 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 https://stackoverflow.com/questions/44623955/how-would-i-go-about-using-set-or-setty-to-store-unique-arrays
11:13 jnthn When I read the question I actually thought of either some wrapper around Array or some subclass of it :)
11:13 jnthn The mixin does that fine
11:14 jnthn With the caveat that WHICH is still a bit in flux
11:15 jnthn lunch; bbiab
11:19 samcv oh guys did you ever figure out what that segfault was. and is it related to my segfault?
11:20 samcv brrt, any idea ? it seems to die in garbage collectiong https://gist.github.com/samcv/9f7d8820cb9e56d14abecd9aaf88b6e2
11:20 samcv and it only crashes if MoarVM is compiled with debugging
11:24 samcv actually now i have it crashing with debugging off :P
11:24 samcv in any case there is a bug :P
11:25 samcv and it always crashes after the exact same number of seconds of running
11:25 brrt well, that's something
11:25 lizmat if there's a way to have your processor run slower, does it still crash at the same time?
11:25 brrt i really haven't looked at it tbh
11:26 brrt 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
11:26 brrt $your-favorite-debugger
11:26 samcv you can reproduce it easily
11:26 brrt are you on linux or on mac?
11:26 samcv just clone https://github.com/samcv/perl6-Font-QueryInfo
11:26 samcv linux
11:26 brrt hmm, so, i'm not
11:26 samcv clone the project. then run ./examples/*.p6
11:26 brrt not here anyway
11:27 samcv would be curious if it happens on os x
11:27 brrt sure, i'll try it out
11:27 samcv command line arg is a folder with 30+ fonts in it
11:27 samcv 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
11:28 samcv gets through 72-73 font files before crashing
11:29 samcv 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 samcv so at least that is nice, how reproducible it is for me
11:30 brrt uhuh
11:30 brrt i'll try it out :-)
11:30 brrt i need to get my rakudo up to date again, though
11:30 samcv how old is it?
11:32 brrt i'm often a month behind or so
11:33 brrt because it's inconvenient to merge in master in between my own series of commits
11:33 samcv well you can try it
11:33 samcv it may crash
11:34 brrt buidling now
11:34 samcv k
12:13 jnthn m: say 10133107324 - 9989918603
12:13 camelia rakudo-moar 6b634a: OUTPUT: «143188721␤»
12:13 lizmat 143M, not bad  :-)
12:14 jnthn Yeah, that's off the million lines benchmark
12:14 jnthn And arising from the optimizations I committed earlier today
12:17 dogbert17_ is the program quicker than P5 now?
12:18 jnthn Not quite
12:18 jnthn But it's rather close
12:19 jnthn Perl 5 uses 9,111,729,472 instructions to our 9,989,918,603
12:23 jnthn 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!
12:24 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. :))
12:24 jnthn (But they need spesh work and I want to figure out the bigger picture direction of spesh first.)
12:24 timotimo dogbert17_: except instruction counts are rather precise
12:25 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
12:25 timotimo of course
12:25 timotimo this is only about instructions executed, but different instructions can have wildly different costs
12:25 timotimo on top of the different access times for the different levels of cache
12:26 jnthn Anyway, next up is looking into getting output sped up
12:27 jnthn (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
12:27 nwc10 and (second order churn creation) whether the hot things are close enough to be on the same cache line
12:27 samcv i gotta go to bed all. night o/
12:28 jnthn 'night, samcv o/
12:28 nwc10 the latter part of that sounds like crazy premature optimisation talk
12:28 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 #moarvm
12:34 brrt samcv: can reproduce
12:34 brrt pointer to past fromspace
12:34 dogbert17_ are there any cheap wins to be had on the output side of things?
12:37 jnthn dogbert17_: Yes :)
12:37 jnthn But first I need to do some refactors so we can get them. :)
12:43 dogbert17_ cool
12:44 dogbert17_ 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 rakudo-moar 6b634a: OUTPUT: «(((5 6 4) (2 3 1)) ((11 12 10) (8 9 7)))␤»
12:44 samcv jnthn, we can just add a new op. it's called yes
12:44 jnthn :P
12:45 samcv brrt, what does pointer to past fromspace mean? it has an incorrect pointer?
12:45 samcv anyway i should be asleep :P night
12:46 jnthn Yeah, that tends to mean an outdated pointer was found
12:46 brrt uhuh
12:47 brrt don't ask me to debug it further, i don't know :-)
12:47 jnthn Usually due to a missing MVMROOT
12:47 jnthn Though there can be other causes
12:55 timotimo can we please add an nqp::quine op? writing a quine in perl6 is too many characters :P
13:56 domidumont joined #moarvm
13:58 [Coke] My only request is that any new nqp ops must have docs. :P
14:02 domidumont joined #moarvm
14:47 geekosaur joined #moarvm
15:31 domidumont joined #moarvm
15:55 zakharyas joined #moarvm
15:57 zakharyas joined #moarvm
16:19 brrt joined #moarvm
16:23 brrt1 joined #moarvm
16:38 dogbert17 joined #moarvm
16:57 ilmari joined #moarvm
18:10 dogbert11 joined #moarvm
18:14 ilmari_ joined #moarvm
18:15 sivoais_ joined #moarvm
18:23 timotimo joined #moarvm
18:23 JimmyZ joined #moarvm
19:04 domidumont joined #moarvm
19:16 AlexDaniel joined #moarvm
19:44 synopsebot6 joined #moarvm
20:49 samcv morning
20:49 samcv [Coke]++ on new ops having docs
21:10 nwc10 joined #moarvm
21:21 arnsholt joined #moarvm
21:26 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2017/06/19/2017-25-perl-6-books/
21:26 yoleaux joined #moarvm
21:28 jnthn \o/
21:28 jnthn lizmat++
21:43 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 samcv 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
21:44 samcv 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.
21:45 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 samcv always nice when you think of simple solutions
21:45 yoleaux joined #moarvm
21:45 jnthn :-)
21:45 jnthn Simpicity takes time and effort
21:46 samcv :-)
21:47 samcv 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 samcv places at the right time etc
22:02 samcv 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:03 samcv still helped  me think of something else
22:55 Geth ¦ MoarVM: bd2576e824 | (Samantha McVey)++ | src/strings/unicode_ops.c
22:55 Geth ¦ MoarVM: [unicode-grant] store collation levels in an array not a single value
22:55 Geth ¦ MoarVM:
22:55 Geth ¦ MoarVM: This fixes a bug where reversing secondary and tertiary levels could
22:55 Geth ¦ MoarVM: cause the primary level to be overridden as a result. The Unicode
22:55 Geth ¦ MoarVM: Collation Algorithm makes it very clear that this is not acceptable
22:55 Geth ¦ MoarVM: functionality. The bug could cause ‘1’ to be sorted below
22:55 Geth ¦ MoarVM: the ‘a’ due to their primary collation values being similar;
22:56 Geth ¦ MoarVM: <…commit message has 10 more lines…>
22:56 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/bd2576e824
22:56 Geth ¦ MoarVM: ee49c831d0 | (Samantha McVey)++ | src/strings/unicode_ops.c
22:56 samcv yay. that's nice and fixed
22:56 Geth ¦ MoarVM: [unicode-grant] handle if quaternary is both enabled and reversed
22:56 Geth ¦ MoarVM:
22:56 Geth ¦ MoarVM: If quaternary is both enabled AND reversed, then we must make sure
22:56 Geth ¦ MoarVM: that these two cancel each other out and we return 0 if all the
22:56 Geth ¦ MoarVM: collation values are so far equal.
22:56 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ee49c831d0
23:02 jnthn samcv++
23:02 jnthn 'night o/

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