🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
00:07 patrickz joined 00:11 patrickb left
cpan-raku New module released to CPAN! Red (0.1.4) by 03FCO 00:20
00:42 sena_kun left 00:43 lucasb left 00:44 patrickz left 00:45 brass left 00:47 johnjohn101 left 00:57 sena_kun joined 01:00 brass joined
AlexDaniel .tell sergot Sorry, I was in the middle of something, not sure if you received my late answer. Basically, you are free to do it if you think it's going to be better, but there's no guarantee that it will in fact be better this way. Now with more people with privs contributing should be easier, but again I can't promise anything :) 01:01
tellable6 AlexDaniel, I'll pass your message to sergot
02:01 unicodable6 left, sourceable6 left, statisfiable6 left, reportable6 left, coverable6 left, notable6 left, quotable6 left, bloatable6 left, benchable6 left, releasable6 left, greppable6 left, squashable6 left, nativecallable6 left, bisectable6 left, shareable6 left, committable6 left 02:02 reportable6 joined, bisectable6 joined, sourceable6 joined, coverable6 joined, shareable6 joined, nativecallable6 joined 02:03 squashable6 joined, committable6 joined, notable6 joined 02:04 benchable6 joined, greppable6 joined, statisfiable6 joined, bloatable6 joined, unicodable6 joined, quotable6 joined, releasable6 joined 02:05 Doc_Holliwood left 02:42 sena_kun left 02:57 sena_kun joined 03:57 evalable6 left, evalable6 joined 04:25 mahmudov left 04:42 sena_kun left 04:55 sena_kun joined 05:55 sourceable6 left, coverable6 left, nativecallable6 left, quotable6 left, squashable6 left, notable6 left, bloatable6 left, committable6 left, releasable6 left, reportable6 left, benchable6 left, shareable6 left, greppable6 left, statisfiable6 left, unicodable6 left 05:56 bisectable6 left, nativecallable6 joined, squashable6 joined, sourceable6 joined 05:57 greppable6 joined, bisectable6 joined, notable6 joined, benchable6 joined, reportable6 joined, shareable6 joined, bloatable6 joined, statisfiable6 joined 05:58 coverable6 joined, releasable6 joined, committable6 joined 05:59 quotable6 joined, unicodable6 joined 06:25 sauvin joined 06:41 sena_kun left 06:57 sena_kun joined 07:02 epony left 07:05 epony joined 07:19 horsepatat joined 07:45 jmerelo joined 07:50 veesh_ joined 07:52 veesh left, veesh_ is now known as veesh
squashable6 🍕 JJ++ submitted a review on pull request “Clarification of item an…”: github.com/Raku/doc/pull/3137#pull...-337975710 07:57
🍕🍕🍕 First contribution by JJ++! ♥
🍕 JJ++ merged pull request “Clarification of item an…”: github.com/Raku/doc/pull/3137
Geth doc/master: 4 commits pushed by threadless-screw++, (Juan Julián Merelo Guervós)++
07:58 Doc_Holliwood joined
squashable6 🍕 JJ++ wrote a comment on “Cache generated documentation”: github.com/Raku/doc/issues/717#iss...-570495321 08:00
Xliff squashable6: status 08:11
squashable6 Xliff, 🍕🍕 SQUASHathon is in progress! The end of the event in 2 days and ≈3 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
Xliff, Log and stats: gist.github.com/108474be1333314431...d5d36bf800
tellable6 hey Xliff, you have a message: gist.github.com/00a174a73f96cac796...92cb67d9d4
jmerelo Hum
tellable6 2020-01-01T21:40:38Z #raku <tbrowder> jmerelo: ^^^ 08:12
jmerelo I think this is just squashable working on autopilot
Xliff Doesn't look to be a squashathon for this month.
jmerelo: Yep.
jmerelo .tell tbrowder raku-advent.blog is cool. 08:14
tellable6 jmerelo, I'll pass your message to tbrowder
08:17 wamba joined 08:35 wamba left 08:38 xinming_ joined
Geth doc: 107da69ab6 | (JJ Merelo)++ | README.md
Clarifies cache closes #717
08:39
squashable6 🍕 JJ++ closed issue “Cache generated documentation”: github.com/Raku/doc/issues/717
08:41 xinming left
Geth doc: bdae66fbfe | (JJ Merelo)++ | README.md
Some reflow and rewriting
08:41
08:42 sena_kun left 08:56 sena_kun joined 08:57 scimon joined
stoned75 jmerelo ? 08:57
jmerelo yep
stoned75 an example in doc/language/typesystem had me wondering for a couple of minutes, until I found in this file history a commit from you that now is making me wondering :) 08:58
jmerelo stoned75: which one? 08:59
stoned75 so if I may disturb you, I would like to have your comments on commit c9539cf2230f45fda3be25637ffa5c8ad469f5da about the enum exemple starting with enum E(<one two>)
jmerelo m: enum E(<one two>); my @keys = E::.values; say @keys.map: *.enums; 09:00
camelia (Map.new((one => 0, two => 1)) Map.new((one => 0, two => 1)))
stoned75 see how the 'map: *.perl' was rewritten as 'map: *enums' ?
jmerelo right 09:01
stoned75 it seems a bit odd to me. or at least I do not understand the purpose of the example 09:02
09:02 chloekek joined
jmerelo stoned75: that was more than a year ago. And I should have done that example separately, but I would say that since the example talks about keys _and_ values, the original one just returned keys 09:02
stoned75 IC 09:03
jmerelo But then it repeats the key-value mapping twice, so...
stoned75 hum I suppose I don't quite get the 'All of them turn the values into C<Str>' part 09:04
jmerelo m: enum E(<one two>); say = E::.values; 09:05
camelia 5===SORRY!5=== Error while compiling <tmp>
Preceding context expects a term, but found infix = instead.
Did you make a mistake in Pod syntax?
at <tmp>:1
------> 3enum E(<one two>); say =7⏏5 E::.values;
jmerelo m: enum E(<one two>); say E::.values;
camelia (one two)
jmerelo stoned75: I didn't write that part myself... But I guess it's because what you want is the enum object, not the string equivalent.
m: enum E(<one two>); say E::.values[0]
camelia two
jmerelo m: enum E(<one two>); say E::.values[0].enums
camelia Map.new((one => 0, two => 1))
jmerelo m: enum E(<one two>); say E::.values[0].^name 09:06
camelia E
jmerelo m: enum E(<one two>); say E::.values[0].^mro
camelia ((E) (Int) (Cool) (Any) (Mu))
stoned75 oh and btw, do you agree that the () serve no purpose in E(<one two>) ? 09:07
jmerelo stoned75: I think that's the thing. E::.values returns the actual objects, of the actual type, E in this case. enums works on the type as well as the instances, so I guess that's the intention docs.raku.org/routine/enums 09:08
stoned75: right-on, yes.
m: enum E <one two>; say E::.values 09:09
camelia (two one)
jmerelo stoned75: the thing is that, looking at the context, enums returns key and values for an enum. It's probably a bit misguided to modify the original instead of rewriting from scratch 09:10
m: enum E <one two>; say E.enums
camelia Map.new((one => 0, two => 1))
chloekek Is there a reliable way to check (mechanically) whether a distribution allows redistribution? There’s of course the license field in META6.json but how reliable is it? 09:11
I want to mirror all versions of all distributions provided they are free software.
But I’m going through each manually. :þ 09:12
stoned75 jmerelo: ok, thanks for your comments. I'll ponder this a bit more :)
jmerelo chloekek: I don't think it's even compared with the actual LICENSE file.
chloekek not going through each manually*
Ah yeah, license files. 09:13
jmerelo stoned75: any time :-)
chloekek There is probably a Perl or Node.js library that has a function that takes a tarball and returns a license name.
That implements all of the heuristics.
jmerelo chloekek: github does that. They might have released that thing... 09:14
chloekek I’ll give that a try and then fall back to the license field in META6.json.
Thanks.
jmerelo chloekek: sure :-)
chloekek I also want to extrac readmes and render them with pandoc. :) 09:17
stoned75 hum. how can I get the origin of a method ? 09:22
lizmat what do you mean by "the origin of a method| 09:23
"?
the class it is actually defined in?
stoned75 I mean which class/role defines it
lizmat hmmm... 09:24
m: dd Str.^find_method("Int").package 09:25
camelia Str
lizmat m: dd Str.^find_method("elems").package
camelia Any
stoned75 cool. thanks !
jmerelo chloekek: cool! 09:31
09:33 rindolf joined 09:44 jmerelo left
Xliff m: my @a = <1 2 3 4 5>; @a.splice(0, *, ()); @a.say; 09:57
camelia []
Xliff m: my @a = <1 2 3 4 5>; @a.WHERE.say; @a.splice(0, *, ()); @a.say; @a.WHERE.say 10:14
camelia 140440692970344
[]
140440692970344
Xliff m: my @a = <1 2 3 4 5>; @a.WHERE.say; @a.splice(0, *, ()); @a.say; @a.WHERE.say; @a = (); @a.WHERE.say
camelia 139683972896872
[]
139683972896872
139683972896872
Xliff m: my @a = <1 2 3 4 5>; @a.WHERE.say; @a.splice(0, *); @a.say; @a.WHERE.say; @a = (); @a.WHERE.say 10:15
camelia 140691319903136
[]
140691319903136
140691319903136
stoned75 m: enum E <one two>; say (E.elems, E.^elems) 10:19
camelia (1 2)
stoned75 even if I understand the result, I can't help being a bit troubled by this result :-} 10:20
E.elems returning 2 would make sense to me. what would break if it was ? 10:21
m: enum E <one two>; say (one.^name, one.^elems, E.elems, E.^elems) 10:24
camelia (E 2 1 2)
stoned75 I'm even more wondering ;-)
ahah. the thing is one and E are of the same type. 10:25
chloekek p6: enum E <one two>; .say for (E:U, E:D) X~~ (E, one) 10:26
camelia True
False
True
False
chloekek p6: enum E <one two>; for (E:U, E:D) X (E, one) -> ($t, $x) { say $t.perl, $x.perl, $t ~~ $x }
camelia E:UETrue
E:UE::oneFalse
E:DETrue
E:DE::oneFalse
chloekek Ayy lmao. 10:27
p6: say 1 ~~ Int:U
camelia False
chloekek p6: enum E <one two>; say one ~~ E:U
camelia False
chloekek p6: say 1 ~~ Int:D
camelia True
chloekek p6: enum E <one two>; say one ~~ E:D
camelia True
chloekek I’m confused.
p6: enum E <one two>; say E ~~ E:D 10:28
camelia False
chloekek p6: enum E <one two>; for (E:U, E:D) X (E, one) -> ($t, $x) { say $t.perl, ' ~~ ', $x.perl, ' = ', $t ~~ $x } 10:30
camelia E:U ~~ E = True
E:U ~~ E::one = False
E:D ~~ E = True
E:D ~~ E::one = False
chloekek p6: enum E <one two>; for (E:U, E:D) X (E, one) -> ($t, $x) { say $t.perl, ' ~~ ', $x.perl, ' = ', $x ~~ $t }
camelia E:U ~~ E = True
E:U ~~ E::one = False
E:D ~~ E = False
E:D ~~ E::one = True
chloekek Ah, the order matters. ~~ is not commutative.
moritz indeed
tellable6 2020-01-02T20:24:14Z #raku-dev <lizmat> moritz I thought old ircloge.perlgeek links would be redirected to colabti?
moritz the matcher/pattern is on the right
chloekek Which makes perfect sense.
moritz lizmat: I know of no such plans. But if anybody wants to invest more energy into it, I'm happy to have the irclog.perlgeek.de subdomain be a CNAME to wherver 10:31
stoned75 so back to E.elems being 1 and not 2. am I the only one troubled by this ? ;-) 10:33
or even by the following ? ;-) 10:34
m: enum E <one two>; E::.values == E::.keys
camelia WARNINGS for <tmp>:
Useless use of "==" in expression ".values == E::.keys" in sink context (line 1)
stoned75 m: enum E <one two>; say E::.values == E::.keys 10:35
camelia True
chloekek m: enum E <one two>; say E::.values.perl; say E::.keys.perl
camelia (E::one, E::two).Seq
("one", "two").Seq
chloekek With == you check if there are equally many of them.
stoned75 ah damned.
chloekek m: enum E <one two>; say E::.values == 2; 10:36
camelia True
chloekek m: enum E <one two>; say E::.values eqv E::.keys; 10:37
camelia False
Xliff m: enum E <one two>; say E::one ~~ E:D 10:38
camelia True
Xliff m: enum E <one two>; say E:D ~~ E::one
camelia False
Xliff m: enum E <one two>; say E::one ~~ E::one
camelia True
Xliff m: enum E <one two>; say E::two ~~ E::one
camelia False
stoned75 m: enum E <one two>; E::.values.values == E::.keys.values
camelia WARNINGS for <tmp>:
Useless use of "==" in expression ".values == E::.keys.values" in sink context (line 1)
stoned75 m: enum E <one two>; say E::.values.values == E::.keys.values
camelia True
chloekek cmp :p 10:39
or eqv
stoned75 m: enum E <one two>; say E::.values.values cmp E::.keys.values
camelia Same
stoned75 fun with enum
chloekek m: enum E <one two>; dd E::.values.values, E::.keys.values; 10:40
camelia (E::one, E::two)
("one", "two")
chloekek Oh yeah cmp does string comparison.
m: enum E <one two>; say E::.values.values eqv E::.keys.values;
camelia False
10:41 sena_kun left
chloekek Oh no it doesn’t. 10:41
Oh it does sometimes. 10:42
“cmp will first try to compare operands as strings (via coercion to Stringy), and, failing that, will try to compare numerically via the <=> operator or any other type-appropriate comparison operator. See also the documentation for the cmp operator.”
It’s leg that does string comparison in every case.
stoned75 ahah I'm back to my original question ! 10:43
m: enum E <one two>; say E::.keys.values.map({.perl})
camelia ("one" "two")
stoned75 m: enum E <one two>; say E::.values.values.map({.perl})
camelia (E::one E::two)
10:57 sena_kun joined 11:15 wamba joined
xinming_ termbin.com/63e7 <--- In this example, the whenever will always try to wait for result of @channel[0], so we don't need the final `await |@channel` statement. But when I changed `whenever @channel[0]` to `whenever @channel` I'll have to add the final `await @chanenl` thing. Anyone here would clarify this for me please? 11:16
And also, What is the right way to wait result for multiple channels in an array in this case please? 11:17
Also, with `whenever @channel.map(*.receive) {... }` It'll also quite after we receive things once.
So, what is the correct way to listen to multiple channels? I don't think something like for @channel -> $channel { whenever $channel { ... } } is the right perlish way to do this anyway. 11:18
s/ 'await |@p' / 'await |@channel' / 11:20
the reason I don't think the sollution right is: for @channel -> $channel { ... } This may cause problem when there are too many channels IMHO 11:22
11:32 jmerelo joined 11:34 kensanata joined
jmerelo What's the deal with autowatch-test-repo? 11:39
11:52 mscha joined
mscha m: race for ^10 -> $i { sleep .5-$i/20; say $i } # Any way to pass batch and degree? 11:53
camelia 0
1
2
3
4
5
6
7
8
9
mscha m: (^10).race(:1batch, :10degree).map(-> $i { sleep .5-$i/20; say $i });
camelia 9
8
7
6
5
4
3
2
1
0
mscha Is there any way to supply batch size and degree when using race/hyper as a statement prefix? 11:54
xinming_ mscha: I don't think so. Maybe someone will give some adverbs to statement prefix. :-) 11:56
mscha m: for (^10).race(:1batch, :10degree) -> $i { sleep .5-$i/20; say $i } # doesn't DWIM 11:58
camelia 0
1
2
3
4
5
6
7
8
9
mscha m: race for (^10).race(:1batch, :10degree) -> $i { sleep .5-$i/20; say $i } # This works for some reason I don't understand
camelia 9
8
7
6
5
4
3
2
1
0
xinming_ mscha: the (^10).race returns discorded result already 12:00
yea, statement prefix should have someway to be tunnable 12:01
mscha But why do I need `race for (^10).race ...`? 12:02
xinming_ We need race for ...
No need the (^10).race
chloekek m: (^10).race(:1batch, :10degree).map: -> $i { sleep .5-$i/20; say $i } 12:04
camelia 9
8
7
6
5
4
3
2
1
0
chloekek p6: sub hyperlöb(*@f) { my @r = @f.hyper.map({ &^f(@r) }).lazy }; say hyperlöb({ 1 }, { 2 }, { [+] @^s[0, 1] }) 12:10
camelia [...]
chloekek p6: sub hyperlöb(*@f) { my @r = @f.hyper.map({ &^f(@r) }).lazy }; .say for hyperlöb({ 1 }, { 2 }, { [+] @^s[0, 1] })
Interesting, recursive lazy hyper seq is not happy.
And camelia doesn’t respond with a timeout either. 12:12
p6: sub löb(*@f) { my @r = @f.map({ &^f(@r) }).lazy }; .say for löb({ 1 }, { 2 }, { [+] @^s[0, 1] })
Ah camelia seems to be stuck. 12:13
12:15 camelia left
lizmat info.jetbrains.com/idea-webinar-ja...-2020.html 12:17
weekly: info.jetbrains.com/idea-webinar-ja...-2020.html
notable6 lizmat, Noted! (weekly)
lizmat weekly: news.ycombinator.com/item?id=21943565 12:18
notable6 lizmat, Noted! (weekly)
Xliff chloekek: You killed camelia! <Insert obligatory South Park response, here> 12:39
Geth doc: 1a6e507cca | (Stoned Elipot)++ | doc/Language/typesystem.pod6
Sync enum example with its (original?) intent

  ... At least as far as I understood it.
