timotimo | oh tadzik this is the imgur thing i wanted to show: imgur.com/R7T4Gzn | 00:11 | |
Geth | perl6-pod-to-bigpage: samcv++ created pull request #7: Set default directory as "." |
00:39 | |
Zoffix | samcv: you have the commit bit for that repo. | 01:07 | |
samcv | oh | ||
nice. ok | |||
Geth | perl6-pod-to-bigpage: c3109bccb7 | (Samantha McVey)++ | bin/pod2onepage Set default directory as "." Otherwise since it is not a required parameter, we fail part way through the bulid process: Cannot resolve caller dir(IO::Path: ); none of these signatures match: (IO::Path:D $: Mu :$test = { ... }, :$absolute, :$Str, :$CWD = { ... }, *%_) in block <unit> at |
01:08 | |
samcv | success! | ||
perl6-pod-to-bigpage: a29f524cfd | (Samantha McVey)++ (committed using GitHub Web editor) | bin/pod2onepage Merge pull request #7 from samcv/master Set default directory as "." |
|||
MasterDuke_ | m: my $i; try say $i % 2 | 03:32 | |
camelia | Use of uninitialized value of type Any in numeric context in code at <tmp> line 1 0 |
||
MasterDuke_ | m: my int $i; try say $i % 2 | ||
camelia | 0 | ||
MasterDuke_ | m: my Int $i; try say $i % 2 | 03:33 | |
camelia | ( no output ) | ||
MasterDuke_ | RT #121154 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=121154 | ||
MasterDuke_ | the ticket thinks the first result (warn then "0") is correct, everyone else agree? | 03:34 | |
geekosaur | at one point that was correct. dunno if it's still considered so | 03:43 | |
(I notice the ticket references both niecza and parrot...) | 03:44 | ||
MasterDuke_ | yeah, that's why i wasn't sure it was still expected | 03:45 | |
dogbert11 notices test failures in t/04-nativecall/11-cpp.t and t/04-nativecall/15-rw-args.t | 09:03 | ||
dogbert11 does a complete rebuild | 09:04 | ||
Zoffix | . | 10:01 | |
yoleaux | 08:23Z <samcv> Zoffix: docs still mention slurp-rest for Proc objects docs.perl6.org/type/Proc | ||
Zoffix | It's fine, for now I think. There are still users who won't have .slurp on Pipes and .slurp-rest will still exist for several years | 10:02 | |
samcv | i mean it should mention .slurp too righ? atm it doesn't mention slurp period | 10:14 | |
can use it fine though | |||
|Tux| | sorry, forgot to run timings. running now | 11:49 | |
This is Rakudo version 2017.04.3-206-g20cfd6b7c built on MoarVM version 2017.04-57-g8d8a09b9 | 12:01 | ||
csv-ip5xs 2.930 | |||
test 12.522 | |||
test-t 4.256 - 4.275 | |||
csv-parser 12.785 | |||
Zoffix | buggable: speed 10 | 12:06 | |
buggable | Zoffix, āāāāāāāāāā data for 2017-05-05ā2017-05-09; range: 4.247sā4.376s; 3% faster | ||
Zoffix | MasterDuke_: this all really going back to the "Undef is 0" issue which is abjectly broken | 12:11 | |
dogbert11 | it's blindingly fast | 12:12 | |
test-t that is :) | |||
MasterDuke_ | Zoffix: my understanding was that only undef native ints are 0 | 12:18 | |
Zoffix | MasterDuke_: here's my last adventure to fix it: irclog.perlgeek.de/perl6-dev/2016-...i_13767071 that didn't got well. IMO it's one Perl 5 "feature" that should've been left to Perl 5. We have proper types and multiple numeric types so "undefs are zero" concept doesn't work at all, because you don't know at all times WHICH numeric should the undef be used as. | ||
MasterDuke_: that's a completely different issue; there's no undef native ints, so you get a zero automatically. | 12:19 | ||
In Perl 5 and in some areas in Perl 6, using an undefined value as a numeric makes it a zero + issues a warning | |||
m: say quietly +Num | 12:20 | ||
camelia | 0 | ||
Zoffix | m: say +Num | ||
camelia | Use of uninitialized value of type Num in numeric context in block <unit> at <tmp> line 1 0 |
||
Zoffix | m: say 42 + Any | ||
camelia | Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1 42 |
||
jnthn | I think anywhere that does a .Numeric coercion, no? | ||
Zoffix | I see + was fixed since december, but I'm sure there are more cases where it's not handled right | 12:21 | |
jnthn | Same for trying to stringify a type object, except that gives the empty string | ||
m: say 42 - Any | |||
camelia | Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1 42 |
||
jnthn | m: say 42 * Any | ||
camelia | Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1 0 |
||
jnthn | m: say 42 / Any | ||
camelia | Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1 Attempt to divide 42 by zero using div in block <unit> at <tmp> line 1 Actually thrown at: in block <unit> at <tmp> line 1 |
||
jnthn | Seems OK in all those at least | 12:22 | |
Zoffix | jnthn: right. That's concept has the same issue. | ||
m: Str.contains: 42 | |||
camelia | Cannot resolve caller contains(Str: Int); none of these signatures match: (Str:D $: Cool:D $needle, *%_) (Str:D $: Str:D $needle, *%_) (Str:D $: Cool:D $needle, Cool:D $pos, *%_) (Str:D $: Str:D $needle, Int:D $pos, *%_) in blā¦ |
||
Zoffix | Just as broken | ||
m: say cos 0 | 12:23 | ||
camelia | 1 | ||
Zoffix | m: say cos Num | ||
camelia | Cannot resolve caller cos(Num: ); none of these signatures match: (Num:D $: *%_) in block <unit> at <tmp> line 1 |
||
jnthn | Yeah, I'm not sure whether the synopses have somewhere a clear rule on where the "warning + 0" and "warning + ''" should apply/not. | 12:24 | |
Zoffix | m: quietly say (+Rat).^name; | ||
camelia | Int | ||
nine | Haha! I weiss jetzt, warum t/ovc_transfer.t auf jenkins und beta failed. | 12:26 | |
Zoffix | Ya! Ya! | 12:27 | |
Shprehen ze Dauch | |||
MasterDuke_ | maybe i'll give that RT a pass for now | 12:28 | |
nine | oops :) | 12:29 | |
Zoffix | m: say quietly Int + 1 | ||
camelia | Invocant of method 'Bridge' must be an object instance of type 'Int', not a type object of type 'Int'. Did you forget a '.new'? in block <unit> at <tmp> line 1 |
||
Zoffix | m: say Any + 1 | ||
camelia | Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1 1 |
||
jnthn | D'oh | 12:30 | |
Zoffix | m: say Int / 1 | ||
camelia | Parameter 'nu' of routine 'DIVIDE_NUMBERS' must be an object instance of type 'Int', not a type object of type 'Int'. Did you forget a '.new'? in block <unit> at <tmp> line 1 |
||
jnthn | Yeah, that lot really could use a cleanup | ||
Zoffix | MasterDuke_++ # liking the method names in error messages | 12:31 | |
[Coke] | (docs, adding --> Foo) - should only be done where the source has this annotation, IMO. | 12:32 | |
Zoffix | [Coke]: of which implementation? | ||
Or to rephrase: that requires having a preferred implementation and I thought the docs were meant to be neutral on that and the --> Foo merely indicates the type of return value per spec, not whether a particular implementation actually specified it as a return type constraint | 12:33 | ||
I guess there's nothing stopping roast from enforcing return type constraints, but is there a benefit to doing so? | 12:34 | ||
And having it in signatures in docs means I can just glance at the sig to know the type instead of raking through all the prose, trying to find it. | 12:36 | ||
And the signatures in docs aren't 100% accurate anyway. Some methods have special extra candidates for optimization reasons that don't change the range of accepted arguments. | 12:38 | ||
MasterDuke_ | Geth: ver github.com/rakudo/rakudo/commit/33...d4efe221de | 12:57 | |
Geth | MasterDuke_, version bump brought in these changes: github.com/perl6/nqp/compare/ # Load the specified byte buffer as if it was the contents of a... # precompiled file | 12:58 | |
Zoffix | It currently can only handle sole commit bumps. github.com/perl6/geth/issues/6 | 12:59 | |
MasterDuke_ | oh ha, that commit i tried is even the example in the issue | 13:00 | |
Zoffix | To make the URL you can just use github.com/perl6/nqp/compare/$OLD_...RSION_FILE | ||
MasterDuke_ | Geth: ver github.com/perl6/nqp/compare/2016....2-g77fa587 | 13:04 | |
Zoffix | heh, no I meant you'd visit that URL in github | 13:05 | |
That's the URL the bot would've given you | |||
MasterDuke_ needs a way to make coffee that doesn't create loud noises that wakes up babies | 13:06 | ||
huh, don't see anything obvious there | 13:07 | ||
Zoffix shudders at the thought of having sleeping babies you fear waking up | |||
ZofBot: you're the only baby I need! | |||
ZofBot | Zoffix, tap( { say "Thank you for your attention"; exit 0 } ); would catch Control-C, thank you, and then exit | ||
Zoffix | heh, what a scam. ISO's site offers the PDF spec for CAD$270: www.iso.org/standard/51502.html | 13:30 | |
So, hey, you gotta do what you gotta do, eh? But Adobe actually offers that spec for free from: wwwimages.adobe.com/www.adobe.com/c...0_2008.pdf | 13:31 | ||
:) | |||
nine | Zoffix: usually one can also find release candidates of spec documents for free online | 13:32 | |
Zoffix | sheesh. 756 pages | 13:34 | |
ZofBot: ain't no body got time for that! | |||
ZofBot | Zoffix, 'ĻĻĻ' that will take any given sequence and use it as the universe of incrementation for any matching characters in the string | ||
jnthn | "universe of incrementation"? :D | ||
Zoffix | :) | ||
[Coke] is glad he doesn't usually have to worry about PDF guts these days | 13:41 | ||
[Coke] remembers having to generate PDFs by hand uphill both ways | |||
jnthn | w/in 31 | ||
d'oh :) | |||
[Coke] thinks that should be manually entered into the drawing. ;) | 13:48 | ||
jnthn is still getting used to the keyboard at his new office :) | 13:50 | ||
Zoffix always buys keyboards in pairs: one for home and same another one for office | 13:52 | ||
buggable: draw | 13:53 | ||
buggable | Zoffix, The next Accidental /win Lottery draw will happen in 4 weeks, 2 days, 10 hours, 6 minutes, and 7 seconds. Currently have 5 ballots submitted by 5 users! | ||
Zoffix | Geth: uptime | 13:54 | |
Geth | Zoffix, 2 days, 19 hours, 26 minutes, and 39 seconds | ||
Zoffix | NeuralAnomaly: status | ||
NeuralAnomaly | Zoffix, [ā] Next release will be in 1 week and 4 days. Since last release, there are 23 new still-open tickets (10 unreviewed and 0 blockers) and 231 unreviewed commits. See perl6.fail/release/stats for details | ||
Zoffix | 1 week :o | ||
buggable: author zoffixznet | 14:05 | ||
buggable | Zoffix, Found 38 dists for zoffixznet. See temp.perl6.party/buggable/95318128...38741.html | ||
Zoffix | I had a gist somewhere with `[]` on Str doing substr. I can make it a module, I guess. | 14:06 | |
And then make a module that makes Str + Str do concatenation :P | 14:08 | ||
jnthn | buggable: author jnthn | 14:14 | |
buggable | jnthn, Found 18 dists for jnthn. See temp.perl6.party/buggable/33369862...39251.html | ||
jnthn | Waaay behind Zoffix++ :) | ||
Geth | rakudo/nom: 6bb1b5b409 | (Zoffix Znet)++ | src/core/Instant.pm Remove argument forwarding from Instant.DateTime coercer - Our coercers generally don't take any args - Just forwarding args leaks implementation detail by coupling the args taken to DateTime.new - The :timezone arg can simply be replaced with .in-timezone method call anyway. |
14:17 | |
[Coke] | buggable: author coke | 14:18 | |
buggable | [Coke], Found 2 dists for coke. See temp.perl6.party/buggable/03427737...39542.html | 14:19 | |
[Coke] | oh, I have something else I could probably distify. | ||
Zoffix | m: say (-64+0i)**(1/3) | 14:30 | |
camelia | 2+3.46410161513775i | ||
Zoffix | That's really wrong :/ | ||
m: say (-64+0i)**(333333333333333e-15) | 14:31 | ||
camelia | 2+3.46410161513775i | ||
MasterDuke_ | wolframalpha seems to agree | 14:33 | |
www.wolframalpha.com/input/?i=(-64...)**(1%2F3) | |||
dogbert11 notes that Zoffix has managed to find a SEGV | |||
Zoffix | That's because wolframalpha is also wrong | 14:34 | |
But the wrongness is due to limited precision in 0.33333333333333 | 14:35 | ||
I think | 14:36 | ||
Yeah | |||
(-64) ** (1/3) in Google gives right answer, but swapping 1/3 to 0.333333333333 gives the same bogus 2+blahi result | 14:37 | ||
But I guess that answers why we always give NaN instead of computing real results for odd roots when possible :) | |||
(when `i` is not used) | 14:38 | ||
m: say 2+3.46410161513775i ā -4 | 14:39 | ||
camelia | False | ||
Zoffix doesn't know about complex numbers enough to know why slight imprecision in a power results in wildly different real and imaginary parts :/ | 14:41 | ||
m: (2+3.46410161513775i).abs.say | 14:42 | ||
camelia | 4 | ||
Zoffix | Ahhh | ||
cool | |||
moritz | internally, power calculations happen in the (angle, magnitude) zylinder coordinates | 14:43 | |
so it's cartesian -> zylinder, then the actual calculation, and then back | |||
and calculating a power in zylinder coordinates is applying the power to the magnitude, and mupltiply the angle by the powser | 14:44 | ||
Zoffix | Sounds like ā could use more love for complex numbers | ||
moritz | m: say (2+3.46410161513775i).polar[1] | 14:45 | |
camelia | 1.0471975511966 | ||
moritz | m: say (2+3.46410161513775i).polar[1] / pi * 180 | ||
camelia | 60 | ||
Zoffix | m: say (-4+0i).polar[1] / pi * 180 | ||
camelia | 180 | ||
moritz | a complex number has multiple roots, with equally spaced angles (and the same magnitude) | 14:46 | |
and ** just picks one of them | 14:47 | ||
not necessarily the one closest to the real axis (0 or 180 degrees) which we'd find intuitive | |||
which is fine, for a math point of view | |||
Zoffix | m: sub infix:<ā >(\a,\b) { a.polar[0] ā b.polar[0] and (my $n = ([max] (a, b)Ā».polar[1]) / [min] (a, b)Ā».polar[1])) ā $n.floor } say 2+3.46410161513775i ā -4+0i | 14:50 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3 b)Ā».polar[1]) / [min] (a, b)Ā».polar[1])7ā5) ā $n.floor } say 2+3.46410161513775i expecting any of: statement end statement modifā¦ |
||
Zoffix | m: sub infix:<ā >(\a,\b) { a.polar[0] ā b.polar[0] and (my $n = ([max] (a, b)Ā».polar[1]) / [min] (a, b)Ā».polar[1]) ā $n.floor } say 2+3.46410161513775i ā -4+0i | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> 3 / [min] (a, b)Ā».polar[1]) ā $n.floor }7ā5 say 2+3.46410161513775i ā -4+0i expecting any of: infixā¦ |
||
Zoffix | m: sub infix:<ā >(\a,\b) { a.polar[0] ā b.polar[0] and (my $n = ([max] (a, b)Ā».polar[1]) / [min] (a, b)Ā».polar[1]) ā $n.floor }; say 2+3.46410161513775i ā -4+0i | 14:51 | |
camelia | No such method 'polar' for invocant of type 'Num' in sub infix:<ā > at <tmp> line 1 in sub infix:<ā > at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Zoffix | bah | ||
Ah, doh. I still need core ops :) | 14:52 | ||
m: sub infix:<ā >(\a,\b) { a.polar[0] =~= b.polar[0] and (my $n = ([max] (a, b)Ā».polar[1]) / [min] (a, b)Ā».polar[1]) =~= $n.floor }; say 2+3.46410161513775i ā -4+0i | 14:53 | ||
camelia | False | ||
Zoffix | boo | ||
dogbert11 | Zoffix: here's what gdb has to say about your SEGV in RT #131264 | 14:54 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131264 | ||
moritz | you can't cover that case with a smarter comparison op | ||
dogbert11 | gist.github.com/dogbert17/9537aa39...1ad0d2d5be | ||
Zoffix | moritz: why can't? | ||
moritz | because depending on the operation you're looking at, that angle difference might or might not be very relevant | 14:55 | |
Zoffix | hm | ||
Zoffix is a bit annoyed with 131264 | 14:56 | ||
moritz | and then depending on the operation, some integer-multiples might be OK, and others might not | ||
Zoffix | The problem is with OpenSSl but I have like 2 or 3 people sending me messages about it, for me to just be the messenger and keep all correspondence together :/ | ||
moritz | which is why, in general, you'd look at $complex_number.roots($n) instead of just using ** | ||
Zoffix | moritz: the operation is ā | 14:57 | |
m: say <2+3.46410161513775i>.roots | |||
camelia | Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1 |
||
Zoffix | dogbert11: here's a reply from original author of the ticket: gist.github.com/zoffixznet/012a835...330eaa1275 | 14:58 | |
Which for some reason didn't get onto the ticket, presumably because the author doesn't have an account on RT | |||
jnthn | I'm pretty sure IO::Socket::SSL isn't thread-safe, or at least from the reading I did when implement IO::Socket::Async::SSL it sure looked that way | 15:00 | |
Zoffix | Ahh | ||
[Coke] notes that .roots on an Int makes it go through complex, so you can't do "(-64).roots(3)" either. | |||
Zoffix | m: (-64).roots(3) | 15:01 | |
camelia | ( no output ) | ||
Zoffix | m: say (-64).roots(3) | ||
camelia | (2+3.46410161513775i -4+4.89858719658941e-16i 2-3.46410161513775i) | ||
[Coke] | m: say 64.roots(3); say (-64).roots(3); | ||
camelia | (4+0i -2+3.46410161513775i -2-3.46410161513775i) (2+3.46410161513775i -4+4.89858719658941e-16i 2-3.46410161513775i) |
||
[Coke] | interesting that the positive one is exact but the negative one isn't. | ||
Zoffix | Ah yeah, here are the two numbers. The -4 and the 2+blah | ||
moritz | yes, .roots is an inheritly complex operation | ||
[Coke]: working with an angle of 0 is generally easier on the error bars | |||
whereas not being a computer algebra system, an angle of pi generally has a numerical error | 15:02 | ||
Zoffix | dogbert11: I rejected 131264. It does look to be due to OpenSSL not being thread safe and there's even an Issue on it for it: github.com/sergot/openssl/issues/31 | 15:13 | |
dogbert11 | Zoffix: cool | 15:15 | |
Zoffix | m: use MONKEY; augment class Str { method AT-POS {} } | 15:38 | |
camelia | ( no output ) | ||
Zoffix | erm | ||
Ah, nevermind. Misread my error | |||
$ perl6 -Ilib -MPythonic::Str -e 'my $i; $i++ for "foobar"; say $i' | 15:39 | ||
6 | |||
:) that's rather perverrted :) | |||
Seems to interfere with loading of modules tho... lol. Just hangs | 15:43 | ||
Zoffix gives up with `AT-POS` approach and goes for postcircumfix:<[ ]> | 16:06 | ||
Doesn't look like we have a method to do ranged AT-POS; e.g. method AT-POS (Range $x) {} or whatever; basically something that gets called whenever more than 1 index is asked for | |||
Oh, and making Str Positional seems to explode .split due to now-ambiguous candidates :) | 16:07 | ||
timotimo | right, AT-POS is really just about a single position | 16:08 | |
Zoffix | I see | 16:09 | |
timotimo | postcircumfix:<[ ]> is what handles ranges and lists and multidimensional slices and all that jazz | ||
(though there is an AT-POS-MULTIDIM, but that's only for a single position) | |||
Zoffix | Which really sucks, I think | 16:10 | |
s/Which// | |||
m: &postcircumfix:<[ ]>.candidates.elems.say | |||
camelia | WARNINGS for <tmp>: Useless use of constant value [ ] in sink context (lines 1, 1) 65 |
||
Zoffix | .o( useless?? ) | 16:11 | |
But yeah, basically to make my own proper iterable, I have to define 65 multies and then pray Rakudo doesn't add more | |||
maybe a bit fewer, since named args don't have to be replicated and can be merely forwarded | 16:12 | ||
Because sub postcircumfix:<[ ]> (Str:D, |c) {} isn't specific enough to go before all the other candidates :/ | 16:13 | ||
Unless... I shadow ALL the core candidates with two multies: one that handles Str and other that just forwards to core :P | 16:14 | ||
m: dd &CORE::postcircumfix:<[ ]>([42, 72], 1) | 16:15 | ||
camelia | WARNINGS for <tmp>: Useless use of constant value [ ] in sink context (lines 1, 1) Int <element> = 72 |
||
Zoffix | mc: dd &CORE::postcircumfix:<[ ]>([42, 72], 1) | ||
committable6 | Zoffix, Ā¦2015.12: Ā«Int <element> = 72Ā» | ||
Zoffix | bisect: dd &CORE::postcircumfix:<[ ]>([42, 72], 1) | 16:16 | |
bisectable6 | Zoffix, Bisecting by output (old=2015.12 new=6bb1b5b) because on both starting points the exit code is 0 | ||
Zoffix, bisect log: gist.github.com/ed50b929382d5f8e80...8116451fdb | |||
Zoffix, (2017-03-07) github.com/rakudo/rakudo/commit/12...6772ba4bf2 | |||
TimToady | Perl 6 goes to great lengths to prevent accidental genericity in syntax, but there's only so much it can do to prevent accidental genericity in semantics... | 16:18 | |
Zoffix | .tell TimToady this commit made `m: say postcircumfix:<[ ]>(1)` issue a useless `useless use` warning for the colonpair. Any idea how to fix that? github.com/rakudo/rakudo/commit/12...6772ba4bf2 | ||
yoleaux | Zoffix: I'll pass your message to TimToady. | ||
Zoffix | Oh | ||
TimToady | you end up running into the problem described in The Search for the Perfect Language, by Umberto Eco | 16:19 | |
yoleaux | 16:18Z <Zoffix> TimToady: this commit made `m: say postcircumfix:<[ ]>(1)` issue a useless `useless use` warning for the colonpair. Any idea how to fix that? github.com/rakudo/rakudo/commit/12...6772ba4bf2 | ||
TimToady | well, typically I turn on RAKUDO_OPTIMIZER_DEBUG to find out where the code that marked it as sunk is (or failed to mark it as wanted) | 16:21 | |
but usually you can just inspect that action code for the construct and see where there is a missing wanted() | 16:22 | ||
Zoffix | huggable: ping | 16:23 | |
Zoffix must be lagging... no response from any bots... | |||
huggable | Zoffix, nothing found | ||
Zoffix | huggable: ping | 16:24 | |
huggable | Zoffix, nothing found | ||
Zoffix | yey | ||
TimToady: ok, then I'll try to fix it | |||
TimToady | it's kind of odd that extending void context to comma arguments would cause that in a construct that has no commas, but the compiler uses implicit infix:<,> in lots of places, so I guess it's not that surprising | 16:25 | |
the hardest part of adding a wanted is remembering to put the second argument, which is a tag to identify where it was marked wanted :) | |||
Zoffix | doesn't seem to be a way to silence it from user-land either | ||
m: $ = postcircumfix:<[ ]>(1) | |||
camelia | WARNINGS for <tmp>: Useless use of constant value [ ] in sink context (lines 1, 1) |
||
Zoffix | m: quietly { $ = postcircumfix:<[ ]>(1) } | ||
camelia | WARNINGS for <tmp>: Useless use of constant value [ ] in sink context (lines 1, 1) |
||
TimToady | quietly is runtime | 16:26 | |
also, I'd note that postcircumfix should take two arguments | 16:28 | ||
Zoffix | Ah, there is: | 16:34 | |
m: say CORE::{q|&postcircumfix:<[ ]>|}(<a b>, 1) | |||
camelia | b | ||
Zoffix | m: multi foo (Str:D, |c) {say "here"}; multi foo (|c) { say "there" }; foo "foo" | 16:38 | |
camelia | Ambiguous call to 'foo'; these signatures all match: :(Str:D $, |c is raw) :(|c is raw) in block <unit> at <tmp> line 1 |
||
Zoffix | One day I'll figure out the specificity rules... One day! | 16:39 | |
But, my approach with two multies for postcircumfix:<[ ]> worked: | 16:40 | ||
$ perl6 -Ilib -MPythonic::Str -e 'say "foobar"[3..6]; ' | |||
bar | |||
:) | |||
TimToady | you got away with it this time, but eventually you get to the point where you really need different types to support different semantics :) | 16:43 | |
Zoffix | :) | ||
m: multi foo (Int $x) {}; multi foo (|c) {}; foo 42, :meow | 17:20 | ||
camelia | Unexpected named argument 'meow' passed in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Zoffix | :( | ||
One day! :) | 17:21 | ||
(I'll learn the rules) | |||
Like named don't participate in dispatch or whatever | |||
jnthn | Only as tie-breakers | 17:24 | |
That one just comes down to the arity rules | |||
Zoffix | m: multi foo (Int $x) { say "oooh" }; multi foo (Int $x, *%_) { say "here" }; multi foo (|c) {say "there"}; foo 42, :meow | ||
camelia | Ambiguous call to 'foo'; these signatures all match: :(Int $x) :(Int $x, *%_) in block <unit> at <tmp> line 1 |
||
Zoffix | But not slurpies? | 17:25 | |
m: multi foo (Int $x, *%_) {nextsame if %_; say "here";}; multi foo (|c) {say "there";}; foo 42; foo 42, :meow | |||
camelia | here there |
||
Zoffix | I ended up with that ^ | ||
jnthn | m: m: multi foo (Int $x) { say "oooh" }; multi foo (Int $x, *%_) { say "here" }; foo 42, :meow | 17:26 | |
camelia | Ambiguous call to 'foo'; these signatures all match: :(Int $x) :(Int $x, *%_) in block <unit> at <tmp> line 1 |
||
jnthn | m: m: multi foo (Int $x) { say "oooh" }; multi foo (Int $x, :$meow, *%_) { say "here" }; foo 42, :meow | ||
camelia | here | ||
jnthn | Hmm | ||
That one surprises me a bit | |||
Ohh | |||
But :/ | |||
Methods all have a *%_ | 17:27 | ||
So that'd mean that *every method* could become tie-broken | |||
Which would be a near promise of bustage. | 17:28 | ||
Zoffix | Yeah | ||
jnthn wanders off to see if eating dinner will be an easier problem :) | |||
Zoffix | m: <a b c>[0]:delete | 17:33 | |
camelia | Can not remove elements from a List in block <unit> at <tmp> line 1 Actually thrown at: in block <unit> at <tmp> line 1 |
||
Zoffix | m: <a b c>[*]:delete | ||
camelia | ( no output ) | ||
Zoffix | (the latter is a list of Failures) | ||
huh | 17:35 | ||
m: dd <a b c>[*][0] | |||
camelia | "a" | ||
Zoffix | m: dd <a b c>[*]:exists[0] | ||
camelia | (Bool::True, Bool::True, Bool::True) | ||
Zoffix | I'd expect the second one to give 1 True, not a whole list | ||
m: dd (<a b c>[*]:exists)[0] | |||
camelia | Bool::True | ||
Zoffix | Like this | ||
Ah | 17:36 | ||
Precedence. The [0] is on the :exists | |||
m: dd <a b c>[*](:exists[0]) | |||
camelia | Invocant of method 'CALL-ME' must be a type object of type 'List', not an object instance of type 'List'. Did you forget a 'multi'? in block <unit> at <tmp> line 1 |
||
Zoffix | well something or other | ||
or maybe not | |||
m: dd <a b c>[*]:exists[100000] | |||
camelia | (Bool::True, Bool::True, Bool::True) | ||
Zoffix | Filed it as rt.perl.org/Ticket/Display.html?id=131279 | 17:42 | |
timotimo | jnthn: liz has already multiple times wished for something to write into the signature that'd mean "and no further named arguments" | 17:46 | |
Zoffix | m: dd 'foobar'.comb.[^*-3].grep(*.defined).join | ||
camelia | "foo" | ||
Zoffix wonders if that's a feature or a bug... | 17:47 | ||
that == the above construct returning a list of stuff and Failures, so that you can grep out the Failures and get a usable result... | |||
starecat.com/content/wp-content/upl...design.jpg | 17:48 | ||
shiet... another bug | 17:52 | ||
m: dd ("a".."z")[(3, (4, (5,)))] | |||
camelia | ("d", ("e", ("f",))) | ||
Zoffix | m: dd ("a".."z")[(3, (4, (5,)))]:p | ||
camelia | (3 => "d",) | ||
Zoffix | m: dd ("a".."z")[(3, (4, (5,)))]:k | ||
camelia | (3,) | ||
Zoffix | m: dd ("a".."z")[(3, (4, (5,)))]:kv | ||
camelia | (3, "d") | ||
Zoffix | Who know writing a silly module would be so useful :) | ||
*knew | |||
If only the log site were working so I could easily copy-paste this stuff off IRC logs when filing :/ | |||
And it started working as soon as I wrote that, of course! | 17:53 | ||
Affects hashes too | 17:56 | ||
timotimo | good catch | 17:58 | |
Zoffix | Filed as rt.perl.org/Ticket/Display.html?id=131280 | 17:59 | |
m: ^5 .grep.say | 21:29 | ||
camelia | Cannot resolve caller grep(Range: ); none of these signatures match: ($: Bool:D $t, *%_) ($: Mu $t, *%_) in block <unit> at <tmp> line 1 |
||
Zoffix | too bad that don't work :) | 21:30 | |
m: ^5 .grep({$_}).say # would've figured it'd do this | |||
camelia | (1 2 3 4) | ||
lizmat | m: (1,2,3).grep # there's just no .grep() candidate at all, afaik | 21:33 | |
camelia | Cannot resolve caller grep(List: ); none of these signatures match: ($: Bool:D $t, *%_) ($: Mu $t, *%_) in block <unit> at <tmp> line 1 |
||
jnthn | What would such a candidate do? | 21:35 | |
lizmat | Zoffix assumed nqp::istrue($_) | 21:36 | |
Zoffix | Yeah | 21:38 | |
grep on truthiness by default | |||
jnthn | My other guess was "don't filter anything out" | ||
Given .grep(?*) is all it takes to be explicit, it's probably not worth leaving people guessing | |||
Zoffix | What's the point of not filtering anything out? :) | 21:39 | |
I've just used *.so | |||
jnthn | That's what I wondered when I read it :P | ||
Zoffix | heh | ||
jnthn | Then realized the truthy interpretation | 21:40 | |
Geth | rakudo/nom: 2df7060cad | (Elizabeth Mattijsen)++ | 3 files Make BagHash.grab() an additional 30% faster - it was already profiting from .roll improvements - now uses the R:Q.BAG-ROLL logic - only needs one time .WHICH calculation now - tested on a 1-element BagHash where the element exhausted at the end - other situation will probably see a better improvement - an extra 20% to be had when we decontainerize BagHashes |
22:24 |