»ö« 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:05 squashable6 left, squashable6 joined 00:11 netrino joined 00:19 squashable6 left 00:24 sena_kun left, squashable6 joined, ChanServ sets mode: +v squashable6 00:47 kurahaupo left 00:48 squashable6 left 00:51 squashable6 joined 00:55 kurahaupo joined 01:05 kurahaupo left, kurahaupo joined 01:15 zacts left, Manifest0 left 01:20 Manifest0 joined 01:36 AlexDani` joined 01:40 zacts joined, AlexDaniel left 01:54 adu left 01:56 netrino left 02:00 AlexDani` left 02:01 adu joined 02:02 Manifest0 left 02:03 Manifest0 joined 02:14 zacts left, zacts joined 02:18 zacts left 02:23 xinming_ left
cpan-p6 New module released to CPAN! FindBin (0.2.11) by 03LEMBARK 02:27
02:48 kaare__ left 02:49 kaare_ joined 02:57 Manifest0 left 02:58 kurahaupo_ joined 03:00 kurahaupo left 03:03 Manifest0 joined 03:08 kurahaupo_ left, kurahaupo joined 03:09 aindilis joined 03:12 alainb joined 03:21 alainb left 03:48 cpan-p6 left, cpan-p6 joined, cpan-p6 left, cpan-p6 joined 04:04 reach_satori left, reach_satori joined 04:15 kurahaupo left 04:16 kurahaupo joined, Manifest0 left 04:22 Manifest0 joined 04:42 squashable6 left 04:47 squashable6 joined, ChanServ sets mode: +v squashable6 04:57 robertle left 05:08 kurahaupo left, kurahaupo_ joined
moritz good morning 05:11
recovered nqp, rakudo and star releases at perlgeek.de/static/p6/
I'll happily rsync them where people want them; just add the key at perlgeek.de/static/p6/id_rsa.pub to an authorized_keys file and tell me where to put the files 05:13
05:14 MrMira joined 05:15 MrMira left
holyghost hi moritz 05:15
moritz hi holyghost 05:16
05:26 sauvin joined 05:44 Manifest0 left
bartolin_ moritz++ 05:49
05:49 Manifest0 joined 05:50 jmerelo joined
jmerelo releasable6: status 05:59
releasable6 jmerelo, Next release will happen when it's ready. 2 blockers. 132 out of 254 commits logged (⚠ 2 warnings)
jmerelo, Details: gist.github.com/b72bebf2724eec6017...531a8643a1
Geth doc: f4b1705cf1 | Altai-man++ | doc/Type/Pair.pod6
Note non-ASCII numerics in Pair colonpair
06:02
doc: 004925bf87 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Type/Pair.pod6
Merge pull request #2727 from perl6/non-ascii-numerics-for-pair

Note non-ASCII numerics in Pair colonpair
doc: df53123211 | Altai-man++ | doc/Type/StrDistance.pod6
Document StrDistance.Str
06:03
doc: b160b4cf70 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Type/StrDistance.pod6
Merge pull request #2728 from perl6/StrDistance-Str-method

Document StrDistance.Str
06:04 Geth left 06:05 Geth joined
Geth doc: 5152acd274 | Altai-man++ | doc/Language/subscripts.pod6
Show multi-dim :exists adverb
06:05
doc: 9efb7ca582 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/subscripts.pod6
Merge pull request #2730 from perl6/multi-dim-exists-adverb

Show multi-dim :exists adverb
doc: 68872b27f2 | Altai-man++ | doc/Language/list.pod6
Show typed array of syntax
06:07
doc: f75b09f0e4 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/list.pod6
Merge pull request #2732 from perl6/array-of-syntax

Show typed array of syntax
06:08 [Sno] left
Geth doc: 263ba422c9 | Altai-man++ | doc/Language/control.pod6
Add next in whenever example
06:09
doc: 3e3ee41f48 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/control.pod6
Merge pull request #2733 from perl6/next-in-whenever

