»ö« 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:07 dct left 00:09 rindolf left 00:16 coet left
vrurg Looks like the autogenerated BUILDALL doesn't call BUILDALL from ancestors. Am I right in this guess? 00:16
00:17 w_richard_w joined 00:31 xi- left, kurahaupo_ left, kurahaupo joined 00:33 xi joined 00:46 aborazmeh joined, aborazmeh left, aborazmeh joined 00:48 xi left 00:52 xi joined 00:53 hph^ left, hph^ joined, hph^ left 00:54 hph^ joined 00:55 hph^ left, hph^ joined, hph^ left, hph^ joined, Kaiepi left, hph^ left 00:56 hph^ joined, hph^ left, hph^ joined, hph^ left, hph^ joined, hph^ left 01:00 _isomorphismes joined 01:04 _isomorphismes left 01:18 kurahaupo_ joined, chacewells left, kurahaupo_ left 01:19 kurahaupo_ joined, kurahaupo left 01:20 kurahaupo joined 01:21 kurahaupo_ left, aindilis left, kurahaupo left 01:22 kurahaupo joined
leont Yet another «Cannot invoke this object (REPR: Null; VMNull)» 01:23
Adding --ll-exception doesn't change a bit of the output, that's all I'm going to get
I keep running into precompilation issues when doing meta-programming :-( 01:24
sena_kun leont, can you provide a gist please? maybe I can help, have been doing a lot of this lately. 01:30
though my solutions are most often "try to rewrite it some other way that doesn't die" or "report as a bug with a golfed gist", so not sure if qualified enough. :) 01:31
01:32 kurahaupo left, kurahaupo_ joined, kurahaupo_ left 01:33 kurahaupo joined
leont I'm using a trait to mix in a role into a Sub 01:34
So far I've "solved this" by postponing this whole approach of using a trait to make something happen at compile-time, as it was an optimization anyway 01:35
sena_kun hmm, I have used traits to mix in roles into simpler types like Str. 01:37
though it was for traits on attributes, not subroutines.
01:45 aborazmeh left
AlexDaniel sena_kun, jnthn: so what about `zef install Cro::WebSocket`? Does that work for you? Should it work? 01:49
it's the last one in R#2638 and I was hoping that it is a flapper, but it does not look so
synopsebot R#2638 [open]: github.com/rakudo/rakudo/issues/2638 [⚠ blocker ⚠] [WIP] Blin 2019.01
sena_kun is still on 2018.12-211-ge87b7afb0 01:50
Cro::WebSocket is known to be somewhat unstable as in "it can fail tests at 1/100 rate", but it doesn't just dies and it definetely doesn't fail tests every time. 01:51
AlexDaniel here's what I see, fwiw: gist.github.com/AlexDaniel/6447ca0...a7866b91df
also it eats memory like crazy
01:52 zachk left
sena_kun this is another issue from known ones. 01:52
AlexDaniel and that happens almost every time if not every time
sena_kun and is reported at github.com/croservices/cro-websocket/issues/19
AlexDaniel, I think it is a regression.
please ping or .tell jnthn to look into it later, I think. 01:53
let me check what the test does exactly...
ah, frame parser.
it's a regression for sure. 01:54
as in, there are no particulary unstable parts, but I see at least `$parser.transformer($fake-in.Supply).schedule-on($*SCHEDULER).tap: -> $frame` and similar "smarty" code which was stable as a rock since its creation. 01:55
so a regression and a leak.
AlexDaniel R#2644 01:56
synopsebot R#2644 [open]: github.com/rakudo/rakudo/issues/2644 [regression][⚠ blocker ⚠] Some regression with Cro::WebSocket
sena_kun hopes his head is still here after bringing bad news
AlexDaniel++
leont Apparent, I found a bug in the multi-dispatcher -_- 02:01
m: perl6 -e 'sub foo ($foo, Str :@bar) { .say for @bar }; foo(1)'
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3perl6 -e7⏏5 'sub foo ($foo, Str :@bar) { .say for @
expecting any of:
infix
infix stopper
postfix
statement…
leont Erm 02:02
m: sub foo ($foo, Str :@bar) { .say for @bar }; foo(1)
camelia ( no output )
leont m: multi foo ($foo, Str :@bar) { .say for @bar }; multi foo () {}; foo(1)
camelia Cannot resolve caller foo(Int:D); none of these signatures match:
($foo, Str :@bar)
()
in block <unit> at <tmp> line 1
leont There's no reason why the latter shouldn't work if the former does
AlexDaniel m: multi foo ($foo, Str :@bar) { .say for @bar }; foo(1)
camelia Cannot resolve caller foo(Int:D); none of these signatures match:
($foo, Str :@bar)
in block <unit> at <tmp> line 1
AlexDaniel 6c: multi foo ($foo, Str :@bar) { .say for @bar }; foo(1) 02:03
committable6 AlexDaniel, gist.github.com/1bf7e369bd0e949a33...851f4f2de5
02:03 sena_kun left 02:05 huyna joined
leont m: multi foo ($foo, Str :@bar = Array[Str].new) { .say for @bar }; multi foo () {}; foo(1) 02:05
camelia ( no output )
AlexDaniel leont: yeah, weird… file a bug report 02:06
leont Just did that, #2645 02:10
02:13 kurahaupo left, kurahaupo joined 02:17 markoong left 02:18 Kaiepi joined 02:19 Cabanossi left 02:20 kurahaupo_ joined, molaf left, Cabanossi joined 02:21 kurahaupo left, kurahaupo_ left 02:22 kurahaupo joined, kurahaupo left, isomorphismes joined, kurahaupo joined 02:23 kurahaupo left 02:24 kurahaupo joined, atweiden-air left 02:26 Kaiepi left
huyna say "Testing the VM" 02:26
evalable6 Testing the VM
MasterDuke the memory growth in R#2644 seems like it might be because of some weird array splicing 02:31
synopsebot R#2644 [open]: github.com/rakudo/rakudo/issues/2644 [regression][⚠ blocker ⚠] Some regression with Cro::WebSocket
02:33 molaf joined
MasterDuke there are a lot of splice calls where the offset is some large increasing value (e.g., 1520800320 or 50573760) and the count is 0 02:33
SmokeMachine m: Mu.ACCEPTS: Set.HOW
camelia Cannot resolve caller ACCEPTS(Mu:U: Perl6::Metamodel::ClassHOW+{<anon>}); none of these signatures match:
(Mu:U: \topic, *%_)
(Mu:U: Mu:U \topic, *%_)
in block <unit> at <tmp> line 1
SmokeMachine m: Set.^compose; Mu.ACCEPTS: Set.HOW 02:34
camelia ( no output )
SmokeMachine I think it’s just not being composed... 02:38
m: Set.^compose; say Set.HOW ~~ Metamodel::EnumHOW
camelia False
02:38 kurahaupo_ joined 02:40 kurahaupo left, kurahaupo_ left, kurahaupo joined 02:44 AlexDani` joined 02:45 AlexDaniel left 02:48 kurahaupo_ joined 02:51 kurahaupo left 02:54 w17t left 03:01 _isomorphismes joined 03:02 aindilis joined
isomorphismes examples.perl6.org/categories/pars...rings.html "for now ... a rakudo binding issue" 03:02
lookatme_q: is there a way to require either both ( and ) or neither ( nor ) in a regex? thanks. 03:03
03:06 _isomorphismes left 03:12 w_richard_w left 03:14 Kaiepi joined
Geth doc: 9c057a411b | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/HomePage.pod6
Update HomePage.pod6

removed commented out `html` referring to core modules that includes a link to a non-existent file
03:18
03:18 lizmat left 03:25 kurahaupo_ left
isomorphismes how long is the "for now" in the {} rakudo binding issue? 03:29
Geth doc: 1ce5d971b1 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/5to6-nutshell.pod6
Update 5to6-nutshell.pod6

Fix link with extra trailing space `.../Blue_Tiger/ `
synopsebot Link: doc.perl6.org/language/5to6-nutshell
03:30 leont left 03:31 mowcat left 03:33 guifa joined 03:41 _isomorphismes joined 03:46 jme` left 03:50 ufobat_ joined
guifa If you have a typed array, you can figure out the type of its values using .of, and you can get its class + value type using .WHAT (or .^name as a Str). Is there any built in to isolate the base class sans the value type? 03:53
03:54 ufobat left, zacts joined
AlexDani` m: my Str @a; say @a.of; say @a.^name; say @a.^mro 04:08
camelia (Str)
Array[Str]
((Array[Str]) (Array) (List) (Cool) (Any) (Mu))
04:08 AlexDani` is now known as AlexDaniel
AlexDaniel guifa: hm, by any chance are you trying to do something like `$foo ~~ Array` ? 04:09
guifa AlexDaniel: I have a (probably overly ambitious) idea to try to create a coercing assignment operator 04:10
so that @str-typed-array =~~ <a b c> will not fail 04:12
(where =~~ is going to be my operator)
MasterDuke m: my Str @a; say @a.HOW.mixin_base(@a) 04:13
camelia (Array)
04:13 aborazmeh joined, aborazmeh left, aborazmeh joined
AlexDaniel m: my Str @a; say @a.^mixin_base 04:14
camelia (Array)
04:14 Kaiepi left
guifa MasterDuke: thanks! 04:14
AlexDaniel m: my Str @a; say @a.^mixin_base.^name
camelia Array
AlexDaniel guifa: what's the result of `@str-typed-array =~~ <a b c>` ? 04:15
MasterDuke isomorphismes: i think that {} rakudo binding issue has been around for a while'
AlexDaniel intended result I mean
guifa Intended result is to basically place Array[Str].new(<a b c>) (obviously, I'm overly simplifying it) into @str-typed-array 04:17
Because if you use = it fails because the types don't match, even though <a b c> can easily be coerced into Array[Str]
04:17 Kaiepi joined
AlexDaniel but… 04:19
m: my Str @a; @a = <42 b 50>; say @a
camelia [42 b 50]
guifa m: my Array[Str] $a = <a b c > 04:20
camelia Type check failed in assignment to $a; expected Array[Str] but got List ($("a", "b", "c"))
in block <unit> at <tmp> line 1
AlexDaniel I see 04:22
guifa I get why the type check fails, but I think it might be useful to have an operator that does its best to do coercions
(at least where they can be reasonably done, e.g., if the right term has a coercion method for the left, or for certain built in types that are predictable) 04:23
AlexDaniel I don't understand this:
m: my Array[Str] $a; my @b := $a; @b = <a b c>
camelia Invocant of method 'STORE' must be an object instance of type 'Array', not a type object of type 'Array[Str]'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
AlexDaniel ahh, actually 04:24
m: my Array[Str] $a = Array[Str].new; @$a = <a b c>; say $a
camelia [a b c]
04:24 Possum left
AlexDaniel guifa: what about something like this? ↑ 04:25
SmokeMachine m: say Set.^mro
camelia ((Set) (Any) (Mu))
SmokeMachine m: say Set.HOW.^mro
camelia No such method 'gist' for invocant of type 'Perl6::Metamodel::ClassHOW+{<anon>}'. Did you mean 'isa'?
in block <unit> at <tmp> line 1
04:26 Possum joined 04:27 Sgeo_ joined
guifa AlexDaniel: hmm... interesting 04:28
Although that wouldn't do much for something like this I don't think: 04:29
m: my Str @a; @a = (1,2);
camelia Type check failed in assignment to @a; expected Str but got Int (1)
in block <unit> at <tmp> line 1
guifa But of course
m: my Int $a = 1; $a.Str 04:30
camelia ( no output )
04:30 molaf left, Sgeo left
guifa m: my Int $a = 1; say $a.Str 04:30
camelia 1
guifa So the idea would be that using =~~ would allow you to do @str-typed = (1,2,3,4) because all of the elements can be coerced. 04:31
AlexDaniel m: my Str @a; @a = ~« (1,2,3,4); say @ 04:34
camelia []
AlexDaniel m: my Str @a; @a = ~« (1,2,3,4); say @a 04:35
camelia [1 2 3 4]
AlexDaniel I wish `my Str() @a` worked
04:37 dant left
guifa Yeah. What I'm thinking is beyond that though. If the classes were custom, or for fully (k/v) typed hashes. I figured a single catch all similar-ish to the smart match could be a nice tool, especially if it covers 80-90% of the typed gotchas 04:38
Not sure how good I can get it to work, but hey, experimenting around is half the fun 04:39
AlexDaniel I guess people don't use typed arrays often enough 04:40
there are many small but painful things that need to be fixed, I think
guifa I definitely overused them in my first biggish project (consequence of having done way too much Java in the past few years no doubt) and I came across it a lot 04:41
04:43 Kaiepi left 04:44 Kaiepi joined 04:45 silug left
SmokeMachine m: my Str() @a; @a = 1,2,3; day @a 04:48
camelia 5===SORRY!5===
Coercion Str(Any) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3my Str() @a7⏏5; @a = 1,2,3; day @a
Undeclared routine:
day used at line 1. Did you mean 'say'?

SmokeMachine m: my Str() @a; @a = 1,2,3; say @a
camelia 5===SORRY!5=== Error while compiling <tmp>
Coercion Str(Any) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3my Str() @a7⏏5; @a = 1,2,3; say @a
expecting any of:
constraint
SmokeMachine m: my Str() $a; $a = 1; say $a 04:49
camelia 5===SORRY!5=== Error while compiling <tmp>
Coercion Str(Any) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3my Str() $a7⏏5; $a = 1; say $a
expecting any of:
constraint
SmokeMachine m: my Str() @a = 1,2,3; say @a
camelia 5===SORRY!5=== Error while compiling <tmp>
Coercion Str(Any) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3my Str() @a7⏏5 = 1,2,3; say @a
expecting any of:
constraint
SmokeMachine m: my Str() $a = 1; say $a 04:50
camelia 5===SORRY!5=== Error while compiling <tmp>
Coercion Str(Any) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3my Str() $a7⏏5 = 1; say $a
expecting any of:
constraint
SmokeMachine m: my Str(Int) $a = 1; say $a
camelia 5===SORRY!5=== Error while compiling <tmp>
Coercion Str(Int) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3my Str(Int) $a7⏏5 = 1; say $a
expecting any of:
constraint
SmokeMachine m: my Str() $a = 1.Str; say $a 04:51
camelia 5===SORRY!5=== Error while compiling <tmp>
Coercion Str(Any) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3my Str() $a7⏏5 = 1.Str; say $a
expecting any of:
constraint
04:51 kurahaupo joined
SmokeMachine bisect: old=2018.11 my Str() $a = 1; say $a 04:51
bisectable6 SmokeMachine, On both starting points (old=2018.11 new=4fd8e87) the exit code is 1 and the output is identical as well
SmokeMachine, gist.github.com/5e24412763b5253ff6...f78c50c79a
SmokeMachine bisect: old=2018.01 my Str() $a = 1; say $a 04:52
bisectable6 SmokeMachine, On both starting points (old=2018.01 new=4fd8e87) the exit code is 1 and the output is identical as well
SmokeMachine, gist.github.com/b3d90ddbe141a2a614...5fe68d8d0c
SmokeMachine m: sub a(Str() $a) { say $a }; a 42 04:59
camelia 42
SmokeMachine I think I’m too tired to play... :( of course that doesn’t work... and the error was trying to tell me that... 05:00
AlexDaniel yeah
guifa doesn't work for assignment, but did give me an idea for handling things in my operator :-) 05:01
05:03 huyna left 05:06 zacts left, shiftyp joined 05:08 shiftyp left
guifa In fact, if you only wanted to handle scalar assignments, would be as simple as 05:09
sub infix:<=~~>(::T $a is rw, T() $b) { $a = $b }
05:13 kurahaupo left 05:14 meuirkat joined
meuirkat anything for MSSQL server (DBIish?)... jsut getting back into perl! 05:14
Geth doc: 2b599545dd | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/system.pod6
Update system.pod6

Fix bad link (missing |) and change from entry target to target.
05:23
synopsebot Link: doc.perl6.org/language/system
05:25 silug joined, jme` joined
holyghost I've managed to make a virtual loopback system for WAV files, 16 and 32 bit. I have the base widgets for my perl6 DAW working with event loop. 05:26
05:26 holyghost left 05:34 guifa left
Geth doc: c8748d981a | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/traits.pod6
Update traits.pod6

fixed bad link
05:37
synopsebot Link: doc.perl6.org/language/traits
05:41 aborazmeh left
Geth doc: fdef767720 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/contexts.pod6
Update contexts.pod6

bad link fix
05:53
synopsebot Link: doc.perl6.org/language/contexts
doc: a045b7da74 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/traits.pod6
Update traits.pod6

bad link fix
05:55
synopsebot Link: doc.perl6.org/language/traits
06:08 silug left
Geth doc: f668750c32 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/faq.pod6
Update faq.pod6

Attempt to fix bad link. `L<language|/language.html>` is good pod, but creates an error with htmlify.p6. Removing the extension, which is added by the site automatically, should produce a good link
06:09
synopsebot Link: doc.perl6.org/language/faq
06:12 vrurg left 06:14 jmerelo joined
jmerelo releasable6: status 06:14
releasable6 jmerelo, Next release will happen when it's ready. 11 blockers. 158 out of 251 commits logged 06:15
jmerelo, Details: gist.github.com/fa67cbce6ad9bbd66b...cdb4e4cdf1
jmerelo Oh, one blocker more...
Geth doc: 28f4d6c677 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/containers.pod6
Update containers.pod6

fix bad link
synopsebot Link: doc.perl6.org/language/containers
AlexDaniel squashable6: next 06:23
squashable6 AlexDaniel, Next SQUASHathon in 7 days and ≈3 hours (2019-02-02 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel jmerelo: what about this? ↑ :)
are you ready?
Geth doc: f0b22bc62b | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/list.pod6
Update list.pod6

bad link fix
06:24
synopsebot Link: doc.perl6.org/language/list
AlexDaniel I can run blin for you, whenever you tell me to
jmerelo AlexDaniel: yep, I need to do that
squashable6: status
squashable6 jmerelo, Next SQUASHathon in 7 days and ≈3 hours (2019-02-02 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
jmerelo AlexDaniel: I'll try to set some time aside tomorrow or Wednesday at the latest 06:25
It's been a busy end of the term
Geth doc: 2b1185208d | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Type/Associative.pod6
Update Associative.pod6

bad link fix.
06:26
synopsebot Link: doc.perl6.org/type/Associative
06:26 meuirkat left
Geth doc: 4d79601374 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/traps.pod6
Update traps.pod6

bad link fix
06:31
synopsebot Link: doc.perl6.org/language/traps
06:33 sno left 06:38 cpan-p6_ joined
cpan-p6_ 03cpan-p6_ reporting for duty! [Perl 6] 02git.tyil.nl/perl6/app-cpan-uploadnotifierbot 06:38
06:40 cpan-p6 left
Xliff I'm getting this error: ===SORRY!=== Cannot call method 'typed_panic' on a null object (definite LTA!) 06:47
Part of a larger object that is not golfable at this time.
06:49 ToddAndMargo joined
Geth doc: a0c7d61a74 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/modules.pod6
Update modules.pod6

Remove the Link to upload to Pause because it generates an error in testing because there are no authentication parameters. Someone who gets as far as registering on Pause will find the link to upload.
06:49
synopsebot Link: doc.perl6.org/language/modules
ToddAndMargo Hi All. How do I get rid of the extra space? p6 'my $x="abc1abc2abc"; $x ~~ s| (.*) abc | $0 |; print "<$x>\n";' < abc1abc2 >
I just want to delete that final "abc"
never mind. p6 'my $x="abc1abc2abc"; $x ~~ s| (.*) abc |$0|; print "<$x>\n";' <abc1abc2> 06:51
jmerelo m: my $x="abc1abc2abc"; $x ~~ s| (.*) abc | $0 |; print "<$x>\n";
camelia < abc1abc2 >
06:51 domidumont joined
jmerelo m: my $x="abc1abc2abc"; $x ~~ s| (.*) abc | $0 |; print $x.trim; 06:51
camelia abc1abc2
jmerelo ToddAndMargo: ^^^^
ToddAndMargo I forgot that the sub part is litteral and can't use spaces 06:52
Geth doc: b1342b96db | (JJ Merelo)++ | doc/Language/syntax.pod6
Fixes identifiers, closes #2568
synopsebot Link: doc.perl6.org/language/syntax
06:52 Tormod joined
jmerelo m: my $x="abc1abc2abc"; $x ~~ s| (.*) abc | $0 |; print $x.perl 06:53
camelia " abc1abc2 "
jmerelo m: my $x="abc1abc2abc"; $x ~~ s| (.*) abc |$0|; print $x.perl
camelia "abc1abc2"
jmerelo ToddAndMargo: ^^^^
Xliff typed_panic issue results from a misnamed package. The right package name is issued in the use statement, but in that file, the "unit package" declaration does NOT use the correct name. 06:56
Still not golfable, but maybe someone can try some tests and see if they can trigger it.
Nope. Still there, but further along, this time. 06:57
06:57 ChoHag left
Xliff m: use v6.vc; say 1 06:58
camelia ===SORRY!===
Cannot call method 'typed_panic' on a null object
Xliff ^^
jmerelo Xliff: wow. 06:59
Xliff jmerelo: Yeah.
06:59 ToddAndMargo left 07:00 rindolf joined 07:04 Tormod left 07:06 Tormod joined 07:13 ravenousmoose joined 07:18 sno joined 07:21 huyna joined 07:24 cpan-p6_ left, cpan-p6 joined
cpan-p6 03cpan-p6 reporting for duty! [Perl 6] 02git.tyil.nl/perl6/app-cpan-uploadnotifierbot 07:24
07:27 domidumont1 joined 07:31 domidumont left 07:33 sauvin joined 07:34 huyna left 07:38 jmerelo left
tyil >:( 07:52
stop dying
or I'm going to rewrite you
07:53 powerbit left 07:54 patrickb joined
Xliff \o/ 07:55
I can run javascript in a simple browser via WebKit in Perl6!!!!
JavaScript and Perl6 can now communicate! :D :D
tyil: I feel your pain. Was just there not 5 minutes ago. 07:56
tyil ;~; 07:57
I need to rewrite it anyway since I have better infra to work with for those updates now
07:59 patrickb left
tyil I should setup grafana and start gathering stats on my infra and services as well tbh 08:10
Xliff UPDATED -- JavaScript!! -- gist.github.com/Xliff/afed9c58e738...6645520c8f 08:14
08:33 saki joined, saki left 08:36 w17t joined 08:37 aborazmeh joined, aborazmeh left, aborazmeh joined
tyil good timing tbh, it seems chrom(e|ium) and firefox are going to break adblocking 08:41
so we need a new browser
08:42 yqt joined 08:47 ravenousmoose_ joined 08:49 ravenousmoose left 08:52 saki joined 08:53 saki left 09:00 lizmat joined 09:01 saki joined, saki left 09:13 reach_satori_ left 09:14 _isomorphismes left 09:21 zakharyas joined 09:22 dakkar joined 09:24 abraxxa left 09:25 abraxxa joined 09:26 someuser joined 09:42 robertle joined 09:43 reach_satori joined 09:47 aborazmeh left 09:48 gregf_ joined
El_Che tyil: firefox? 10:08
10:17 pmurias joined
Altreus Presumably there will be a fork that doesn't 10:21
good thing you said though, because I was about to try switching back to firefox even though it's so slow
Altreus installs brave browser 10:32
pmurias Altreus: doesn't brave replace ads with their own ads or something like that? 10:33
Altreus gonna see 10:34
10:40 pmurias left
tyil pmichaud: yes 10:42
I'm waiting for Xliff's Perl 6 browser :'D 10:43
cpan-p6 New module released to CPAN! FastCGI-NativeCall (0.0.6) by 03JSTOWE
Xliff WTF? Why break ad-blockers? 10:46
Stupid things will block the site contents if left to run rampant!
>:( 10:49
11:03 reach_satori left 11:10 pmurias joined
tyil welcome to google, who's sole purpose is to show more ads 11:11
I'm not sure why anyone expected google to not try and break everything to ensure people look at more ads
Xliff Google was supposed to be the good guy. I'm so disappointed. 11:15
11:15 reach_satori joined
Xliff And now, I can't get to YouTube without a forced ad going down my throat. 11:16
11:18 leont joined
tadzik google, the good guy? Lol 11:21
they're ad company. Their product is you. All the software they create is merely a platform to sell you on 11:22
when your entire business model revolves around showing people ads, it's a reasonable plan to dominate the web browser market, and when no real competition exists just force everyone to bend over
using anything that uses chromium/blink under the hood just adds to the problem: Chrome-alike keeps being the dominant web client, and google keeps being able to decide how to shape the web around it 11:24
(sorry for the vent :P) 11:25
11:29 scimon joined 11:33 MasterDuke left 11:35 pecastro joined 11:44 molaf joined 11:48 markoong joined
moritz that's why I'm a nearly-religious firefox user :) 12:00
12:05 powerbit joined 12:09 sena_kun joined 12:15 kurahaupo joined, pmurias left, pmurias joined
leont has been a mozilla user for so long that he even ran netscape 5 for a while (yes that existed, and it was easily their worst. 12:17
pmurias tadzik: OTOH if there are other serious users and developers of blink then there is a least a threat of someone forking it 12:25
leont Yeah, this is an issue worth forking over, even though it's kind of unsustainable in the long term 12:32
tadzik the other side is that maining a separate browser engine is also unsustainable in the long term 12:35
this is what Opera realized a few years back, and Microsoft recently
12:44 zakharyas left
pmurias I would assume Microsoft has enough resources to maintain a browser 12:45
making their browser behave exactly like Chrome is a better strategy if they want to challenge it 12:46
leont Microsoft forking chrome would be an interesting turn of events 12:49
El_Che leont: netscape 5? you youngster
anyway, never got on the the chrome wagon, FF since Phoenix 12:50
leont I did use 2, 3, and 4 as well, but netscape 5 never even got out of alpha, and hence I've never met anyone else who used it 12:53
El_Che I was backpacking on those days and I had a cd with early Phoenix and Firebird I installed on cybercafés to work around their stupid browsers (skinned IE or something)
So I must have installed FF and predecessors in around 40 countries :)
tyil moritz: imo, Firefox has gone downhill very fast in the past couple years as well anyway 12:54
leont It's the start of the rewrite that would later become mozilla, and even later than that firefox
tyil there are no good browsers nowadays, firefox is only reasonably acceptable because the alternatives are worse
leont Firefox went copying chrome, and I hated it at every turn
El_Che UI?
tadzik copying chrome in what way?>
leont Mainly UI
tyil leont: and making garbage plugins like pocket and looking glass 12:55
which came installed and enabled by default for some reason
breaking all customization by breaking XUL
El_Che lookily you can disable pocket, but it shoudn't be on by default
luckily
tyil I just compile Firefox without pocket
moritz I'm pretty OK with firefox since Quantum
tyil its the only way to be sure Mozilla won't fuck you over
El_Che pocket.enabled to false in about:config does the trick 12:56
tyil untill they "accidentally" switch it on again
El_Che They haven't so far
tyil I'm not taking any chances, I'll just remove it altogether
El_Che and if it's enabled you'll see it right away
(before I had a decent volume allowence on mobile I use to use pocket before FF integrated it) 12:57
tyil I've lost confidence in Mozilla's good will these days, so I just prefer to compile it without all that garbage they throw in 12:58
12:59 domidumont joined 13:02 domidumont1 left 13:10 pmurias left 13:11 pmurias joined
tbrowder hi, #perl6 13:20
.tell lizmat i have a p6 pic that might be suitable for next p6 weekly 13:21
yoleaux tbrowder: I'll pass your message to lizmat.
lizmat .
yoleaux 13:21Z <tbrowder> lizmat: i have a p6 pic that might be suitable for next p6 weekly
lizmat do tell
13:22 jc_atikon joined, jc_atikon left
tbrowder it's a pic of my new personal florida car tag with "PERL 6" on it 13:22
13:22 jcarty joined
tbrowder small jpg, 44kb 13:24
lizmat could you gist it somewhere or mail it to me 13:25
tbrowder email addr?
13:28 lucasb joined
jcarty Can someone tell me where I can find out what the significants of a *% is in the arguments for this method. github.com/perl6-community-modules...WW.pm6#L14 13:29
I was trying to give it a hash with some headers but it did not seem to like that.
sena_kun you have to pass named arguments there. 13:31
13:31 someuser left
sena_kun or if you have a Hash, then you need to make it a Capture. Like... 13:31
leont That's slurpy named arguments
sena_kun m: sub a($a, *%rest) { say %rest; }; a(1, a => 1, b => 2); my %args = a => 1, b => 2; a(1, |%args); 13:32
camelia {a => 1, b => 2}
{a => 1, b => 2}
tbrowder lizmat: what'cha think? 13:33
lizmat it's a bit small ? 13:35
13:35 ravenousmoose[aw joined
lizmat I guess I'll wait for the picture with the truck :-) 13:35
13:36 ravenousmoose[aw left
tbrowder i can make it bigger, full size is about 1.3 Mb 13:36
jcarty Ah thank you Sena. I've never really seen * or a | appearing in the parameters and I wasn't sure where to find out what they meant. 13:37
sena_kun jcarty, docs.perl6.org/language/functions#...onventions <- also see this. 13:38
tbrowder lizmat: of course it's b&w because it's a pic of the proof, not the real plate which will be more colorful--i'll wait for that and resend.
lizmat tbrowder: yeah, think that'll be better
tobs jcarty: fwiw you can also type "*%" into the search bar on the docs site and it'll show you the relevant result. It can handle non-alphabetic characters better than your average websearch. 13:39
lizmat tbrowder: you'll be competing with twitter.com/zoffix/status/1022612337088450560 13:40
jcarty You're right, not sure how I missed. I must have only looked at the first few results which were about infix 13:41
tbrowder well mine says "PERL 6" (but I still love p5 folks if they are nice)
13:50 natrys joined 13:53 andrzejku joined
El_Che If I would get plate related with Perl names it would be "ITS COMPLICATED" 13:53
13:54 w17t left 14:08 mowcat joined 14:18 zakharyas joined 14:20 gregf_ left 14:28 pmurias left 14:29 pmurias joined 14:41 molaf left 14:46 cpup left 14:47 Tormod left 14:57 pmurias left 14:58 pmurias joined 15:05 jcarty left 15:06 ravenousmoose[aw joined 15:07 ravenousmoose[aw left
leont Despite being fairly small, it seems moving prove6 to a module and keeping a tiny two line script significantly improves startup performance (because precompilation) 15:12
timotimo yeah, it's usually worth a lot to do that 15:14
Juerd :|
timotimo it'd be cool if we could make -MBlah -e'' completely skip loading parser and grammar for this purpose
Juerd timotimo: Maybe even a command line flag that just calls a method on Blah 15:15
IIRC -r is available. It could be "run"
jnthn Hm, if Blah exports a MAIN then I think that will be run automatically?
timotimo yeah, it should
Juerd jnthn: Good point :) 15:16
Still the empty -e is kind of ugly
leont It's 70 lines of code and 100 lines of pod, that shouldn't take more than a milisecond per line to process
timotimo we could have an extremely slimmed-down version of the grammar that fails over to the full grammar when it fails or the input has a sufficient length
leont: can you --stagestats ?
Juerd leont: Parsing's slow :(
timotimo when it sees a "use" statement, it'll go to the module loader immediately and only resume parsing when that's done 15:17
15:17 reach_satori left
timotimo with a gigantic bit of cheating we could speculatively continue parsing on the assumption that the use statement doesn't have an effect "yet" 15:18
15:18 pmurias left
leont It takes 0.45 seconds as a script, and 0.19 seconds when mostly a module 15:19
(That is stage parse times)
timotimo a --profile-compile could be interesting; what rakudo version do you have? 15:20
leont 2018.12 15:21
timotimo OK, cool. if you give me the result of --profile-compile --profile-filename=profile.sql i can have a closer look if anything stands out
15:21 pmurias joined
leont Before? After? Both? 15:21
pmurias timotimo: what would the slimmed down grammar do? 15:22
timotimo pmurias: 1) consume only a tiny bit of memory, 2) be very quick to run, 3) be enough for very simple scripts
both would be fine :)
15:24 ravenousmoose[aw joined, ravenousmoose[aw left 15:25 sno left
pmurias timotimo: so the mini grammar would be used for wrappers that call only call to a module or for simple scripts? 15:25
timotimo for example
though it may be a waste either way
pmurias isn't that just an ugly workaround for lack of precompilation for scripts? 15:27
timotimo perhaps
15:28 pmurias left
jnthn Precomp for scripts, even only for installed ones, would be nice 15:31
I don't know of any reason we can't do that, other than somebody spending time to work through the problems blocking it
15:40 yqt left, ravenousmoose joined, ravenousmoose is now known as ravenousmoose[aw 15:41 ravenousmoose[aw left 15:43 domidumont1 joined
Geth doc: 8ceae43acd | cfa++ | doc/Language/routines.pod6
/type/Empty → /type/Slip#index-entry-Empty-Empty
15:45
synopsebot Link: doc.perl6.org/language/routines
15:45 andrzejku_ joined 15:46 domidumont left 15:48 andrzejku left, andrzejku_ is now known as andrzejku 15:55 pmurias_ joined 15:57 jme` left, ravenousmoose[aw joined 15:58 ravenousmoose[aw left 16:00 pmurias_ left 16:08 cpup joined 16:11 molaf joined 16:14 molaf left 16:16 robertle left 16:28 pmurias_ joined 16:35 pmurias joined 16:39 jmerelo joined 16:41 domidumont1 left 16:42 zakharyas left 16:51 reach_satori joined, ravenousmoose[aw joined, ravenousmoose[aw is now known as ravenousmoose, ravenousmoose is now known as ravenousmoose[aw 16:52 ravenousmoose[aw left 16:54 ravenousmoose_ left 16:55 reach_satori left
SmokeMachine m: say Mu.ACCEPTS: Array.HOW 17:02
camelia Cannot resolve caller ACCEPTS(Mu:U: Perl6::Metamodel::ClassHOW+{<anon>}); none of these signatures match:
(Mu:U: \topic, *%_)
(Mu:U: Mu:U \topic, *%_)
in block <unit> at <tmp> line 1
SmokeMachine m: Array.^compose; say Mu.ACCEPTS: Array.HOW 17:03
camelia True
17:04 sca_ left, caa51h_ is now known as caa51h 17:06 pmurias left, pmurias_ left
SmokeMachine .tell guifa the =~~ operator is a great idea! 17:06
yoleaux SmokeMachine: I'll pass your message to guifa.
17:09 ravenousmoose[aw joined, ravenousmoose[aw left 17:12 sca joined 17:17 pmurias joined
jmerelo SmokeMachine: what does it do? 17:17
17:17 pmurias_ joined
SmokeMachine jmerelo: auto coerce... 17:18
17:18 cosimo left
jmerelo SmokeMachine: interesting. 17:18
SmokeMachine jmerelo: colabti.org/irclogger/irclogger_lo...01-25#l271 17:19
jmerelo SmokeMachine: is that already in the code? In the next release? 17:20
releasable6: status 17:21
releasable6 jmerelo, Next release will happen when it's ready. 10 blockers. 158 out of 254 commits logged
jmerelo, Details: gist.github.com/eda3c084aa470cf85d...d00643c2c1
SmokeMachine jmerelo: no!
jmerelo SmokeMachine: ah, just an operator defined somewhere. Interesting anyway.
(I was also afraid I'd have to document it)
SmokeMachine :) 17:22
17:22 dakkar left, scimon left 17:27 molaf joined 17:38 cpan-p6 left 17:40 cpan-p6 joined, WqZtM52a is now known as daemon
cpan-p6 03cpan-p6 reporting for duty! [Perl 6] 02git.tyil.nl/perl6/app-cpan-uploadnotifierbot 17:40
17:40 pmurias left, pmurias_ left 17:41 ravenousmoose joined, ravenousmoose is now known as ravenousmoose[aw 17:42 ravenousmoose[aw left 17:45 robertle joined 17:47 reach_satori joined
daxim m: grammar {rule TOP { x <Y> z }; rule Y { y };}.parse('x y z').perl.say 17:55
camelia Match.new(orig => "x y z", made => Any, list => (), pos => 5, from => 0, hash => Map.new((:Y(Match.new(hash => Map.new(()), pos => 4, from => 2, list => (), made => Any, orig => "x y z")))))
daxim how do I keep the tokens as part of the tree, like in other parsers?
jmerelo daxim: you do have the Y token in the hash key 17:56
daxim in regexp-grammars, I can assign to $MATCH, but assigning to $<something> apparently makes no difference
jmerelo, Y is a rule 17:57
the tokens are x, y and z
jmerelo It could be a token
m: grammar {rule TOP { x <Y> z }; token Y { y };}.parse('x y z').perl.say
camelia Match.new(list => (), from => 0, orig => "x y z", pos => 5, made => Any, hash => Map.new((:Y(Match.new(list => (), from => 2, orig => "x y z", pos => 3, made => Any, hash => Map.new(()))))))
daxim ok 17:58
17:58 ravenousmoose[aw joined
daxim I want to keep the terminals. 17:58
jmerelo daxim: you can do the same with the others. If you want them tokenized, you'll have to create a token for them.
daxim is there no other way?
jmerelo m: grammar {rule TOP { <TERM> <Y> <TERM> }; token TERM { \w+ }; token Y { y };}.parse('x y z').perl.say 17:59
camelia Match.new(hash => Map.new((:TERM([Match.new(pos => 1, made => Any, from => 0, hash => Map.new(()), list => (), orig => "x y z"), Match.new(made => Any, from => 4, hash => Map.new(()), list => (), orig => "x y z", pos => 5)]),:Y(Match.new(made => Any, …
jmerelo Hey, that worked.
17:59 ravenousmoose[aw left
jmerelo daxim: afraid not. They're explicitly called tokens for a reason... if you want to tokenize, you have to create a token for them... 17:59
daxim I'm thoroughly disappointed 18:00
btw there is no separate 'y' in the result of your code, either
18:00 reach_satori_ joined
timotimo daxim: getting the "x y z" for TOP and "y" for Y is not good enough? 18:01
18:01 pmurias joined 18:02 pmurias_ joined
timotimo and there is a separate y, it just doesn't get output as "y", it gets output as "orig was x y z, the result was from 2 to 3" 18:02
m: grammar {rule TOP { <TERM> <Y> <TERM> }; token TERM { \w+ }; token Y { y };}.parse('x y z').say
camelia 「x y z」
TERM => 「x」
Y => 「y」
TERM => 「z」
jmerelo daxim: ^^^ right.
timotimo the gist output is a lot more readable
which is why .gist is what's "for humans" and .perl is what's "for compilers" 18:03
18:03 reach_satori left
timotimo daxim: does that solve your troubles or do you need something more? 18:05
also, you can still totally just have positional captures with ( ), that way you have no need to introduce new tokens/regex/rule things in your grammar 18:06
if you'd prefer a name over having numbers, go with $<bloop>=[x y z] instead
18:09 Kaiepi left 18:13 Kaiepi joined
daxim m: grammar {rule TOP { $<bloop>=(x) $<bloop>=(<Y>) $<bloop>=(z) }; rule Y { $<bloop>=(y) };}.parse('x y z').perl.say 18:13
camelia Match.new(from => 0, list => (), orig => "x y z", hash => Map.new((:bloop([Match.new(hash => Map.new(()), pos => 1, made => Any, from => 0, orig => "x y z", list => ()), Match.new(hash => Map.new((:Y(Match.new(hash => Map.new((:bloop(Match.new(pos => …
timotimo using $<bloop>=(abc) will give you the name as well as the number 18:14
daxim can you show me a working example?
timotimo m: grammar {rule TOP { $<bloop>=(x) $<bloop>=(<Y>) $<bloop>=(z) }; rule Y { $<bloop>=(y) };}.parse('x y z').say
camelia 「x y z」
bloop => 「x」
bloop => 「y 」
Y => 「y 」
bloop => 「y」
bloop => 「z」
timotimo oh? was i wrong about the round parenthsis? 18:15
perhaps i was :)
anyway, that's just your code again, but with .say instead of .perl.say
i need to be AFK for a bit, but i think you're on the right track here, just make sure not to look at the .perl output :) 18:17
Data::Dump::Tree has a special role you can mix in to dump match objects especially
that could maybe make things clearer
o/
daxim nothing is clear
how can I override the parse method? I want to customise the return value with a callback or something 18:18
lizmat m: role A { method Str() { say "foo"; callsame } }; my $a = 42 but A; say $a.Str 18:19
camelia foo
42
lizmat daxim: ^^ 18:20
docs.perl6.org/language/functions#...ispatching 18:21
daxim yes but that fires only once the whole tree has already been assembled with Match-es, right?
lizmat is this for debugging ? 18:22
daxim this is for keeping nonterminals 18:23
terminals
lizmat which return value do you want to customize? 18:24
daxim the whole return value, recursively. e.g. just ["TOP","x",["Y","y"],"z"] instead of nested Match objects 18:25
lizmat well, that's a bit hard in cases where you have positional and named matches at the same level 18:26
as the Match object is the only type of object that can keep both an Array as well as a Hash
18:28 Kaiepi left 18:29 zachk joined, Kaiepi joined
lizmat afk for a bit& 18:29
18:30 manjaroCinnamon joined, zachk left, zachk joined
isomorphismes Is mojolicious, dancer, or another framework more adopted in perl6? 18:30
or does it not matter?
18:30 manjaroCinnamon left
daxim dancer port: modules.perl6.org/dist/Bailador:cpan:UFOBAT another web framework: cro.services/ 18:34
18:35 zachk left, zachk joined
jmerelo Hi, isomorphismes 18:36
isomorphismes: it's not that it does not matter. It's simply a different language. You can't simply "adopt" it. You can either use some modules in lizmat's butterfly project to convert your code, or rewrite it
isomorphismes: that's been the approach of Bailador, which is a translation of Dancer concepts to Perl 6 18:37
zachk isomorphismes, I'd say check out cro, it can do more then just web services, I wrote a chat server in it using under 50 lines of code 18:39
isomorphismes jmerelo: gotcha. thanks 18:43
zachk: thank you
jmerelo isomorphismes: sure :-) Any time.
isomorphismes zachk: did you post your chat server on github? 18:45
daxim: thank you
zachk isomorphismes, yes with incomplete global variable interpolation for chat extension 18:46
it's my first big perl6 program
hold on...
github.com/ArchaicArchon/tchat/blo...r/tchat.p6 18:47
jmerelo zachk: congrats :-)
zachk you could just sort of ignore the interpolate sub/function and take it out of the code and tidy it up a bit
thank you
I have written quite a few simple chat servers, this is the smallest so far 18:48
isomorphismes is there a command-line (non-browser) way to search the v6 version of CPAN? I'm trying to compare Cro::TCP to whatever base TCP rakudo has. Not sure of the workflow. cheers 18:51
zachk you probably want to zef install cro like it says on cro's website 18:52
oh compare, nvm
isomorphismes zachk: yeah I mean without searching github repos through google, can I do in two panes zef search TCP | zef info - ~versus~ zef info Cro::TCP 18:53
zachk isomorphismes, you know more zef than me!
cro uses supplies and messages , you dont have to handle raw sockets or do much error handling afaik 18:54
19:09 Kaiepi left, Kaiepi joined 19:11 someuser joined
isomorphismes tks 19:13
19:15 Kaiepi left
jmerelo isomorphismes: there are actually two versions of CPAN v6, one is called "ecosystem" (it's simply a file in a repo) and the other is the Perl 6 directory in CPAN. As you have pointed out, you can search both with zef 19:16
also modules.perl6.org
That only searches module names, not "provides" names modules.perl6.org/search/?q=TCP 19:17
Also, they return different things. Well... modules.perl6.org looks up descriptions and names, while zef searches "provides", but apparently not descriptions. 19:19
isomorphismes jmerelo: thanks. yeah, I am not having good luck with zef search 19:20
I like the name though
jmerelo isomorphismes: I'm looking up the source, anyways. Sometimes it's got goodies that are not immediately available to non-initiated
19:20 pmurias left, pmurias_ left 19:21 Cabanossi left
isomorphismes jmerelo: sounds like simplest thing to do to stay in terminal is have a clone of github.com/perl6/ecosystem and search in there for things. I'm fine with that 19:22
19:22 Kaiepi joined
isomorphismes techniaclly calling otu to the net is just more work anyway (and not accessible in the mountains) 19:22
19:22 sauvin left 19:26 pmurias joined 19:28 Kaiepi left
jmerelo isomorphismes: two things 19:28
19:29 Kaiepi joined
jmerelo isomorphismes: first, if you see when zef operates it downloads a couple of files. They're probably stored somewhere, but you can just download them from the repo. 19:29
isomorphismes: second, I'm checking out the source and it might have something like that.
I mean, to search for other fields.
19:31 pmurias_ joined 19:32 Cabanossi joined
isomorphismes yeah I had that thougth as well 19:33
it's also a little shocking to not have man rakudo etc. 19:34
man zef
19:35 lizmat left 19:36 Tormod joined
jmerelo isomorphismes: checking out sources. Looks like internally it's prepared to look source up based on other fields, but it's not in the CLI 19:36
cpan-p6 New module released to CPAN! AttrX-Mooish (v0.6.0) by 03VRURG 19:37
jmerelo isomorphismes: so, modules.perl6.org or files
sena_kun jmerelo, what are you trying to find?
a complete ecosystem metadata dump file(s)? 19:38
jmerelo sena_kun: look up info fields and other fields of distros 19:42
isomorphismes: this does something, at least: curl raw.githubusercontent.com/ugexe/Pe...cpan1.json | jq ".[] | .description " | grep TCP
But you need to repeat it for the two sources, and then for every field. 19:43
sena_kun I keep thinking an alternate installation tool would really help Perl 6
isomorphismes anybody in here knows Gabor Szabo's email / way to ge tinvitation to perl6-bailador.slack.com ?
jmerelo .seen szabgab 19:44
yoleaux I saw szabgab 30 Jan 2018 15:26Z in #perl6: <szabgab> It is linked under "smoke testing" on perl6.org/community/ so if that site is not in use then maybe it should not be linked either.
isomorphismes thanks jmerelo
jmerelo isomorphismes: it's as above at gmail, probably.
sena_kun jmerelo, who knows, maybe a zef plugin will do the job.
jmerelo But he's not very active in Bailador lately... I think ufobat is now carrying on the work
19:45 ferreira left
jmerelo isomorphismes: and, come to think of it, I'm in that slack and it's been inactive for some time now... 19:45
isomorphismes sena_kun: general idea being, from the cli it would be nice to be able to curl an api that gives one the information that's useful to compare multiple options.
jmerelo sena_kun: if only that was documented too...
isomorphismes: right. That would be nice. 19:46
isomorphismes npm sort of has this but you can't tell how many users, the version #, number of "stars" (stupid design anyway), or which of the packages claiming to implement [topic] actually work. no filtering..
jmerelo: sena_kun: I'd be up for working on this another day, right now I want to add aliases for =begin boring and =begin extra to pod v6
I think aliasing them to footnote and comment are a fine start 19:47
sena_kun sounds like an idea for a service and a small client tool.
isomorphismes sena_kun: definitely
19:47 Cabanossi left
isomorphismes but the larger problem of cheap, clear communication I want to address in a different way which Iw ill share in this chat later 19:48
jmerelo goes AFK for dinner
19:48 jmerelo left
tobs I have a character in a variable $X. How do I match anything but $X with a regex? I can't seem to find a way to interpolate into a negated character class. 19:53
19:54 skids joined
sena_kun m: my $a = 'a'; say 'a' ~~ /<[$a]>/; say 'a' ~~ /<-[$a]>/; 19:55
camelia 「a」
Nil
pmurias random idea: would having a dancer style sugar layer on top of Cro make sense?
moritz it would, especially if it stills allows some asynchronicity
sena_kun pmurias, can you show an example of dancer style sugar, please?
tobs m: my $X = 'a'; say '$' ~~ /<[$X]>/; say 'a' ~~ /<-[$X]>/; 19:56
camelia 「$」
「a」
tobs sena_kun: it doesn't insert the contents of $X but Q[$X] into the character class 19:57
pmurias sena_kun: I mean offering an interface like Dancer does, I would have to play around with it a bit to see how it looks like
sena_kun pmurias, based on `get '/profile/:id' => sub` style stuff I see at perldancer.org, cro already has it, even cooler version of it. Of course, I may be missing something as I literaly just looked up some examples. :) 19:58
daxim I have typed up my problem on SO: stackoverflow.com/questions/543719...-terminals
sena_kun pmurias, did you see examples of Cro::HTTP::Router usage?
tobs, oh, I am dumb, sorry. 19:59
20:00 Cabanossi joined
tobs ... and that's how fuzzy testing was born :) 20:00
pmurias sena_kun: yes, the interface seems very similiar 20:07
sena_kun :)
20:08 kurahaupo_ joined
sena_kun and I somehow suspect Cro has some things made nicer, or, at least, that'd be odd to jnthn to make a possibly similar interface but worse. And, as I said before, Cro is not a web framework, though parts for web framework were written using it. :) 20:10
20:11 kurahaupo left
moritz daxim: I've written an answer; please let me know if that goes into the right direction 20:12
daxim ⌛ processing ⌛ 20:13
20:20 andrzejku_ joined 20:21 AlexDani` joined 20:23 AlexDaniel left, andrzejku left, andrzejku_ is now known as andrzejku 20:29 lizmat joined 20:31 andrzejku left
daxim looks good. that's munging the tree after it's been built up fully, any possibility to transform the caps at the time they are created? 20:43
20:45 kurahaupo_ left 20:46 kurahaupo joined 20:50 kurahaupo left 20:52 AlexDani` left 20:53 AlexDani` joined
timotimo you might be able to override some of the allcaps methods 20:54
20:54 ferreira joined
timotimo m: grammar Test { rule TOP { x <Y> z }; rule Y { y }; method CAPS(|c) { say "caps called with {c.perl}" }}; Test.parse("x y z") 20:54
camelia ( no output )
timotimo m: grammar Test { rule TOP { x <Y> z }; rule Y { y }; method MATCH(|c) { say "MATCH called with {c.perl}" }}; Test.parse("x y z")
camelia MATCH called with \()
P6opaque: no such attribute '$!pos' on type Match in a Bool when trying to get a value
in block <unit> at <tmp> line 1

MATCH called with \()
timotimo m: grammar Test { rule TOP { x <Y> z }; rule Y { y }; method MATCH(|c) { say "MATCH called with {c.perl}"; self }}; Test.parse("x y z") 20:55
camelia MATCH called with \()
MATCH called with \()
timotimo hum.
m: grammar Test { rule TOP { x <Y> z }; rule Y { y }; method MATCH(|c) { say "MATCH called with {c.perl} on {self.perl}"; self }}; Test.parse("x y z")
camelia MATCH called with \() on Match.new(made => Any, pos => 5, from => 0, hash => Map.new(()), list => (), orig => "x y z")
MATCH called with \() on Match.new(list => (), orig => "x y z", made => Any, from => 0, pos => 5, hash => Map.new(()))
timotimo m: grammar Test { rule TOP { x <Y> z }; rule Y { y }; method MATCH(|c) { say "MATCH called with {c.perl} on {self.perl}"; self.ast = $++; self }}; Test.parse("x y z")
camelia MATCH called with \() on Match.new(from => 0, made => Any, orig => "x y z", list => (), pos => 5, hash => Map.new(()))
Cannot modify an immutable Str (Nil)
in method MATCH at <tmp> line 1
in block <unit> at <tmp> line 1
timotimo m: grammar Test { rule TOP { x <Y> z }; rule Y { y }; method MATCH(|c) { say "MATCH called with {c.perl} on {self.perl}"; self.make: $++; self }}; Test.parse("x y z") 20:56
camelia MATCH called with \() on Match.new(pos => 5, list => (), made => Any, hash => Map.new(()), from => 0, orig => "x y z")
MATCH called with \() on Match.new(made => 0, hash => Map.new(()), pos => 5, list => (), orig => "x y z", from => 0)
timotimo would need more levels of depth, doesn't seem to run on the TOP method
m: grammar Test { rule TOP { <MYTOP> }; rule MYTOP { x <Y> z }; rule Y { y }; method MATCH(|c) { say "MATCH called with {c.perl} on {self.perl}"; self.make: $++; self }}; Test.parse("x y z")
camelia MATCH called with \() on Match.new(hash => Map.new(()), pos => 5, from => 0, orig => "x y z", made => Any, list => ())
MATCH called with \() on Match.new(hash => Map.new(()), pos => 5, made => 0, list => (), from => 0, orig => "x y z")
timotimo hmm
ah, of course, i'd set the value before i print the object
m: grammar Test { rule TOP { <MYTOP> }; rule MYTOP { x <Y> z }; rule Y { y }; method MATCH(|c) { self.make: $++; say "MATCH called with {c.perl} on {self.perl}"; self }}; Test.parse("x y z") 20:57
camelia MATCH called with \() on Match.new(orig => "x y z", made => 0, hash => Map.new(()), list => (), from => 0, pos => 5)
MATCH called with \() on Match.new(made => 1, hash => Map.new(()), orig => "x y z", pos => 5, from => 0, list => ())
timotimo btw you can totally just override the match method inside the grammar, since grammars are just slightly funky classes 20:59
daxim I didn't even know about method MATCH until now
where the heck is it documented? 21:00
21:00 Cabanossi left 21:02 kurahaupo joined
timotimo it isn't 21:03
it's not user-facing API .. so probably not what you want in the end 21:04
daxim WELL IT'S PUBLIC NOW
timotimo welp, the gig is up!
i think moritz' transform sub isn't bad. you can put it into the grammar's parse method and that'll make YourGrammar.parse return the datastructure you want immediately 21:06
may also want to override method "subparse", if you want to offer the functionality to your users 21:07
daxim hm hm
timotimo m: grammar Trickery { method parse($input, :$rule) { $input.comb } }; Trickery.parse("hello how are you").perl.say
camelia ("h", "e", "l", "l", "o", " ", "h", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u").Seq
isomorphismes another good cli tool would be something like bro or tldr. Pulling from examples.perl.com. 21:09
AlexDani` oh yeah, I did try tldr recently 21:13
21:13 AlexDani` is now known as AlexDaniel
AlexDaniel and wondered if perl6 should be added there somehow 21:13
it does have something for perl5, so why not perl6 :)
21:15 kurahaupo left 21:16 cosimo joined
SmokeMachine m: given Mu.^find_method(“ACCEPTS”) { say .file; say .line } 21:18
camelia SETTING::src/core/Mu.pm6
15
21:21 kurahaupo joined
perlbot Randy pasted a new file at perlbot.pl/p/ljxspo - 21:22
21:25 sno joined
timotimo lols 21:25
sena_kun I am glad perl interpreter stopped at line 5 and rejected the program as invalid. :) 21:27
sena_kun .oO ( in many senses )
21:37 kurahaupo_ joined 21:40 kurahaupo left 21:41 Cabanossi joined
lucs Grammar question : gist.github.com/lucs/0f64cd5448ccf...85bea34f7e 21:46
21:57 kurahaupo_ left, kurahaupo joined 21:58 lucasb left 22:02 niceperl joined, sivoais joined
lucs Gotta go. Please .tell me if any of you folks have ideas for my grammar question. 22:06
lucs goes to see a Hommage à Gilles Tremblay concert.
22:16 pmurias_ left, pmurias left 22:21 pmurias joined 22:22 pmurias_ joined
moritz .tell lucs I've answered in a gist comment. You might also want to check out www.apress.com/us/book/9781484232279 :D 22:28
yoleaux moritz: I'll pass your message to lucs.
22:31 pmurias left, pmurias_ left 22:32 pmurias joined, pmurias_ joined 22:35 pmurias_ left, pmurias left 22:37 pmurias joined, pmurias_ joined 22:40 pmurias left, pmurias_ left 22:42 pmurias joined, pmurias_ joined 22:46 guifa joined 22:51 rindolf left 22:54 Manifest0 joined 22:56 kurahaupo left 22:57 pmurias left, pmurias joined 22:58 pmurias_ left, pmurias left, pmurias joined 23:02 pmurias_ joined, SyrupThinker left 23:07 pmurias left, pmurias_ left 23:08 pmurias joined 23:13 pmurias_ joined, natrys left 23:14 sena_kun left 23:15 cosimo left 23:19 Tormod left, pmurias left, pmurias_ left 23:20 niceperl left 23:26 aborazmeh joined, aborazmeh left, aborazmeh joined 23:30 kensanata joined 23:37 kurahaupo joined, kurahaupo left, kurahaupo joined