Geth rakudo/nom: 79bb1794a8 | (Elizabeth Mattijsen)++ | src/core/Str.pm
Make Str.WHICH about 1.8x faster

If it is not a subclass of Str
00:30
timotimo neat 00:31
lizmat should make Sets/Bags/ and other stuff faster when using with strings
timotimo yes yes! 00:32
very nice, indeed
IOninja :o
timotimo those are common use-cases, me thinks
lizmat has seen enough election results and goes to bed 00:47
good night, #perl6-dev!
timotimo \o/ 00:48
Geth roast: MasterDuke17++ created pull request #254:
Correct tests of (over|under)flow and assignment
02:42
roast: d7c63caaf6 | usev6++ | S02-magicals/KERNEL.t
[JVM] Skip newly failing tests for signal handling

Since rakudo commit 85743228e0 calling 'KERNEL.signal(SIGHUP)' dies with 'Type check failed for return value; expected ?:? but got Int (Int)'.
We already see that error elsewhere for rakudo-j, so I think said commit is fine for rakudo-j -- it just uncovered an existing bug.
06:59
[Tux] This is Rakudo version 2017.02-254-g79bb1794a built on MoarVM version 2017.02-39-gd7caeba3 09:13
csv-ip5xs 3.227
test 12.387
test-t 5.037 - 5.098
csv-parser 12.854
Geth rakudo/nom: 65b0040841 | (Elizabeth Mattijsen)++ | 12 files
Streamline .WHICH methods where possible

  - don't use .^name unless needed
  - makes .WHICH up to 1.8x as fast
