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