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 |