Add next in whenever example
06:10 domidumont joined
jmerelo squashable6: status 06:12
squashable6 jmerelo, ⚠🍕 Next SQUASHathon in 3 days and ≈5 hours (2019-05-04 UTC-14⌁UTC+12). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
jmerelo And this weekend... Documentation squashathon! Help new generations of perl6ers learn the language! 06:13
06:36 dustinm` left 06:46 dustinm` joined 06:58 kurahaupo joined 06:59 kurahaupo_ left 07:15 Manifest0 left 07:17 cpan-p6 left, cpan-p6 joined, cpan-p6 left, cpan-p6 joined 07:19 Manifest0 joined 07:20 patrickb joined 07:27 kurahaupo left, kurahaupo joined 07:34 zacts joined, zakharyas joined 07:40 Manifest0 left 07:46 rindolf joined, Manifest0 joined 07:59 Manifest0 left 08:06 Manifest0 joined 08:15 lookatme_q joined 08:22 ChoHag left 08:23 rindolf left 08:30 rindolf joined 08:49 ChoHag joined 08:50 xinming joined
xinming m: "Test".say; 08:50
evalable6 Test
08:55 Manifest0 left 08:57 kensanata joined, Exodist left 09:00 Manifest0 joined 09:10 sena_kun joined
xinming m: [lcm](8, 24, 17).say; 09:18
evalable6 408
xinming m: my @a = (8, 24, 17); ([lcm] @a).say;
evalable6 408
xinming m: my @a = (8, 24, 17); ([lcm]@a).say;
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/w0sexw6Y4g
Two ter…
xinming, Full output: gist.github.com/d97a223cb1656d7983...4edeade5b7
xinming So, anyone here would clarify this for me? Why [lcm] @a <--- Here we need space.
While [lcm](8, 24, 17) <--- Here, We shouldn't have space. 09:19
m: [lcm] (8, 24, 17).say;
evalable6 Potential difficulties:
Useless use of [lcm] in sink context
at /tmp/u__99cQbgD:1
------> 03<BOL>08⏏04[lcm] (8, 24, 17).say;
(8 24 17)
xinming m: ([lcm] (8, 24, 17)).say;
evalable6 408
xinming hmm, strange. :-)
Ignore me, My example is wrong. 09:20
jmerelo xinming: probably if you look at the grammar, hyper-operators will need the whitespace before a variable. Or the other say round, sigils need whitespace
Geth doc/hash-array-subclass-init: 9a8d11323f | Altai-man++ | doc/Language/syntax.pod6
Split example and fix thinko
09:24
doc/dynamically-created-enum-example: 19f911e848 | Altai-man++ | doc/Language/typesystem.pod6
Split example
09:34
09:41 Geth left 09:42 Geth joined 09:49 Geth left 09:50 Geth joined
Geth doc/master: 5 commits pushed by (JJ Merelo)++ 09:51
doc: ed8aed5e72 | Altai-man++ | doc/Language/syntax.pod6
Show a non-coercing hash/array subclass init
doc: 9a8d11323f | Altai-man++ | doc/Language/syntax.pod6
Split example and fix thinko
doc: cb4347333b | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/syntax.pod6
Merge pull request #2726 from perl6/hash-array-subclass-init

Show a non-coercing hash/array subclass init
09:52 cpan-p6 left 09:53 cpan-p6 joined, cpan-p6 left, cpan-p6 joined
Geth doc: 54c18ded0d | Altai-man++ | doc/Language/typesystem.pod6
Add example of dynamically created enum
10:04
doc: 19f911e848 | Altai-man++ | doc/Language/typesystem.pod6
Split example
doc: 233450dada | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/typesystem.pod6
Merge pull request #2731 from perl6/dynamically-created-enum-example

