»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
00:02 revdiablo left, revdiablo joined, p6bannerbot sets mode: +v revdiablo 00:05 cpage joined 00:06 p6bannerbot sets mode: +v cpage 00:15 Sgeo joined, Grauwolf joined, Grauwolf left, Grauwolf joined, p6bannerbot sets mode: +v Grauwolf 00:16 p6bannerbot sets mode: +v Sgeo, p6bannerbot sets mode: +v Grauwolf 00:19 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh 00:22 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 00:30 mowcat joined, p6bannerbot sets mode: +v mowcat 00:54 Xliff joined 00:55 p6bannerbot sets mode: +v Xliff 00:56 daotoad joined 00:57 p6bannerbot sets mode: +v daotoad 00:58 hph^ joined 00:59 p6bannerbot sets mode: +v hph^ 01:06 sena_kun left
SmokeMachine m: CX::Next.throw; CONTROL { default { say “ok” } } 01:06
camelia Invocant of method 'throw' must be an object instance of type 'Exception', not a type object of type 'CX::Next'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
SmokeMachine m: CX::Next.new.throw; CONTROL { default { say “ok” } }
camelia ok
01:08 daotoad left
SmokeMachine m: class :: is X::Control {}.new.throw; CONTROL { default { say “ok” } } 01:10
camelia ok
01:12 TimToady joined 01:13 p6bannerbot sets mode: +v TimToady 01:15 daotoad joined
SmokeMachine jnthn: thank you for telling me to use CATCH and CONTROL on my control exceptions! :) 01:15
01:16 p6bannerbot sets mode: +v daotoad 01:17 Ven`` left 01:19 lizmat left 01:25 zachk left 02:03 aborazmeh left 02:24 Kaypie is now known as Kaiepi 02:49 molaf left 02:58 i1nfusion left 02:59 i1nfusion joined 03:00 p6bannerbot sets mode: +v i1nfusion 03:01 molaf joined 03:02 p6bannerbot sets mode: +v molaf 03:03 daotoad left
Xliff timotimo: Able to get data out of a failed grammar, now. 03:42
03:53 i1nfusion left 03:55 i1nfusion joined, p6bannerbot sets mode: +v i1nfusion 04:02 MasterDuke left 04:22 daotoad joined 04:23 p6bannerbot sets mode: +v daotoad 04:25 daotoad left 04:28 Cabanossi left, Kaiepi left, Cabanossi joined, Kaiepi joined 04:29 p6bannerbot sets mode: +v Cabanossi, p6bannerbot sets mode: +v Kaiepi 04:46 kst joined 04:47 p6bannerbot sets mode: +v kst 05:18 i1nfusion left 05:44 pmurias joined, p6bannerbot sets mode: +v pmurias 05:50 pmurias left 05:59 Cabanossi left 06:00 Cabanossi joined 06:01 p6bannerbot sets mode: +v Cabanossi 06:21 dncefan left 07:08 dncefan joined, p6bannerbot sets mode: +v dncefan 07:14 dncefan left 07:22 dncefan joined, p6bannerbot sets mode: +v dncefan 07:25 hythm_ joined, p6bannerbot sets mode: +v hythm_
hythm_ p6: enum C ( A => 1, B => 2); multi s(A) {}; say 1 ~~ A; s 1 # Why this doesn't work although 1 ~~ A ? 07:32
camelia True
Cannot resolve caller s(1); none of these signatures match:
(C $ where { ... })
in block <unit> at <tmp> line 1
hythm_ p6: multi i(Int) {}; i(1) 07:58
camelia ( no output )
08:15 rindolf joined 08:16 p6bannerbot sets mode: +v rindolf 08:18 lizmat joined, p6bannerbot sets mode: +v lizmat 08:24 jmerelo joined 08:25 p6bannerbot sets mode: +v jmerelo 08:35 domidumont joined 08:36 p6bannerbot sets mode: +v domidumont 08:39 dncefan left 08:40 MilkmanDan left, MilkmanDan joined, p6bannerbot sets mode: +v MilkmanDan 08:47 robertle left 08:49 dncefan joined, p6bannerbot sets mode: +v dncefan 08:51 molaf left 09:01 hythm_ left 09:14 kurahaupo_ left 09:19 robertle joined 09:20 p6bannerbot sets mode: +v robertle 10:15 rindolf left 10:21 ChoHag joined 10:22 p6bannerbot sets mode: +v ChoHag 10:29 rindolf joined 10:30 p6bannerbot sets mode: +v rindolf 10:47 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh 10:48 p6bannerbot sets mode: +v aborazmeh 10:52 MilkmanDan left 10:53 MilkmanDan joined, p6bannerbot sets mode: +v MilkmanDan
Geth doc: 6e390bd27d | (JJ Merelo)++ | 2 files
Fixes description of archname

