| 2019-01-07 |
| ← scovit left | 00:13 |
| ← dct left | 00:19 |
| ← coverable6 left | 01:19 |
| ← evalable6 left | 01:19 |
| ← unicodable6 left | 01:19 |
| ← quotable6 left | 01:19 |
| ← benchable6 left | 01:19 |
| ← statisfiable6 left | 01:19 |
| ← bloatable6 left | 01:19 |
| ← undersightable6 left | 01:19 |
| ← squashable6 left | 01:19 |
| ← greppable6 left | 01:19 |
| ← notable6 left | 01:19 |
| ← shareable6 left | 01:19 |
| ← nativecallable6 left | 01:19 |
| ← bisectable6 left | 01:19 |
| ← reportable6 left | 01:19 |
| ← committable6 left | 01:19 |
| ← releasable6 left | 01:19 |
| → coverable6 joined | 01:19 |
| → evalable6 joined | 01:20 |
| ChanServ set mode: +v | 01:20 |
| → undersightable6 joined | 01:20 |
| p6bannerbot set mode: +v | 01:20 |
| → committable6 joined | 01:20 |
| ChanServ set mode: +v | 01:20 |
| p6bannerbot set mode: +v | 01:20 |
| → nativecallable6 joined | 01:20 |
| ChanServ set mode: +v | 01:20 |
| → shareable6 joined | 01:20 |
| → quotable6 joined | 01:21 |
| p6bannerbot set mode: +v | 01:21 |
| p6bannerbot set mode: +v | 01:21 |
| p6bannerbot set mode: +v | 01:21 |
|
Geth
| ¦ doc: ce49b48af6 | cfa++ | 3 files | 01:21 |
|
| ¦ doc: Fix a few enum and Metamodel::ClassHOW links. | 01:21 |
|
| ¦ doc: review: https://github.com/perl6/doc/commit/ce49b48af6 | 01:21 |
| p6bannerbot set mode: +v | 01:21 |
| p6bannerbot set mode: +v | 01:21 |
| → benchable6 joined | 01:21 |
| ChanServ set mode: +v | 01:21 |
| → unicodable6 joined | 01:22 |
| ChanServ set mode: +v | 01:22 |
| → bloatable6 joined | 01:22 |
| ChanServ set mode: +v | 01:22 |
| → squashable6 joined | 01:22 |
| p6bannerbot set mode: +v | 01:22 |
| p6bannerbot set mode: +v | 01:23 |
| p6bannerbot set mode: +v | 01:23 |
| → notable6 joined | 01:23 |
| p6bannerbot set mode: +v | 01:23 |
| → bisectable6 joined | 01:23 |
| ChanServ set mode: +v | 01:23 |
| p6bannerbot set mode: +v | 01:24 |
| → greppable6 joined | 01:24 |
| ChanServ set mode: +v | 01:24 |
| → releasable6 joined | 01:24 |
| → reportable6 joined | 01:24 |
| ChanServ set mode: +v | 01:24 |
| → statisfiable6 joined | 01:24 |
| ChanServ set mode: +v | 01:24 |
| p6bannerbot set mode: +v | 01:24 |
| p6bannerbot set mode: +v | 01:24 |
| p6bannerbot set mode: +v | 01:25 |
| p6bannerbot set mode: +v | 01:25 |
| p6bannerbot set mode: +v | 01:25 |
| ← sena_kun left | 01:26 |
| ← w_richard_w left | 01:40 |
| → w_richard_w joined | 01:53 |
| p6bannerbot set mode: +v | 01:54 |
|
Geth
| ¦ doc: b9b03561ef | cfa++ | 2 files | 02:09 |
|
| ¦ doc: Enumeration links, markup. | 02:09 |
|
| ¦ doc: review: https://github.com/perl6/doc/commit/b9b03561ef | 02:09 |
| → XieST joined | 02:11 |
| → gabiruh joined | 02:11 |
| ← gabiruh left | 02:12 |
| p6bannerbot set mode: +v | 02:12 |
| ← XieST left | 02:14 |
| → gabiruh joined | 02:15 |
| p6bannerbot set mode: +v | 02:16 |
| → fbynite joined | 02:16 |
| ← fbynite left | 02:16 |
| ← gabiruh left | 02:20 |
|
yoleaux
| Xliff_: Bug CStruct/Str binding issue | 02:21 |
| → gabiruh joined | 02:21 |
| p6bannerbot set mode: +v | 02:22 |
| → scovit joined | 02:32 |
| p6bannerbot set mode: +v | 02:33 |
| ← rindolf left | 02:50 |
| ← leont left | 02:52 |
| ← molaf left | 02:56 |
| → lookatme_q joined | 02:59 |
| p6bannerbot set mode: +v | 03:00 |
| → molaf joined | 03:08 |
| p6bannerbot set mode: +v | 03:09 |
| ← w17t left | 03:18 |
| ← Kaiepi left | 03:33 |
| → Kaiepi joined | 03:34 |
| p6bannerbot set mode: +v | 03:35 |
| ← squashable6 left | 03:58 |
| → squashable6 joined | 04:03 |
| p6bannerbot set mode: +v | 04:03 |
| ← Ven`` left | 04:06 |
| ← vendethiel- left | 04:12 |
| ← kurahaupo left | 04:12 |
| → kurahaupo_ joined | 04:12 |
| p6bannerbot set mode: +v | 04:12 |
| ← Cabanossi left | 04:34 |
| → Cabanoss- joined | 04:34 |
| p6bannerbot set mode: +v | 04:35 |
| → hythm joined | 04:47 |
| p6bannerbot set mode: +v | 04:48 |
| → guifa joined | 05:00 |
| p6bannerbot set mode: +v | 05:00 |
| ← khisanth_ left | 05:00 |
|
guifa
| So for funsies I've been trying to implement Brainfuck using grammars and actions (and figured I might write a tutorial for it down the road). But I'm struggling on handling loops. | 05:07 |
|
| To capture the loops I'm using | 05:07 |
| ← hythm left | 05:08 |
|
guifa
| token while { '[' ~ ']' (.*) } | 05:10 |
|
| But it never actually seems to match the rule, even though "[foo]" ~~ / '[' ~ ']' (.*) / matches just fine outside of grammars | 05:11 |
|
| Is there anything special going on that should prevent it from matching? | 05:14 |
| → khisanth_ joined | 05:20 |
| p6bannerbot set mode: +v | 05:21 |
|
Geth
| ¦ doc: b9359ea5da | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/101-basics.pod6 | 05:26 |
|
| ¦ doc: Update 101-basics.pod6 | 05:26 |
|
| ¦ doc: | 05:26 |
|
| ¦ doc: There is no FormatCode F<>, change to C<> | 05:26 |
|
| ¦ doc: review: https://github.com/perl6/doc/commit/b9359ea5da | 05:26 |
|
synopsebot
| Link: https://doc.perl6.org/language/101-basics | 05:26 |
| → w17t joined | 05:31 |
| p6bannerbot set mode: +v | 05:31 |
| ← khisanth_ left | 05:36 |
|
guifa
| Well, I figured it out sort of. I don't know why the match doesn't work, but for a BF interpreter using the ~ to match loops is bad, because it'll run the action for the inner before it's determined that it needs to | 05:48 |
| → curan joined | 05:50 |
| p6bannerbot set mode: +v | 05:50 |
| → Kaypie joined | 06:00 |
| ← Kaiepi left | 06:00 |
|
Xliff_
| m: $*VERSION.say | 06:01 |
|
camelia
| rakudo-moar 6d58e0b0b: OUTPUT: «Dynamic variable $*VERSION not found in block <unit> at <tmp> line 1» | 06:01 |
|
Xliff_
| m: $?VERSION.say | 06:01 |
|
camelia
| rakudo-moar 6d58e0b0b: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Variable '$?VERSION' is not declared. Did you mean 'Version'?at <tmp>:1------> <BOL> ⏏ $?VERSION.say » | 06:01 |
| p6bannerbot set mode: +v | 06:01 |
| → khisanth_ joined | 06:01 |
| p6bannerbot set mode: +v | 06:02 |
|
Xliff_
| $*PERL.version.say | 06:02 |
|
evalable6
| Xliff_, rakudo-moar 6d58e0b0b: OUTPUT: «v6.d» | 06:02 |
|
Xliff_
| m: $*PERL.version.say | 06:03 |
|
camelia
| rakudo-moar 6d58e0b0b: OUTPUT: «v6.d» | 06:03 |
|
Xliff_
| $*PERL.say | 06:04 |
|
evalable6
| Xliff_, rakudo-moar 6d58e0b0b: OUTPUT: «Perl 6 (6.d)» | 06:04 |
|
Xliff_
| $*VM.say | 06:04 |
|
evalable6
| Xliff_, rakudo-moar 6d58e0b0b: OUTPUT: «moar (2018.12.13.g.473324.ee.3)» | 06:04 |
| ← Kaypie left | 06:05 |
| → Kaypie joined | 06:06 |
| p6bannerbot set mode: +v | 06:07 |
|
Xliff_
| m: $*COMPILER.say | 06:09 |
|
camelia
| rakudo-moar 6d58e0b0b: OUTPUT: «Dynamic variable $*COMPILER not found in block <unit> at <tmp> line 1» | 06:09 |
|
Xliff_
| $*PERL.compiler.say | 06:10 |
|
evalable6
| Xliff_, rakudo-moar 6d58e0b0b: OUTPUT: «rakudo (2018.12.165.g.6.d.58.e.0.b.0.b)» | 06:10 |
|
Xliff_
| Hmmm... wondfer why the compiler version isn't added to the output of $*PERL? | 06:18 |
| ← vrurg left | 06:22 |
|
Geth
| ¦ doc: c380aa6bcc | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/101-basics.pod6 | 06:26 |
|
| ¦ doc: Update 101-basics.pod6 | 06:26 |
|
| ¦ doc: | 06:26 |
|
| ¦ doc: No F<> | 06:26 |
|
| ¦ doc: review: https://github.com/perl6/doc/commit/c380aa6bcc | 06:26 |
|
synopsebot
| Link: https://doc.perl6.org/language/101-basics | 06:26 |
| ← kurahaupo_ left | 06:28 |
|
Geth
| ¦ doc: 5769c457b6 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/pod.pod6 | 06:43 |
|
| ¦ doc: Update pod.pod6 | 06:43 |
|
| ¦ doc: | 06:43 |
|
| ¦ doc: Use R<> as Pod | 06:43 |
|
| ¦ doc: review: https://github.com/perl6/doc/commit/5769c457b6 | 06:43 |
|
synopsebot
| Link: https://doc.perl6.org/language/pod | 06:43 |
| ← cfa left | 07:04 |
| → domidumont joined | 07:04 |
| p6bannerbot set mode: +v | 07:05 |
| ← guifa left | 07:16 |
| → abraxxa joined | 07:43 |
| p6bannerbot set mode: +v | 07:44 |
| ← molaf left | 07:47 |
| → zakharyas joined | 08:20 |
| p6bannerbot set mode: +v | 08:20 |
| ← w_richard_w left | 08:22 |
| → andrzejku joined | 08:25 |
| p6bannerbot set mode: +v | 08:26 |
| → patrickb joined | 08:32 |
| → jmerelo joined | 08:32 |
| p6bannerbot set mode: +v | 08:32 |
| p6bannerbot set mode: +v | 08:33 |
|
jmerelo
| Hi! | 08:33 |
|
yoleaux
| 6 Jan 2019 19:50Z <AlexDaniel> jmerelo: I guess the winner should be announced? Or something… | 08:33 |
|
jmerelo
| .tell AlexDaniel OK, I'll do that :-) | 08:33 |
|
yoleaux
| jmerelo: I'll pass your message to AlexDaniel. | 08:33 |
| → Radha joined | 09:01 |
| p6bannerbot set mode: +v | 09:01 |
|
Radha
| What sort of questions can be asked here? | 09:02 |
|
loops
| Radha, pretty much anything Perl 6 related. No guarantees on an answer tho :-) | 09:04 |
|
Radha
| Thank you. If you can answer my only question: Among so many programming languages, what is special about perl 6? Being a perl 5 user long ago, I want to know what attracts me in perl 6. Please answer. | 09:05 |
|
loops
| Radha, i'm still a newbie, so i'm not really in a position to answer, other than to say it's most of the things I love about Perl 5, plus a boatload of new, interesting, and powerful features on top. | 09:06 |
|
jmerelo
| Radha: hi, and welcome. | 09:07 |
|
Radha
| Hi loops and jmerelo :-) | 09:07 |
|
jmerelo
| Radha: first, that's definitely the kind of question you can ask here. Thing is, answer might be too long and maybe too personal. At the end of the day, it will depend on what you're looking for in a language. | 09:08 |
|
Xliff_
| Radha: Perl6 allows you to write code in a manner close to how many people logically think. | 09:08 |
|
| It tries not to get in the way, but if one way doesn't work, another almost certainly will. | 09:08 |
|
| Many languages do not come even close to that kind of flexibility. | 09:08 |
| → dakkar joined | 09:09 |
|
jmerelo
| Radha: at the end of the day, a language is a layered thing. My personal answer is that Perl6 has one of the friendliest communities out there. So just give a try to your personal "hello world" in Perl6, and if you bump into trouble, come back here to get your questions answered | 09:09 |
| p6bannerbot set mode: +v | 09:10 |
|
Radha
| I have already done "hello world".....But I just wanted to know what things are there in perl 6, as Google search did not yield it. | 09:11 |
|
| Somewhere I read, perl 6 has concurrency, parallelism and one more thing.... | 09:12 |
|
lookatme_q
| many things like OO, Grammar | 09:12 |
|
Radha
| What else are there to encourage me? | 09:12 |
|
jmerelo
| Radha: you might want to take a look at the StackOverflow tag description https://stackoverflow.com/tags/perl6/info | 09:12 |
|
| Radha: I would say it's also one of the most expressive, and thus compact, languages out there. You can get a lot done with very little code. But, as I said above, your mileage may vary. | 09:13 |
|
Radha
| Okay. I will check the link of stackoverflow. | 09:15 |
|
| later. | 09:16 |
|
| Thank you jmerelo | 09:17 |
|
jmerelo
| Radha: sure :-) | 09:17 |
|
Radha
| :-) | 09:17 |
|
| Thank you Xliff_ :-) | 09:22 |
| → kensanata joined | 09:22 |
| p6bannerbot set mode: +v | 09:22 |
| ← Radha left | 09:24 |
| ← scovit left | 09:30 |
| → scimon joined | 09:47 |
| p6bannerbot set mode: +v | 09:48 |
|
AlexDaniel
| btw we have this list: https://docs.perl6.org/language/faq#Why_should_I_learn_Perl_6?_What's_so_great_about_it? | 09:59 |
|
yoleaux
| 08:33Z <jmerelo> AlexDaniel: OK, I'll do that :-) | 09:59 |
|
Geth
| ¦ doc: finanalyst++ created pull request #2540: start of test suite for rendered files | 10:45 |
|
| ¦ doc: review: https://github.com/perl6/doc/pull/2540 | 10:45 |
| → rindolf joined | 11:17 |
| p6bannerbot set mode: +v | 11:17 |
| ← domidumont left | 11:23 |
|
mornfall
| is it possible to cause a deadlock with react blocks, if i have no explicit synchronisation of any sort? | 11:29 |
|
jnthn
| m: react { my $p = Promise.new; whenever $p { } } # deadlock | 11:31 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «(timeout)» | 11:31 |
|
jnthn
| You can certainly end up with stuff like that | 11:31 |
|
mornfall
| can it get stuck even if there is a supply that has stuff in it? there's certainly a few that should be spewing stuff but the whole thing seems to get stuck randomly | 11:32 |
|
jnthn
| Well, it handles one message at a time, so if you manage to make it block while handling one message, then it won't get any more | 11:33 |
|
| For example, doing an `await` while handling a message | 11:33 |
| → robertle_ joined | 11:34 |
| p6bannerbot set mode: +v | 11:34 |
| Kaypie → Kaiepi | 11:36 |
|
Kaiepi
| https://hastebin.com/omagogecej.php | 11:43 |
|
| implicit return values saved me from a hellish amount of early returns | 11:43 |
|
| probably shouldn't be abusing them like this though | 11:43 |
| → sena_kun joined | 11:47 |
| → leont joined | 11:48 |
| p6bannerbot set mode: +v | 11:48 |
| p6bannerbot set mode: +v | 11:48 |
|
Xliff_
| Kaiepi: Hangman implementation? :) | 11:53 |
|
Kaiepi
| yep | 11:54 |
|
| it's a plugin for a chat bot which is why it's written kinda odd | 11:55 |
|
daxim
| m: class Foo {}; class Bar {}; class Quux { has List[Foo|Bar] @.someattr; }; | 11:56 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «=== SORRY!=== Error while compiling <tmp>An exception occurred while parameterizing Listat <tmp>:1Exception details: === SORRY!=== Error while compiling <tmp> List cannot be parameterized at <tmp>:1 ------> s Bar {…» | 11:56 |
|
daxim
| m: class Foo {}; class Bar {}; class Quux { has Array[Foo|Bar] @.someattr; }; | 11:56 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «=== SORRY!=== Error while compiling <tmp>An exception occurred while parameterizing Arrayat <tmp>:1Exception details: === SORRY!=== Error while compiling <tmp> Can not parameterize Array with any(Foo, Bar) at <tmp>:1 …» | 11:56 |
|
Kaiepi
| m: class Foo {}; class Bar {}; subset Baz of Mu where Foo | Bar; class Quux { has Array[Baz] @.someattr } | 11:58 |
|
camelia
| rakudo-moar 307ae381e: ( no output ) | 11:58 |
|
Xliff_
| m: class Foo {}; class Bar {}; subset Baz where Foo | Bar; class Quux { has Array[Baz] @.someattr } | 11:59 |
|
camelia
| rakudo-moar 307ae381e: ( no output ) | 11:59 |
|
Xliff_
| Don't need the "of Mu" there. | 11:59 |
| ← sena_kun left | 11:59 |
|
Kaiepi
| when is it needed? i know stuff like this doesn't work without it | 11:59 |
|
| m: subset Foo where Int | Junction; my Foo $foo = 1 | 2 | 12:00 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «Type check failed in assignment to $foo; expected Foo but got Junction (any(1, 2)) in block <unit> at <tmp> line 1» | 12:00 |
|
Xliff_
| m: subset Foo of Mu where Int | Junction; my Foo = 1 | 2; | 12:01 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Malformed myat <tmp>:1------> t Foo of Mu where Int | Junction; my Foo ⏏ = 1 | 2; » | 12:01 |
|
Kaiepi
| m: subset Foo of Mu where Int | Junction; my Foo $foo = 1 | 2 | 12:01 |
|
camelia
| rakudo-moar 307ae381e: ( no output ) | 12:01 |
|
Xliff_
| Huh! | 12:01 |
|
| I guess in situations where you are using Internal types. | 12:01 |
|
Kaiepi
| types that don't inherit from Any? | 12:02 |
|
Xliff_
| m: use NativeCall; Class A is repr('CStruct') { has unit32 $.a; }; class B is repr('CStruct') { has uint32 $.b }; subset AB where A | B; my AB $a = B.new; | 12:02 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Unexpected block in infix position (missing statement control word before the expression?)at <tmp>:1------> e NativeCall; Class A is repr('CStruct') ⏏ { has unit32 $.a; }; class B is repr('…» | 12:02 |
|
Xliff_
| m: use NativeCall; class A is repr('CStruct') { has unit32 $.a; }; class B is repr('CStruct') { has uint32 $.b }; subset AB where A | B; my AB $a = B.new; | 12:03 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «=== SORRY!=== Type 'unit32' is not declared. Did you mean any of these? uint32 int32at <tmp>:1------> class A is repr('CStruct') { has unit32 ⏏ $.a; }; class B is repr('CStruct') { ha Malformed hasat <tmp>:1…» | 12:03 |
|
Xliff_
| m: use NativeCall; class A is repr('CStruct') { has uint32 $.a; }; class B is repr('CStruct') { has uint32 $.b }; subset AB where A | B; my AB $a = B.new; | 12:03 |
|
camelia
| rakudo-moar 307ae381e: ( no output ) | 12:03 |
|
Xliff_
| Kaiepi: Yeah. That's an explanation. | 12:03 |
|
| But I thought all classes inherited from any. | 12:04 |
|
Kaiepi
| m: say Int ~~ Any | 12:04 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «True» | 12:04 |
|
Kaiepi
| m: say Junction ~~ Any | 12:04 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «False» | 12:04 |
|
Kaiepi
| ah ha | 12:05 |
|
Xliff_
| ah ha, indeed! | 12:05 |
|
| m: class A {}; say A ~~ Any | 12:06 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «True» | 12:06 |
|
Kaiepi
| BOOTSTRAP.nqp explains it | 12:07 |
|
| Junction.HOW.add_parent(Junction, Mu); | 12:07 |
|
Xliff_
| Junctions == Perl6 superposition... or is that not complex enough? | 12:14 |
| ← zakharyas left | 12:18 |
| → tobs` joined | 12:19 |
| p6bannerbot set mode: +v | 12:20 |
| → sena_kun joined | 12:22 |
| p6bannerbot set mode: +v | 12:22 |
|
jmerelo
| Request for comments on a split of the documentation repository: https://github.com/perl6/doc/issues/2542 | 12:27 |
|
Kaiepi
| m: class CommandContext { method foo(--> Int) { 1 } }; my method command(--> Int) { self.foo }; say command(CommandContext.new) | 12:32 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «1» | 12:32 |
|
Kaiepi
| huh that's actually really useful to be able to do | 12:32 |
|
| jmerelo i'm not really familiar enough with the docs repo to comment sorry | 12:36 |
|
tobs`
| struct { ulong64 length; uchar buf[128] }; <-- are these embedded arrays supported in CStructs or do I have to `has uint8 buf1; has uint8 buf2; ...` (or open a ticket)? | 12:38 |
| → domidumont joined | 12:41 |
|
jmerelo
| Kaiepi: no problem. Thanks anyway. | 12:41 |
| p6bannerbot set mode: +v | 12:41 |
| ← jmerelo left | 12:43 |
|
Kaiepi
| m: my Promise $p .= new; $p.break: X::AdHoc.new; my method expose-private-member(--> Int) { $!result }; say expose-private-member($p).WHAT | 12:43 |
|
camelia
| rakudo-moar 307ae381e: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Cannot understand $!result in this contextat <tmp>:1------> xpose-private-member(--> Int) { $!result ⏏ }; say expose-private-member($p).WHAT » | 12:43 |
| ← domidumont left | 12:44 |
|
Kaiepi
| damn | 12:44 |
| → domidumont joined | 13:00 |
| p6bannerbot set mode: +v | 13:00 |
|
jnthn
| As if we'd make encapsulation breakage that easy... :P | 13:20 |
|
| What're you wanting to do? .cause will get the exception a Promise was broken with | 13:20 |
|
Kaiepi
| i was just experimenting | 13:23 |
|
masak
| Kaiepi: the reason it doesn't work is that $!result is a lexical binding, so it *cannot work* outside of the class with that private field | 13:31 |
|
| which, fun fact, means that (unlike Java) you can't get `protected` semantics in Perl 6, because things are either visible, or they're not | 13:31 |
|
| moritz++ has a fun blog post somewhere about how arbitrary `protected` is | 13:31 |
|
| I'd maybe frame it nowadays as being a symptom of the less savory parts of depending on inheritance in one's design | 13:32 |
|
daxim
| m: class Foo { has Int $.bar is required = $!quux[0]; has Array $.quux is required; }; Foo.new(quux => [5,6,7,8]); | 13:37 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «The attribute '$!bar' is required, but you did not provide a value for it. in block <unit> at <tmp> line 1» | 13:37 |
|
daxim
| why ignore the default? | 13:37 |
|
| masak, also <https://steve-yegge.blogspot.com/2010/07/wikileaks-to-leak-5000-open-source-java.html> | 13:39 |
|
jnthn
| `is required` means it needs to be provided; probably it's worth a warning if mixing it with a default. | 13:41 |
|
| Since the default is never reached | 13:42 |
|
Xliff_
| Is there a FALLBACK equivalent for the script-level? | 13:43 |
|
daxim
| can I delay the check somehow? this makes porting 5/moose code a giant pain in the butt | 13:43 |
| ← w17t left | 13:43 |
|
jnthn
| If you're providing a default, why do you need `is required` at all? | 13:43 |
|
sjn
| o/ | 13:44 |
|
jnthn
| If it's not provided the default will be taken | 13:44 |
|
daxim
| good question! | 13:44 |
|
sjn
| hello, #perl6 | 13:45 |
|
jnthn
| o/ sjn | 13:45 |
|
Xliff_
| \o sjn | 13:45 |
|
| tobs: Right now, it's best to use dummy values to replace embedded arrays. | 13:46 |
|
| m: sub FALLBACK { say "Hi!" }; f(1) | 13:47 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Undeclared routine: f used at line 1» | 13:47 |
|
Xliff_
| m: method FALLBACK { say "Hi!" }; f(1) | 13:47 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «=== SORRY!=== Undeclared routine: f used at line 1Other potential difficulties: Useless declaration of a has-scoped method in mainline (did you mean 'my method FALLBACK'?) at <tmp>:1 ------> method ⏏ FALLBAC…» | 13:47 |
|
Xliff_
| m: my method FALLBACK { say "Hi!" }; f(1) | 13:47 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Undeclared routine: f used at line 1» | 13:47 |
|
Xliff_
| m: class A { method FALLBACK { say "Hi!" }; }; A.new.foo | 13:48 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «Too many positionals passed; expected 1 argument but got 2 in method FALLBACK at <tmp> line 1 in block <unit> at <tmp> line 1» | 13:48 |
|
Xliff_
| m: class A { method FALLBACK { say "Hi!" }; }; A.new.foo() | 13:48 |
| ← leont left | 13:48 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «Too many positionals passed; expected 1 argument but got 2 in method FALLBACK at <tmp> line 1 in block <unit> at <tmp> line 1» | 13:48 |
|
Xliff_
| m: class A { method FALLBACK ($name, |c) { say "Hi!" }; }; A.new.foo() | 13:49 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «Hi!» | 13:49 |
| ← eseyman left | 13:52 |
| → zakharyas joined | 13:53 |
| → eseyman joined | 13:53 |
| p6bannerbot set mode: +v | 13:53 |
| p6bannerbot set mode: +v | 13:54 |
| → leont joined | 14:00 |
| p6bannerbot set mode: +v | 14:01 |
| → kurahaupo joined | 14:05 |
| p6bannerbot set mode: +v | 14:05 |
| ← gabiruh left | 14:06 |
| → gabiruh joined | 14:06 |
| p6bannerbot set mode: +v | 14:07 |
| → brrt joined | 14:20 |
| p6bannerbot set mode: +v | 14:20 |
| ← reach_satori left | 14:22 |
| → harrison joined | 14:46 |
| p6bannerbot set mode: +v | 14:47 |
| ← curan left | 15:02 |
| ← squashable6 left | 15:17 |
| ← harrison left | 15:19 |
| → squashable6 joined | 15:21 |
| p6bannerbot set mode: +v | 15:22 |
|
[Coke]
| doc xtest on windows has a memory allocation panic in examples compilation, and several Reading from filehandle failed: Permission denied | 15:28 |
| → reach_satori joined | 15:29 |
| p6bannerbot set mode: +v | 15:30 |
|
daxim
| m: for zip 0..*, ['A', 'B', 'C'] -> $idx, $str {} | 15:30 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1» | 15:30 |
|
daxim
| I'm looking for the equivalent of Python enumerate() or v5: while (my ($idx, $str) = each $aref->@*) {} | 15:30 |
| ← lookatme_q left | 15:34 |
|
sena_kun
| m: for zip 0..*, ['A', 'B', 'C'] -> ($idx, $str) { say "$idx: $str" } | 15:39 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «0: A1: B2: C» | 15:39 |
|
sena_kun
| to make it work | 15:39 |
| ← kurahaupo left | 15:39 |
|
sena_kun
| m: for 0..* Z ['A', 'B', 'C'] -> ($idx, $str) { say "$idx: $str" } | 15:39 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «0: A1: B2: C» | 15:39 |
|
sena_kun
| to make it a bit shorter | 15:40 |
| ← brrt left | 15:40 |
|
sena_kun
| m: for 0..* Z <A B C> { say "$_[0]: $_.[1]" } | 15:41 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «0: A1: B2: C» | 15:41 |
|
sena_kun
| you get the idea, I think. :) | 15:41 |
|
| daxim, ^? | 15:41 |
|
jnthn
| m: for <A B C>.kv -> $idx, $str { say "$idx: $str" } | 15:43 |
|
camelia
| rakudo-moar 8ae4310e9: OUTPUT: «0: A1: B2: C» | 15:43 |
| → kurahaupo joined | 15:43 |
| → brrt joined | 15:43 |
| p6bannerbot set mode: +v | 15:43 |
| p6bannerbot set mode: +v | 15:44 |
| → lookatme_q joined | 15:48 |
| p6bannerbot set mode: +v | 15:49 |
| → MorayJ joined | 15:51 |
| p6bannerbot set mode: +v | 15:52 |
| ← mowcat left | 15:53 |
| → Peter_R joined | 15:53 |
| p6bannerbot set mode: +v | 15:53 |
|
[Coke]
| doc issues on windows probably due to this: https://github.com/perl6/doc/blob/master/lib/Pod/Cache.pm6 - anyone see anyting particularly egregious for window? looks like it processes 8-10 files or so when it's used, but then eventually dies with permission denied | 15:54 |
|
| wonder if it's the .lock | 15:57 |
| ← brrt left | 15:58 |
|
daxim
| thanks, sena_kun++ jnthn++ | 16:00 |
|
[Coke]
| Looks like maybe it's the missing .close on the handle. | 16:00 |
| ← Kaiepi left | 16:03 |
| → Kaiepi joined | 16:04 |
| p6bannerbot set mode: +v | 16:05 |
| ← squashable6 left | 16:05 |
| → squashable6 joined | 16:09 |
| ChanServ set mode: +v | 16:09 |
|
Geth
| ¦ doc: 0bfb92c643 | (Will Coleda)++ (committed using GitHub Web editor) | lib/Pod/Cache.pm6 | 16:09 |
|
| ¦ doc: Explicitly close the output file | 16:09 |
|
| ¦ doc: | 16:09 |
|
| ¦ doc: Without this, windows complains about not having permission to write after processing some number of files. | 16:09 |
|
| ¦ doc: review: https://github.com/perl6/doc/commit/0bfb92c643 | 16:09 |
| p6bannerbot set mode: +v | 16:09 |
| → jmerelo joined | 16:16 |
| p6bannerbot set mode: +v | 16:17 |
|
sjn
| Question: Is there a way to make a "match all" action for grammars? (eg. for tracing) | 16:17 |
|
timotimo
| the parser will look for a method named the same as the rule/token/regex, so you can just use FALLBACK for that purpose | 16:20 |
|
sjn
| hm | 16:22 |
|
jmerelo
| sjn: and you can also use Grammar::Trace | 16:23 |
|
sjn
| timotimo: wouldn't that just be run on the misses? | 16:24 |
| → hankache joined | 16:25 |
|
timotimo
| ah, indeed it would | 16:25 |
|
| however | 16:25 |
|
| you could just™ put your original action class into an attribute and delegate | 16:25 |
| p6bannerbot set mode: +v | 16:25 |
| → Ven`` joined | 16:26 |
| p6bannerbot set mode: +v | 16:26 |
| ← domidumont left | 16:27 |
|
sjn
| jmerelo: can't find it? :-| | 16:28 |
|
jmerelo
| sjn: sorry, Grammar::Tracer: https://perl6advent.wordpress.com/2011/12/02/grammartracer-and-grammardebugger/ | 16:29 |
|
El_Che
| Has someone already published Grammar::Nazi? | 16:31 |
| → cfa joined | 16:31 |
| p6bannerbot set mode: +v | 16:31 |
|
jmerelo
| El_Che: it's in the roadmap after Comma::Oxford | 16:32 |
| → lizmat_ joined | 16:33 |
| p6bannerbot set mode: +v | 16:33 |
| ← lizmat left | 16:35 |
|
cfa
| 👋 | 16:35 |
| lizmat_ → lizmat | 16:35 |
|
jmerelo
| This issue is open for comments, just in case you're interested: https://github.com/perl6/doc/issues/2542 | 16:40 |
| ← zakharyas left | 16:52 |
| → mowcat joined | 16:54 |
| ← tobs` left | 16:54 |
| ← mowcat left | 16:54 |
| → zacts joined | 17:02 |
| p6bannerbot set mode: +v | 17:02 |
| ← zacts left | 17:04 |
| ← hankache left | 17:08 |
| → domidumont joined | 17:09 |
| p6bannerbot set mode: +v | 17:10 |
| → patrickz joined | 17:19 |
| p6bannerbot set mode: +v | 17:20 |
| ← patrickb left | 17:22 |
| ← scimon left | 17:25 |
| → scimon joined | 17:28 |
| p6bannerbot set mode: +v | 17:28 |
| ← scimon left | 17:30 |
| ← kensanata left | 17:33 |
| ← dakkar left | 17:39 |
| ← robertle_ left | 17:40 |
|
avuserow
| m: say "♳" .. "♹" | 17:59 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «"♳".."♹"» | 17:59 |
|
avuserow
| m: .say for "♳" .. "♹" | 17:59 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «♳♴♵♶♷♸♹» | 17:59 |
| ← eliasr left | 18:00 |
|
jmerelo
| m: say "♳".."♹" | 18:11 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «"♳".."♹"» | 18:11 |
|
jmerelo
| m: say Range("♳","♹") | 18:11 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Cannot find method 'Range' on object of type List in block <unit> at <tmp> line 1» | 18:11 |
|
jmerelo
| m: say '♳'..'♹' | 18:11 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «"♳".."♹"» | 18:11 |
|
jmerelo
| m: say ('♳'..'♹') | 18:12 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «"♳".."♹"» | 18:12 |
|
cfa
| m: eager "♳".."♹" | 18:12 |
|
camelia
| rakudo-moar f010ef57a: ( no output ) | 18:12 |
|
cfa
| m: say eager "♳".."♹" | 18:12 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(♳ ♴ ♵ ♶ ♷ ♸ ♹)» | 18:12 |
|
cfa
| is that what you're after? (or wrap with ().list) | 18:12 |
|
jmerelo
| cfa++ right. | 18:12 |
|
Geth
| ¦ doc: 4f39463e36 | (JJ Merelo)++ | doc/Language/modules.pod6 | 18:13 |
|
| ¦ doc: Improves META6.json documentation | 18:13 |
|
| ¦ doc: | 18:13 |
|
| ¦ doc: Including `source-type` and clarifying the fact that `source-url` is | 18:13 |
|
| ¦ doc: compulsory if you want to publish the project in the ecosystem. Closes #2543 | 18:13 |
|
synopsebot
| Link: https://doc.perl6.org/language/modules | 18:13 |
|
Geth
| ¦ doc: review: https://github.com/perl6/doc/commit/4f39463e36 | 18:13 |
| ← jme` left | 18:14 |
|
cfa
| jmerelo: btw, in case it's not clear: #2538 is just if we opt for the Any paragraph---happy to close and go with your trap suggestion too | 18:14 |
|
| hence the pr not a commit | 18:14 |
|
jmerelo
| cfa: I would say that since it affects many classes, in fact anything that subclasses Any, it would better go somewhere else... Coercion might affect also other kind of operations, too. Hence putting it into the traps page is better IMO | 18:17 |
|
| cfa: I appreciate you've done a PR so that we have the chance to discuss this. It would have probably not hurt if you had done the commit, anyway. | 18:18 |
|
cfa
| ack | 18:21 |
| ← |oLa| left | 18:23 |
| ← random_yanek left | 18:24 |
| ← sauvin left | 18:30 |
| → zakharyas joined | 18:30 |
| p6bannerbot set mode: +v | 18:31 |
|
Xliff_
| m: say "♳"…"♹" | 18:34 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(♳ ♴ ♵ ♶ ♷ ♸ ♹)» | 18:34 |
|
Xliff_
| Note use of … or ... | 18:34 |
|
| cfa, avuserow, jmerelo ^^ | 18:35 |
|
avuserow
| nice thanks | 18:35 |
|
Xliff_
| m: say ("♳"…"♹").^name | 18:35 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Seq» | 18:35 |
| → random_yanek joined | 18:36 |
| p6bannerbot set mode: +v | 18:37 |
| → vrurg joined | 18:46 |
| p6bannerbot set mode: +v | 18:47 |
|
cfa
| Xliff_: neat | 18:47 |
| → Brilpikk3wyn joined | 18:49 |
| p6bannerbot set mode: +v | 18:49 |
| Brilpikk3wyn → Pikk3wyn | 18:50 |
| ← vrurg left | 18:56 |
|
AlexDaniel
| m: .say for "♳"…"♹" | 18:56 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «♳♴♵♶♷♸♹» | 18:56 |
| → zachk joined | 18:58 |
| p6bannerbot set mode: +v | 18:59 |
| ← Ven`` left | 18:59 |
| ← zakharyas left | 19:02 |
| → vrurg joined | 19:02 |
| p6bannerbot set mode: +v | 19:03 |
| ← zachk left | 19:06 |
| → zachk joined | 19:06 |
| watson.freenode.net set mode: +v | 19:06 |
| p6bannerbot set mode: +v | 19:06 |
| ← vrurg left | 19:07 |
| ← kurahaupo left | 19:08 |
| → kurahaupo joined | 19:14 |
| p6bannerbot set mode: +v | 19:14 |
|
Geth
| ¦ doc: 795cf175db | (JJ Merelo)++ | doc/Language/modules.pod6 | 19:20 |
|
| ¦ doc: Clarifies types of attributes and how to work with them. | 19:20 |
|
| ¦ doc: | 19:20 |
|
| ¦ doc: This closes #2543, again. Feel free to reopen if there's anything left | 19:20 |
|
| ¦ doc: to address. | 19:20 |
|
synopsebot
| Link: https://doc.perl6.org/language/modules | 19:20 |
|
Geth
| ¦ doc: review: https://github.com/perl6/doc/commit/795cf175db | 19:20 |
| → dct joined | 19:24 |
| p6bannerbot set mode: +v | 19:24 |
| → vrurg joined | 19:25 |
| p6bannerbot set mode: +v | 19:26 |
|
daxim
| m: class Foo { has Iterable[Int] @.bar; }; Foo.new(bar => (1,2,3).map(* + 1)) | 19:27 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Type check failed in assignment to @!bar; expected Iterable[Int] but got Int (2) in block <unit> at <tmp> line 1» | 19:27 |
|
jmerelo
| m: say (1,2,3).map(* + 1).^name | 19:27 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Seq» | 19:27 |
|
jmerelo
| Hum. | 19:28 |
|
| m: class Foo { has Iterable[Int] @.bar; }; Foo.new(bar => $((1,2,3).map(* + 1))) | 19:28 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Type check failed in assignment to @!bar; expected Iterable[Int] but got Seq ($((2, 3, 4).Seq)) in block <unit> at <tmp> line 1» | 19:28 |
|
jmerelo
| m: say (1,2,3).map(* + 1)<>.^name | 19:29 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Seq» | 19:29 |
|
jmerelo
| m: class Foo { has Iterable[Int] @.bar; }; Foo.new(bar => (1,2,3).map(* + 1)<> ) | 19:29 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Type check failed in assignment to @!bar; expected Iterable[Int] but got Int (2) in block <unit> at <tmp> line 1» | 19:29 |
|
jmerelo
| m: my Iterable[Int] @.bar = (1,2,3).map(* + 1); | 19:30 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Potential difficulties: Useless generation of accessor method in mainline at <tmp>:1 ------> my Iterable[Int] ⏏ @.bar = (1,2,3).map(* + 1); Type check failed in assignment to @.bar; expected Iterable[Int] but got Int (2)…» | 19:30 |
|
jmerelo
| m: my Iterable[Int] .bar = (1,2,3).map(* + 1); | 19:30 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Malformed myat <tmp>:1------> my Iterable[Int] ⏏ .bar = (1,2,3).map(* + 1); » | 19:30 |
|
jmerelo
| m: my Iterable[Int] $.bar = (1,2,3).map(* + 1); | 19:30 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Potential difficulties: Useless generation of accessor method in mainline at <tmp>:1 ------> my Iterable[Int] ⏏ $.bar = (1,2,3).map(* + 1); Type check failed in assignment to $.bar; expected Iterable[Int] but got Seq ($((2,…» | 19:30 |
|
jmerelo
| m: my Iterable[Int] @bar = (1,2,3).map(* + 1); | 19:30 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Type check failed in assignment to @bar; expected Iterable[Int] but got Int (2) in block <unit> at <tmp> line 1» | 19:30 |
|
jmerelo
| m: my Iterable[Int] $bar = (1,2,3).map(* + 1); | 19:30 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Type check failed in assignment to $bar; expected Iterable[Int] but got Seq ($((2, 3, 4).Seq)) in block <unit> at <tmp> line 1» | 19:30 |
|
Kaiepi
| m: my $bar is Iterable[Int] = (1,2,3).map(* + 1) | 19:31 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Can't use unknown trait 'is ' in a variable declaration.at <tmp>:1------> my $bar is Iterable[Int] ⏏ = (1,2,3).map(* + 1)  expecting any of: TypeObject default …» | 19:31 |
|
Kaiepi
| m: my $bar is Iterable[Int]; $bar = (1,2,3).map(* + 1) | 19:31 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Can't use unknown trait 'is ' in a variable declaration.at <tmp>:1------> my $bar is Iterable[Int] ⏏ ; $bar = (1,2,3).map(* + 1)  expecting any of: TypeObject defau…» | 19:31 |
|
Kaiepi
| oh that's for properties only? | 19:32 |
|
| m: class Foo { has $bar is Iterable[Int] }; Foo.new: bar => (1,2,3).map(* + 1) | 19:32 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Can't use unknown trait 'is ' in an attribute declaration.at <tmp>:1 expecting any of: rw readonly box_target leading_docs trailing_docs» | 19:32 |
|
jmerelo
| daxim: the problem might be that Iterable is a role. You can auto-pun variables to roles, but apparently not in this case, since you can't use a type for Seq | 19:32 |
|
| daxim, Kaiepi: I would say you can't auto-pun a Seq into a particular kind of Iterable. You might be able to auto-pun it in a generic Iterable. | 19:33 |
|
| m: my Iterable @bar = (1,2,3).map(* + 1); | 19:33 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «Type check failed in assignment to @bar; expected Iterable but got Int (2) in block <unit> at <tmp> line 1» | 19:33 |
|
jmerelo
| m: my Iterable 4bar = (1,2,3).map(* + 1); | 19:33 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Malformed myat <tmp>:1------> my Iterable ⏏ 4bar = (1,2,3).map(* + 1); » | 19:33 |
|
jmerelo
| m: my Iterable $bar = (1,2,3).map(* + 1); | 19:33 |
|
camelia
| rakudo-moar f010ef57a: ( no output ) | 19:33 |
|
jmerelo
| m: my Iterable $bar = (1,2,3).map(* + 1); .say for $bar | 19:34 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(2 3 4)» | 19:34 |
|
jmerelo
| daxim: also @ is for Positionals. Before it's assigned, it's converted into a list, that is why it's taking only the first element. | 19:35 |
|
daxim
| ok | 19:35 |
| ← Pikk3wyn left | 19:40 |
|
SmokeMachine
| m: my @bar does Iterable = (1,2,3).map(* + 1); .say for @bar | 19:41 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «234» | 19:41 |
|
jmerelo
| m: my @bar does Iterable[Int] = (1,2,3).map(* + 1); .say for @bar | 19:42 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>No appropriate parametric role variant available for 'Iterable'at <tmp>:1» | 19:42 |
|
jmerelo
| m: my $bar does Iterable[Int] = (1,2,3).map(* + 1); .say for $bar | 19:42 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>No appropriate parametric role variant available for 'Iterable'at <tmp>:1» | 19:42 |
|
lizmat
| Iterable can not be parameterized | 19:43 |
|
SmokeMachine
| m: say Iterable[Int] | 19:44 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(Iterable[Int])» | 19:44 |
|
lizmat
| it can ? | 19:44 |
|
jmerelo
| lizmat: of course... I just assumed it could because that error didn't show up until now. | 19:44 |
|
| lizmat: doesn't look like it does: https://github.com/rakudo/rakudo/blob/master/src/core/Iterable.pm6 | 19:45 |
|
| m: say Any[Int] | 19:45 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Any cannot be parameterizedat <tmp>:1------> say Any[Int] ⏏ <EOL> » | 19:45 |
|
lizmat
| that's what I was looking at | 19:45 |
|
jmerelo
| m: say Iterator[Int] | 19:45 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(Iterator[Int])» | 19:45 |
|
SmokeMachine
| m: say Iterable[Int].of # error | 19:45 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «No appropriate parametric role variant available for 'Iterable' in block <unit> at <tmp> line 1» | 19:45 |
|
jmerelo
| So apparently you can fake-parametrize any role. | 19:45 |
|
| m: say Enumeration[Cool] | 19:46 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(Enumeration[Cool])» | 19:46 |
|
SmokeMachine
| m: role R {}; say R[Int] | 19:46 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(R[Int])» | 19:46 |
|
jmerelo
| he | 19:46 |
|
lizmat
| m: role R { }; class A does R[Int] { } | 19:48 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «=== SORRY!=== Error while compiling <tmp>No appropriate parametric role variant available for 'R'at <tmp>:1» | 19:48 |
|
lizmat
| so I guess it doesn't throw until you actually try to do the role | 19:48 |
|
Geth
| ¦ doc: de61a0a350 | (Will Coleda)++ (committed using GitHub Web editor) | lib/Pod/Cache.pm6 | 19:49 |
|
| ¦ doc: more robust close of output file | 19:49 |
|
| ¦ doc: | 19:49 |
|
| ¦ doc: b2gills++ | 19:49 |
|
| ¦ doc: review: https://github.com/perl6/doc/commit/de61a0a350 | 19:49 |
|
SmokeMachine
| m: class C {method ^parameterize($, $a) {$a}}; say C[Int] | 19:49 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(Int)» | 19:49 |
| → jme` joined | 20:04 |
| p6bannerbot set mode: +v | 20:05 |
| ← jmerelo left | 20:10 |
|
SmokeMachine
| lizmat: a few days ago you have sent a link about someone writing a compiler in python... and you sad that would like to see that in perl6... | 20:13 |
|
| lizmat: I am studying something like that: https://github.com/FCO/bernalang | 20:14 |
| → Myschkin joined | 20:15 |
| p6bannerbot set mode: +v | 20:15 |
|
SmokeMachine
| lizmat: it's something like this: https://www.irccloud.com/pastebin/fz0XhcxN/ | 20:15 |
|
AlexDaniel
| weekly: https://colabti.org/irclogger/irclogger_log/perl6?date=2019-01-07#l629 | 20:16 |
|
notable6
| AlexDaniel, Noted! | 20:16 |
|
lizmat
| AlexDaniel: ?? | 20:16 |
|
| SmokeMachine: cool! | 20:17 |
|
AlexDaniel
| lizmat: I mean that https://github.com/FCO/bernalang can be mentioned in the weekly | 20:17 |
|
lizmat
| AlexDaniel: ack | 20:18 |
|
SmokeMachine
| and that's why I was asking if someone was planning to create a wrapper to gccjit (https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/) | 20:24 |
|
Myschkin
| I'm having difficulties with Cro::HTTP::Client and the async features of perl6: First I (successfully) download a json file which contains a list of files and their descriptions (url,name...). I seems natural tu loop over that list and create a list of chained promises to await. Like so: my $promise = $client.get($url).then({ my Blob $body = .result.body-blob(); "/tmp".IO.add("$name").spurt: $body }) That doesn't work and fails with | 20:44 |
|
| My goal would be to download the files in parallel | 20:44 |
|
AlexDaniel
| Myschkin: I think part of your first message was cut off, it ends with “That doesn't work and fails with” | 20:46 |
|
sena_kun
| Myschkin, you probably want to look at https://gist.github.com/jnthn/b358ebfb6ea6c366834896b9f62ba92b <- you just need to patch it to cut of "crawler" parts and fill in gaps. | 20:46 |
|
Myschkin
| AlexDaniel: fails with "expected Blob but got Promise" | 20:49 |
|
AlexDaniel
| maybe something like `my Blob $body = await .result.body-blob();` ? | 20:50 |
|
| pretty sure .body-blob() returns a promise too | 20:50 |
|
sena_kun
| `body-blob` returns a Promise, yes. | 20:52 |
|
Myschkin
| AlexDaniel: Thank you, that works :) | 20:52 |
|
| I had tried to chain another .then after the body-blob block, but that didnt't seem to work. but maybe I made some other mistake there | 20:54 |
| → molaf joined | 21:02 |
| p6bannerbot set mode: +v | 21:02 |
| ← rindolf left | 21:07 |
|
zachk
| is a range/list like (1..10) lazy in perl6? | 21:13 |
|
yoleaux
| 6 Jan 2019 06:26Z <Xliff_> zachk: Atom also has plugins for Perl6 syntax highlighting. I find Atom + perl6-le + sublime column sorting + line sort makes for a great Perl6 editor | 21:13 |
| ← Myschkin left | 21:13 |
|
AlexDaniel
| zachk: well, 1..99 (range object) is basically just two values | 21:15 |
|
| if you .list it, then yeah, you'd get a lazy list | 21:15 |
|
zachk
| are all lists lazy? if i (1..10).map(%someFunc) is it lazy? | 21:16 |
|
AlexDaniel
| not all, but many operations are lazy in Perl 6 | 21:17 |
|
| in case of .map you'll get a Seq | 21:17 |
|
zachk
| so laziness in perl6 only computes the result when output is required of the value? | 21:18 |
|
AlexDaniel
| yes | 21:18 |
|
| easy to test, by the way | 21:18 |
|
| m: say (1..99999999999999999999999999999999999).map({$_ + 1}) | 21:18 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 …» | 21:18 |
|
AlexDaniel
| ↑ clearly that was too fast and it didn't go all the way to 99999999999999999999999999999999999 :) | 21:19 |
|
| zachk: range object are also cool because rakudo will often cheat | 21:20 |
|
| m: say (1..99999999999999999999999999999999999)[*-10..∞].map({$_ + 1}) | 21:20 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(99999999999999999999999999999999991 99999999999999999999999999999999992 99999999999999999999999999999999993 99999999999999999999999999999999994 99999999999999999999999999999999995 99999999999999999999999999999999996 9999999999999999999999999999999999…» | 21:20 |
|
AlexDaniel
| m: say (1..99999999999999999999999999999999999).elems | 21:20 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «99999999999999999999999999999999999» | 21:20 |
|
zachk
| it can do interval arithmetic sort of? | 21:20 |
|
| thats pretty clever | 21:20 |
|
AlexDaniel
| it will cheat when you ask it to calculate the number of elements, and it does not seem to generate values internally if you don't need them | 21:21 |
|
| so indexing from the end is fine like in the example above | 21:21 |
| → rindolf joined | 21:21 |
|
zachk
| whats that [* ....] notation and can I type something other then the unicode infinite symbol for that symbol? | 21:22 |
| p6bannerbot set mode: +v | 21:22 |
|
AlexDaniel
| zachk: yes, * is ok too instead of ∞ | 21:22 |
|
| and Inf should work just as well | 21:23 |
|
zachk
| whats that [] after the range do? | 21:23 |
| → scovit joined | 21:23 |
|
AlexDaniel
| just accessing elements by their index, similarly to what you can do with arrays | 21:23 |
|
| m: say <a b c d e f g>[5, 3] | 21:23 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(f d)» | 21:23 |
|
AlexDaniel
| m: say <a b c d e f g>[3..5] | 21:24 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(d e f)» | 21:24 |
|
AlexDaniel
| m: say <a b c d e f g>[3..*] | 21:24 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(d e f g)» | 21:24 |
| p6bannerbot set mode: +v | 21:24 |
|
AlexDaniel
| m: say <a b c d e f g>[*-2..*] | 21:24 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(f g)» | 21:24 |
|
AlexDaniel
| * basically ends up being the number of elements, so *-2 conveniently gives the index of the second element from the end | 21:25 |
|
| arguably this is more correct | 21:26 |
|
| m: say <a b c d e f g>[*-2..*-1] | 21:26 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «(f g)» | 21:26 |
|
AlexDaniel
| which is why I like Inf there, a bit less confusing :) | 21:26 |
|
Xliff_
| AlexDaniel: %-) | 21:31 |
| ← ExtraCrispy left | 21:31 |
|
AlexDaniel
| Xliff_: ? :) | 21:31 |
|
Xliff_
| I yam wondering what drunkenly stupid thing I can say to you. | 21:32 |
|
| Or should I pass? | 21:32 |
|
AlexDaniel
| say it xD | 21:32 |
|
| Xliff_ waits for the smoke... | 21:32 |
|
Xliff_
| Oh. Damn. | 21:32 |
|
| Now I am caught. | 21:32 |
|
| Xliff_ folds the pot. | 21:32 |
|
Xliff_
| AlexDaniel: OH! New graph at -- https://github.com/Xliff/p6-GtkPlus/blob/master/stats/OutputGraph-20190107-1430.svg | 21:33 |
|
| Latest rakudo still under the worst compile time results from 12/21/2018, although not as good as the results from 01/02/2019 | 21:34 |
|
AlexDaniel
| I demand builds on x axis and cumulative time for all modules on y! | 21:35 |
|
Xliff_
| :-O | 21:35 |
|
| PR's accepted! :) | 21:35 |
|
AlexDaniel
| ✊✊✊ builds on x! time on y! builds on x! time on y! ✊✊✊ | 21:36 |
|
Xliff_
| ROFLMAO | 21:36 |
|
| Become my p6-GtkPlus coder flunky and I will do it! | 21:36 |
| ← domidumont left | 21:38 |
|
patrickz
| I'm done for today and quite pleased with the results so far. 'night everyone! | 21:39 |
| → ExtraCrispy joined | 21:43 |
| p6bannerbot set mode: +v | 21:43 |
|
AlexDaniel
| weekly: patrickz++ worked on making rakudo relocatable | 21:44 |
|
notable6
| AlexDaniel, Noted! | 21:44 |
| ← patrickz left | 21:46 |
|
Xliff_
| AlexDaniel: What does that mean? | 21:49 |
|
AlexDaniel
| Xliff_: currently if you install rakudo somewhere you cannot move it to another path | 21:50 |
|
| well, you can, but it won't work :) | 21:50 |
|
lizmat
| PSA: I'll probably won't be able to finish the P6W tonight, so it will be tomorrow around noon most likely | 21:51 |
|
| and yes, it's going to be a big one again | 21:52 |
|
Xliff_
| \o/ | 22:00 |
|
| AlexDaniel++ | 22:00 |
| ← jme` left | 22:07 |
|
[Coke]
| lizmat++ | 22:10 |
|
Kaiepi
| Net::Telnet is almost ready for release! | 22:12 |
|
| i just need to add support for some more common extensions | 22:12 |
| → melezhik joined | 22:13 |
| p6bannerbot set mode: +v | 22:13 |
|
melezhik
| Hi! How do I get soft symlink's target ? | 22:13 |
|
| symlink($target,$name); need to know the $target. $name.IO.something? | 22:14 |
|
[Coke]
| IO::Path's resolve? | 22:16 |
|
lizmat
| m: "foo".IO.resolve | 22:17 |
|
camelia
| rakudo-moar f010ef57a: ( no output ) | 22:17 |
|
[Coke]
| m: dd "foo".IO.resolve | 22:17 |
|
camelia
| rakudo-moar f010ef57a: OUTPUT: «IO::Path.new("/home/camelia/foo", :SPEC(IO::Spec::Unix), :CWD("/"))» | 22:17 |
|
melezhik
| Coke:, lizmat: thanks! .resolve does the trick! | 22:19 |
|
[Coke]
| o/ | 22:20 |
|
Xliff_
| AlexDaniel: https://github.com/Xliff/p6-GtkPlus/blob/master/stats/OutputGraph-20190107-1716b.svg -- You may have to download and view that one. | 22:42 |
|
lizmat
| notable6: weekly | 22:44 |
|
notable6
| lizmat, 8 notes: https://gist.github.com/4561f921da17bcf8a8c242609d9a047e | 22:44 |
| → jme` joined | 22:46 |
| p6bannerbot set mode: +v | 22:46 |
|
| lizmat is tired and will continue on the P6W tomorrow | 22:59 |
|
zachk
| is there a method to end a supply? | 23:04 |
|
jnthn
| On the emitting side or the subscribing side? | 23:05 |
|
| (There's at least 3 different answers depending what exactly you're asking...) | 23:06 |
|
zachk
| how would I kill the supply on the supplier side? | 23:09 |
| ← melezhik left | 23:10 |
|
jnthn
| .done | 23:12 |
|
| Or if it's erroneous, .quit | 23:12 |
|
| .done is a successful/normal termination | 23:12 |
| ← jme` left | 23:15 |
| → TreyHarris joined | 23:38 |
| p6bannerbot set mode: +v | 23:38 |
|
AlexDaniel
| Xliff_: still not cumulative time per build | 23:44 |
| → w_richard_w joined | 23:56 |
| p6bannerbot set mode: +v | 23:57 |