Add example of dynamically created enum
10:12 Black_Ribbon left 10:18 Manifest0 left 10:21 mowcat joined 10:23 Manifest0 joined 10:29 wbn left 10:30 wbn joined 10:34 gregf_ joined 10:38 domidumont left 10:41 Exodist joined 10:55 raschipi joined 10:58 zakharyas left 11:24 Manifest0 left 11:29 Manifest0 joined
rba moritz: can you please rsync your perlgeek.de/static/p6/ to [email@hidden.address] to make them available for download at files.p6c.dev/ -- to have it redundant 11:30
11:45 Manifest0 left 11:47 netrino joined 11:50 Manifest0 joined 11:51 mowcat left 12:03 zakharyas joined
jmerelo Not chosen for Season of Docs :-( 12:05
kawaii Can I have a method, which accepts an optional `$level` parameter which can either be an Int or a range? i.e. `method generate-level($level) {}` where `$level` is either `8` or `5..30`. And if not provided fall back to `$level = (2..100).pick`? 12:09
12:09 jmerelo left
sena_kun kawaii, you don't want to leave the type open? 12:10
xq it does sound like a list of numbers, with a coercion from a single number, and a default 12:11
kawaii So I'm creating a method as part of a generator class. My idea is that if you call the `generate-level` method without any params it will simply fall back to using `(2..100).pick`, but should also accept either a single number or range as arguments. 12:12
Providing a single number will just return that number, returning a range will pick from it.
sena_kun m: subset IntOrRange where Int|Range; sub a(IntOrRange $level = (2..100).pick) { say $level }; say a; say a; say a(25); say a(0..2); 12:13
evalable6 41
True
29
True
25
True
0..2
True
hahainternet prly wanna move that .pick into the sub body i guess
although that doesn't work in the int case i guess
multi it? ;)
sena_kun or `sub a($level where Int|Range = (2..100).pick) { say $level }` 12:14
timotimo m: say 5.pick
evalable6 5
sena_kun and then you can `given $level { when Int ... when Range ... }`
12:14 domidumont joined
timotimo m: say 5.pick for 100_000 12:14
evalable6 5
timotimo m: say 5.pick for ^100_000
evalable6 5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
timotimo, Full output: gist.github.com/62caec604cfa844417...993920b47f
kawaii sena_kun++
hahainternet timotimo: showoff ;)
patrickb jmerelo: Did they give a reason? 12:25
Xliff subset IntOrRange where Int|Range; sub a(IntOrRange $level = (2..100).pick) { say $level.pick if $level ~~ Range; say $level }; a; a; a(25); a(0..2); 12:35
evalable6 46
45
25
2
0..2
12:36
Xliff subset IntOrRange where Int|Range; sub a(IntOrRange $level = (2..100).pick) { given $level { when Range { say .pick }; default { .say }; }; }; a; a; a(25); a(0..2); 12:37
evalable6 95
91
25
1
Xliff subset IntOrRange where Int|Range; sub a(IntOrRange $level = (2..100).pick) { given $level { when Range { say .pick }; default { .say }; }; }; a; a; a(25); a(0..2);
evalable6 49
33
25
0
12:37 llfourn left 12:38 llfourn joined
Xliff m: multi sub a (Range $a) { say $a.pick }; multi sub a (Int $a) { say $a; }; multi sub a { (2..100).pick.say }; a; a; a(25); a(0..2) 12:39
evalable6 39
79
25
1
Xliff m: multi sub a (Range $a) { say $a.pick }; multi sub a (Int $a) { say $a; }; multi sub a { a(2..100) }; a; a; a(25); a(0..2) 12:41
evalable6 83
23
25
2
12:44 adu left 12:47 llfourn left 12:48 llfourn joined 12:52 robertle joined 12:53 llfourn left 13:13 llfourn joined 13:18 luyang177 joined, llfourn left 13:20 domidumont1 joined, luyang177 left 13:23 domidumont left 13:26 domidumont joined 13:28 domidumont1 left 13:32 llfourn joined 13:37 llfourn left, zacts left 13:39 demanuel joined 13:46 zacts joined, jeromelanteri joined 13:50 zacts left 13:51 zacts joined 13:52 zakharyas left 14:07 jeromelanteri left 14:15 sss joined
sss p6: say 3; 14:18
evalable6 3
14:19 sss left 14:29 patrickb left 14:50 zakharyas joined
Xliff /o\ Cannot modify an immutable Num (0)? ??? 14:52
timotimo you have a variable without a scalar container somewhere 14:53
Xliff m: multi sub a { my ($x, $y) = 0 xx 2; samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a 14:54
evalable6 (exit code 1) Cannot modify an immutable Num (0)
in sub a at /tmp/cQwgyLLnPh line 1
in sub a at /tmp/cQwgyLLnPh line 1
in block <unit> at /tmp/cQwgyLLnPh line 1
Xliff wtf?
14:54 lucasb joined
Xliff m: multi sub a { my ($x, $y) = 0.1 xx 2; samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a 14:54
evalable6 (exit code 1) Cannot modify an immutable Num (0.1)
in sub a at /tmp/UfNTaU2hmU line 1
in sub a at /tmp/UfNTaU2hmU line 1
in block <unit> at /tmp/UfNTaU2hmU line 1
Xliff m: multi sub a { my ($x, $y) = (0, 0); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a
evalable6 (exit code 1) Cannot modify an immutable Num (0)
in sub a at /tmp/Xdno2qBESn line 1
in sub a at /tmp/Xdno2qBESn line 1
in block <unit> at /tmp/Xdno2qBESn line 1
Xliff m: multi sub a { my ($x, $y) = (0, 0); samewith($x, $y) }; multi sub a ($x is rw, $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a 14:55
evalable6 (0.5 0.3333333333333333)
jnthn Does a coercion type on a `is rw` even make sense, I wonder?
Xliff m: multi sub a { my ($x, $y) = (0, 0); samewith($x, $y) }; multi sub a (Num $x is rw, Num $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a
evalable6 (exit code 1) Cannot resolve caller a(Int:D, Int:D); none of these signatures match:
()
(Num $x is rw, Num $y is rw)
in sub a at /tmp/QTnE1k0W6x line 1
in block <unit> at /tmp/QTnE1k0W6x line 1
jnthn The result of the coercion is not going to be related to the original container
Xliff In this case, I agree. 14:56
Correction: In certain cases, I agree.
But for in/out?
m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num $x is rw, Num $y is rw) { ($x, $y) »+« (1/2, 1/3).map( *.Num ) }; say a
evalable6 (exit code 1) Cannot resolve caller a(Int:D, Int:D); none of these signatures match:
()
(Num $x is rw, Num $y is rw)
in sub a at /tmp/QEoewFoWCX line 1
in block <unit> at /tmp/QEoewFoWCX line 1
Xliff m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) »+« (1/2, 1/3).map( *.Num ) }; say a 14:57
evalable6 (1.5 1.3333333333333333)
Xliff m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a
evalable6 (exit code 1) Cannot modify an immutable Num (1)
in sub a at /tmp/N2Uyz2Y1bn line 1
in sub a at /tmp/N2Uyz2Y1bn line 1
in block <unit> at /tmp/N2Uyz2Y1bn line 1
Xliff So I can modify if I use the value, but not if I just want to assign?
The type coercion is irrelevant. 14:58
jnthn: So to answer your question: it doesn't NOT make sense. 14:59
jnthn m: multi sub a { my ($x, $y) = (1e0, 1e0); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a 15:00
Xliff m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a
evalable6 (0.5 0.3333333333333333)
(exit code 1) Cannot modify an immutable Num (1)
in sub a at /tmp/QqOVtjs62h line 1
in sub a at /tmp/QqOVtjs62h line 1
in block <unit> at /tmp/QqOVtjs62h line 1
jnthn Looks pretty relevant to me; if it doesn't have to coerce, then it's just binding the incoming rw container
Xliff m: multi sub a { my ($x, $y) = (0e0, 0e0); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a
evalable6 (0.5 0.3333333333333333)
Xliff m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a
evalable6 (exit code 1) Cannot modify an immutable Num (1)
in sub a at /tmp/3q3VbGFofx line 1
in sub a at /tmp/3q3VbGFofx line 1
in block <unit> at /tmp/3q3VbGFofx line 1
Xliff m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { $x++; $y++; ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a 15:01
evalable6 (exit code 1) Cannot resolve caller postfix:<++>(Num:D); the following candidates
match th…
Xliff, Full output: gist.github.com/c88418e3c7af3e940a...f4e4958671
Xliff m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { $x+=1; $y+=1; ($x, $y) = (1/2, 1/3).map( *.Num ) }; say a
evalable6 (exit code 1) Cannot assign to an immutable value
in sub a at /tmp/e6aXBwplo_ line 1
in sub a at /tmp/e6aXBwplo_ line 1
in block <unit> at /tmp/e6aXBwplo_ line 1
Xliff Weird.
m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) »+« (1/2, 1/3).map( *.Num ) }; say a
evalable6 (1.5 1.3333333333333333)
Xliff ^^ So why does that work with the coercion in place? 15:02
jnthn Becuase it's not doing an assignment?
Xliff It isn't?
jnthn »+« doesn't mutate anything, it just returns a list
Xliff m: multi sub a { my ($x, $y) = (1, 1); samewith($x, $y) }; multi sub a (Num() $x is rw, Num() $y is rw) { ($x, $y) »+=« (1/2, 1/3).map( *.Num ) }; say a
evalable6 (exit code 1) Cannot modify an immutable Num (1)
in sub a at /tmp/zj8luigCoe line 1
in sub a at /tmp/zj8luigCoe line 1
in block <unit> at /tmp/zj8luigCoe line 1
Xliff Oh, frell.
OK. So type coercion and "is rw" do not mix? 15:03
Because I'm kinda using it everywhere in GTK
jnthn Pretty much. I don't know what we should do there really.
Xliff I need that where I want to make sure that in/out computations use the same type.
And then return the proper value.
jnthn I mean, it's either a "you can't do that" error, or we specify that if it has to coerce then it will immediately assign the coerced value back into the source container 15:04
Xliff This way I don't have to force end users to know the required type of a routine. They can just use a(1, 2) rather than a(1.Num, 2.Num)
jnthn: The latter is what I assumed would be the case.
jnthn That'd mean in `sub to-num(Num() $x) { }; my $x = 42; to-num($x); say $x.WHAT` would be `Num`. 15:05
Xliff You mean: `sub to-num(Num() $x is rw) { }'? 15:06
15:06 skids joined
Xliff I see your point. 15:06
b2gills If (1, 2) are valid inputs it can't be "is rw"
jnthn oops, yes
Doing too many things at once :)
Xliff b2gills: ?
b2gills It would have to be (( my $ = 1), (my $ = 2)) 15:07
because those are rw
jnthn Well, yes, tht also
*that
Xliff b2gills: Oh. Yes. Containers are implied.
b2gills it might make a bit more sense to combine a coercion with "is raw", but then you can't assume it is writable 15:08
15:09 robertle left
b2gills m: sub to-num(Num() $x is rw) { }; my Int $x = 42; to-num($x) 15:09
evalable6
Xliff OK. If it is going to be an error, it would be nice to detect it given "sub a (Num() $x is rw)" rather than waiting until I need to return the value and then saying it's immutable. 15:10
b2gills m: sub to-num(Num() $x is rw) { }; my Int $x = 42; to-num($x); say $x.perl
evalable6 42
jnthn Xliff: Yeah, I totally agree the current situation is bad. Just not sure whether to lean to error or DWIM (with the usual potential WAT :)) 15:11
Xliff m: sub to-num-plus-half(Num() $x is rw) { $x += 0.5 }; my Int $x = 42; to-num-plus-half($x); say $x.perl
evalable6 (exit code 1) Cannot assign to an immutable value
in sub to-num-plus-half at /tmp/zaZnoWn403 line 1
in block <unit> at /tmp/zaZnoWn403 line 1
Xliff jnthn: Well. This means I may have to rewrite a LOT of code. Let me check my exposure.
78 uses in just GtkPlus, so I'd say pretty significant. 15:13
kawaii Is the Perl 6 Deep Dive book a worthy purchase?
(in 2019, it was released in 2017 - and this language moves _fast_) 15:14
15:15 jmerelo joined
b2gills If you are dealing with NativeCall routines, I might take that further and wrap them. `sub foo ( Num() $x ){ use NativeCall; sub foo ( num is rw ) is native {}; my num $i-o = $x; foo($i-o); return $i-o } 15:16
Xliff jnthn: OK. How about this. If the is rw container is NOT typed, then DWIM. If it IS typed and that type does not match the coerced type, then throw an error.
So this would be fine: sub to-num(Num() $x) { }; my $x = 42; to-num($x); 15:17
But this would NOT be: sub to-num(Num() $x) { }; my Int $x = 42; to-num($x); say $x.WHAT` would be `Num`
Errr... corrected version
But this would NOT be: sub to-num(Num() $x) { }; my Int $x = 42; to-num($x);
b2gills kawaii: I would say that anything it talks about is probably still accurate. I have a copy on my computer that I haven't read yet, so if you really want to know for sure that it is still accurate I could give it a quick look. 15:20
kawaii b2gills: that'd be great - just let me know if it all seems relevant enough :) 15:22
b2gills I'm sure it's fine, but ok.
kawaii I'm trying to learn more about software architecture (OOP in Perl 6) as opposed to the language itself
15:26 abraxxa left
jnthn Xliff: If we do the coerce/assign approach, then that error would fall naturally out of the type check 15:33
15:33 llfourn joined
Xliff jnthn: Even with the coercion aspect? 15:34
jnthn: I'm fine with that.
jnthn: Let me know which approach you go with, if you would! :) 15:35
15:38 llfourn left 15:44 zacts left 15:49 domidumont1 joined 15:51 domidumont left 15:54 domidumont joined 15:56 domidumont1 left
jnthn Xliff: Created github.com/perl6/problem-solving/issues/21 to track it 15:59
El_Che are the sources still down at the original location? 16:05
source == releases
16:08 llfourn joined 16:12 llfourn left 16:29 zacts joined, molaf joined 16:30 vrurg left, vrurg joined 16:34 zacts left
cpan-p6 New module released to CPAN! Test::Script::Output (0.0.4) by 03JMERELO 16:37
16:39 llfourn joined 16:46 molaf left, llfourn left 16:55 demanuel left 17:00 TimToady left, TimToady joined
discord6 <Vendethiel> This reminds me of C++ const& casting... where only msvc allows to bind a temporary to a non const 17:09
17:15 robertle joined, kurahaupo left 17:16 kurahaupo joined 17:44 zakharyas left
masak kawaii: have you read S12? (I know I'm an outlier for recommending it, but I've always liked the synopses, so...) 17:50
17:59 domidumont left
moritz there are lots of resources on OO design, though not related to Perl 6. 17:59
masak I recently read up on Dylan's OO (which is inspired by CLOS and Smalltalk) and I really liked it 18:00
timotimo RabidGravy tweeted a bunch about working on design patterns with perl6 code
moritz for example Patterns of Enterprise Application Architecture, Fowler 18:01
I also found Enterprise Integration Architecture useful
Building Evolutionary Architectures by Ford and Parsons
18:10 bobby joined 18:28 sauvin left
moritz there are also several books on the architecture of open source projects, which I found quite interesting to read 18:31
lizmat PSA: this week's Perl 6 Weekly will be skipped, /me is too exhausted 18:33
yoleaux 27 Apr 2019 18:35Z <jnthn> lizmat: cuid is a unique ID within the compilation unit, which can be identified with the filename; mostly it's useful if the log has multiple routines of the same name from the same file in it
27 Apr 2019 18:37Z <jnthn> lizmat: to be clear, it's an ID for a Frame (which might be a routine, or block, or thunk)
29 Apr 2019 20:17Z <sena_kun> lizmat: hi! I am looking for some clues to document things... 6.d changelog has the "Parameter.perl includes introspectable defaults" entry. From github.com/rakudo/rakudo/commits/m...ameter.pm6 I see your commits with some `.perl` mentions... Can you by chance explain the thing so it could be documented? It will be very appreciated.
29 Apr 2019 20:35Z <sena_kun> lizmat: and hi again! Now the question is about "Default Hash.of returns a Str(Any) coercer type object". I see github.com/perl6/roast/commit/34ce...bae08c6e26 but it clearly tests `keyof` method. `Hash.new.of` returns me Mu, definetely not Str(Any). What is wrong with me^W^W here?
raschipi Is already too exausted and yoleaux dumps a load on you. 18:35
sena_kun : ( 18:36
surely can be delayed...
lizmat, take care!
18:39 abraxxa joined 18:40 abraxxa left 18:41 abraxxa joined 18:43 kipd is now known as kip, llfourn joined, kip is now known as kipd 18:44 domidumont joined 18:45 abraxxa left 18:46 abraxxa joined 18:48 [Sno] joined
jmerelo lizmat: take care :-) 18:48
18:48 llfourn left 18:56 jmerelo left 19:02 domidumont left 19:06 kipd is now known as kip 19:13 pecastro joined 19:18 molaf joined
b2gills .tell kawaii Perl 6 Deep Dive is still just as accurate as it was when it was first released. I would recommend it for new and intermediate Perl6 programmers. (I could only get to chapter 8 before it got too boring for me to continue, because I already have a better grasp of the language than the book will give you.) 19:25
yoleaux b2gills: I'll pass your message to kawaii.
19:28 llfourn joined 19:33 llfourn left, Black_Ribbon joined 19:37 kensanata left 19:56 zacts joined, raschipi left
ufobat__ woudn't it make sense to have an option in %*SUB-MAIN-OPTS to allow the absence of = for positional parameters? like sub MAIN(:$e) -> programm.pl6 -e "foobar" instead of -e="foobar" 20:03
20:05 lichtkind joined 20:07 ufobat_ joined 20:09 zacts left 20:11 ufobat__ left
skids The "is rw" coercion problem reminded me of an old gist I worte up, now quite dated, but perhaps worth meditating on: gist.github.com/skids/aabd2aad3d0b5ad8481b 20:15
20:18 abraxxa left
guifa skids: I didn’t realize the spec said it should use new(Foo:D) for coercions. I literally just made a problem solving post saying we should probably standardize a FROM(Foo:D) method for allowing classes to define their own from-that-to-me coercions. 20:25
skids I think the method-in-class thing turned out to be unworkable for some internal reason which is why we have those subs now. 20:26
I don't remember... it's been a while since I dealt with ceorcion.
Or... it used to be we defined some infix:<...> method now that I think of it. 20:30
Oh right... postcricumfix<( )>
guifa So it was like “this-string-can-become-a-foo”.(Foo) ? 20:32
skids Well yes except injecting new methods into Str was and still is tacky. 20:33
Oh, no, sorry, it was more like MyClass("this str is ceorced to MyClass") 20:34
...would call MyClass.postcircumfix:<( )> with the string as arguments, and multi-dispatch. 20:35
skids can't spell coercion today. 20:36
.oO(making coercive type so first-class that they have their own package which must exist to coerce... gah! the combinatorics of it!)
20:49
Woodi skids: perl6-xcb on github is your work ? had problems with generating bindings. I have xcb repo. or proto... 20:53
skids Yeah, that insanity is my folly :-) 20:54
Woodi is this module working for you or bitrotted ?
skids Hasn't been touched in so long something probably broke. Did the script die, or did the bindings just blow up?
Woodi some strange errors, need to recheck 20:55
but question: from what sources you was generating bindings ? xcb sources or distro code ? 20:56
skids I had to do some really shameful things to get CStruct to behave itself. Likely CStruct has gotten some love in the interim.
I was using debian package and I think a more recent copy as well. 20:57
Lemme look
10.0.0.alpha is the tag I have in the leftover built bindings in my working directory. 21:01
...which would have been the head of the xcb repo circa Jun 2 2017 21:04
21:08 vrurg left 21:09 vrurg joined
Woodi cannot find debian repo with xml files. will try xcb repo 21:11
skids Hrm though that makes no sense since it looks like there was at least a 1.12.0 when I wrote that... so I must have been working with the 1.10 deb last time.
It's debian package xcb-proto I think. 21:13
...which is now 1.12 but I think used to be 1.10
Yeah on my still rather old rakudo it blows up with "internal problem: parser did not give circumfix an EXPR" when building the bindings. 21:18
Woodi problems with ecosystem here, zef could detect problems faster. I thinked we have new p6c.org... 21:22
skids Oh, I never published that module because it never was ready for it. 21:25
Woodi nah, I need XML module first :) 21:27
skids: problems with generating: Expected align mod 1, got NaN for client_started 21:28
and No such method 'elements' for invocant of type 'Any' 21:29
21:29 llfourn joined
Woodi skids: I got C example of xcb and it looks like ready-to-use metro style GUI. or QML. so modern :> with this one module we could do nice UI :) 21:31
skids Something probably bitrotted in one of the NC* routines then. 21:33
21:34 llfourn left
skids I can get past my EXPR error by commenting some stuff out in MakeReplies and see similar errors. 21:34
I should build a newer rakudo though.
Anyhow, I need to drive home. 21:49
xinming m: my @a = do for <a> .. <z> { %($_ => $_) }; my (%h1, %h2, @x, %h-last) := @a[0, 1, (3 .. 5), * - 1]; [%h1, %h2, @x, %h-last].perl.say; 22:06
evalable6 [{:a("a")}, {:b("b")}, (${:d("d")}, ${:e("e")}, ${:f("f")}), {:z("z")}]
xinming I never thought that perl6 will work for this example, but it actually works, and Do what I mean. :-)
people can implement perl6 grammar parser is really kinda miracle in software engineering 22:07
22:08 skids left 22:15 donaldh joined 22:19 donaldh left 22:29 gregf_ left 22:43 lucasb left 23:22 MasterDuke left 23:30 llfourn joined 23:35 llfourn left 23:36 Manifest0 left 23:38 pecastro left 23:43 MasterDuke joined, sena_kun left, MasterDuke left, MasterDuke joined, Manifest0 joined 23:50 Manifest0 left 23:51 rindolf left 23:55 Manifest0 joined