Also, while here, drop unneeded parentheses in enum construction.
squashable6 🍕🍕🍕 First contribution by stoned++! ♥
jmerelo stoned75: hum. You have simply restored it to the state before correction. 12:40
stoned75: see below vvvvv
12:41 wamba left
jmerelo m: enum E <one two>; say E.enums 12:41
evalable6 Map.new((one => 0, two => 1))
jmerelo I would say that was the original intent...
Or maybe
m: enum E <one two>; say E::.kv 12:42
evalable6 (two two one one)
stoned75 oh really ? sorry I misunderstood our earlier conversation then
jmerelo m: enum E <one two>; say E::.keys
evalable6 (two one)
jmerelo m: enum E <one two>; say E::.values
evalable6 (two one)
jmerelo No, what will not work
this is the one:
m: enum E <one two>; say E.enums
evalable6 Map.new((one => 0, two => 1))
12:42 sena_kun left
jmerelo Hum, not that either 12:43
It's probably OK, stoned.
Forget it.
stoned75 jmerelo: hum... :-}
jmerelo If "get a list of types for the keys" means something, I guess the original, or your restored form, is it. 12:44
E::one is the actual type, so we're good.
stoned75: thanks!
stoned75 ok great! what I took away is... enum are a bit strange :-} 12:45
jmerelo stoned75: the thing is that the first sentence in that paragraph is kind of misleading.
stoned75 exactly!
also the second sentence says 'values' and the 'third' is about the keys ! 12:46
jmerelo stoned75: maybe it would be better if we completed it with another example that actually returned the values
although that's kinda easy
xinming_ jmerelo: Do you have time to check about my question? :-)
The whenever @channel { ... } thing 12:47
stoned75 but to get the keys as type we do have to use E::.values :-}
jmerelo m: enum E <one two>; say ~E::.values[0]
evalable6 one
jmerelo xinming_: no, sorry, I didn't
I can add some urgency as a label if it's critical, xinming_
m: enum E <one two>; say ~E::.values 12:48
evalable6 two one
jmerelo m: enum E <one two>; say E::.values
evalable6 (one two)
12:48 camelia joined
jmerelo m: enum E <one two>; say E::.values[0].value 12:48
well...
camelia 1 12:49
jmerelo camelia++
But I don't know what took so long... 12:50
stoned75: anyway, maybe I'll add something like the stuff above to clarify
stoned75 sure ! I admit I'm a bit skeptical, so I look forward to what you'll add :-) 12:52
jmerelo stoned75: thanks anyway and as usual, great work :-) 12:54
stoned75 my pleasure! 12:55
12:55 kensanata left
xinming_ jmerelo: not critical, If you are in channel, You can just backlog. I posted not long ago. 12:55
Maybe 3 or 4 screens 12:56
jmerelo xinming_: you mean this issue, right? github.com/Raku/doc/issues/3136
xinming_ Nope
that is the doc issue. 12:57
jmerelo xinming_: OK, let me check then
12:57 sena_kun joined
jmerelo xinming_: you mean this? termbin.com/63e7 12:58
xinming_: I'm no expert in concurrency, but I see several things there 13:01
13:01 xinming_ left
jmerelo xinming_: (also it would be maybe better if you ask in StackOverflow, where all the experts are) 13:01
tellable6 jmerelo, I'll pass your message to xinming_
13:01 xinming_ joined
jmerelo xinming_: await is here: docs.raku.org/routine/await it waits until a value is available on a channel 13:02
If you want to listen on several channels, it's better to start several promises that listen to it using whenever 13:03
xinming_: the await at the end of the script will actually wait on channel items, not on the promises. You are effectively starting a promise for every element of the channel, when you use start 13:04
xinming_: why don't you send stuff to the channel, and process it (using whenever) in a different statement? It will clarify what's going on. 13:05
xinming_ jmerelo: When I use my @p = @channel.map({ start { } }); await |@p await here still await on @channel instead of Promise returned by start ? 13:07
tellable6 2020-01-03T13:01:30Z #raku <jmerelo> xinming_: (also it would be maybe better if you ask in StackOverflow, where all the experts are)
jmerelo xinming_: in that case, you're mapping channel _items_ to promises, if I'm not wrong. 13:08
xinming_: let me check
xinming_ I didn't receive that.
scimon I'd advise taking a look at react blocks. React blocks are awesome.
docs.raku.org/language/concurrency...ntry-react 13:09
xinming_ scimon: I do read that, and several times. I just now practise to get the idea of it.
jmerelo xinming_: Channel is an Any, so it's got map. Channel.map will eagerly read the Channel and then map every element to the block, in this case, a promise. 13:10
xinming_: but scimon is right, react blocks are the way to go...
xinming_ jmerelo: Actually, What I asked is the differences between whenever @channel and whenever @channel[0]
I do have whenever block in my example.
termbin.com/63e7
jmerelo xinming_: whenever is used for react or supply blocks, not for channels. You need to put a react block around that channel to read from it. 13:12
xinming_: something like react { whenever @channel[0].receive { ... } }
xinming_ jmerelo: Yea, actually, react { whenever @channel[0] { } } work as `whenever @channel[0].receive` 13:13
eiro hello people.
lizmat eiro o/
jmerelo xinming_: ah, OK.
xinming_ jmerelo: But how do we monitor multiple channels in this case then?
eiro hug lizmat ! 13:14
jmerelo xinming_: do a loop within the react block
xinming_ I know we can do react { for @channel -> $x { whenever $x { ... } }
jmerelo xinming_: exactly
xinming_ jmerelo: But I thought that might not be right to do. as if the @channel is large
scimon m: my $c = Channel.new;my $p = start react { whenever $c { .say } };$c.send("test");$c.close;await $p;say "done"
camelia test
done
xinming_ too many subscriptions.
scimon React blocks totally work on Channels ;)
chloekek p6: react { for ^10 { whenever Promise.in($_) { .say } } }
camelia True
True
True
True
True
True
True
True
True
True
13:15
xinming_ I thought there maybe a way to whenever on an @array activity
jmerelo xinming_: you're creating an asynchronous event. It should be really fast, just setting the hook.
xinming_ I mean a single whenever to react to that @array.
If the for loop is the only, Then, I know that. :-)
jmerelo xinming_: you can use map if you don't like for... :-) Actually, you should use map always :-) 13:16
chloekek Why use map always if TIMTOWTDI?
Xliff chloekek++ 13:17
xinming_ just now, I start to realize that the difference between react { whenever @channel.map(*.receive) { ... } } and react { whenever @channel[0] { ... } }
The *.receive wait every channel returns a single thing, then quit.
jmerelo chloekek: TIMTOWTDI .. with maps :-) You can use the feed operator, you can use map/reduce, you can use it with grep...
xinming_ While @channel[0] means whenever will loop on @channel[0].received 13:18
chloekek I wish the feed operator let me write ==> map { … } but it crashes.
({ ... }) is ugly. :(
jmerelo chloekek: right. You need the parenthesis...
chloekek: and reminds us of JavaScript
Xliff chloekek: why not map: { … }? 13:19
xinming_ after I saw so many features builtin in the syntax level, That really makes me feel so happy about using perl.
jmerelo Xliff: doesn't work well with ==>
13:20 mscha left
xinming_ raku* 13:20
Xliff m: @a = <1 2 3>; @a ==> map: { $_ + 2 } ==> @b; @b.say;
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@a' is not declared
at <tmp>:1
------> 3<BOL>7⏏5@a = <1 2 3>; @a ==> map: { $_ + 2 } ==>
Xliff m: my @a = <1 2 3>; @a ==> map: { $_ + 2 } ==> @b; @b.say;
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3my @a = <1 2 3>; @a ==> map:7⏏5 { $_ + 2 } ==> @b; @b.say;
expecting any of:
colon pair
Xliff m: my @a = <1 2 3>; @a ==> map: @a, { $_ + 2 } ==> @b; @b.say;
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3my @a = <1 2 3>; @a ==> map:7⏏5 @a, { $_ + 2 } ==> @b; @b.say;
expecting any of:
colon pair
Xliff m: my @a = <1 2 3>; @a.map: { $_ + 2 } ==> @b; @b.say;
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@b' is not declared
at <tmp>:1
------> 3my @a = <1 2 3>; @a.map: { $_ + 2 } ==> 7⏏5@b; @b.say;
Xliff m: my @b; my @a = <1 2 3>; @a.map: { $_ + 2 } ==> @b; @b.say;
camelia [3 4 5]
Xliff Hrm.
m: my @a = <1 2 3>; @a ==> $_ + 2 ==> @b; @b.say; 13:21
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@b' is not declared
at <tmp>:1
------> 3my @a = <1 2 3>; @a ==> $_ + 2 ==> 7⏏5@b; @b.say;
Xliff m: my @b; my @a = <1 2 3>; @a ==> $_ + 2 ==> @b; @b.say;
camelia Too many positionals passed; expected 0 to 2 arguments but got 3
in block <unit> at <tmp> line 1
jmerelo Xliff: in some cases precedence will DWIM, but not always.
Xliff m: my @b; my @a = <1 2 3>; @a ==> { $_ + 2 } ==> @b; @b.say; 13:22
camelia 5===SORRY!5=== Error while compiling <tmp>
Only routine calls or variables that can '.push' may appear on either side of feed operators.
at <tmp>:1
------> 3my @b; my @a = <1 2 3>; @a ==> 7⏏5{ $_ + 2 } ==> @b; @b.say;
Xliff m: my @b; my @a = <1 2 3>; @a ==> -> $_ { $_ + 2 } ==> @b; @b.say;
camelia 5===SORRY!5=== Error while compiling <tmp>
Only routine calls or variables that can '.push' may appear on either side of feed operators.
at <tmp>:1
------> 3my @b; my @a = <1 2 3>; @a ==> 7⏏5-> $_ { $_ + 2 } ==> @b; @b.say;
13:22 Tirifto joined
Xliff Well, I never grok'd the feed op. 13:22
Something for the future.
jmerelo Xliff: let's call it rocket
Xliff Heh.
13:29 lucasb joined 13:34 jmerelo left
sarna hey, how to bind $*IN and $*OUT to something else for testing? I want to have a string in $*IN and read a string from $*OUT 13:46
(I want to emulate input to `prompt` and check what a function prints)
sena_kun sarna: can't you just assign it?
sarna sena_kun: I can! but to what? I can't find that in the docs 13:47
chloekek No, you must define it with my: my $*IN = ... or my $*IN := ...;
If you assign it then it will remain that value after returning.
sarna m: my $*IN = "foo"; $foo = prompt 13:48
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$foo' is not declared
at <tmp>:1
------> 3my $*IN = "foo"; 7⏏5$foo = prompt
sarna "foo".IO wants to get a file called foo :^(
I haven't found a way of making a handle without a file on disk
chloekek github.com/hoelzro/p6-io-string/
eiro my @doubles = * * 2 for 4..8; should rise a warning. worth a gh issue ? 13:49
chloekek p6: my $*IN := "A\nB\nC\n"; .say for lines;
camelia No such method 'nl-in' for invocant of type 'Str'
in block <unit> at <tmp> line 1
chloekek p6: my $*IN := "A\nB\nC\n" but role { method nl-in { "\n" } }; .say for lines;
camelia No such method 'encoding' for invocant of type 'Str+{<anon|1>}'
in block <unit> at <tmp> line 1
eiro camelia: my @doubles = * * 2 for 4..8; @doubles.elems.say 13:50
sarna chloekek: thanks, bookmarked! :D
eiro p6: my @doubles = * * 2 for 4..8; @doubles.elems.say
camelia 1
eiro this is true but nonsense. the fix is 13:51
p6: my @doubles = (* * 2 for 4..8); @doubles.elems.say
camelia 5
14:00 veesh_ joined 14:02 veesh left 14:03 veesh_ is now known as veesh
Geth doc: b56d6044e2 | Coke++ | doc/Language/variables.pod6
Fix example code

  * additional my causes compile time error
  * Follow style guide and use ^name instead of .WHAT
14:15
doc: 44973b2ac8 | Coke++ | 2 files
Fix typo, learn word
squashable6 🍕🍕🍕 First contribution by coke++! ♥
Xliff eiro: That syntax will not work. 14:19
It's written as... 14:20
p6: my @doubles = (4..8).map(* * 2); @doubles.elems.say
camelia 5
Xliff using a "my" and a "for" in the same line usually will not DWIM 14:21
scimon p6: my @doubles = (* * 2 for 4..8); @doubles.say 14:22
camelia [8 10 12 14 16]
scimon Does work. I guess because the whatever start makes it the same as my @doubles = ({$_ * 2 } for 4..8); which is fine. (But yeah you need the brackets). 14:23
Xliff scimon: So should that be an error without the parens? 14:24
eiro Xliff: at least a warning. that was my proposal 14:27
14:28 horsepatat left 14:29 wamba joined
scimon Without the brackets you get a list with 1 item (the whatever block). It probably gets assigned to 4 times because of the for 4..8 but the system is fine with that. 14:29
m: my @doubles = * * 2;@doubles[0](4).say 14:30
camelia 8
scimon Fun fun fun :)
eiro i had no sense of humour after spending 5 minutes to understand it was possible :) 14:32
beacause at the end: @double could be local to the loop so a warning should happen at line 2
or @double is in the scope so a warning should happen because it is redefined 4 times 14:33
scimon There's no block. Here's a fun one.
eiro (actually i really think it should rise an error)
scimon m: my $a++ for ^4;say $a 14:34
camelia 4
scimon :D
eiro yep
chloekek p6: say ($++ for ^4);
camelia (0 1 2 3) 14:35
eiro so i come back to my first question: is it worth an issue ?
scimon I'm not sure. It seems weird but valid.
chloekek eiro: it never harms to make an issue. If it turns out it’s ok the way it currently is, then the issue can be used as a reference for future visitors. 14:36
eiro i guess not
scimon Point
lizmat
.oO( I have no issue with more issues :-)
14:37
eiro i don't understand what an issue is anymore. github is the worse thing that happens to me. i regret rt so much 14:38
lizmat eiro: alas, not enough people to maintain RT, so...
eiro lizmat: because no one asked for ... 14:39
what i heard was "every one wants to use gh anyway"
chloekek Make a decent bug tracker that uses GitHub Issues API as its DBMS. 14:40
14:42 sena_kun left
eiro interesting idea but if no one wants to maintain a working product like RT, who want to write a descent bug tracker? at some point it would be yet another tool to maintain ... 14:42
anyway: i fill an issue on the rakudo repo 14:43
chloekek Was RT made specifically for Rakudo?
moritz no 14:44
eiro nope 14:45
it was a generic tool used by all the perl5 community. interacting with it using mails was really enjoyable and the scrip system (scripts to handle events) made things really customizable 14:47
chloekek Nice.
eiro bestpractical.com/request-tracker
also: it is still wildly used in french universities and there are extension for ISO quality certifications so www.easter-eggs.com/ still maintains it 14:49
moritz so far, RT and OTRS have been the only bug trackers I've used that worked well with email
well, and the Debian bug tracker, but I've never seen that used anywhere besides Debian :D
chloekek Amazing. 14:51
eiro the last time i checked for the code, my feeling was: 14:53
* there is a clean, elegant core 14:54
Geth doc: 3f8e74021d | (Stoned Elipot)++ | doc/Language/typesystem.pod6
Fix whitespace handling in examples
eiro * there is so many things that are written "php application alike" way with business model parts written directly in the templates 14:55
14:56 sena_kun joined
chloekek I wish I could maintain a large Perl app. 15:08
uzl[m] Where I can find the tar file for Rakudo 2019.11? I remember coming across it but I forgot where I saw it though. 15:11
eiro uzl[m]:that's what i reported on the ml
also webpages are outdated. i guess 2019.11 was only released on github 15:12
chloekek: i hoped sympa and RT to share some efforts because both of them have engines to automate stuff using emails as interface but it seems no one care anymore 15:14
they just want to maintain the status quo: those apps are now in "maintainance mode"
chloekek Email is out of fashion.
eiro true. but it was so much superior to everything i see these days 15:15
15:15 wamba left
eiro so what's the point of maintaining them if no one cares 15:15
uzl[m] eiro: Yeah, on Github. I think it was AlexDaniel that released. Do you have the Github link to that release? 15:16
eiro github.com/rakudo/rakudo/releases
especially github.com/rakudo/rakudo/tree/2019.11
uzl[m] eiro: Thanks! 15:17
AlexDaniel eiro: hold on which web pages are we talking about?
15:17 melezhik joined 15:18 horsepatat joined
eiro AlexDaniel: rakudo.org/files 15:18
AlexDaniel eiro: that's rakudo star
eiro and also raku.org/
especially raku.org/downloads
AlexDaniel and that too. Rakudo Star has a different release cycle 15:19
I beleive there's a release candidate for rakudo star 2019.11
ah, there's one for 2019.07.1 15:20
eiro ??
so raku can be ahead of rakudo star?
lizmat it is by definition ahead
just as the odd Perl releases are ahead of the stable even releases 15:21
AlexDaniel tyil: can you tell me what can be done with github.com/rakudo/star/pull/144 ?
tyil: I reviewed it and nothing seems to be wrong
tyil: does it mean that it is one click away from being released?
eiro ok ... so rakudo star became "the rakudo normal people should use"? 15:22
AlexDaniel tyil: I didn't test it though, but I see that other people did
melezhik AlexDaniel: thank you for responding to my email. Where is the best to fill the RakuDist issue?
eiro (the stable one ?)
AlexDaniel eiro: it is hard to say. There was a point when it was the recommended way to get rakudo, but today it's a bit different. Some people wonder if star is needed at all for operating systems other than Windows 15:23
for example, I'd personally recommend to get rakudo from distro packages if the version in the package is recent enough 15:24
tyil AlexDaniel: Im waiting for the windows guy to make a .msi
to ensure that it will also work for windows users 15:25
AlexDaniel tyil: ookay. Please kick me if it stalls for any other reason
tyil I haven't been able to get in touch with the mac guy to make a .dmg of it
so I gave up on that for now
Tirifto Hello! Is there any way at all to directly get a value from a hash variable in a regex match/substitution, given that their use therein is reserved? The best I could think of is: ‘$var ~~ s[$_] = $replacement given %hash<key>’, which looks alright to me, but I'm still wondering if there's anything simpler/more elegant. :) 15:28
eiro AlexDaniel: ok. so i think that guix should package rakudo, not star. right ?
Geth problem-solving: c146268616 | (Aleks-Daniel Jakimenko-Aleksejev)++ | .github/ISSUE_TEMPLATE/issue-template-infrastructure.md
Remove second assignee from the template