09:42
roast: 4fbda8da12 | (Elizabeth Mattijsen)++ | S32-container/buf.t
Test::like doesn't take ObjAt, so stringify
09:43
lizmat appears that S32-container/buf.t is not in 6.c-errata ? 09:45
afk&
IOninja lizmat: yeah, that one just has my coverage work a few month ago. 10:04
*from
lizmat: so, are you happy with election results? 10:07
jnthn Hm, the method indices isn't doc'd...I wonder if it's tested 10:13
m: say "fooood".indices("o") 10:14
camelia (1 2 3 4)
IOninja jnthn: it is
jnthn OK, then just a doc issue
IOninja S32-str/indices.t 10:15
jnthn Also, Seq.is-ready exists but is seeminlgy never called
It's also not doc'd
Nor tested
method is-ready(Seq:D:) { $!iter.DEFINITE }
Odd, not sure how you'd get a Seq where that's not the case
IOninja not tested
jnthn And we don't throw away the iterator when we're done interating 10:16
Maybe it's a left-behind
I don't imagine it's useful
heh, TIL about docs.perl6.org/routine/repeated 10:21
samcv hmm 10:23
non-unique
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Streamline .WHICH methods where possible 10:24
travis-ci.org/rakudo/rakudo/builds/211676107 github.com/rakudo/rakudo/compare/7...b00408416e
buggable [travis build above] ā˜  Did not recognize some failures. Check results manually.
IOninja t/04-nativecall/08-callbacks.t 10:25
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
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`
i thought native arrays too, but i could be confusing it with another thing
buggable, sauc 10:32
buggable, source
buggable samcv, See: github.com/zoffixznet/perl6-buggable
IOninja It's this plugin: github.com/zoffixznet/perl6-buggab...atcher.pm6
samcv yeah looking at it now 10:33
IOninja that class 10:34
that class on line 23 looks suspicious to me, since classes aren't closures I think but it closes over +@failed
samcv ok gonna have a pr. not sure about the class tho, but adding test failure detection 10:45
just gotta install missing modules 10:46
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
IOninja OK 10:54
samcv IOninja, ok PR sent 10:55
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
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?
ah true
will fix
Failed {self.test-fail} test(s)"
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
IOninja will take a look at this after work
IOninja &
samcv gonna have an array of failures and at minimum just give out one 11:04
otherwise say 2 or 3 or however many failed
jnthn fwiw, I'm currently going through all the methods that need consideration for hyper/race semantics and working out what those are: docs.google.com/spreadsheets/d/1kp...sp=sharing 11:05
samcv IOninja, ok updated version will say the test that failed if there's only one failed test 11:10
jnthn m: say (1,2,3,4).any 11:25
camelia any(1, 2, 3, 4)
jnthn m: say (1,2,3,4).Seq.any
camelia any(1, 2, 3, 4)
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
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)
samcv IOninja, why will it only report the first that matches, oh i see because it doesn't match all of them 11:32
yeah
IOninja If someone doesn't want normalization, can they avoid it and still work with a stringy thing? 11:34
If not, will that be possible when the user-space encoder/decoder is implemented?
samcv atm no IOninja, unless you use utf8-c8 11:35
IOninja samcv: but will it be possible in the future?
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
samcv well except a few
you can roundtrip a file with utf8-c8
IOninja OK
Thanks
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:38
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
lizmat: cool :)
samcv yeah IOninja yeah
it will
IOninja sweet
jnthn lunch; bbiab 11:53
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
I need to install a timer on IRC :P Only use it a few minutes a day.
Be more productive.
samcv night everyone o/ 12:30
timotimo night samcv 12:31
Geth rakudo: FCO++ created pull request #1040:
Adding my name on CREDITS
12:33
rakudo/nom: 0035095cd8 | (Fernando Correa de Oliveira)++ | CREDITS
Adding my name on CREDITS
12:34
rakudo/nom: 21d1f77a7d | (Zoffix Znet)++ | CREDITS
Merge pull request #1040 from FCO/nom

Adding my name on CREDITS
jnthn back 12:36
[Coke] o/ 12:53
travis-ci Rakudo build passed. Zoffix Znet 'Merge pull request #1040 from FCO/nom 13:18
travis-ci.org/rakudo/rakudo/builds/211727870 github.com/rakudo/rakudo/compare/6...d1f77a7db2
jnthn Semantics are hard. :) 13:27
(But better to get them settled on before diving in to code. :-))
timotimo ugh, yeah
jnthn All kinds of little things like, should pick($n)/roll($n) leave parallel processing 13:29
(Probably yes) 13:30
timotimo they can hardly work properly without knowing how many items there are in total 13:31
jnthn Well, that's not the whole of the story 13:32
It's whether you get back a Seq or a HyperSeq
timotimo ah
that's a good point, yeah 13:33
jnthn I mean, .sort also needs to see all the elements but doesn't kick you out of parallel processing mode
Just coloring things by result kind made me re-consider a bunch of things :) 13:35
Phew, down to 12 methods left to consider 14:16
This is a heck of a task, though I guess whoever docs all this will be glad of this :)
IOninja That was fast :) 14:36
jnthn m: say (6,1,5,9,3).Seq.minmax.perl 14:42
camelia 1..9
jnthn docs.perl6.org/routine/minmax#class_Any says it returns a List, not a Range, however
m: say (1..9).minmax.perl 14:43
camelia (1, 9)
jnthn But on a Range it seems to do what it says 14:44
Bit odd
IOninja s: (6,1,5,9,3).Seq, 'minmax', \() 14:45
SourceBaby IOninja, Sauce is at github.com/rakudo/rakudo/blob/21d1...s.pm#L1302
IOninja 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.
IOninja neat. samcv++
m: (1..3).Str.say 14:51
camelia 1 2 3
IOninja m: (1, 2, 3).Seq.Str.say
camelia 1 2 3
IOninja jnthn: looks like that behaviour is tested in 6.c-errata too. 14:52
is (^10).minmax, '0 9', ā€¦ is((@a minmax @b), 1..9
jnthn But is the list case tested in 6.c-errata 14:53
(That is where we call .minmax on a Seq or List)
IOninja is ((1..10).minmax: { ($_-3) * ($_-5) }), 4..10
ohj wait
is @array.minmax, -9..7 14:54
That one?
jnthn yeah but...uh...the first one looks like there's even more inconsistency :S
IOninja Indeed.
jnthn m: dd (^10).minmax
camelia (0, 9)
IOninja m: dd (^10).minmax: {$_} 14:55
camelia 0..9
jnthn m: dd (1..10).minmax: { ($_-3) * ($_-5) }
camelia 4..10
jnthn :S
IOninja :}
jnthn That's...a bit odd
IOninja $ grep -R minmax | wc -l
152
Quite a bit of tests for it too 14:56
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
(it's an `is` test, so I'm guessing the expect a List or something)
m: (-Inf..Inf).minmax.say 15:00
camelia (-Inf Inf)
IOninja m: (Inf..-Inf).minmax.say
camelia (Inf -Inf)
IOninja Seems busted too
jnthn m: dd (5, 3, 1, 9, 3, 9, 1, 2).minpairs
camelia Array @found = [2 => 1, 6 => 1]
jnthn m: dd (5, 3, 1, 9, 3, 9, 1, 2).maxpairs
camelia Array @found = [3 => 9, 5 => 9]
jnthn Hmm, minapirs and maxpairs are also a bit LTA in so far as they only ever do numeric comparison 15:02
m: dd <a b z y>.minpairs
camelia 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
jnthn m: dd <a b z y>.min
camelia "a"
jnthn m: dd <a b z y>.mx
camelia No such method 'mx' for invocant of type 'List'
in block <unit> at <tmp> line 1
jnthn m: dd <a b z y>.max
camelia "z"
IOninja .tell samcv buggable's new output: irclog.perlgeek.de/perl6-dev/2017-...i_14275663 15:05
yoleaux2 IOninja: I'll pass your message to samcv.
jnthn Phew, down to 4 :) 15:12
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? twitter.com/wonkden/status/842388423012974593 15:24
yoleaux2 IOninja: I'll pass your message to samcv.
jnthn IOninja: That won't happen until we fully support Uni 15:25
Str will always be grapheme level
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?
jnthn It'll still produce multi-codepoint graphemes for all the cases that will round-trip
timotimo: Yes, we do 15:27
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
yoleaux2 15:05Z <IOninja> samcv: buggable's new output: irclog.perlgeek.de/perl6-dev/2017-...i_14275663
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? twitter.com/wonkden/status/842388423012974593
IOninja samcv: ah ok.
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... )
samcv my sleep schedule is weird
timotimo samcv: been there, done that :)
samcv that's why i'm going back to sleep though
geekosaur not as weird as mine, I;d suspect
samcv ;)
geekosaur (not been able to sleep yet in fact)
jnthn If you want to work at codepoint level, that's what Uni is for.
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?
jnthn timotimo: Right, though that'd be one of the easier pieces to address in that all the plumbing is there for it :)
timotimo right. not sure what the API would look like for that 15:31
jnthn Presumably .decode('utf-8', :norm(Uni))
Where the default is :norm(Str)
And you would also pass NFC, NFD, NFKC, and NFKD 15:32
*could also
timotimo right. those are all types, too
jnthn Yeah
Str means NFG
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 :)
timotimo expected that
OK, so it should be a string with two graphemes there? 15:33
and it's currently four
jnthn Where is "there"? 15:34
IOninja I think so.
timotimo Buf.new(0x65, 0xcc, 0x81, 0x0a) gives eōæ½xCCōæ½x81
(plus a newline)
IOninja jnthn: twitter.com/wonkden/status/842388423012974593 more specifically: gist.github.com/cowens/1f72cffb2ec...74e38e6283
jnthn m: Buf.new(0x65, 0xcc, 0x81, 0x0a).decode('utf-8').chars.say 15:35
camelia 2
timotimo well, with utf8-c8
they want to keep the fact that it was e + combining thingie
jnthn Then they want to work at codepoint level and will need Uni
timotimo i don't think they want the e and its diacritic to be split when doing shits 15:36
and probably don't want to have to deal with the fact that it's multiple codepoints that are one grapheme
except maybe if we provide a module or builtins to work with graphemes as pieces of Uni on the Uni level 15:37
i.e. split 0x65, 0xcc, 0x81, 0x0a into 0x65, 0xcc81 (or whatever the codepoint actually is) and then 0x0a
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?
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:39
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
.comb on a Uni could thus give you back a bunch of Uni 15:41
Some of them maybe having multiple codepoints
timotimo will ords continue giving you only the ord of the base char on Uni, yeah?
jnthn .ords doesn't do that today on a Str
timotimo oh!
jnthn .ords is .NFC.list iirc
timotimo i've been doing too much nqp :D
ordat and such, for my json::fast 15:42
jnthn :)
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:45
jnthn timotimo: That's technically true, but in reality we don't support Uni well enough today for it to be practical ;) 15:46
Umm...are the semantics of nodemap actually meant to be any different to map? 15:49
Short of "doesn't support control operators"
Oh, and doesn't slip
Finally: docs.google.com/spreadsheets/d/1kp...edit#gid=0 15:54
Review on that is welcome
I'll probably write a short blog post about it also
Actually will do that now otherwise I'll forget 15:58
Or get too tired
timotimo neato 16:03
been looking forward to a post :)
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"
IOninja timotimo: noted 16:07
timotimo maybe i can even get a head start on the decoding thing
so we can at least get from bytes to Uni without normalization in the upcoming release
IOninja It's that easy to ad? :o 16:09
add
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 perl6.fail/release/stats for details
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 ... :)
IOninja neat 16:15
timotimo hm 16:16
i'm not actually sure how to go about this 16:20
i see i can configure a decoder, but that's currently only for newline translation yes/no
since the MVMDecodeStream has a Normalizer member, it's probably the right thing to make that configurable with the decoderconfigure op 16:21
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
oh, actually, the normalizer is inline rather than behind a pointer anyway
oh, huh, the enum for that is picked so that its bits mean something 16:26
i mean, i can already hook up all other normalization forms, but creating the null normalization will be ... a bit of work :| 16:29
jnthn Here we go: 6guts.wordpress.com/2017/03/16/con...semantics/ 16:42
IOninja jnthn: what are the semantics for .hyper/.race .&some-sub ? 16:49
.oO( delegates to .cache... )
jnthn That's just equivalent to some-sub(baah.hyper) 16:50
*blah
IOninja Ah
jnthn So, it's not a list operation (either parallel or sequential) 16:51
IOninja Right. I was thinking of Ā».&some-sub
Or Ā». anything
And methods that aren't on that list... 16:52
(maybe I should read the blog post instead of just looking at the spreadsheet :P)
jnthn I figure >>.foo boils down to .hyper.nodemap or .hyper.deepmap depending on if foo is nodal 16:53
And those two are defined
[Coke] jnthn: when I see "delegated to foo" it makes me wonder if that's a rakudo implementation detail or a language ... "requirement" 16:55
jnthn [Coke]: Somewhere between the two 16:56
[Coke]: It's at least a langauge requirement in so far as "semantics as if we delegated to foo"
[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.
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:05
jnthn IOninja: It's in common with .squish and .sort fwiw 17:06
jnthn checks
IOninja Ah. Never mind then.,
jnthn And .kv
Note the color is significant
IOninja (I guess I didn't really read everything :P)
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
IOninja Colorblind-unfriendly chart :)
jnthn All those on the right
d'oh
I deliberately didn't pick both red and green :P
IOninja :D 17:08
jnthn There's actually 5 of them though
Maybe blue and lilac are too close :)
IOninja I can see the difference if I look at my monitor on a 30Ā° angle :) 17:09
Well, no matter. I didn't have any more comments :)
jnthn Alright, thanks for looking 17:10
jdv79 that's a bunch of cases... 17:18
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
i'd be willing to believe jnthn used something sane and consistent for this work
Geth roast: FCO++ created pull request #255:
#130610: Triangular reduce with &infix:<,> and a list of lists shouldā€¦
17:38
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130610
Geth rakudo: FCO++ created pull request #1041:
Fix #130610: Triangular reduce with &infix:<,> and a list of lists shā€¦
17:39
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130610
Geth roast: 61046c6f7f | (Fernando Correa de Oliveira)++ | S13-overloading/metaoperators.t
#130610: Triangular reduce with &infix:<,> and a list of lists shouldn't flatern (#255)
17:47
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130610
Geth rakudo/nom: 10f5f74452 | (Fernando Correa)++ | src/core/metaops.pm
Fix #130610: Triangular reduce with &infix:<,> and a list of lists shouldn't flatern
rakudo/nom: d56501a65d | (Zoffix Znet)++ | src/core/metaops.pm
Merge pull request #1041 from FCO/fix-130610

Fix #130610: Triangular reduce with &infix:<,> and a list of lists shā€¦
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130610
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130610
IOninja cowens: \o 17:55
long time
Geth roast: c30eb545b8 | (Zoffix Znet)++ | S13-overloading/metaoperators.t
Fix broken test

It only passes right now because `is-deeply` fails to properly distinguish a Seq from a list...
17:58
stmuk_ github.com/ugexe/Perl6-ecosystems/...its/master 19:25
last commit is removing Perl6::Parser 19:26
I guess a cron which readd shortly
wrong channel 19:27
RabidGravy :) 19:28
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? twitter.com/replit/status/842457448208261122 19:36
yoleaux2 IOninja: I'll pass your message to lizmat.
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? twitter.com/replit/status/842457448208261122
lizmat IOninja: noted :-)
lizmat waves from Cologne 19:47
jdv79 what is Cologne? 19:48
TimToady aka Kƶln
jnthn A nice-smelling place in Germany with a huge cathedral
TimToady used to be the tallest skyscraper in europe
jdv79 besides Kolsh
lizmat actually, the cathedral is like 300m from where I am :-)
jdv79 a city smells nice? that's a major feature?
lizmat 4711 19:49
moritz it doesn't actually, but there's parfume of the same name
lizmat en.wikipedia.org/wiki/4711
TimToady that was a smelly joke...
jnthn ;)
jdv79 indeed 19:50
jnthn I've changed train quite a few times in Cologne
TimToady got there for the first time last year
(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 :)
(The square with the cathedral being right outside of the main station) 19:52
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
*got off
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: twitter.com/replit/status/84246610...73344?s=09 20:12
lizmat IOninja: understood
moritz retweets 20:14
IOninja moritz++ 20:15
RabidGravy Is there still a Cinema in Cologne station? 20:27
IOninja b2gills: yeah the containerization looks iffy in triangle reduce; I'll take a look when I get home 20:45
also: 20:46
m: say WHAT [,] 1, 2 20:47
camelia (List)
IOninja m: say WHAT [\,] 1, 2
camelia (Seq)
IOninja inconsistent
b2gills m: say WHAT [,] [1, 2]
camelia (List)
b2gills Should definitely be a Seq, as its input could be a Seq 20:49
TimToady [\op] can usefully return results without reaching the end of its input; [op] cannot 20:56
there is no reason to make those consistent
b2gills I think the simplest/quickest fix for the itemization is to rebind @list to a new List each time through the for loop.
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
camelia (Slip)
lizmat decommute&
TimToady m: say [+] 1..*
camelia 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
TimToady that's a weird one
jnthn .sum optimization gone wild, maybe? 21:05
IOninja It short-curcuits to sum which uses div on range with Inf endpoint
But.... thanks for reminding me of this ticket...
IOninja digs
I wanna ask you about it
This one: rt.perl.org/Ticket/Display.html?id...et-history 21:06
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
The first example in the ticket is wrong. This is a good example:
m: say 2.5 mod 2.5
camelia 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
IOninja Should that work? 21:07
Well, for that matter, should (Rat, Int) also work? or (Num, Int)?
s: ^0, 'sum', \()
SourceBaby IOninja, Sauce is at github.com/rakudo/rakudo/blob/d565...ge.pm#L636
IOninja m: say (2.5..2.5).int-bounds 21:08
camelia Cannot determine integer bounds
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja m: say (2.5..Inf).int-bounds
camelia Cannot determine integer bounds
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja m: say (1..Inf).int-bounds
camelia (1 Inf)
IOninja that's the bug with the say [+] 1..*
jnthn gotta be afk a little, bbiab 21:09
IOninja compiles a fix for [+] 1..* 21:13
IOninja stares at the fix, wondering why it's not working... 21:26
Because I only changed one multi 21:27
Well, I fixed the underlying issue... 21:34
...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:35
m: say (1e20..1e20)[^10] # one example 21:36
camelia (1e+20 1e+20 1e+20 1e+20 1e+20 1e+20 1e+20 1e+20 1e+20 1e+20)
IOninja Oh wait 21:37
m: say (1e20..1e20).sum
camelia 100000000000000000000
IOninja Aha. then throwing makes sense
Oh wait. Not throw. Just give Inf 21:38
Right?
What about NaN tho
m: say sum NaN..NaN
camelia (timeout) 21:39
IOninja leaves to devour limbs of warm dead bird 21:40
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). 21:59
IOninja noted 22:02
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
Geth rakudo/nom: 79f2681004 | (Zoffix Znet)++ | src/core/Range.pm
Fix Range.int-bounds incorrectly succeeding with NaN and Int

Currently, this makes things like Range.sum hang with things like
  (1..*); perhaps it can be made smarter.
Bug find: irclog.perlgeek.de/perl6-dev/2017-...i_14277939
22:04
IOninja gfldex: what do you mean negatively matching method? 22:05
Geth roast: ecf5959881 | (Zoffix Znet)++ | S02-types/range.t
Test Range.int-bounds with NaN/Infs endpoints

Rakudo fix: github.com/rakudo/rakudo/commit/79f2681004 Bug find: irclog.perlgeek.de/perl6-dev/2017-...i_14277939
22:06
IOninja never mind. I understand.
Don't think we'll be adding anything like that. Since !, not, .not operators/method work well enough. 22:07
gfldex good point 22:09
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:11
IOninja Already taken care of. 22:14
gfldex cool 22:15
jnthn I guess can smartmatch an IO against :!a also, as another way 22:16
IOninja mhm 22:18
"foo".IO ~~ :f & :r
"foo".IO ~~ :!f & :!r
MasterDuke IOninja, jnthn: i believe implementing some of the todos in these tests 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:35
IOninja MasterDuke: yeah. If the tests are wrong they should be fixed. 22:41
Wonder how all of stuff like this would work with "6.d is additive" paradigm :/ 22:42
Geth roast: fa228b0a2a | (Zoffix Znet)++ | S13-overloading/metaoperators.t
Simplify test for RT130610

There's a lot of inconsistencies in metaops, which are now reported in a separate ticket[^1]. Fixing them would likely break this test, so simplify it, and delegate detailed type/containerization tests to the tests for that new ticket.
  [1] rt.perl.org/Ticket/Display.html?id=131009
22:45
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130610
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
jnthn 6.c-errata exists for cases where th consensus is that it was a mistake in 6.c
*the 22:46
MasterDuke: Just glanced through the tests, they seem alright to me 22:47
MasterDuke jnthn: great, many thanks
jnthn Thanks for working on it :)
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 :-)
That's fine, it'll mean more people who understand the relevant bits of the code :)
Sleep time; 'night o/ 22:56
timotimo nite jnthn 22:57
IOninja \o 23:03
Geth roast: aa42c8340b | MasterDuke17++ | S02-types/int-uint.t
Correct tests of (over|under)flow and assignment (#254)

Previously they checked that assigning a literal more than max or less than min would (over|under)flow. However, the correct behavior is to throw in those cases, but (over|under)flow if modifying the variable.
23:58