| 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 |