Thanks for the report. Closes #2557
11:02
pony m: my $ls = (1 ... *).map({ sleep 1; $_ }); my $tap = $ls.Supply.tap: {;}; say 'hello' 11:11
camelia (timeout)
pony why doesn't it get to hello?
timotimo i'm not sure if this is the right explanation, but i've heard multiple times that supplies don't introduce concurrency by themselves. rather, they exist to tame existing concurrency (like asynchronous events) 11:12
so i guess without an explicit "start" or implicit scheduling action, this won't have multiple threads 11:13
pony ah 11:14
timotimo try this:
m: my $ls = (1 ... *).map({ sleep 1; $_ }); my $tap = $ls.Supply.Channel.Supply.tap: {;}; say 'hello' 11:15
ah, hm. no. not like this.
that'll still eagerly send all the values to the channel
camelia (timeout)
11:16 sena_kun joined 11:17 p6bannerbot sets mode: +v sena_kun
timotimo well, there'll just have to be a "start" somewhere i guess :) 11:17
pony yeah, what i was thinking :)
m: my $ls = (1 ... *).map({ sleep 1; $_ }); start my $tap = $ls.Supply.tap: { .put 11:19
}; put "Hello"; sleep 3;
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3; start my $tap = $ls.Supply.tap: { .put7⏏5<EOL>
expecting any of:
statement end
statement modifier
statement modifier loo…
pony blah
m: my $ls = (1 ... *).map({ sleep 1; $_ }); start my $tap = $ls.Supply.tap: { .put }; put "Hello"; sleep 3; 11:20
camelia Hello
1
2
timotimo put put
11:38 pmurias_ joined, p6bannerbot sets mode: +v pmurias_
jmerelo timotimo: as long as we're talking threads, can you have a look at this? stackoverflow.com/questions/540885...gram-hangs 11:46
timotimo: or this: stackoverflow.com/q/52082308/891440 11:47
timotimo oh, i somehow thought the first one had been solved but not marked 11:50
now i re-read the comment it says it still has the same problem, eh? 11:51
it's probably just setting max_threads too low
perhaps that causes the TPS to not engage its deadlock detection mode
i'm not sure how the precomp store or precomp repository will do its precompilation stuff, exactly 12:00
if it does out-of-process precomp, i'd expect it to also use at least one thread to handle output from the child process? 12:01
jmerelo timotimo: I really don't know the first thing about precomp. Everything in that area is cloudy and mysterious (and so far undocumented) 12:04
12:15 aborazmeh left 12:25 remi_ness joined 12:26 p6bannerbot sets mode: +v remi_ness
Geth doc/ufobat-patch-1: 24babc1404 | (Martin Barth)++ (committed using GitHub Web editor) | doc/Language/list.pod6
Fixed array slice with [0..^*]

  ```
  $ perl6 -e 'my @a = 1..5; say @a[0..^*]'
  (1 2 3 4)
  ```
12:28
doc: ufobat++ created pull request #2561:
Fixed array slice with [0..^*]
timotimo m: my @a = 1..5; say @a[0..^*] 12:29
camelia (1 2 3 4)
timotimo ah, it's example output that's wrong 12:30
12:32 ufobat joined 12:33 p6bannerbot sets mode: +v ufobat
ufobat m: my @a = 1..5; say @a[0..^3] ~~ @a[0..3-1] 12:33
camelia True
ufobat m: my @a = 1..5; say @a[0..^*] ~~ @a[0..*-1] 12:34
camelia False
ufobat if 0..^3 is the same as 0..3-1 why isn't 0..^* the same as 0..*-1 in a array slice
Geth doc: 24babc1404 | (Martin Barth)++ (committed using GitHub Web editor) | doc/Language/list.pod6
Fixed array slice with [0..^*]

  ```
  $ perl6 -e 'my @a = 1..5; say @a[0..^*]'
  (1 2 3 4)
  ```
12:36
synopsebot Link: doc.perl6.org/language/list
doc: 69e7e3a57c | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/list.pod6
Merge pull request #2561 from perl6/ufobat-patch-1

Fixed array slice with [0..^*]
timotimo ufobat: 0..^* is an infinite range, whereas 0..^*-1 will create a WhateverCode that the postcircumfix:<[ ]> operator will pass the length of the array to 12:37
and 0..^* is actually equivalent to 0..* AFAIK
m: dd 0..^*; dd 0..* 12:38
camelia (0, 1, 2, 3, 4, 5, 6, 7, 8, 9... lazy list)
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9... lazy list)
timotimo well...
m: (0..^*).DUMP.say; (0..*).DUMP.say
camelia Range<1>(
:min(0),
:max(Inf),
:$!excludes-min(=Int<2>),
:$!excludes-max(1),
:$!infinite(=Int<4>),
:$!is-int(=Int<2>)
)
Range<1>(
:min(0),
:max(Inf),
:$!excludes-min(=Int<2>),
:$!excludes-…
timotimo not terribly helpful, i suppose
12:42 pmurias_ left 12:43 pmurias_ joined, p6bannerbot sets mode: +v pmurias_ 12:44 mike_swie left 12:47 dncefan left 12:52 lucasb joined, p6bannerbot sets mode: +v lucasb 12:59 dncefan joined 13:00 p6bannerbot sets mode: +v dncefan
ufobat timotimo, no i dont get it from your explanation because 0..^* is actually all but the last element whereas 0..*-1 are all elements 13:03
timotimo m: my @a = 1, 2, 3, 4, 5; say @a[0..^*] 13:04
camelia (1 2 3 4)
timotimo oh, huh, so it is
m: my @a = 1, 2, 3, 4, 5; say @a[0..^Inf]
camelia (1 2 3 4 5)
timotimo m: say (0..^*).WHAT
camelia (Range)
timotimo so that's a thing, OK!
ufobat m: my @a = 1..5; say @a[0..*-1] 13:05
camelia (1 2 3 4 5)
ufobat so the * isnt a "fixed number" if you will
if * woud be 3, the slice with 0..^3 means the same as 0..3-1
with * in the slice, it isn't 13:06
m: my @a = 1..5; say @a[0..Inf-1]
camelia (1 2 3 4 5)
ufobat m: my @a = 1..5; say @a[0..^Inf]
camelia (1 2 3 4 5)
ufobat m: my @a = 1..5; say @a[0..^*]
camelia (1 2 3 4)
ufobat ja 13:07
m: my @a = 1..5; say @a[0..*-1]
camelia (1 2 3 4 5)
ufobat m: my @a = 1..5; say @a[0..Inf-2]
camelia (1 2 3 4 5)
ufobat m: my @a = 1..5; say @a[0..*-2]
camelia (1 2 3 4)
ufobat :D
timotimo : my @a = 1..5; say @a[0..^*-1] 13:08
m: my @a = 1..5; say @a[0..^*-1]
camelia (1 2 3 4)
ufobat the -1 doesnt have an effect on it, now?
huh
jmerelo *ping* 13:09
if that makes sense to someone, it isnt documented or i didnt find it :( 13:10
timotimo i'm headachy and having a hard time concentrating, but i suggest writing down a matrix (or two) for .. vs ..^, * vs *-1, maybe something else? 13:11
13:13 molaf joined 13:14 p6bannerbot sets mode: +v molaf 13:15 kensanata joined, p6bannerbot sets mode: +v kensanata
kensanata AlexDaniel: tons of issues... :) 13:27
13:31 patrickb joined 13:32 p6bannerbot sets mode: +v patrickb 13:35 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo 13:46 jmerelo left 13:50 john_parr joined, p6bannerbot sets mode: +v john_parr 13:58 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh
sena_kun m: class A { has Positional[Int] $.a; }; A.new(a => (1,2,3)); 14:03
camelia Type check failed in assignment to $!a; expected Positional[Int] but got List ($(1, 2, 3))
in block <unit> at <tmp> line 1
sena_kun this is a golfed example, how can I fix that? Of course, I can `has Int @.a`, but let's say I cannot afford it for some reason and have to dance around typed `Positional`. 14:05
jnthn m: class A { has Positional[Int] $.a; }; A.new(a => Array[Int](1,2,3))
camelia ( no output )
14:05 [particle]1 joined
jnthn sena_kun: type checking is nominal, not structural, so the incoming type needs to match up if just storing the thing into a Scalar. The `has Int @.a` works because it copies, and so can check each element as it goes. 14:06
14:06 p6bannerbot sets mode: +v [particle]1
sena_kun thanks, will go with it! 14:07
m: say Array[Int](1,2,3); say Array[Int].new(1,2,3);
camelia [1 2 3]
[1 2 3]
sena_kun that's interesting to remember too. :) 14:08
14:08 [particle] left 14:11 molaf left 14:22 aborazmeh left 14:23 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 14:28 kensanata left 14:33 dogbert17 joined, p6bannerbot sets mode: +v dogbert17
ufobat i've running into the same lateley, sena_kun 14:34
and i ended up removing the types for @arrays because if the original Arrays came from a different module/api you have to write a lot of code to glue them together :( 14:35
sena_kun well, I am having a "better" one here: `Type check failed in assignment to ; expected Control but got Control.new(control-type => ...`. :)
14:36 pmurias_ left, pmurias_ joined, p6bannerbot sets mode: +v pmurias_ 14:45 pmurias_ left 14:46 pmurias joined, p6bannerbot sets mode: +v pmurias 14:52 guifa joined, p6bannerbot sets mode: +v guifa 14:59 sno left
Xliff \o 15:08
Morning from snowedinland! ;)
MasterDuke Xliff: likewise
Xliff MasterDuke: East Coast US? 15:11
MasterDuke yep, about 4-6" so far, still falling 15:12
Xliff Same here. 15:13
guifa We're just getting the frigid air here in Tennessee. No snow to go with =\ 15:14
Xliff guifa: Snow is overrated.
guifa Snow = no classes = I don't have to teach 15:15
:-)
So I think I may be doing something wrong (I hope) or stumbled across something weird. I've tried manually adding an attribute using ^add.attribute, but the .get_value on the attribute bombs with P6Opaque error saying the attribute doesn't exist (even though the setting goes with no problem) 15:17
15:18 molaf joined, p6bannerbot sets mode: +v molaf
Xliff guifa: Example code? 15:19
guifa: Also, it's Sunday. Maybe there's still time? ;) 15:20
guifa Yeah, let me try to get a MWE here
15:24 bisectable6 left
b2gills guifa: Here in Iowa we don't call off classes for less than 6 inches of snow on the roads. 15:25
Xliff b2gills: LOL 15:26
Who is the doc person here? I can't get perl6-doc to make due to an error in pod2onepage 15:27
guifa Since we have lots of mountain roads and only 3-4 snow days a year it's just cheaper for us to close rather than salt every road. Snow at 31-32 inevitably just turns into ice with folks driving, sadly.
b2gills I remember traveling home on the highway at near highway speeds where we could only tell where the road was by the shape of the ditches. 15:28
guifa And here's a MWE: tio.run/##pVNNS8NAED03v2KMgSQlbG8e...3pMAFAtmuU
15:29 shareable6 left, greppable6 left, benchable6 left, undersightable6 left, releasable6 left, notable6 left, squashable6 left, undersightable6 joined 15:30 greppable6 joined, ChanServ sets mode: +v greppable6, p6bannerbot sets mode: +v undersightable6, squashable6 joined, notable6 joined, ChanServ sets mode: +v notable6 15:31 p6bannerbot sets mode: +v greppable6
holyghost lol 15:31
15:31 p6bannerbot sets mode: +v squashable6, releasable6 joined, ChanServ sets mode: +v releasable6, bisectable6 joined, p6bannerbot sets mode: +v notable6 15:32 benchable6 joined
holyghost We don;t have snow here in Belgium, Brussels 15:32
15:32 kensanata joined, p6bannerbot sets mode: +v kensanata
holyghost Rain yes 15:32
15:32 p6bannerbot sets mode: +v releasable6, p6bannerbot sets mode: +v bisectable6, p6bannerbot sets mode: +v benchable6 15:33 shareable6 joined, ChanServ sets mode: +v shareable6, p6bannerbot sets mode: +v shareable6
Xliff m: my $a = 'abcdefg'; given $a { when .starts-with( any('a'..'z') ) { say 1; }; }; 15:37
camelia 1
Xliff m: say $*PERL.compiler.version
camelia v2018.12.206.g.7.be.075.eb.5
15:45 hph^ left
Xliff m: my $a = 'abcdefg'; given $a { when .starts-with( any(<a b c d>) ) { say 1; }; }; 15:53
camelia 1
15:55 ChoHag left
daxim my lists are evaporating: paste.scsys.co.uk/582758?ln=on 16:04
16:09 zakharyas joined 16:10 p6bannerbot sets mode: +v zakharyas
Xliff m: 5.max(6).say 16:12
camelia Cannot resolve caller max(Int:D: Int:D); none of these signatures match:
($: *%_)
($: &by, *%_)
in block <unit> at <tmp> line 1
tyil what constitutes an "alphabetic" method? just a method that only contains alphabetic characters (including the leading &, if needed)? 16:15
for context: tio.run/#perl6 16:16
err
tio.run/##K0gtyjH7/7@4NEkhLT9fQUMl...vKLiv//BwA
should at least link it with some code 16:17
16:17 Skarsnik joined
Skarsnik Hello there 16:17
16:17 p6bannerbot sets mode: +v Skarsnik
tyil hi Skarsnik 16:17
Skarsnik almost done with my advent calandar post! just in time xD 16:19
sucks, I got some computer issue on december x)
tyil there'll be another advent calendar later this year
or so I heard
16:21 jmerelo joined 16:22 p6bannerbot sets mode: +v jmerelo 16:23 mowcat left
holyghost hail to jmerelo and Skarsnik ! 16:28
holyghost is drunk
jmerelo hi!
lizmat daxim: no idea what's going on there
holyghost the gobilins !
lol 16:29
daxim List(List(x)) works, which makes 1 List. List(x) is the same as plain x, which makes an x.
I find this surprising
Skarsnik why do i always hit weird bug when working on perl 6 stuff xD
lizmat m: dd List(42)
camelia (42,)
lizmat daxim: not that simple ^^^
jmerelo daxim: it's a single-element list. Might print out in the same way as that single element, but it's still a list. 16:30
daxim jmerelo, ^name doesn't lie
lizmat jmerelo: it's not that simple :-( 16:31
sena_kun how can two type objects have the same .WHICH value but fail smartmatch and type check? `===` is True, `==` is True, `~~` is False and type check fails too.
lizmat daxim: ^name *can* lie, but isn't in this case :-)
m: BEGIN Int.^set_name("Foo"); say 42.^name 16:32
camelia Foo
moritz sena_kun: sounds like a bug. If === is True, smart-match should as well
m: my $a = { my class A { } }; my $b = { my class A { } }; say $a === $b 16:33
camelia False
sena_kun ouch... that is unfortunate.
moritz do you have an easy way to reproduce it?
sena_kun I'll try to make a short gist, yes. 16:34
my situation is: 1)create a class using MOP(say "Inner"); 2)assign it as a type of an attribute in another created class(say "Outer"); 3)when I try to create instance of Outer with Inner.new type check fails. 4)but if I manually get ^attributes of Outer to get type of this attr, I will get Inner -> it's .WHICH is the same to Inner that I have globally, it passes ===, but fails ~~ and fails type check. 16:36
I'll try to make a gist now...
Skarsnik hm, I have a grammar that does not stop properly on current rakudo vs 2018.03
sena_kun s/it's/its/ 16:37
Skarsnik 6.d have nothing new for grammar?
16:38 kensanata left
guifa daxim: it is returning a list, but I think the catch is, in your second loop, your loop is just returning a single list rather than a list of lists. So when you -> $x, it's passing the inner value. 16:38
daxim hmm 16:40
holyghost Skarsnik, there's 2018.12 now
Skarsnik I am trying the current one (git version) 16:41
guifa daxim: add these lines and you'll see what I mean a bit better I think 16:43
say (span-slices 3, 0 => 4).WHAT; say (span-slices 3, 0 => 4).perl; say (span-slices 1, 0 => 4).WHAT; say (span-slices 1, 0 => 4).perl;
Skarsnik m: enum Foo(A => 0, B => 1); say Foo(0); say Foo(42) 16:44
camelia A
(Foo)
Skarsnik Should it produce an error and tell you are creating an invalid instance of the enum?
sena_kun golfed it down... 16:45
daxim that explanation was helpful, guifa++ that fits the intuition I need to return List(List(x)) for the `??` case of the ternary op expression
sena_kun gist.github.com/Altai-man/225947b7...33e1d76490 <- moritz 16:46
Xliff m: my $t = 'o { { } }'; my $m = $t ~~ s/'{' ~ '}' ./; say $m
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use variable $m in declaration to initialize itself
at <tmp>:1
------> 3 }'; my $m = $t ~~ s/'{' ~ '}' ./; say $7⏏5m
expecting any of:
infix stopper
term
Xliff m: my $t = 'o { { } }'; my $m = $t ~~ /'{' ~ '}' ./; say $m
camelia 「{ }」
Xliff m: my $t = 'o { { } }'; my $m = $t ~~ /'o' \s+ {' ~ '}' ./; say $m 16:47
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1)
at <tmp>:1
------> 3 $m = $t ~~ /'o' \s+ {' ~ '}' ./; say $m7⏏5<EOL>
expecting …
Xliff m: my $t = 'o { { } }'; my $m = $t ~~ /'o' \s+ '{' ~ '}' ./; say $m
camelia (Any)
Xliff m: my $t = 'o { { } }'; my $m = $t ~~ /'o' \s+ ' {' ~ '}' ./; say $m
camelia (Any)
Xliff m: my $t = 'o { { } }'; my $m = $t ~~ /^ 'o' \s+ '{' ~ '}' ./; say $m
camelia (Any)
Xliff m: my $t = 'o { { } }'; my $m = $t ~~ /'{' ~ '}' ./; say $m 16:48
camelia 「{ }」
sena_kun I am ready to try to debug this bug,(if that's a bug) as I need a workaround or a fix as soon as possible, but some help from experienced hackers is likely needed for it. :)
Xliff m: my $t = 'o { { asdlkjasd[ {}} }'; my $m = $t ~~ /'{' ~ '}' ./; say $m
camelia 「{}}」
Xliff m: my $t = 'o { { asdlkjas }'; my $m = $t ~~ /'{' ~ '}' ./; say $m 16:49
camelia (Any)
holyghost is an experienced hacker :-)
Xliff m: my $t = 'o { sdlkjas }'; my $m = $t ~~ /'{' ~ '}' ./; say $m
camelia (Any)
Xliff m: my $t = 'o { sdlkjas }'; my $m = $t ~~ /'{' ~~ '}' ./; say $m
camelia 5===SORRY!5===
Unrecognized regex metacharacter ~ (must be quoted to match literally)
at <tmp>:1
------> 3 sdlkjas }'; my $m = $t ~~ /'{' ~~ '}' .7⏏5/; say $m
Unable to parse regex; couldn't find final '/'
at <tmp>:1
------> 3 s…
Xliff m: my $t = 'o { sdlkjas }'; my $m = $t ~~ /'{' ~ '}' \w+/; say $m
camelia (Any)
Xliff OK. I think I am forgetting something. 16:50
guifa daxim: I've found whenever I get weird stuff, the .WHAT is the quickest thing to solving a lot of my hidden-in-plain-site mistakes.
16:55 pochi joined 16:56 p6bannerbot sets mode: +v pochi 16:58 mowcat joined 16:59 p6bannerbot sets mode: +v mowcat 17:01 molaf left, holyghost left, molaf joined 17:02 p6bannerbot sets mode: +v molaf 17:03 MilkmanDan left, zakharyas left 17:05 MilkmanDan joined, p6bannerbot sets mode: +v MilkmanDan 17:10 lasse joined, p6bannerbot sets mode: +v lasse 17:14 jme` left
Xliff m: my $t = 'o { { asdlkjasd[ { }'; my $m = $t ~~ /'{' ~ '}' <[\w [}{\s]>+ /; say $m 17:19
camelia 「{ { asdlkjasd[ { }」
Xliff \o/
17:22 Brynn joined, guifa left, p6bannerbot sets mode: +v Brynn
jmerelo Hi, Xliff 17:25
Working on your issue now
m: "/this/link".starts-with( any(<http:// https:// irc://>) ) 17:26
camelia ( no output )
Xliff jmerelo: \o
jmerelo: Yeah. I tried working on it, but I couldn't reproduce it on camelia. 17:27
Geth doc: Kaiepi++ created pull request #2563:
Document trap on (cont) subroutine on Map/Hash
17:32
jmerelo m: say any(<http:// https:// irc://>)
camelia any(, , irc://)
jmerelo m: say "whatever".starts-with( any(<http:// https:// irc://>) ) 17:33
camelia any(False, False, False)
jmerelo Ah, rithg
right.
Xliff Yeah.
m: say "whatever".starts-with( any(<http:// https:// irc://>) ).so
camelia False
Kaiepi m: my %a is Bag = (a => 0); %a (cont) 'a'
camelia WARNINGS for <tmp>:
Useless use of "(cont)" in expression "%a (cont) 'a'" in sink context (line 1)
Xliff So was it as simple as that? I thought "when" handled junctions. 17:34
Kaiepi m: my %a is Bag = (a => 0); say %a (cont) 'a'
camelia False
Skarsnik hm anyone managed to use markdown (copy/paste from a file) on blog.perl.org? 17:35
Xliff m: my %a is Bag = (a => 0); say %a ⊃ 'a'
camelia False
sena_kun don't want to be annoying, but is gist.github.com/Altai-man/225947b7...33e1d76490 a bug? if yes, what can I help with besides filling an issue? 17:36
Xliff m: '⊃'.uniname.say 17:37
camelia SUPERSET OF
17:37 zakharyas joined
Xliff m: '⊃'.uniname 17:37
camelia ( no output )
Xliff m: '⊃'.unicode 17:38
camelia No such method 'unicode' for invocant of type 'Str'. Did you mean 'encode'?
in block <unit> at <tmp> line 1
Xliff m: '⊃'.ord.say
camelia 8835
Xliff m: '⊃'.ord.fmt("%x").say
camelia 2283
17:38 p6bannerbot sets mode: +v zakharyas
Xliff m: my %a is Bag = (a => 0); say %a ∋ 'a' 17:39
camelia False
Xliff m: my %a is Bag = (a => 0); say 'a' ∋ %a
camelia False
17:40 guifa joined, p6bannerbot sets mode: +v guifa 17:42 tokomer joined 17:43 p6bannerbot sets mode: +v tokomer 17:46 abaiste joined 17:47 p6bannerbot sets mode: +v abaiste 17:51 MilkmanDan left 17:52 MilkmanDan joined, p6bannerbot sets mode: +v MilkmanDan
Skarsnik blogs.perl.org/users/sylvain_coline...3-gfx.html x) 17:55
18:02 lucasb left
Xliff sssss 18:05
Oh wow! Wincompose is nice! 18:06
18:06 MilkmanDan left
Xliff s 18:07
18:08 MilkmanDan joined, p6bannerbot sets mode: +v MilkmanDan 18:25 random_yanek left
moritz my IRC client renders lines as <+nick> message, and Xliff just composed something onto the > character :-) 18:29
jmerelo Xliff: weechat composed it on the | right after the name
Geth perl6-pod-to-bigpage: d05cb3dfce | (JJ Merelo)++ | t/render.t
Suppress debugging prints
18:32
perl6-pod-to-bigpage: a509c00c9f | (JJ Merelo)++ | 2 files
Fixing error perl6/doc#2562 #34. WIP
perl6-pod-to-bigpage: 92f2e4ef9f | (JJ Merelo)++ | 4 files
Fixes the problem of links-as-arrays

Which I don't really understand, but that's the way it is. Fixes #34.
Also WIP for perl6/doc#2562, will have to be tested.
Adds a ChangeLog for registering changes in every new version. Writes tests also for new feature.
synopsebot DOC#2562 [open]: github.com/perl6/doc/issues/2562 [bug][external][⚠ Blocker ⚠] make Error Encountered When Building Docs
Xliff moritz: LOL! 18:33
Combining unicode chars.
It was supposed to go over the 's' 18:34
Geth doc: 2f8a1c1d8b | (Ben Davies)++ | doc/Language/traps.pod6
Document trap on set subroutines on Associative

Fixes github.com/rakudo/rakudo/issues/2604
synopsebot Link: doc.perl6.org/language/traps
Geth doc: ca3067e5e7 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | doc/Language/traps.pod6
Merge pull request #2563 from Kaiepi/traps

Document trap on set subroutines on Associative
timotimo Skarsnik: length or lenght? :) 18:36
18:37 random_yanek joined 18:38 p6bannerbot sets mode: +v random_yanek 18:45 molaf left 18:49 Grauwolf left, Grauwolf joined, p6bannerbot sets mode: +v Grauwolf
lizmat weekly: trendsfocus.net/mis-using-perl-6-g...da-3-gfx-2 18:54
notable6 lizmat, Noted!
lizmat I wonder if someone can make a summary of that article... It's all Chinese to me :-( 18:55
Geth doc: edf550628a | (JJ Merelo)++ | META6.json
Bumps up to use new version of p2obp refs #2562
doc: 8c23b6ddba | (JJ Merelo)++ | doc/404.pod6
Adds more info to 404.

Meanwhile, the change to p2obp has tested OK, so the previous commit closes #2562
yoleaux AlexDaniel: get huggable back on its feet 18:57
AlexDaniel .in 7d get huggable back on its feet 18:59
yoleaux AlexDaniel: I'll remind you on 20 Jan 2019 18:59Z
AlexDaniel busy…
timotimo m: multi sub data($cmd where 1 | 2, $length) { say "one or two: $length" }; multi sub data($cmd where 4 | 7, $length) { say "four or seven: $length" }; data(1, 1); data(2, 1); data(4, 99); data(7, 1000)
camelia one or two: 1
one or two: 1
four or seven: 99
four or seven: 1000
timotimo Skarsnik: you can make the signatures much shorter!
lizmat looks like the Camelia plushy has been cloned: twitter.com/hythm_hythm/status/108...3959030786 19:00
El_Che The first Raku butterfly at that 19:01
lizmat yeah... I just realize that myself :-)
El_Che I was waiting for the penny to drop :)
lizmat wonder who hythm_hythm is
it's their first tweet 19:02
Skarsnik timotimo, witch one? x)
timotimo length is correct afaik 19:03
oh, you mean the signatures?
that's from "multi token data" in the "Validate commands" section of the post
El_Che the account doesn't follow regular people
timotimo sneshacking? you misspelt shaking there :) :)
snek shaking
El_Che only famous ones and institutions like Nasa en MegaDeath
timotimo i've seen hythm as a nickname on irc at least 19:04
ooooh, i see what you mean with raku butterfly
.seen hythm
yoleaux I saw hythm 19 Jul 2018 18:36Z in #perl6: <hythm> great, thanks
El_Che 08:25 -!- hythm_ [4a495925@gateway/web/freenode/ip.74.73.89.37] has joined #perl6 19:05
Skarsnik timotimo, hooo, I did not think of that form, my first idea what just foo(1 | 2)
but it does not work
timotimo true ,you need the value itself
Skarsnik lenght or length I always get it wrong xD 19:06
19:06 zakharyas left
timotimo i had issues with width for the longest time when i was a kid 19:06
probably also height 19:07
19:11 dncefan left, dncefan joined 19:12 p6bannerbot sets mode: +v dncefan
guifa Okay, I feel a bit stupid. i should have been using augment all along. 19:20
But it does still make e wonder why after using add_attribute things bomb when using set_value and get_value on the newly created attribute (stuff added via add_method work no problem) 19:21
19:25 zakharyas joined 19:26 p6bannerbot sets mode: +v zakharyas 19:29 kurahaupo left 19:31 dncefan left 19:32 dncefan joined 19:33 p6bannerbot sets mode: +v dncefan 19:35 MasterDuke left 19:36 tokomer left 19:50 pmurias_ joined, p6bannerbot sets mode: +v pmurias_, pmurias_ left
sena_kun lizmat++ is just awesome. \o/ 19:52
lizmat *blush*
sena_kun: I just recognized the failure pattern from a similar issue a few days ago
sena_kun for me it is a life-saving fix. :) 19:53
lizmat glad to hear! 19:54
Skarsnik I should do a small camelia image to use as twitch emote x)
jmerelo sena_kun: I don't know what's the ocassion, but lizmat++ always applies
lizmat jmerelo: github.com/rakudo/rakudo/issues/2607 19:55
19:56 pmurias left 19:57 kurahaupo joined 19:58 pmurias joined, p6bannerbot sets mode: +v pmurias, p6bannerbot sets mode: +v kurahaupo 20:01 dncefan left, dncefan joined 20:02 p6bannerbot sets mode: +v dncefan 20:03 kurahaupo_ joined, kurahaupo left, p6bannerbot sets mode: +v kurahaupo_ 20:07 kurahaupo_ left
guifa Actually grrr... even using augment new attributes are seemingly invisible. Did I stumble upon a bug or is there special syntax for that? 20:08
sena_kun guifa, I guess you already provided a gist? Maybe github.com/rakudo/rakudo/issues/2607 is at fault? 20:09
20:10 thelounge02 joined, p6bannerbot sets mode: +v thelounge02 20:11 thelounge02 left
guifa sena_kun: possibly? I've been whittling things down and trying a couple of things to make sure it's not just me. add_method() definitely works no problem, but add_attribute() doesn't, same for methods added via augment class Foo {} (work) vs attributes added via augment (don't work) 20:12
I just wanted to verify it's not me before I went and did a bug report
tyil is it ok if I join a bot here that notifies of new perl 6 modules on cpan, now that buggable is gone?
source of bot is git.tyil.nl/perl6/app-cpan-uploadn...erBot.pm6, if that matters 20:13
20:15 zakharyas left
sena_kun m: my $a = Metamodel::ClassHOW.new_type(name => 'A'); $a.^add_attribute(Attribute.new(name => '$!a', type => Int, package => $a, :has_accessor)); $a.^compose; say $a.^attributes; 20:15
camelia (Int $!a)
sena_kun guifa, ^?
20:15 jmerelo left 20:16 sno joined
sena_kun m: my $a = Metamodel::ClassHOW.new_type(name => 'A'); $a.^add_attribute(Attribute.new(name => '$!a', type => Int, package => $a, :has_accessor)); my $aa = $a.new; $aa.^attributes[0].set_value($aa, 5); say $aa; 20:16
camelia No such method 'new' for invocant of type 'A'
in block <unit> at <tmp> line 1
sena_kun m: my $a = Metamodel::ClassHOW.new_type(name => 'A'); $a.^add_attribute(Attribute.new(name => '$!a', type => Int, package => $a, :has_accessor)); $a.^compose; my $aa = $a.new; $aa.^attributes[0].set_value($aa, 5); say $aa;
camelia A.new(a => 5)
sena_kun guifa, ^?
20:16 p6bannerbot sets mode: +v sno
Xliff github.com/Xliff/p6-VisualGrammar/ 20:17
\o/
tyil Xliff: now that's hot
sena_kun tyil, I don't see why you can't add the bot.
tyil Xliff: I recently got my hands on a book on regexes and grammars, I can play around with that application while learning more about grammars 20:18
Xliff tyil: Ah! That's cool. Please share any issues or suggestions when you do! :)
tyil: Sorry about all of the work required to install. I have so many projects in the pipe. 20:19
tyil I know that feeling
guifa sena_kun: this is what's bombing
tio.run/##VZBLa4NAEIDv/orBBLSw8dZe...nv4IaHT9/8
Xliff tyil: Would be interested to know how long it takes for you to compile GtkPlus
tyil I'm running low on time for all my projects ;(
Xliff: not that long 20:20
I already have it compiled
sena_kun guifa, at the very least, I think you have to use a name with a sigil and twigil, like `$!bar`, not just `bar`.
tyil x11-libs/gtk+, versions 2.24.32-r1 and 3.24.1
guifa I've tried that too, sans success. The add_attribute doesn't have much documentation so I've not been clear whether those get added based on has_accessor or not 20:21
20:22 cpan-p6 joined 20:23 p6bannerbot sets mode: +v cpan-p6
Xliff tyil: No. p6-GtkPlus will take a while. 20:24
That's my upcoming perl6 binding for GTK. ;)
tyil oh
nice 20:25
lizmat add_attribute is relatively straightforward: it's probably an issue with the Attribute object that you created
20:25 domidumont left
Xliff It's designed to cover the areas that GTK::Simple hasn't. 20:25
tyil I don't fear the compiler, so no worries for me
Xliff That makes it an order of magnitude larger.
guifa lizmat: the same thing happens when using augment, though
Xliff Wonder if I should be tongue-in-cheek and call it GTK::Complex
guifa tio.run/##ZY4xC8IwFIT3/IpDOuhg6SAO...RfFWLGrX0D
tyil hehe
sena_kun guifa, well, with `$!bar` as a name and `$x.^attributes.grep(*.name eq '$!bar')[0].set_value($x, 'Foo');` exploding I would call it a bug. 20:26
guifa, though, maybe still related to the issue I have pointed to. I don't have fresh rakudo right now to check if it explodes after the fix or not.
Skarsnik You should patch GPTrixie to genrate good OO binding x) 20:27
guifa sena_kun: Okay, I'll go ahead and write up an issue. Like I said, it was more of a "I know I'm working in the here-be-dragons part of the less documented forest, so I'd better check I'm not just a fool first" 20:28
sena_kun guifa, can you build latest rakudo && check?
20:28 cpan-p6 left 20:30 cpan-p6 joined, pmurias left 20:31 p6bannerbot sets mode: +v cpan-p6, pmurias joined, p6bannerbot sets mode: +v pmurias
El_Che Xliff: great! Learning Vala seems such a waste of time and not too fond of JS of Python for desktop apps. Rust seems be getting popular (as it has sane threading), but I reckon perl 6 will be easier to write! 20:33
guifa sena_kun: I can possibly tonight or tomorrow. I've not done a from-source build before but I suppose I should probably get that set up 20:36
sena_kun guifa, after about 12-14 hours I'll do it myself, so if you can wait a bit, then you don't need to. I'll also ping you on the results. 20:37
guifa sena_kun: I mean, go for it but I still need to get a build set up done anyways, this just incentivizes it ;-) 20:39
sena_kun guifa, that's fair. 20:40
guifa In the meantime, I've gotten a set up that works with only add_method + Roles but it fails === Type comparisons 20:41
Skarsnik timotimo, no way to use Perl 6 from C/C++ yet? (by using libmoar maybe?) 20:42
guifa (doing a freezable regex. So if you do $a = /$b/, you can $a.freeze to lock in place the value of $b at the time. $a.thaw has been where all the trouble is because I needed to store the original somewhere)
20:45 cydf joined 20:46 p6bannerbot sets mode: +v cydf 20:49 kurahaupo joined 20:50 p6bannerbot sets mode: +v kurahaupo 20:52 pmurias left 20:54 pmurias joined, p6bannerbot sets mode: +v pmurias
Xliff Is there a way to close all taps on a single supply? 21:01
21:02 lasse left
lizmat .close for $supply.taps ? 21:04
21:11 kurahaupo left 21:12 kurahaupo joined
Xliff lizmat: Did I miss that, here? 21:13
docs.perl6.org/type/Supply
21:13 p6bannerbot sets mode: +v kurahaupo
Xliff m: use v6.c; my $s = Supply.new; $s.tap({ "Hi!".say }); .say for $s.taps; 21:13
camelia Cannot directly create a Supply. You might want:
- To use a Supplier in order to get a live supply
- To use Supply.on-demand to create an on-demand supply
- To create a Supply using a supply block
in block <unit> at <tmp> line 1
lizmat I misremembered: in a previous Supply implementation, there used to be a .taps method, I seem to recall
Xliff m: use v6.c; my $s = Supplier.new.Supply; $s.tap({ "Hi!".say }); .say for $s.taps;
camelia No such method 'taps' for invocant of type 'Supply'. Did you mean any of these?
Map
map
tail
take

in block <unit> at <tmp> line 1
Xliff m: my $s = Supplier.new.Supply; $s.tap({ "Hi!".say }); .say for $s.taps; 21:14
camelia No such method 'taps' for invocant of type 'Supply'. Did you mean any of these?
Map
map
tail
take

in block <unit> at <tmp> line 1
Xliff lizmat: No worries.
lizmat: Any reason it's not in current Rakudo?
lizmat I guess jnthn removed it because it was a race condition
Xliff Ah! 21:15
So just track all taps on a supply in user code and basically do what you just suggested.
lizmat or perhaps jnthn has a better idea ?
21:16 patrickb left 21:17 kurahaupo left 21:20 rindolf left
timotimo Skarsnik: you can use Perl 6 from C/C++ with libmoar, but i haven't built much code with it. if you use sockets or something for the IPC, it should be trivial to set up an interface between host and client 21:21
21:22 rindolf joined
Skarsnik is there an example somewhere? 21:22
21:23 p6bannerbot sets mode: +v rindolf
Xliff m: class WrappedSupply is Supply { has @!taps; submethod BUILD { self.^find_method('tap').wrap(-> | { @!taps.push: callsame }); }; } 21:26
camelia ( no output )
Xliff OK. So how do I get supplier to return a WrappedSupply?
m: class WrappedSupply is Supply { has @!taps; submethod BUILD { self.^find_method('tap').wrap(-> | { @!taps.push: callsame }); }; }; constant Supply = WrappedSupply; Supplier.new.Supply.^name.say 21:27
camelia Supply
lizmat Xliff: good question, I'm afraid I lost the plot after the last Supply refactor 21:28
Xliff lizmat: OK. Thanks.
21:36 Kaiepi left 21:38 Kaiepi joined, p6bannerbot sets mode: +v Kaiepi 21:39 dncefan left 21:40 dncefan joined 21:41 dncefan left, dncefan joined, Skarsnik left 21:42 p6bannerbot sets mode: +v dncefan
Xliff .tell jnthn What is the best way to close all taps on a Supply? 21:42
yoleaux Xliff: I'll pass your message to jnthn.
cpan-p6 New module released to CPAN! CheckSocket (0.0.5) by 03JSTOWE 21:46
21:49 dncefan left 21:50 dncefan joined 21:51 p6bannerbot sets mode: +v dncefan
Kaiepi is there a difference between for and eager for? 21:54
21:55 dncefan left 21:56 dncefan joined 21:57 p6bannerbot sets mode: +v dncefan 22:01 pmurias left 22:14 kensanata joined, p6bannerbot sets mode: +v kensanata
Xliff m: DateTime.now.say 22:16
camelia 2019-01-13T23:16:52.832712+01:00
Xliff m: say "{ DateTime.now }" 22:17
camelia 2019-01-13T23:17:03.642693+01:00
Xliff m: use DateTime::Format; 22:19
camelia ===SORRY!===
Could not find DateTime::Format at line 1 in:
/home/camelia/.perl6
/home/camelia/rakudo-m-inst-1/share/perl6/site
/home/camelia/rakudo-m-inst-1/share/perl6/vendor
/home/camelia/rakudo-m-inst-1/share/perl6
C…
22:28 molaf joined 22:29 p6bannerbot sets mode: +v molaf
jnthn Xliff: Just do .done on the sending end :) 22:31
yoleaux 21:42Z <Xliff> jnthn: What is the best way to close all taps on a Supply?
Xliff jnthn: Can't. That supplier is lost 22:32
jnthn Don't lose it? ;-)
Xliff This code should look familier: github.com/Xliff/p6-GtkPlus/blob/m...ic.pm6#L19 22:33
*blush*
jnthn But otherwise, you can build a mechanism like `my $cancel = Promise.new; sub cancellable(Supply $s) { supply { whenever $s { .emit }; whenever $cancel { done } } }`
Xliff s/familier/familiar/
jnthn Then call cancellable on every Supply before tapping it, and then .keep the Promise to terminate the lot 22:34
Xliff But I do understand your point. It makes for a LOT of code refactoring, and I was hoping there was a way to cheat.
jnthn What I suggested is probably the best cheat
Xliff Yes. It probably is. :(
Well! Fair dinkum! ;) 22:35
jnthn++
Oh, and while I have you... I mangled another piece of your code.
github.com/Xliff/p6-VisualGrammar/...therer.pm6
Allows data collection of hit grammar rules, based on Grammar::Tracer.
Do you think it would be useful, if it was cleaned up? 22:36
22:39 kensanata left
jnthn Xliff: Well, it's not safe for concurrent uses of the same grammar 22:39
But maybe that's an acceptable limitation?
Xliff Is there a way to achieve that, and could you give me a hint? 22:40
jnthn Hmm.
Xliff But I wouldn't expect this to be used concurrently. At least not as-is.
jnthn Yeah, I'd probably just document it
If you find it useful, probably somebody else would; I'd just include an example of the kind of output it makes, to try and communicate better why it might be useful 22:41
Xliff Yes. I'm currently using it for github.com/Xliff/p6-VisualGrammar 22:43
Without it, I couldn't cover the FAIL case.
jnthn ah, I see
22:59 Cabanossi left 23:00 Cabanossi joined 23:01 p6bannerbot sets mode: +v Cabanossi 23:14 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
TreyHarris Kaiepi: Could I ask you a module design question? Why did you decide to implement Digest::BubbleBabble as a unit class with all "static methods"? Wouldn't a module with exported functions have been cleaner? 23:18
23:18 molaf left
TreyHarris Since AFAICT the class has no instance state at all 23:19
Xliff Those are catch-alls.
And rather than export the functions, it keeps everything in it's own "space"
So as not to clutter MAIN
That would at least be my reason for doing that.
m: my $a = $*SCHEDULER.cue({ 1.say }, in => 2); $a.cancel; 23:21
camelia ( no output )
Xliff m: my $a = $*SCHEDULER.cue({ 1.say }, in => 2);
camelia ( no output )
Xliff m: my $a = $*SCHEDULER.cue({ 1.say }, in => 2); await $a
camelia An operation first awaited:
in block <unit> at <tmp> line 1

Died with the exception:
Can only specify Awaitable objects to await (got a Cancellation)
in block <unit> at <tmp> line 1
Xliff m: my $a; await start $a = $*SCHEDULER.cue({ 1.say }, in => 2); 23:22
camelia ( no output )
Xliff m: my $a; await start { $a = $*SCHEDULER.cue({ 1.say }, in => 2); }
camelia ( no output )
Xliff m: my $a = $*SCHEDULER.cue({ 1.say }, in => 2); $a.cancel; sleep 3
camelia ( no output )
Xliff m: my $a = $*SCHEDULER.cue({ 1.say }, in => 2); sleep 3 23:23
camelia 1
TreyHarris Xliff: How do you pass a "static method" like that as a value? That's why I noticed this; I wanted to set a variable to Digest::BubbleBabble.encode(), but I can't figure out the syntax. The way you'd do it for a function, it complains about the number of positionals no matter what syntax I've tried to use
Kaiepi TreyHarris, i don't like exporting subs in case of namespace conflicts 23:24
TreyHarris (set a variable like `my $func = ...` so that I could later do `$func($data)`)
Kaiepi check t/01-basic.t for examples on how to use it
TreyHarris Kaiepi: I don't see in 01-basic.t any case of the method being assigned to a variable; it seems to be used literally there. Which line are you talking about? 23:25
Kaiepi wait what are you trying to do? 23:26
oh
TreyHarris Let the encoding function be set to different things, one of which being Digest::BubbleBabble.encode
Kaiepi do something like sub bubblebabble-encode(Blob $data --> Blob) { Digest::BubbleBabble.encode: $data } 23:27
actually there's a way you can do it like my &bubblebabble-encode = ... 23:33
gimme a sec
23:34 kurahaupo joined 23:35 p6bannerbot sets mode: +v kurahaupo
Kaiepi TreyHarris, my &bubblebabble-encode = Digest::BubbleBabble.^lookup('encode').assuming(Digest::BubbleBabble) 23:36
23:40 dct joined, p6bannerbot sets mode: +v dct 23:48 jme` joined, kurahaupo left
TreyHarris Sorry... I'm not making myself clear, apologies... let me try another way: if it were `unit module Digest::BubbleBabble; our sub encode(Blob $digest --> Blob)`, you could just do `my $encoder = &Digest::BubbleBabble::encode; ... $encoder($data)...` and it wouldn't pollute any namespace, would it? 23:48
23:48 p6bannerbot sets mode: +v jme`
TreyHarris I shouldn't have used the word "export" like that since it's also a keyword 23:48
Kaiepi: I meant that I didn't understand why it was using a class rather than a module, not methods rather than exported subs. Sorry for writing the question so confusingly 23:51
Kaiepi i guess 23:53
i'll make it a module instead of a class
TreyHarris The "normal" calling pattern doesn't change but for "use" -> "need" and "BubbleBabble." -> "BubbleBabble::" 23:54
23:55 w_richard_w joined, p6bannerbot sets mode: +v w_richard_w
TreyHarris It's really easy to turn a sub or multi into a method, but the reverse requires ugly MOP stuff like ^lookup. But that's just my impression; I'm probably missing an important wrinkle here 23:57
23:59 dct left