Otherwise the template doesn't work at all. I think the syntax was wrong, but this fix will do for now.
15:32
problem-solving: 834840e43a | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Rakufy the templates
AlexDaniel melezhik: it's not entirely an infrastructure issue, but I think that label is most fitting: github.com/perl6/problem-solving/i...amp;title=
15:33 wamba joined
AlexDaniel melezhik: rba will likely tell you if it's possible to get a machine for it, and they'll also assist you to set things up 15:33
melezhik AlexDaniel: thanks, will fill a ticket 15:34
AlexDaniel melezhik: ideally we should have a label here related to modules and ecosystem github.com/perl6/problem-solving#l...sible-devs
but there's no such label yet, so infrastructure it is :)
melezhik ok 15:35
Geth problem-solving: 48d036cb42 | (Aleks-Daniel Jakimenko-Aleksejev)++ | README.md
Rakufy the README
15:37
¦ problem-solving: melezhik assigned to rba Issue Test Raku modules against different OS, Rakudo versions github.com/perl6/problem-solving/issues/144 15:47
15:56 abraxxa left 15:58 wamba left
AlexDaniel weekly: ever wondered if your module works on different operating systems, rakudo versions, etc.? Meet RakuDist! github.com/melezhik/RakuDist. There's currently a discussion on whether we can and should run it on our whole ecosystem. Feedback is welcome! github.com/perl6/problem-solving/issues/144 16:03
notable6 AlexDaniel, Noted! (weekly)
melezhik AlexDaniel: thanks! 16:04
16:23 pilne left 16:43 sena_kun left
xinming_ m: %h = %(:a<a b c>, :b<x y z>); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; } 16:44
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '%h' is not declared
at <tmp>:1
------> 3<BOL>7⏏5%h = %(:a<a b c>, :b<x y z>); for roundr
xinming_ m: my %h = %(:a<a b c>, :b<x y z>); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; }
camelia ("a", "x")
("b", "y")
("c", "z")
xinming_ In this example, If the hash contains only one element, We'll get the eror 16:45
m: my %h = %(:a<a b c>); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; }
camelia Type check failed in binding to parameter '@list'; expected Positional but got Str ("a")
in block <unit> at <tmp> line 1
xinming_ What is the right way to fix this please? For now, My sollution is adding an empty array to the hash, But I think it's an ugly hack. So, here for the idea 16:46
m: my %h = %(:a<a b c>, :NOT_EXIST_THING[]); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; }
camelia ("a",)
("b",)
("c",)
xinming_ m: my %h = %(:a<a b c>, :NOT_EXIST_THING); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; }
camelia (Bool::True, "a")
("b",)
("c",)
16:46 cpan-raku left 16:48 cpan-raku joined, cpan-raku left, cpan-raku joined
chloekek p6: my %h = :a<a b c>; say %h<> 16:51
camelia {a => (a b c)}
chloekek p6: my %h = :a<a b c>; say %h 16:52
camelia {a => (a b c)}
chloekek p6: my %h = :a<a b c>; say %h<>:v
camelia ((a b c))
xinming_ I think this is probably a bug 16:56
m: my %h = :a<a b c>, :b<a c>; say %h<>:v 16:57
camelia ((a b c) (a c))
16:57 sena_kun joined
xinming_ m: my %h = :a<a b c>, :b<a c>; say %h<>:v.map(*.flat) 16:57
camelia ((a c) (a b c))
xinming_ m: my %h = :a<a b c>; say %h<>:v.map(*.flat)
camelia ((a b c))
chloekek I’d expect %h<> to be empty list.
p6: say <> 16:58
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of <>; in Raku please use lines() to read input, ('') to represent a null string or () to represent an empty list
at <tmp>:1
------> 3say <7⏏5>
chloekek p6: say []<>
camelia []
jnthn %h<> is the zen slice, no?
chloekek p6: say [1, 2, 3]<>
camelia [1 2 3]
chloekek Oh I see.
p6: say [1, 2, 3]{}
camelia [1 2 3]
xinming_ %h<> is just decontainer operation.
[] is the same as <>
If you want Empty list, You'll have to do something like %h{()}
jnthn: when we have list there, it's a zen slice. but <> alone is decont 16:59
I search the diff between [] and <>, and finally I realized they are the same.
chloekek p6: my $x = 1; my $y := $x<>; say $y.VAR.^name
camelia Int
chloekek p6: my $x = 1; my $y := $x[]; say $y.VAR.^name 17:00
camelia Int
xinming_ jnthn: Do you think my %h = %(:a<a b c>); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; } work like this is a bug in roundrobin?
17:00 scimon left
xinming_ docs.perl6.org/language/containers <--- Here, However, the decont operator <> is more appropriate to decontainerize items that aren't lists: 17:01
jnthn xinming_: <> alone is a zen slice on an Array or Hash
xinming_ :-)
jnthn: Ok, Then I'll try []
jnthn Or so I thought, anyway 17:02
xinming_ Anyway, neither works
m: my %h = %(:a<a b c>); for roundrobin(%h[]:v.map: *.flat) -> @list { @list.perl.say; }
camelia Type check failed in binding to parameter '@list'; expected Positional but got Pair (:a($("a", "b", "c")))
in block <unit> at <tmp> line 1
jnthn Oh, I guess they're equivalent in that sense
xinming_ hmm, They are different.
bbl
jnthn github.com/rakudo/rakudo/blob/mast...e.pm6#L163 17:03
xinming_ jnthn: They are different, The doc needs to be fixed.
jnthn I think in `my %h = %(:a<a b c>);` the conextualizer is pointless, btw
It just creates a throwaway hash 17:04
xinming_ Ok, Will fix that
jnthn (Harmless, just a bit of wasted work)
chloekek p6: my %h = :1a, :2b, :3c; say %h{'a' | 'b'} == 1
camelia any(True, False)
xinming_ But what about the roundrobin(...) thing in this case? 17:06
jnthn xinming_: fwiw I don't see anything that looks buggish in the various %h<>:v and %h and so on usages
xinming_ It seems, that roundrobin doesn't work right on single list item within list. 17:07
AlexDaniel btw I highly recommend this extension: github.com/sindresorhus/refined-github#install
jnthn Trying to find the case you think is wrong in all the backlog...can you write it again here? :)
xinming_ m: my %h = %(:a<a b c>); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; } 17:08
camelia Type check failed in binding to parameter '@list'; expected Positional but got Str ("a")
in block <unit> at <tmp> line 1
xinming_ m: my %h = %(:a<a b c>, :xx); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; }
camelia (Bool::True, "a")
("b",)
("c",)
xinming_ m: ((<a b c>,)).perl.say;
camelia (("a", "b", "c"),)
xinming_ m: roundrobin((<a b c>,))).perl.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected closing bracket
at <tmp>:1
------> 3roundrobin((<a b c>,))7⏏5).perl.say
17:09
xinming_ m: roundrobin((<a b c>,)).perl.say
camelia ("a", "b", "c").Seq
xinming_ m: my %h = :a<a b c>; %h<>:v.perl.say;
camelia ($("a", "b", "c"),)
jnthn m: my %h = %(:a<a b c>); dd roundrobin(%h<>:v.map: *.flat) 17:10
camelia ("a", "b", "c").Seq
xinming_ m: my %h = %(:a<a b c>, :xx); dd roundrobin(%h<>:v.map: *.flat)
camelia (("a", Bool::True), ("b",), ("c",)).Seq
jnthn m: my %h = %(:a<a b c>, :xx); dd roundrobin(%h<>:v.map: *.flat)
camelia ((Bool::True, "a"), ("b",), ("c",)).Seq
17:10 rindolf left
jnthn m: my %h = %(:a<a b c>, :xx); dd roundrobin(%h<>:v.map: *.list) 17:10
camelia (("a", Bool::True), ("b",), ("c",)).Seq
jnthn m: my %h = %(:a<a b c>); dd roundrobin(%h<>:v.map: *.list) 17:11
camelia ("a", "b", "c").Seq
xinming_ So, there is some inconsistency here.
jnthn m: my %h = %(:a<a b c>); dd (%h<>:v.map: *.list)
camelia (("a", "b", "c"),).Seq
jnthn m: my %h = %(:a<a b c>, :xx); dd (%h<>:v.map: *.list)
camelia ((Bool::True,), ("a", "b", "c")).Seq
jnthn Yeah, everything looks right until it reaches roundrobin 17:12
Then I'm indeed a bit surprised by it
xinming_ Why? 17:13
17:13 rindolf joined
xinming_ I'd consider this is bug in roundrobin. though, no idea how it should be fixed. 17:13
jnthn Yes, that's what I'm saying: if there's something to fix, it's roundrobin 17:14
m: sub rr(+@lol) { dd @lol }; rr (<a b c>, (True)) 17:15
camelia Array element = [("a", "b", "c"), Bool::True]
jnthn m: sub rr(+@lol) { dd @lol }; rr (<a b c>,)
camelia Array element = [("a", "b", "c"),]
jnthn And no structure loss from the signature binding, so looks like it'll be in the Rakudo::Iterator.RoundrobinIterables impl 17:16
I think it's maybe trying to be more efficient at github.com/rakudo/rakudo/blob/131d....pm6#L3265 but getting it wrong 17:18
e.g. it just iterates the underlying thing, but doesn't wrap them into the 1-element array 17:19
Probably only special-casing 0 elements is a fix
17:20 chloekek left
xinming_ Do you mean the == 1 change to == 0? 17:23
shape.elems == 1 to shape.elems == 0
I'm thinking that if it's 0, We can just return
jnthn Hm, where is shape? Not sure if we're looking at the same code 17:24
xinming_ hmm, Ignore me, I was in different branch. :-) 17:25
I was looking at the ShapeIndex method
jnthn I think it should maybe just be like
method RoundrobinIterables(@iterables) {
nqp::if(
nqp::isgt_i(@iterables.elems,0), # reifies
RoundrobinIterables.new(@iterables),
Rakudo::Iterator.Empty,
) 17:26
xinming_ Ok, Waiting for the patch. :-)
jnthn Can you open an issue with this information? 17:32
xinming_ Ok
jnthn Maybe somebody will beat me to getting the patch in; otherwise I can in a day or so 17:35
Need to sort out a dev environment for me... :)
Well, re-sort :)
xinming_ jnthn: Your code does fix the problem. 17:40
I just re-compile the raku 17:41
Geth doc: threadless-screw++ created pull request #3138:
Expansion of Operator precedence and Assignment operators sections
17:44
squashable6 🍕 threadless-screw++ opened pull request “Expansion of Operator pr…”: github.com/Raku/doc/pull/3138
🍕🍕🍕 First contribution by threadless-screw++! ♥
AlexDaniel SORRY 17:45
squashable6: next
squashable6 AlexDaniel, Next SQUASHathon in 28 days and ≈10 hours (2020-02-02 UTC-12⌁UTC+20). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
xinming_ my %h = %(:a<a b c>, :xx[]); for roundrobin(%h<>:v.map: *.flat) -> @list { @list.perl.say; } 17:48
evalable6 ("a",)
("b",)
("c",)
17:52 Altai-man_ joined, sena_kun left
xinming_ jnthn: github.com/rakudo/rakudo/issues/3402 17:54
17:59 wamba joined 18:05 xinming_ left 18:06 xinming_ joined 18:13 Poohmaan joined
Geth doc: 0f6fa999b7 | threadless-screw++ | doc/Language/operators.pod6
Expansion of Operator precedence and Assignment operators sections; work towards resolving #2920
18:14
doc: 562b3c189d | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/operators.pod6
Merge pull request #3138 from threadless-screw/operators_assignment

Expansion of Operator precedence and Assignment operators sections
18:16 Poohman left
eiro tyil: thanks for replying on the list as well 18:16
18:16 patrickb joined
stoned75 commit: releases .signature.say for "foo".^can("comb")[0].cando: \(Cool, "o"); 18:18
committable6 stoned75, gist.github.com/abeebf18a3d63c86d4...32a3a5e0ac
stoned75 it seems we lost our comb :) 18:20
18:21 mahmudov joined
Geth doc: af869314fe | (Stoned Elipot)++ | doc/Type/Routine.pod6
xref proto
18:23
xinming_ I think I found another bug 18:36
I'll try to narrow it down.
AlexDaniel bisect: old=2017.02 .signature.say for "foo".^can("comb")[0].cando: \(Cool, "o"); 18:40
bisectable6 AlexDaniel, Bisecting by output (old=2017.02 new=e5627b8) because on both starting points the exit code is 0
xinming_ termbin.com/47tu <--- In this example, We'll get error
bisectable6 AlexDaniel, bisect log: gist.github.com/d7541cc997a835109c...17445a3823
AlexDaniel, (2017-02-22) github.com/rakudo/rakudo/commit/a0...e678cbc4b0
xinming_ No such method 'key' for invocant of type 'Str'. Did you mean 'keys'? <---
AlexDaniel stoned75: ↑
xinming_ if anyone here have time, Please check this bug too. termbin.com/47tu <--- If I change this to $regex, It'll work, by using $_ var, I'll get error o such method 'key' for invocant of type 'Str'. Did you mean 'keys'? 18:42
moritz xinming_: change what, exactly? 18:52
xinming_ moritz: with $regex, It'll work
moritz xinming_: you have to be careful, $a ~~ $b sets $_ to $a
when the RHS of the ~~ is evaulated 18:53
xinming_ Ah, Got it, I thought this is a bug.
moritz which is why using $_ or not using $_ can make a big difference in smart matches
xinming_ I thought that when use of `when`, the $_ is used, otherwise, It won't. 18:54
moritz blocks without a signature tend to set $_ 18:57
"for", "given" etc.
Xliff When you re-export a package by using "use Package; sub EXPORT { %(PACKAGE::EXPORT::DEFAULT::) }", it works, but doesn't have a package itself so it can be re-exported. How can I fix that? 19:20
s/can/can't/ 19:21
See this example: github.com/Xliff/p6-GLib/blob/mast.../Types.pm6 19:22
I can "use GLib::Raw::Types" and it will DWIM, but I cannot re-export the symbols from GLib::Raw::Types using the same mechanism, because GLib::Raw::Types isn't a package. 19:24
So what am I missing?
19:29 sauvin left 19:38 timotimo joined 19:45 wildtrees joined 19:52 sena_kun joined 19:53 Altai-man_ left 19:54 wildtrees left
moritz probably the not-yet-specced/implemented re-export feature? 19:55
tyil eiro: no problem :) 20:17
20:18 wildtrees joined
Xliff moritz: Well, got this --- github.com/LLFourn/p6-CompUnit-Util#re-export 20:20
And it seems to work. Time will tell.
.seen LLFourn
tellable6 Xliff, I saw LLFourn 2018-12-19T10:41:23Z in #perl6: <llfourn> nod. I think I just have to let go of that feeling and only use :D when I actually want to do a runtime check.
20:30 rindolf left 20:45 patrickz joined 20:46 patrickb left 21:00 horsepatat left, chloekek joined 21:02 kensanata joined, wamba left 21:17 MasterDuke joined 21:38 mahmudov left 21:39 mahmudov joined 21:51 Altai-man_ joined 21:53 sena_kun left 22:20 mahmudov left, mahmudov joined
Doc_Holliwood jnthn, you will have to spend an extra weekend in purgatory for this terrible, terrible pun. 22:23
22:23 MasterDuke left 22:28 kensanata left
Xliff Doc_Holliwood: What terrible, terrible pun? 22:33
Doc_Holliwood my Cro::Service
lizmat hehe... :-) 22:36
bartolin giggles 22:37
Doc_Holliwood weekly: www.perlmonks.org/?node_id=11110913 22:42
notable6 Doc_Holliwood, Noted! (weekly)
lizmat hopes the flak will be bearable 22:44
Xliff ..... 22:45
Ooooooo
Doc_Holliwood: I think you are being too kind. Let's go for two weekends.
chloekek p6: say 2¹²; say (2¹⁰)² 22:48
camelia 4096
1048576
22:57 lucasb left
stoned75 AlexDaniel: thanks! 23:04
23:27 mahmudov left 23:30 mahmudov joined
Doc_Holliwood lizmat: One hour in. No flak yet, but no upvotes either. 23:31
I guess the monks are sleeping.
lizmat yeah... most likely... 23:34
23:37 mahmudov left 23:39 mahmudov joined 23:44 mahmudov left
jnthn Doc_Holliwood: You only just noticed? :D 23:49
23:50 mahmudov joined 23:52 sena_kun joined 23:54 Altai-man_ left