»ö« 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
|