Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-03-16

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:09 buggable joined #perl6-dev
00:30 Geth ¦ rakudo/nom: 79bb1794a8 | (Elizabeth Mattijsen)++ | src/core/Str.pm
00:30 Geth ¦ rakudo/nom: Make Str.WHICH about 1.8x faster
00:30 Geth ¦ rakudo/nom:
00:30 Geth ¦ rakudo/nom: If it is not a subclass of Str
00:30 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/79bb1794a8
00:31 timotimo neat
00:31 lizmat should make Sets/Bags/ and other stuff faster when using with strings
00:32 timotimo yes yes!
00:32 timotimo very nice, indeed
00:32 IOninja :o
00:32 timotimo those are common use-cases, me thinks
00:47 * lizmat has seen enough election results and goes to bed
00:47 lizmat good night, #perl6-dev!
00:48 timotimo \o/
02:42 Geth ¦ roast: MasterDuke17++ created pull request #254: Correct tests of (over|under)flow and assignment
02:42 Geth ¦ roast: review: https://github.com/perl6/roast/pull/254
02:49 ilbot3 joined #perl6-dev
02:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
04:13 brrt joined #perl6-dev
04:17 vendethiel joined #perl6-dev
04:58 cognominal joined #perl6-dev
04:59 vendethiel joined #perl6-dev
06:19 stmuk_ joined #perl6-dev
06:46 RabidGravy joined #perl6-dev
06:59 Geth ¦ roast: d7c63caaf6 | usev6++ | S02-magicals/KERNEL.t
06:59 Geth ¦ roast: [JVM] Skip newly failing tests for signal handling
06:59 Geth ¦ roast:
06:59 Geth ¦ roast: Since rakudo commit 85743228e0 calling 'KERNEL.signal(SIGHUP)' dies
06:59 Geth ¦ roast: with 'Type check failed for return value; expected ?:? but got Int (Int)'.
06:59 Geth ¦ roast:
06:59 Geth ¦ roast: We already see that error elsewhere for rakudo-j, so I think said
06:59 Geth ¦ roast: commit is fine for rakudo-j -- it just uncovered an existing bug.
06:59 Geth ¦ roast: review: https://github.com/perl6/roast/commit/d7c63caaf6
07:38 brrt joined #perl6-dev
07:42 lizmat joined #perl6-dev
08:24 dct joined #perl6-dev
08:44 brrt joined #perl6-dev
09:01 Guest58202 joined #perl6-dev
09:13 [Tux] This is Rakudo version 2017.02-254-g79bb1794a built on MoarVM version 2017.02-39-gd7caeba3
09:13 [Tux] csv-ip5xs        3.227
09:13 [Tux] test            12.387
09:13 [Tux] test-t           5.037 - 5.098
09:13 [Tux] csv-parser      12.854
09:42 Geth ¦ rakudo/nom: 65b0040841 | (Elizabeth Mattijsen)++ | 12 files
09:42 Geth ¦ rakudo/nom: Streamline .WHICH methods where possible
09:42 Geth ¦ rakudo/nom:
09:42 Geth ¦ rakudo/nom: - don't use .^name unless needed
09:42 Geth ¦ rakudo/nom: - makes .WHICH up to 1.8x as fast
09:42 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/65b0040841
09:43 Geth ¦ roast: 4fbda8da12 | (Elizabeth Mattijsen)++ | S32-container/buf.t
09:43 Geth ¦ roast: Test::like doesn't take ObjAt, so stringify
09:43 Geth ¦ roast: review: https://github.com/perl6/roast/commit/4fbda8da12
09:45 lizmat appears that S32-container/buf.t is not in 6.c-errata ?
09:45 lizmat afk&
10:02 brrt joined #perl6-dev
10:04 IOninja lizmat: yeah, that one just has my coverage work a few month ago.
10:04 IOninja *from
10:07 IOninja lizmat: so, are you happy with election results?
10:07 astj joined #perl6-dev
10:13 jnthn Hm, the method indices isn't doc'd...I wonder if it's tested
10:14 jnthn m: say "fooood".indices("o")
10:14 camelia rakudo-moar 65b004: OUTPUT: «(1 2 3 4)␤»
10:14 IOninja jnthn: it is
10:14 jnthn OK, then just a doc issue
10:15 IOninja S32-str/indices.t
10:15 jnthn Also, Seq.is-ready exists but is seeminlgy never called
10:15 jnthn It's also not doc'd
10:15 jnthn Nor tested
10:15 jnthn method is-ready(Seq:D:) { $!iter.DEFINITE }
10:15 jnthn Odd, not sure how you'd get a Seq where that's not the case
10:15 IOninja not tested
10:16 jnthn And we don't throw away the iterator when we're done interating
10:16 jnthn Maybe it's a left-behind
10:16 jnthn I don't imagine it's useful
10:21 jnthn heh, TIL about https://docs.perl6.org/routine/repeated
10:23 samcv hmm
10:23 samcv non-unique
10:24 travis-ci joined #perl6-dev
10:24 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Streamline .WHICH methods where possible
10:24 travis-ci https://travis-ci.org/rakudo/rakudo/builds/211676107 https://github.com/rakudo/rakudo/compare/79bb1794a8b6...65b00408416e
10:24 travis-ci left #perl6-dev
10:24 buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
10:25 IOninja t/04-nativecall/08-callbacks.t
10:30 samcv i forget what WHICH is used extensively in. but it's used in native arrays right?
10:30 IOninja set/bag/mix use 'em
10:31 IOninja extensively
10:31 samcv would be nice if buggable recognized more things. like this had `t/04-nativecall/08-callbacks.t ........... Failed 5/8 subtests`
10:31 samcv i thought native arrays too, but i could be confusing it with another thing
10:32 samcv buggable, sauc
10:32 samcv buggable, source
10:32 buggable samcv, See: https://github.com/zoffixznet/perl6-buggable
10:32 IOninja It's this plugin: https://github.com/zoffixznet/perl6-buggable/blob/master/lib/Buggable/Plugin/TravisWatcher.pm6
10:33 samcv yeah looking at it now
10:34 IOninja that class
10:34 IOninja that class on line 23 looks suspicious to me, since classes aren't closures I think but it closes over +@failed
10:36 astj joined #perl6-dev
10:45 samcv ok gonna have a pr. not sure about the class tho, but adding test failure detection
10:46 samcv just gotta install missing modules
10:46 geekosaur joined #perl6-dev
10:53 IOninja samcv: so what's up with your grant? Did they take it?
10:53 samcv i sent it, they said a date hadn't been set but should be sometime in march
10:54 IOninja OK
10:55 samcv IOninja, ok PR sent
11:01 IOninja Don't like it. It'll just report 1 failure. So in IRC we'll think just 1 test file failed ("oh that one flops all the time"), but in reality they all might be failing.
11:01 * IOninja & # work
11:02 IOninja Also on line 75 it doesn't look like .test-fail is being set: $state.test-fail if $job<log>
11:02 samcv IOninja, it counts them though?
11:02 samcv ah true
11:02 samcv will fix
11:02 samcv Failed {self.test-fail} test(s)"
11:03 samcv i think i'll maybe make it record the failures and if there's only one, say what test failure it was
11:03 IOninja Ah. OK. Would be cool if it included 1 test file name along with the count of all failed tests, because oftem it's just 1 test file fails
11:03 * IOninja will take a look at this after work
11:03 * IOninja &
11:04 samcv gonna have an array of failures and at minimum just give out one
11:04 samcv otherwise say 2 or 3 or however many failed
11:05 jnthn fwiw, I'm currently going through all the methods that need consideration for hyper/race semantics and working out what those are: https://docs.google.com/spreadsheets/d/1kpSb8LoskHSbM1FQvWdQ269rlRkU8vh5A_ElpN3Qay4/edit?usp=sharing
11:10 samcv IOninja, ok updated version will say the test that failed if there's only one failed test
11:20 brrt joined #perl6-dev
11:25 jnthn m: say (1,2,3,4).any
11:25 camelia rakudo-moar 65b004: OUTPUT: «any(1, 2, 3, 4)␤»
11:25 jnthn m: say (1,2,3,4).Seq.any
11:25 camelia rakudo-moar 65b004: OUTPUT: «any(1, 2, 3, 4)␤»
11:25 IOninja It's a bit off... mostly because all previous failures are 1-per-job (e.g. did we timeout), but these are more finegrained. And right now the code pushes just 1 failed test file per job. So if two jobs both fail 1 test it'll report 2 failures, but if 1 job fails all its tests, it'll report just the first one that matched. This probably needs to counters: (1) how many jobs have failing tests; (2) which
11:25 IOninja files failed. The count can be an int and files can be a SetHash. At the end, report how many jobs have failing tests and how many test files failed (and if the SetHash has one file, tell what it is)
11:32 geekosaur joined #perl6-dev
11:32 samcv IOninja, why will it only report the first that matches, oh i see because it doesn't match all of them
11:32 samcv yeah
11:34 IOninja If someone doesn't want normalization, can they avoid it and still work with a stringy thing?
11:34 IOninja If not, will that be possible when the user-space encoder/decoder is implemented?
11:35 samcv atm no IOninja, unless you use utf8-c8
11:35 IOninja samcv: but will it be possible in the future?
11:35 geekosaur joined #perl6-dev
11:36 samcv no clue. I mean there's a Uni object that doesn't normalize, but you can't do stringy functions/methods on it
11:36 IOninja samcv: the goal is to roundtrip a file
11:36 samcv well except a few
11:36 samcv you can roundtrip a file with utf8-c8
11:36 IOninja OK
11:36 IOninja Thanks
11:38 lizmat IOninja: re election, could have been better, but also could have been *way* worse, so you could say I'm happy with the result  :-)
11:39 IOninja samcv: but if I do any string operation and it'd remain un-normalazied? say... a regex substitution to replace all "cat" with "mat"?
11:39 IOninja lizmat: cool :)
11:39 samcv yeah IOninja yeah
11:39 samcv it will
11:39 IOninja sweet
11:53 jnthn lunch; bbiab
12:11 IOninja Hmmm... On January release I was planning to add separate t/spectest.data for each language version... On Feb. I wanted to prettify rakudo.perl6.org for next release. Still not done anything.
12:11 IOninja I need to install a timer on IRC :P Only use it a few minutes a day.
12:11 IOninja Be more productive.
12:30 samcv night everyone o/
12:31 timotimo night samcv
12:33 Geth ¦ rakudo: FCO++ created pull request #1040: Adding my name on CREDITS
12:33 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1040
12:34 Geth ¦ rakudo/nom: 0035095cd8 | (Fernando Correa de Oliveira)++ | CREDITS
12:34 Geth ¦ rakudo/nom: Adding my name on CREDITS
12:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0035095cd8
12:34 Geth ¦ rakudo/nom: 21d1f77a7d | (Zoffix Znet)++ | CREDITS
12:34 Geth ¦ rakudo/nom: Merge pull request #1040 from FCO/nom
12:34 Geth ¦ rakudo/nom:
12:34 Geth ¦ rakudo/nom: Adding my name on CREDITS
12:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/21d1f77a7d
12:36 * jnthn back
12:41 brrt left #perl6-dev
12:53 [Coke] o/
13:18 travis-ci joined #perl6-dev
13:18 travis-ci Rakudo build passed. Zoffix Znet 'Merge pull request #1040 from FCO/nom
13:18 travis-ci https://travis-ci.org/rakudo/rakudo/builds/211727870 https://github.com/rakudo/rakudo/compare/65b00408416e...21d1f77a7db2
13:18 travis-ci left #perl6-dev
13:27 jnthn Semantics are hard. :)
13:27 jnthn (But better to get them settled on before diving in to code. :-))
13:27 timotimo ugh, yeah
13:29 jnthn All kinds of little things like, should pick($n)/roll($n) leave parallel processing
13:30 jnthn (Probably yes)
13:31 timotimo they can hardly work properly without knowing how many items there are in total
13:32 jnthn Well, that's not the whole of the story
13:32 jnthn It's whether you get back a Seq or a HyperSeq
13:32 timotimo ah
13:33 timotimo that's a good point, yeah
13:33 AlexDaniel joined #perl6-dev
13:33 jnthn I mean, .sort also needs to see all the elements but doesn't kick you out of parallel processing mode
13:35 jnthn Just coloring things by result kind made me re-consider a bunch of things :)
14:16 jnthn Phew, down to 12 methods left to consider
14:16 jnthn This is a heck of a task, though I guess whoever docs all this will be glad of this :)
14:36 IOninja That was fast :)
14:42 jnthn m: say (6,1,5,9,3).Seq.minmax.perl
14:42 camelia rakudo-moar 21d1f7: OUTPUT: «1..9␤»
14:42 jnthn https://docs.perl6.org/routine/minmax#class_Any says it returns a List, not a Range, however
14:43 jnthn m: say (1..9).minmax.perl
14:43 camelia rakudo-moar 21d1f7: OUTPUT: «(1, 9)␤»
14:44 jnthn But on a Range it seems to do what it says
14:44 jnthn Bit odd
14:45 IOninja s: (6,1,5,9,3).Seq, 'minmax', \()
14:45 SourceBaby IOninja, Sauce is at https://github.com/rakudo/rakudo/blob/21d1f77/src/core/Any-iterable-methods.pm#L1302
14:47 buggable joined #perl6-dev
14:47 IOninja https://travis-ci.org/rakudo/rakudo/builds/211676107
14:47 buggable [travis build above] ✓ All failures are due to timeout (0), missing build log (0), GitHub connectivity (0), or failed make test (1). Across all jobs, only 04-nativecall/08-callbacks.t test file failed.
14:47 IOninja neat. samcv++
14:51 IOninja m: (1..3).Str.say
14:51 camelia rakudo-moar 21d1f7: OUTPUT: «1 2 3␤»
14:51 IOninja m: (1, 2, 3).Seq.Str.say
14:51 camelia rakudo-moar 21d1f7: OUTPUT: «1 2 3␤»
14:52 IOninja jnthn: looks like that behaviour is tested in 6.c-errata too.
14:52 IOninja is (^10).minmax,          '0 9',   …    is((@a minmax @b), 1..9
14:53 jnthn But is the list case tested in 6.c-errata
14:53 jnthn (That is where we call .minmax on a Seq or List)
14:53 IOninja is ((1..10).minmax: { ($_-3) * ($_-5) }), 4..10
14:53 IOninja ohj wait
14:54 IOninja is @array.minmax,  -9..7
14:54 IOninja That one?
14:54 jnthn yeah but...uh...the first one looks like there's even more inconsistency :S
14:54 IOninja Indeed.
14:54 jnthn m: dd (^10).minmax
14:54 camelia rakudo-moar 21d1f7: OUTPUT: «(0, 9)␤»
14:55 IOninja m: dd (^10).minmax: {$_}
14:55 camelia rakudo-moar 21d1f7: OUTPUT: «0..9␤»
14:55 jnthn m: dd (1..10).minmax: { ($_-3) * ($_-5) }
14:55 camelia rakudo-moar 21d1f7: OUTPUT: «4..10␤»
14:55 jnthn :S
14:55 IOninja :}
14:55 jnthn That's...a bit odd
14:55 IOninja $ grep -R minmax | wc -l
14:55 IOninja 152
14:56 IOninja Quite a bit of tests for it too
14:58 IOninja Majority test expect a Range result though. Looks like only 6 tests in S02-types/range.t expect a.... well, if you read the tests literally... a string with two numbers
14:58 IOninja (it's an `is` test, so I'm guessing the expect a List or something)
15:00 IOninja m: (-Inf..Inf).minmax.say
15:00 camelia rakudo-moar 21d1f7: OUTPUT: «(-Inf Inf)␤»
15:00 IOninja m: (Inf..-Inf).minmax.say
15:00 camelia rakudo-moar 21d1f7: OUTPUT: «(Inf -Inf)␤»
15:00 IOninja Seems busted too
15:00 jnthn m: dd (5, 3, 1, 9, 3, 9, 1, 2).minpairs
15:00 camelia rakudo-moar 21d1f7: OUTPUT: «Array @found = [2 => 1, 6 => 1]␤»
15:00 jnthn m: dd (5, 3, 1, 9, 3, 9, 1, 2).maxpairs
15:00 camelia rakudo-moar 21d1f7: OUTPUT: «Array @found = [3 => 9, 5 => 9]␤»
15:02 jnthn Hmm, minapirs and maxpairs are also a bit LTA in so far as they only ever do numeric comparison
15:02 jnthn m: dd <a b z y>.minpairs
15:02 camelia rakudo-moar 21d1f7: OUTPUT: «Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏)␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
15:02 jnthn m: dd <a b z y>.min
15:02 camelia rakudo-moar 21d1f7: OUTPUT: «"a"␤»
15:02 jnthn m: dd <a b z y>.mx
15:02 camelia rakudo-moar 21d1f7: OUTPUT: «No such method 'mx' for invocant of type 'List'␤  in block <unit> at <tmp> line 1␤␤»
15:02 jnthn m: dd <a b z y>.max
15:02 camelia rakudo-moar 21d1f7: OUTPUT: «"z"␤»
15:05 IOninja .tell samcv buggable's new output: https://irclog.perlgeek.de/perl6-dev/2017-03-16#i_14275663
15:05 yoleaux2 IOninja: I'll pass your message to samcv.
15:12 jnthn Phew, down to 4 :)
15:24 IOninja .tell samcv seems using utf8-c8 doesn't work for this guy? I think what he's trying to do is get a string without graphemes or normalization? https://twitter.com/wonkden/status/842388423012974593
15:24 yoleaux2 IOninja: I'll pass your message to samcv.
15:25 jnthn IOninja: That won't happen until we fully support Uni
15:25 jnthn Str will always be grapheme level
15:26 jnthn utf8-c8 just introduces synthetics so we can reproduce byte sequences and non-NFC sequences
15:26 timotimo weren't we meant to get synthetics for utf8-c8 if normalization would ahve changed stuff?
15:26 jnthn It'll still produce multi-codepoint graphemes for all the cases that will round-trip
15:27 jnthn timotimo: Yes, we do
15:28 IOninja jnthn: Ah, ok, so it'll be possible in the future? 'cause this discussion got started with my saying "we're working on it" and the dude had different info on the topic
15:28 samcv IOninja, just woke up for a sec, but if he writes that string out to a file using utf8-c8 encoding it will be unchanged
15:28 yoleaux2 15:05Z <IOninja> samcv: buggable's new output: https://irclog.perlgeek.de/perl6-dev/2017-03-16#i_14275663
15:28 yoleaux2 15:24Z <IOninja> samcv: seems using utf8-c8 doesn't work for this guy? I think what he's trying to do is get a string without graphemes or normalization? https://twitter.com/wonkden/status/842388423012974593
15:28 IOninja samcv: ah ok.
15:29 jnthn Right, the point of utf8-c8 is round-tripping stuff like filenames and envvars
15:29 IOninja .oO( not sure if I work too many hours or samcv sleeps for too few hours... )
15:29 samcv my sleep schedule is weird
15:29 timotimo samcv: been there, done that :)
15:29 samcv that's why i'm going back to sleep though
15:29 geekosaur not as weird as mine, I;d suspect
15:29 samcv ;)
15:29 geekosaur (not been able to sleep yet in fact)
15:29 jnthn If you want to work at codepoint level, that's what Uni is for.
15:30 jnthn The main sticking point being that Uni is decidedly under-implemented and under-integrated.
15:30 timotimo right, we can't go from Blob to Uni without going through normalization ATM, right?
15:30 jnthn timotimo: Right, though that'd be one of the easier pieces to address in that all the plumbing is there for it :)
15:31 timotimo right. not sure what the API would look like for that
15:31 jnthn Presumably .decode('utf-8', :norm(Uni))
15:31 jnthn Where the default is :norm(Str)
15:32 jnthn And you would also pass NFC, NFD, NFKC, and NFKD
15:32 jnthn *could also
15:32 timotimo right. those are all types, too
15:32 jnthn Yeah
15:32 jnthn Str means NFG
15:32 IOninja timotimo: (re tweet) I think the point was to do stuff to the string as if it were a normal string as midpoint. Merely roundtripping... may as well just use binary :)
15:32 timotimo expected that
15:33 timotimo OK, so it should be a string with two graphemes there?
15:33 timotimo and it's currently four
15:34 jnthn Where is "there"?
15:34 IOninja I think so.
15:34 timotimo Buf.new(0x65, 0xcc, 0x81, 0x0a) gives e????xCC????x81
15:34 timotimo (plus a newline)
15:34 IOninja jnthn: https://twitter.com/wonkden/status/842388423012974593 more specifically: https://gist.github.com/cowens/1f72cffb2ec17d50fe923b74e38e6283
15:35 jnthn m: Buf.new(0x65, 0xcc, 0x81, 0x0a).decode('utf-8').chars.say
15:35 camelia rakudo-moar 21d1f7: OUTPUT: «2␤»
15:35 timotimo well, with utf8-c8
15:35 timotimo they want to keep the fact that it was e + combining thingie
15:35 jnthn Then they want to work at codepoint level and will need Uni
15:36 timotimo i don't think they want the e and its diacritic to be split when doing shits
15:36 timotimo and probably don't want to have to deal with the fact that it's multiple codepoints that are one grapheme
15:37 timotimo except maybe if we provide a module or builtins to work with graphemes as pieces of Uni on the Uni level
15:37 timotimo i.e. split 0x65, 0xcc, 0x81, 0x0a into 0x65, 0xcc81 (or whatever the codepoint actually is) and then 0x0a
15:38 jnthn Just because you've got an NFC/Uni/whatever doesn't mean we have to forget what graphemes are, just that you're going to pay O(n) instead of O(1)
15:38 timotimo oh, we'll provide stuff like .comb or .substr or something on Uni and have grapheme semantics there?
15:39 jnthn Yeah, we need to decide exactly what semantics we want in terms of return types there, but I think operations should have an associated level
15:40 timotimo that means every operation has a single defined level that it will always work on?
15:40 jnthn So .comb and .substr are grapheme level consistently, like .ords is codepoint level consistently
15:41 jnthn .comb on a Uni could thus give you back a bunch of Uni
15:41 jnthn Some of them maybe having multiple codepoints
15:41 timotimo will ords continue giving you only the ord of the base char on Uni, yeah?
15:41 jnthn .ords doesn't do that today on a Str
15:41 timotimo oh!
15:41 jnthn .ords is .NFC.list iirc
15:41 timotimo i've been doing too much nqp :D
15:42 timotimo ordat and such, for my json::fast
15:42 jnthn :)
15:45 timotimo IOninja: you don't even have to work at the byte level, though. you can work with codepoints and things will work out fine
15:46 jnthn timotimo: That's technically true, but in reality we don't support Uni well enough today for it to be practical ;)
15:49 jnthn Umm...are the semantics of nodemap actually meant to be any different to map?
15:49 jnthn Short of "doesn't support control operators"
15:49 jnthn Oh, and doesn't slip
15:54 jnthn Finally: https://docs.google.com/spreadsheets/d/1kpSb8LoskHSbM1FQvWdQ269rlRkU8vh5A_ElpN3Qay4/edit#gid=0
15:54 jnthn Review on that is welcome
15:54 jnthn I'll probably write a short blog post about it also
15:58 jnthn Actually will do that now otherwise I'll forget
15:58 jnthn Or get too tired
16:03 timotimo neato
16:03 timotimo been looking forward to a post :)
16:03 timotimo not as in "god damn it jnthn don't be lazy and post finally", more as in "those posts are always insightful and pleasant to read"
16:07 IOninja timotimo: noted
16:07 timotimo maybe i can even get a head start on the decoding thing
16:07 timotimo so we can at least get from bytes to Uni without normalization in the upcoming release
16:09 IOninja It's that easy to ad? :o
16:09 IOninja add
16:10 IOninja NeuralAnomaly: status
16:10 NeuralAnomaly IOninja, [✘] Next release will be in 1 day and 12 hours. Since last release, there are 57 new still-open tickets (2 unreviewed and 0 blockers) and 17 unreviewed commits. See http://perl6.fail/release/stats for details
16:11 IOninja man, I'm behind on the IO stuff /o\
16:11 timotimo we do have all the ops pulled apart that we need to individually control, so ... :)
16:15 IOninja neat
16:16 timotimo hm
16:20 timotimo i'm not actually sure how to go about this
16:20 timotimo i see i can configure a decoder, but that's currently only for newline translation yes/no
16:21 timotimo since the MVMDecodeStream has a Normalizer member, it's probably the right thing to make that configurable with the decoderconfigure op
16:25 timotimo probably saner to create a normalization mode that does nothing than to have a null pointer instead of a pointer to a normalizer
16:25 timotimo oh, actually, the normalizer is inline rather than behind a pointer anyway
16:26 timotimo oh, huh, the enum for that is picked so that its bits mean something
16:29 timotimo i mean, i can already hook up all other normalization forms, but creating the null normalization will be ... a bit of work :|
16:42 jnthn Here we go: https://6guts.wordpress.com/2017/03/16/considering-hyperrace-semantics/
16:49 IOninja jnthn: what are the semantics for .hyper/.race .&some-sub ?
16:49 IOninja .oO( delegates to .cache... )
16:50 jnthn That's just equivalent to some-sub(baah.hyper)
16:50 jnthn *blah
16:50 IOninja Ah
16:51 jnthn So, it's not a list operation (either parallel or sequential)
16:51 IOninja Right. I was thinking of ».&some-sub
16:51 IOninja Or ». anything
16:52 IOninja And methods that aren't on that list...
16:52 IOninja (maybe I should read the blog post instead of just looking at the spreadsheet :P)
16:53 jnthn I figure >>.foo boils down to .hyper.nodemap or .hyper.deepmap depending on if foo is nodal
16:53 jnthn And those two are defined
16:55 [Coke] jnthn: when I see "delegated to foo" it makes me wonder if that's a rakudo implementation detail or a language ... "requirement"
16:56 jnthn [Coke]: Somewhere between the two
16:56 jnthn [Coke]: It's at least a langauge requirement in so far as "semantics as if we delegated to foo"
16:57 [Coke] jnthn++
16:57 jnthn For most of the cases where I wrote that, it's actually a mirroring of what we already do for Seq today, fwiw.
17:05 IOninja jnthn: read everything and have just one comment: race.repeated switching to hyper mode seems to be unique among all others. Maybe they should terminate parallel instead; to avoid surprising behaviour?
17:06 jnthn IOninja: It's in common with .squish and .sort fwiw
17:06 * jnthn checks
17:06 IOninja Ah. Never mind then.,
17:06 jnthn And .kv
17:06 jnthn Note the color is significant
17:06 IOninja (I guess I didn't really read everything :P)
17:07 IOninja Oh, I just now noticed there are two blues
17:07 jnthn So all those in the right column that have blue instead of lilac of whatever color that is switch
17:07 IOninja Colorblind-unfriendly chart :)
17:07 jnthn All those on the right
17:07 jnthn d'oh
17:07 jnthn I deliberately didn't pick both red and green :P
17:08 IOninja :D
17:08 jnthn There's actually 5 of them though
17:08 jnthn Maybe blue and lilac are too close :)
17:09 IOninja I can see the difference if I look at my monitor on a 30° angle :)
17:09 IOninja Well, no matter. I didn't have any more comments :)
17:10 jnthn Alright, thanks for looking
17:18 jdv79 that's a bunch of cases...
17:20 jdv79 should be interesting to see the docs that attempt to explain all that:)
17:20 timotimo it's always easy to explain stuff as long as the logic behind the decision is sane
17:20 timotimo i'd be willing to believe jnthn used something sane and consistent for this work
17:31 lizmat joined #perl6-dev
17:38 Geth ¦ roast: FCO++ created pull request #255: #130610: Triangular reduce with &infix:<,> and a list of lists should…
17:38 Geth ¦ roast: review: https://github.com/perl6/roast/pull/255
17:38 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130610
17:39 Geth ¦ rakudo: FCO++ created pull request #1041: Fix #130610: Triangular reduce with &infix:<,> and a list of lists sh…
17:39 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1041
17:39 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130610
17:47 Geth ¦ roast: 61046c6f7f | (Fernando Correa de Oliveira)++ | S13-overloading/metaoperators.t
17:47 Geth ¦ roast: #130610: Triangular reduce with &infix:<,> and a list of lists shouldn't flatern (#255)
17:47 Geth ¦ roast: review: https://github.com/perl6/roast/commit/61046c6f7f
17:47 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130610
17:47 Geth ¦ rakudo/nom: 10f5f74452 | (Fernando Correa)++ | src/core/metaops.pm
17:47 Geth ¦ rakudo/nom: Fix #130610: Triangular reduce with &infix:<,> and a list of lists shouldn't flatern
17:47 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/10f5f74452
17:47 Geth ¦ rakudo/nom: d56501a65d | (Zoffix Znet)++ | src/core/metaops.pm
17:47 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130610
17:47 Geth ¦ rakudo/nom: Merge pull request #1041 from FCO/fix-130610
17:47 Geth ¦ rakudo/nom:
17:47 Geth ¦ rakudo/nom: Fix #130610: Triangular reduce with &infix:<,> and a list of lists sh…
17:47 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130610
17:47 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d56501a65d
17:51 cowens joined #perl6-dev
17:55 IOninja cowens: \o
17:55 IOninja long time
17:58 Geth ¦ roast: c30eb545b8 | (Zoffix Znet)++ | S13-overloading/metaoperators.t
17:58 Geth ¦ roast: Fix broken test
17:58 Geth ¦ roast:
17:58 Geth ¦ roast: It only passes right now because `is-deeply` fails to properly distinguish
17:58 Geth ¦ roast: a Seq from a list...
17:58 Geth ¦ roast: review: https://github.com/perl6/roast/commit/c30eb545b8
19:03 agentzh joined #perl6-dev
19:25 stmuk_ https://github.com/ugexe/Perl6-ecosystems/commits/master
19:26 stmuk_ last commit is removing Perl6::Parser
19:26 stmuk_ I guess a cron which readd shortly
19:27 stmuk_ wrong channel
19:28 RabidGravy :)
19:36 IOninja .tell lizmat some sort of code eval site is asking on twitter if "perl community wants to add support" on it.. Maybe Weekly-worthy material if someone wants to volunteer? https://twitter.com/replit/status/842457448208261122
19:36 yoleaux2 IOninja: I'll pass your message to lizmat.
19:46 lizmat .
19:46 yoleaux2 19:36Z <IOninja> lizmat: some sort of code eval site is asking on twitter if "perl community wants to add support" on it.. Maybe Weekly-worthy material if someone wants to volunteer? https://twitter.com/replit/status/842457448208261122
19:46 lizmat IOninja: noted  :-)
19:47 * lizmat waves from Cologne
19:48 jdv79 what is Cologne?
19:48 TimToady aka Köln
19:48 jnthn A nice-smelling place in Germany with a huge cathedral
19:48 TimToady used to be the tallest skyscraper in europe
19:48 jdv79 besides Kolsh
19:48 lizmat actually, the cathedral is like 300m from where I am  :-)
19:48 jdv79 a city smells nice?  that's a major feature?
19:49 lizmat 4711
19:49 moritz it doesn't actually, but there's parfume of the same name
19:49 lizmat https://en.wikipedia.org/wiki/4711
19:49 TimToady that was a smelly joke...
19:49 jnthn ;)
19:50 jdv79 indeed
19:50 jnthn I've changed train quite a few times in Cologne
19:50 * TimToady got there for the first time last year
19:51 TimToady (driving from amsterdam to rome...)
19:51 jnthn In summer some pub on the square put out a bunch of tables, so I could enjoy dinner looking at the cathedral while waiting :)
19:52 jnthn (The square with the cathedral being right outside of the main station)
19:55 jnthn Heh, it was there that I got of a sleeper train at like 6:30am and had an hour or so until my onward train, and found a bar having happy hour with discount beer. At 6:30am. o.O
19:55 jnthn *got off
20:12 IOninja lizmat, oops, I misunderstood. Turns out they're asking if we'd find the addition valuable not that they want a volunteer. I'll ask moritz to retweet on 6Feed instead: https://twitter.com/replit/status/842466109257273344?s=09
20:12 lizmat IOninja: understood
20:14 * moritz retweets
20:15 IOninja moritz++
20:27 RabidGravy Is there still a Cinema in Cologne station?
20:44 AlexDaniel joined #perl6-dev
20:45 IOninja b2gills: yeah the containerization looks iffy in triangle reduce; I'll take a look when I get home
20:46 IOninja also:
20:47 IOninja m: say WHAT [,] 1, 2
20:47 camelia rakudo-moar d56501: OUTPUT: «(List)␤»
20:47 IOninja m: say WHAT [\,] 1, 2
20:47 camelia rakudo-moar d56501: OUTPUT: «(Seq)␤»
20:47 IOninja inconsistent
20:47 b2gills m: say WHAT [,] [1, 2]
20:47 camelia rakudo-moar d56501: OUTPUT: «(List)␤»
20:49 b2gills Should definitely be a Seq, as its input could be a Seq
20:56 TimToady [\op] can usefully return results without reaching the end of its input; [op] cannot
20:56 TimToady there is no reason to make those consistent
20:56 b2gills I think the simplest/quickest fix for the itemization is to rebind @list to a new List each time through the for loop.
21:00 lizmat RabidGravy: I have *no* idea, and the people here neither
21:00 b2gills m: say WHAT [[&(->\a,\b{|(a,b)})]] 1,2,3,4
21:00 camelia rakudo-moar d56501: OUTPUT: «(Slip)␤»
21:00 lizmat decommute&
21:00 TimToady m: say [+] 1..*
21:00 camelia rakudo-moar d56501: OUTPUT: «Cannot resolve caller infix:<div>(Num, Int); none of these signatures match:␤    (Int:D \a, Int:D \b)␤    (int $a, int $b --> int)␤  in block <unit> at <tmp> line 1␤␤»
21:00 TimToady that's a weird one
21:05 jnthn .sum optimization gone wild, maybe?
21:05 IOninja It short-curcuits to sum which uses div on range with Inf endpoint
21:05 IOninja But.... thanks for reminding me of this ticket...
21:05 * IOninja digs
21:05 IOninja I wanna ask you about it
21:06 IOninja This one: https://rt.perl.org/Ticket/Display.html?id=128428#ticket-history
21:06 IOninja The spec says div is non-coercisive, which means it should work on all numerics and just not coerce. But our impl. exists only for Ints
21:06 IOninja The first example in the ticket is wrong. This is a good example:
21:06 IOninja m: say 2.5 mod 2.5
21:06 camelia rakudo-moar d56501: OUTPUT: «Cannot resolve caller infix:<div>(Rat, Rat); none of these signatures match:␤    (Int:D \a, Int:D \b)␤    (int $a, int $b --> int)␤  in block <unit> at <tmp> line 1␤␤»
21:07 IOninja Should that work?
21:07 IOninja Well, for that matter, should (Rat, Int) also work? or (Num, Int)?
21:07 IOninja s: ^0, 'sum', \()
21:07 SourceBaby IOninja, Sauce is at https://github.com/rakudo/rakudo/blob/d56501a/src/core/Range.pm#L636
21:08 IOninja m: say (2.5..2.5).int-bounds
21:08 camelia rakudo-moar d56501: OUTPUT: «Cannot determine integer bounds␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
21:08 IOninja m: say (2.5..Inf).int-bounds
21:08 camelia rakudo-moar d56501: OUTPUT: «Cannot determine integer bounds␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
21:08 IOninja m: say (1..Inf).int-bounds
21:08 camelia rakudo-moar d56501: OUTPUT: «(1 Inf)␤»
21:08 IOninja that's the bug with the say [+] 1..*
21:09 jnthn gotta be afk a little, bbiab
21:13 * IOninja compiles a fix for [+] 1..*
21:16 cognominal joined #perl6-dev
21:26 * IOninja stares at the fix, wondering why it's not working...
21:27 IOninja Because I only changed one multi
21:34 IOninja Well, I fixed the underlying issue...
21:35 IOninja ...now (1..*).sum hangs. I think I'll leave it hanging even though we can detect infinite ranges, because there are many infinite ranges we can't (sanely) detect.
21:36 IOninja m: say (1e20..1e20)[^10] # one example
21:36 camelia rakudo-moar d56501: OUTPUT: «(1e+20 1e+20 1e+20 1e+20 1e+20 1e+20 1e+20 1e+20 1e+20 1e+20)␤»
21:37 IOninja Oh wait
21:37 IOninja m: say (1e20..1e20).sum
21:37 camelia rakudo-moar d56501: OUTPUT: «100000000000000000000␤»
21:37 IOninja Aha. then throwing makes sense
21:38 IOninja Oh wait. Not throw. Just give Inf
21:38 IOninja Right?
21:38 IOninja What about NaN tho
21:38 IOninja m: say sum NaN..NaN
21:39 camelia rakudo-moar d56501: OUTPUT: «(timeout)»
21:40 ggoebel joined #perl6-dev
21:40 * IOninja leaves to devour limbs of warm dead bird
21:56 MasterDuke joined #perl6-dev
21:59 gfldex IOninja: :f seams to return False on files that exist but are unaccessible due to lack of permissions. That may be wrong (not quite sure myself).
22:02 IOninja noted
22:03 IOninja ZOFVM: Files=1228, Tests=132843, 125 wallclock secs (21.55 usr  3.26 sys + 2468.45 cusr 255.12 csys = 2748.38 CPU)
22:03 gfldex IOninja: it may be worth thinking about negatively matching :-methods. Like :na for not accessible
22:04 Geth ¦ rakudo/nom: 79f2681004 | (Zoffix Znet)++ | src/core/Range.pm
22:04 Geth ¦ rakudo/nom: Fix Range.int-bounds incorrectly succeeding with NaN and Int
22:04 Geth ¦ rakudo/nom:
22:04 Geth ¦ rakudo/nom: Currently, this makes things like Range.sum hang with things like
22:04 Geth ¦ rakudo/nom: (1..*); perhaps it can be made smarter.
22:04 Geth ¦ rakudo/nom:
22:04 Geth ¦ rakudo/nom: Bug find: https://irclog.perlgeek.de/perl6-dev/2017-03-16#i_14277939
22:04 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/79f2681004
22:05 IOninja gfldex: what do you mean negatively matching method?
22:06 Geth ¦ roast: ecf5959881 | (Zoffix Znet)++ | S02-types/range.t
22:06 Geth ¦ roast: Test Range.int-bounds with NaN/Infs endpoints
22:06 Geth ¦ roast:
22:06 Geth ¦ roast: Rakudo fix: https://github.com/rakudo/rakudo/commit/79f2681004
22:06 Geth ¦ roast: Bug find: https://irclog.perlgeek.de/perl6-dev/2017-03-16#i_14277939
22:06 Geth ¦ roast: review: https://github.com/perl6/roast/commit/ecf5959881
22:06 IOninja never mind. I understand.
22:07 IOninja Don't think we'll be adding anything like that. Since !, not, .not operators/method work well enough.
22:09 gfldex good point
22:11 gfldex IOninja: there seam to be IO methods that actually throw instead of returning Failure. If you agree that there shouldn't, I could hunt them down.
22:14 IOninja Already taken care of.
22:15 gfldex cool
22:16 jnthn I guess can smartmatch an IO against :!a also, as another way
22:18 TimToady joined #perl6-dev
22:18 IOninja mhm
22:18 IOninja "foo".IO ~~ :f & :r
22:18 IOninja "foo".IO ~~ :!f & :!r
22:35 MasterDuke IOninja, jnthn: i believe implementing some of the todos in these tests https://github.com/perl6/roast/pull/254 will break some in existing -errata. if the changes in the PR are correct (which i believe they are), then i assume they should be replicated for -errata?
22:41 IOninja MasterDuke: yeah. If the tests are wrong they should be fixed.
22:42 IOninja Wonder how all of stuff like this would work with "6.d is additive" paradigm :/
22:45 Geth ¦ roast: fa228b0a2a | (Zoffix Znet)++ | S13-overloading/metaoperators.t
22:45 Geth ¦ roast: Simplify test for RT130610
22:45 Geth ¦ roast:
22:45 Geth ¦ roast: There's a lot of inconsistencies in metaops, which are now reported
22:45 Geth ¦ roast: in a separate ticket[^1]. Fixing them would likely break this test,
22:45 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130610
22:45 Geth ¦ roast: so simplify it, and delegate detailed type/containerization tests
22:45 Geth ¦ roast: to the tests for that new ticket.
22:45 Geth ¦ roast:
22:45 Geth ¦ roast: [1] https://rt.perl.org/Ticket/Display.html?id=131009
22:45 Geth ¦ roast: review: https://github.com/perl6/roast/commit/fa228b0a2a
22:45 MasterDuke ok, should i go ahead and merge the PR and also do -errata? has anybody taken a look at them? i'd like a second pair of eyes if i'm going to be changing -errata
22:45 jnthn 6.c-errata exists for cases where th consensus is that it was a mistake in 6.c
22:46 jnthn *the
22:47 jnthn MasterDuke: Just glanced through the tests, they seem alright to me
22:47 MasterDuke jnthn: great, many thanks
22:47 jnthn Thanks for working on it :)
22:51 MasterDuke heh. fair warning, if i do anything more (i.e., attempt to actually add missing *_u ops) than a quick fix to mp_get_int64 you're going to be getting a lot of questions
22:51 jnthn :-)
22:51 jnthn That's fine, it'll mean more people who understand the relevant bits of the code :)
22:56 jnthn Sleep time; 'night o/
22:57 timotimo nite jnthn
23:03 IOninja \o
23:13 dct joined #perl6-dev
23:54 buggable joined #perl6-dev
23:54 Geth joined #perl6-dev
23:58 Geth ¦ roast: aa42c8340b | MasterDuke17++ | S02-types/int-uint.t
23:58 Geth ¦ roast: Correct tests of (over|under)flow and assignment (#254)
23:58 Geth ¦ roast:
23:58 Geth ¦ roast: Previously they checked that assigning a literal more than max or less
23:58 Geth ¦ roast: than min would (over|under)flow. However, the correct behavior is to
23:58 Geth ¦ roast: throw in those cases, but (over|under)flow if modifying the variable.
23:58 Geth ¦ roast: review: https://github.com/perl6/roast/commit/aa42c8340b

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary