»ö« 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.
kybr or.... this is all logged somewhere, right? 00:00
found it. sorry for the noise: colabti.org/irclogger/irclogger_lo...2019-02-01 00:02
00:06 aborazmeh joined, aborazmeh left, aborazmeh joined
Geth doc: treyharris++ created pull request #2609:
Make .Str vs .IO example more explicit
00:06
TreyHarris Elronnd: See ↑ pull request--would that have clarified it for you? 00:07
kybr: Also, if you're using default Weechat settings, you should have it in ~/.weechat/logs/*#perl6* 00:08
Xliff m: my @a = <1 2 3 4 5>; say @a.pick(*) 00:09
camelia (2 1 3 5 4)
00:17 aborazmeh left
TreyHarris Elronnd: If you happen to have a moment to look at the PR and let me know (as a GitHub comment, preferably) if it works for you, I'd appreciate it---I'd usually just push a small change like this without discussion. 00:31
Altreus Should I expect XML (the module) to decode &amp; for me? 00:36
the documentation doesn't mention entities at all 00:37
timotimo cdn.discordapp.com/attachments/538...-53-17.mp4 00:45
00:57 cpan-p6_ left, cpan-p6 joined
MasterDuke timotimo: your next demoscene submission? 00:59
timotimo my pixel graphics skills are going to wow the hell out of the oldbies 01:00
01:04 leont left
MasterDuke timotimo: btw, have you looked at my nqp/rakudo PRs? 01:04
timotimo sorry, i have not 01:07
MasterDuke i feel it's the sort of thing a couple people should look at. who else do you think i should ping? nine, jnthn, pmurias (well, definitely him, since i didn't touch any of the jvm/js code)? 01:09
01:10 molaf left
Geth doc: aa8cd771c0 | cfa++ | doc/Type/IO/Path.pod6
Indentation fix.
01:17
synopsebot Link: doc.perl6.org/type/IO::Path
Elronnd TreyHarris: yeah, that's way better!
TreyHarris Elronnd: Great. I'll merge it then.
Geth doc: 61e4a13b67 | (Trey Harris)++ | doc/Language/io-guide.pod6
Make .Str vs .IO example more explicit

As mentioned on #perl6 today, the original introductory text here could lead one to think the difference was between `my IO $path` and
  `my Str $path`, when it's actually in using `~` for getting the value
rather than `.absolute` or `.relative`.
This version uses `.Str` explicitly so it lines up more obviously with the text.
synopsebot Link: doc.perl6.org/language/io-guide
doc: 894d81ace8 | (Trey Harris)++ (committed using GitHub Web editor) | doc/Language/io-guide.pod6
Merge pull request #2609 from treyharris/io-vs-str-example

Make .Str vs .IO example more explicit
01:24 aborazmeh joined, aborazmeh left, aborazmeh joined 01:46 aborazmeh left 02:09 crella_p joined 02:11 markoong left 02:24 mowcat left
Geth doc: 5108da9efe | cfa++ | doc/Language/math.pod6
Fix: (implicit) /routine/… → /language/operators#infix_...
02:52
synopsebot Link: doc.perl6.org/language/math
02:53 nelsonhb joined 03:02 crella_p left 03:04 crella_p joined 03:07 dustinm` left, unicodable6 left, unicodable6 joined 03:08 dustinm` joined 03:12 sno left 03:19 sno joined 03:21 crella_p left, jme` joined 03:33 nelsonhb left 03:37 volkov joined 03:46 cpan-p6_ joined 03:47 tyil left, cpan-p6 left 03:49 tyil joined 03:58 Actualeyes joined 04:09 ToddAndMargo joined
ToddAndMargo What is the syntax for copying a range of elements from one buffer to another? $ p6 'my Buf $x=Buf.new(0x55, 0x66, 0x77, 0x78); say $x; say $x[1..2]; my Buf $y=$x[ 1..2 ]; say $y;' Buf:0x<55 66 77 78> (102 119) Type check failed in assignment to $y; expected Buf but got List ($(102, 119)) in block <unit> at -e line 1 04:10
MasterDuke m: my Buf $x=Buf.new(0x55, 0x66, 0x77, 0x78); say $x; say $x[1..2]; my Buf $y=$x.subbuf(1, 2); say $y; 04:19
camelia Buf:0x<55 66 77 78>
(102 119)
Buf:0x<66 77>
MasterDuke m: my Buf $x=Buf.new(0x55, 0x66, 0x77, 0x78); say $x; say $x[1..2]; my Buf $y=$x.subbuf(1..2); say $y; 04:20
camelia Buf:0x<55 66 77 78>
(102 119)
Buf:0x<66 77>
04:20 ferreira1 left, namibj joined
MasterDuke ToddAndMargo: ^^^ and the doc for it is here docs.perl6.org/type/Buf#(Blob)_method_subbuf 04:21
ToddAndMargo Perfect. Thank you!
MasterDuke np
ToddAndMargo I am still thinking like Modula 2, arn't I. 04:22
namibj I'm new, as far as any knowledge of significance goes. (I can't blindly write proper fizzbuzz as I don't know the conditionals syntax by heart; FYI just to judge my level of expertise)
ToddAndMargo Jsut out of curiousity, is there a way to dump the `Buf.new` from `my Buf $x=Buf.new(0x55, 0x66, 0x77, 0x78);` ? 04:23
namibj I'm trying to write a client for communication with the rclone.org/rc/ daemon-mode (via HTTP), so that I can use perl6 to organize/schedule/automate archiving 04:26
Can anyone with more experience suggest suitable naming/structuring? 04:27
MasterDuke ToddAndMargo: i don't think you can lose the Buf.new, but you could say `my $x=Buf.new(...)` 04:30
lucs my Buf $x .= new(…) 04:31
my Buf $x .= new: …; # Also, I think 04:32
MasterDuke namibj: this is a slow time for the channel (many of the members are in europe), and i'm heading to sleep myself, might want to check back in a couple hours if nobody else chimes in
namibj The list of commands currently supported by the rclone deamon starts at rclone.org/rc/#supported-commands on the above page. 04:33
MasterDuke: I'll head to bed soon anyway, to try and fall asleep before sunrise... 04:34
MasterDuke: with check back, do you mean restate the problem/question, or just lurk around for a comment/answer (i.e., should I assume those currently sleeping to read the backlog or should I assume they won't read the backlog)? 04:36
ToddAndMargo Thank you
04:41 m0ltar left
ToddAndMargo Another question: in type Buf is 0x00 called a "nil". Or is nil still a unicorn term? 04:41
04:44 m0ltar joined
lucs I guess you could call it a NUL byte (or Null or something), à la ASCII, but don't confuse it with Perlsix's class Nil. 04:46
ToddAndMargo I though so. Thank you for the confirmation. 04:52
On subbuf, I noticed that `$x.subbuf(1..3)` and `$x.subbuf(1,3)` ar the same thing. Is there a cyntax to pick and choose which elements not in a row? 04:54
lucs Since a Blob 'does Positional', you can use the [] operator: 05:00
m: my Buf $x .= new: 0x55, 0x66, 0x77; say $x[0,2]
camelia (85 119)
05:02 w17t joined
lucs (Er, and a Buf 'does Blob') 05:02
05:03 volkov left
ToddAndMargo `say` allow for that. I was asking about copying from one Buf to another. 05:06
05:07 w17t left 05:09 w17t joined
lucs Hmm... Dunno. 05:11
05:12 reach_satori joined
namibj m: my Buf $x .= new: 0x55, 0x66, 0x77; for $x[0,2] -> $y {say $y ;} 05:14
camelia 85
119
ToddAndMargo Thank you 05:15
namibj unless i'm that bad at converting between hex and decimal, this appears to be independent of say as far as the $x[0,2] goes
it appears to create a list.
lucs ToddAndMargo: Oh, this maybe: 05:16
m: my Buf $x .= new: 0x55, 0x66, 0x77; my Buf $y .= new: $x[0,2]; say $y
camelia Buf:0x<55 77>
lucs Okay, going to bed. Have fun folks! 05:18
lucs & # ZZ
namibj for your performance I'd hope though that the intermediate list passed from the [] operator to Buf.new get's elided... 05:21
otherwise you'll have some nice allocation overhead (at least they'd not last long and thus not tax the GC much) 05:22
05:24 aindilis left 05:25 aindilis joined 05:26 lmy9900 joined, nickYang joined 05:28 molaf joined 05:29 nickYang left, lmy9900 left, vrurg left 05:37 kurahaupo joined, kurahaupo left 05:39 kurahaupo joined, kurahaupo left 05:40 kurahaupo joined 05:51 ToddAndMargo left, Actualeyes left 05:53 Actualeyes joined 05:58 ferreira joined 06:00 curan joined 06:07 abraxxa joined, abraxxa left 06:08 abraxxa joined 06:11 abraxxa left, abraxxa joined 06:16 abraxxa left 06:29 abraxxa joined 06:32 molaf left 06:34 sauvin joined 06:50 kurahaupo left 06:52 sno left 07:02 cpan-p6_ left, cpan-p6 joined 07:03 cpage_ joined 07:05 cpage left, cpage_ is now known as cpage 07:13 Grauwolf joined, Grauwolf left, Grauwolf joined 07:14 domidumont joined, ravenousmoose joined 07:16 ravenousmoose left, ravenousmoose joined 07:28 sno joined 08:09 ufobat_ left 08:23 rindolf joined
namibj just in case I'll mention that I spend most of the past 3 hours not finding a way to do tree grammar mostly-seamless in the normal grammar. 08:37
I'd really like to have this unified specification that matches formats that are mixed folder structure/file content, e.g. wether a folder with a CUE sheet in it and some FLAC files next to it is consistent, or if the length of the flac files as extracted/aggregated from it's internal streaming container metadata does not match up with the length specified/implied by the CUE sheet. 08:43
08:46 leont joined 08:51 rindolf left 08:52 kurahaupo joined, ravenousmoose left 08:53 ravenousmoose joined 08:54 rindolf joined
namibj That example would obviously use a custom matcher method to compare the aggregated metadata from the flac files with the list extracted from the CUE sheet, but it would still combine far more idiomatic than more traditional approaches with their custom path strings or DOM::Tiny's usage of custom-ish css_selector-derived query methods 08:54
09:04 domidumont left 09:06 domidumont joined 09:09 rindolf left 09:11 kurahaupo left 09:14 rindolf joined 09:16 dakkar joined, scimon joined 09:19 kurahaupo joined 09:21 leont left 09:27 rindolf left 09:42 kiwi_18 joined, kiwi_18 left 09:44 rindolf joined 09:45 zakharyas joined 09:46 tyil left 09:48 cpan-p6_ joined 09:49 Sno84 joined 09:51 Sno84 left 09:53 kensanata joined 09:56 cpan-p6 left 09:59 tyil joined 10:11 kurahaupo left 10:12 kurahaupo_ joined 10:19 kurahaupo joined 10:20 kurahaupo_ left 10:39 sauvin left 10:41 sauvin joined 10:43 kurahaupo left 10:50 lizmat joined 10:59 ravenousmoose left, ravenousmoose joined 11:03 ravenousmoose left 11:07 dogbert2_ joined 11:09 domidumont left 11:12 reach_satori left
Kaiepi finally got my block cipher mode library to work! 11:44
ecb's the only mode supported atm but the other modes should be easier to add now that the base of the library's done 11:45
namibj Kaiepi: congrats. Any plans for AEAD cyphers? i.e., GCM or so? 11:50
11:50 pmurias joined
pmurias MasterDuke: the one suspicious thing in your rakudo PR is that you change the $*INTERPOLATION to $*INTERPOLATE 11:51
MasterDuke: at a glance it seems that it's a legit bug fix 11:52
Kaiepi not atm namibj
i'm focusing on this, cast5, and des3 so i can implement encryption support for my telnet library 11:53
12:03 AlexDaniel left 12:08 ravenousmoose joined 12:18 zakharyas left 12:19 lizmat left 12:20 lizmat joined 12:25 RubioTerra joined
Altreus what's the routine to turn a hex string into an integer? 12:25
I'm finding my main objection to the name perl6 is search engines like to ignore the 6
12:27 MasterDuke left 12:36 ufobat joined
ufobat hey :) 12:38
how does <foo=bar> in grammars work?
github.com/ash/lingua/blob/master/...mmar.pm#L8 <- example of it
I wasn't able to find it in the documentation :-(
masak ufobat: calls the subrule `bar`, but assigns to the match key `foo` 12:42
so that it's later accessible as $<foo>
(hi, #perl6)
ufobat it is not neccessarry to have a rule foo, in my example? 12:43
masak no, it's just the name of a key
ufobat thank you, masak
masak S05 has some wording on it being equivalent to `$<foo> = <bar>` or sump'n like that 12:44
masak is still very much a synopses fan
ufobat how it it called, this feature? because i think it's not documented, i want to create an issue for it
masak "named capture" 12:45
(to distinguish it from "positional capture", which is what the parentheses do) 12:46
yup, see S05:1437. "the identifier is taken as an alias for what follows" 12:47
synopsebot Link: design.perl6.org/S05.html#line_1437
masak kisses synopsebot on the forehead
ufobat ah it looks differently in regexed then in gammars 12:48
masak ...no...? 12:49
ufobat the shorthand in grammars looks/is different to what is documented in Regexes docs.perl6.org/language/regexes#Named_captures 12:50
it is not documented in Grammars at all
12:50 markoong joined, cpan-p6_ left
masak ah 12:50
12:51 cpan-p6 joined
masak m: sub bar {}; sub infix:<foo>($l, $r) { "oops" }; say(4 foobar) 12:52
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1)
at <tmp>:1
------> 3nfix:<foo>($l, $r) { "oops" }; say(4 foo7⏏5bar)
masak Perl 6 requires a word boundary after operators that end in an alphanumeric. 12:53
(that's good, I think) :)
I just wanted to check because this is a problem that I discovered independently and am currently fixing in 007 12:54
12:55 Kaiepi left 12:57 RubioTerra left
ufobat another question, in lingua the | (pls see github.com/ash/lingua/blob/master/...m#L15-L18) 12:59
is the | a "longest alternation"? 13:00
i am wondering why there is a | in front of the first possibility
masak ufobat: S05 explains that also. it's just for symmetry, in case one wants to write out the alternations each on its own line 13:02
so an initial `|` is permitted, but ignored
Altreus actvity! 13:04
Quick
someone answer my question about hex :)
timotimo also, since empty regexes aren't allowed, it can't be confused for "the first alternative is just the empty string" 13:05
masak S05:2713
synopsebot Link: design.perl6.org/S05.html#line_2713
timotimo Altreus: you probably want :16(...)? 13:06
m: say :16<ABCD001>
camelia 180146177
masak timotimo: yes, good point. in fact, that might be (a fair chink of) the reason empty regexes are not allowed
Altreus ah 13:07
where is that documented?
timotimo masak: i didn't dare suggest there was a causation either way there :)
Altreus: docs.perl6.org/language/5to6-perlfunc#hex - here for example :) 13:08
Altreus ah 5to6 is a good thing to bookmark
timotimo searching for "base" gives you docs.perl6.org/routine/base which also links to docs.perl6.org/routine/parse-base which also links to docs.perl6.org/syntax/Number%20literals ... which is a 404 :o
ufobat thanks again masak
Altreus m: say "0a".base(16) 13:09
camelia No such method 'base' for invocant of type 'Str'. Did you mean any of these?
Hash
asec
hash
take

in block <unit> at <tmp> line 1
Altreus uh
oh wait that's for int->str
> the same result can be achieved by using the .base method
timotimo docs.perl6.org/language/syntax#ind...iterals%29 - this is probably the intended target, but it only mentions the :16<A0> thing in passing
Altreus This would appear to be the opposite result
m: say 0x0a.base(32) 13:10
camelia A
Altreus yeah that's definitely Int->Str, whereas :16 is Str->Int
timotimo m: say 0xaf.base(10)
camelia 175
timotimo m: say 0xaf.base(10).^WHAT
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use .^ on a non-identifier method call
at <tmp>:1
------> 3say 0xaf.base(10).^WHAT7⏏5<EOL>
expecting any of:
method arguments
timotimo er
m: say 0xaf.base(10).WHAT
camelia (Str)
Altreus m: say :16("0a").WHAT 13:11
camelia (Int)
masak timotimo: I think there were many things pushing towards "null regex is disallowed", to be honest. (for some reason I always picture TimToady and TheDamian hashing out A05 in front of a whiteboard.)
timotimo yeah, you can pullrequest or directly change that :)
also correct the link i mentioned that 404s if you'd like :)
Altreus cor
I wonder what the 404 should be 13:12
masak timotimo: I think the "Nothing is illegal" decision stems, on a higher level, from the recongition that regexes are more of their own language, and so things should behave more as terms and operators do in real languages
timotimo: there was also a time when `2..` meant what we now write as `2..Inf` or `2..*` -- but that syntax died off along the way, for what I think was similar reasons 13:13
timotimo Altreus: got the right link a few lines down
cool, so postfix:<..> is free for... sillyness :) :) 13:14
oh, btw, you're potentially the right person for this
i've made an operator for what i later learned is called "method cascading"
but i implemented it as a postcircumfix
gist.github.com/timo/44efb53aa1368...d1656c8aa9
13:14 lucasb joined
timotimo i would like a suggestion for a less obscure pair of characters :) 13:14
masak timotimo: sorry, I can't view gists easily from where I am currently (.cn) 13:15
timotimo oh!
masak but if I get your meaning, you should know that there's a 007 issue for this :P
timotimo sub postcircumfix:<⦓ ⦔>($a, &code) { my $b = $a; code($a); $b };
masak let me dig it up for you
timotimo "foobarbaz".comb.Array⦓*.splice(3,1,"X")⦔.join.say;
that's essentially all there is to it, plus an explanation what it does and what it's for for people/from people who haven't heard of method cascading yet
though tbf my approach allows for more than just methods to be used! :D 13:16
13:17 ufobat left
Altreus with those characters it doesn't allow for anything to be used :D 13:18
but they are pretty sweet 13:19
timotimo pfft, you can always go to that gist and copypaste!
Altreus they look like hyperspace
Geth doc: Altreus++ created pull request #2612:
Correct description of `hex`
Altreus oh thanks
masak timotimo: not exactly what I expected it to be :) 13:21
Altreus Geth: botsnack
aw
masak timotimo: but just in case it helps, here: github.com/masak/007/issues/221 13:22
timotimo yeah, it's the same concept, but without macros i had to have a place to stick a WhateverCode or similar callable, and that forced me to use some kind of circumfix 13:23
masak (sorry) 13:24
timotimo don't be; limitations can cause creativity :)
masak but also -- let me precommit on this, for once -- I expect to blog this week about lexical variables and macros. a tasty treat for everyone who is still looking forward to macros in Rakudo :> 13:25
timotimo \o/
i'll eventually have to blog about my experiments with bringing together Image::RGBA::Text and SDL2::Raw
did you see my little video?
did i even post it here ...
oh no! it's potentially blocked in .cn
cdn.discordapp.com/attachments/538...-53-17.mp4
masak I'll say this in the blog post, but my 4-years-and-counting journey with macros could easily be construed as a journey to discover how central and vital lexical lookup is 13:26
(actually, I've battled with macros for longer than taht, but 007 is 4 years old now) 13:27
timotimo hack.p6c.org/~timo/rotating_coins.mp4
13:32 Kaiepi joined
masak couldn't reach either of those, sorry 13:34
access here is really sovereign
timotimo right
masak I'm sure I would've lover your rotating coins, though 13:35
loved*
timotimo they're my coins! :o 13:36
gist.github.com/timo/20cdc50dbf10f...93cd02d92d
since you appear to be able to reach github :)
if you can't see the video, you can at least see the source data for the coins themselves %) 13:37
13:39 w17t left
masak I can reach github but not gists :/ 13:39
lucasb can't get to the gist of it 13:42
13:42 zakharyas joined 13:43 gregf_ joined
timotimo argh 13:44
masak I usually take the strict limiations as a hint that I should focus more heavily on producing (code and writing) rather than consuming (youtube, twitter, etc) 13:45
Altreus hack.p6c.org refused to connect. 13:49
:x 13:50
just me?
timotimo works for me :\ 13:51
not over https, though
masak: try without https! maybe that helps
masak tries 13:53
moritz it looks like I never set up HTTPS for hack, since all the interesting websites are on www.p6c.org 13:56
if anybody want's some fun with Let's Encrypt and Apache, feel free to do that :)
I'll give you sudo
masak timotimo: nah, I'm just getting redirected to , which fails
timotimo um, huh? :o 13:57
moritz what exactly are you trying, and why?
timotimo i'm trying to give an mp4 file to masak, who currently hangs out in china 13:58
moritz eeks
masak yeah. might have to wait a few weeks with that one. 13:59
Geth doc: 6e75999c81 | (Alastair Douglas)++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6
Correct description of `hex`

It is incorrect to say that `.base` is an alternative to `:16`, since `:16` is Str -> Int and `.base` is Int -> Str.
Reworded to be more correct.
14:02
synopsebot Link: doc.perl6.org/language/5to6-perlfunc
doc: d3427f897b | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/5to6-perlfunc.pod6
Merge pull request #2612 from Altreus/patch-1

Correct description of `hex`
Altreus I'm a helper
14:02 kurahaupo joined
Altreus i didn't get around to the other thingy 14:02
timotimo: yeah that was https. I clicked your link 14:03
14:22 skids joined
timotimo yeah i accidentally just wrote https out of habit 14:25
14:29 leont joined 14:32 curan left 14:58 w17t joined 15:02 rindolf left 15:06 rindolf joined 15:12 vrurg joined 15:33 molaf joined 15:35 jme` left 15:42 yqt joined 15:48 cpan-p6_ joined 15:50 cpan-p6 left 15:54 sena_kun joined
Geth doc: 39b2ef60e3 | Coke++ | doc/Language/5to6-perlfunc.pod6
whitespace
15:56
synopsebot Link: doc.perl6.org/language/5to6-perlfunc
16:08 molaf left 16:13 jmerelo joined
jmerelo Hi 16:14
16:14 kurahaupo left
jmerelo Anyone knows if there has been some application of Perl for the Google Summer of Code rejected? 16:14
16:14 kurahaupo joined 16:15 AlexDaniel joined
moritz yes 16:16
16:17 patrickb joined 16:18 ravenousmoose left
jmerelo moritz: which one? 16:21
moritz the year after our last successfull application
16:21 ferreira left 16:23 zacts joined
jmerelo That would be 2015 16:30
Any other you remember?
moritz: We're about to submit the application, a few hours from now 16:32
moritz: you've been involved in others.
moritz: Anything you think we should take into account?
16:35 eseyman left 16:36 eseyman joined
moritz jmerelo: no; i was never involved with the application process, only with mentoring later on 17:05
and project reviewing
17:08 ferreira joined 17:09 skids left 17:11 reach_satori joined 17:19 pmurias left
jmerelo moritz: that's the involvement I was refering to 17:20
moritz: any idea why some projects didn't succeed?
There's not a too high failure rate, but high enough. 17:21
17:23 skids joined 17:27 scimon left 17:30 kensanata left 17:31 domidumont joined 17:39 kurahaupo left, kurahaupo_ joined 17:43 ferreira left, ufobat joined
jmerelo Application to Google Summer of Code submitted 17:44
Answer by Feb 26th
17:47 kurahaupo_ left, kurahaupo joined 17:55 dakkar left 18:02 volkov joined, robertle joined 18:04 kawaii left 18:08 zacts left 18:10 volkov left 18:19 ferreira joined 18:26 ferreira1 joined, ferreira left 18:32 abraxxa left 18:33 skids left 18:35 skids joined 18:52 zakharyas left 18:58 sno left 19:07 zacts joined
namibj i'll repost from last night, as no one actually answered: 19:09
19:10 sno joined
namibj I'm trying to write a client for communication with the rclone.org/rc/ daemon-mode (via HTTP), so that I can use perl6 to organize/schedule/automate archiving 19:10
Can anyone with more experience suggest suitable naming/structuring?
The list of commands currently supported by the rclone deamon starts at rclone.org/rc/#supported-commands on the above page. 19:11
just in case I'll mention that I spend most of the past 3 hours not finding a way to do tree grammar mostly-seamless in the normal grammar.
I'd really like to have this unified specification that matches formats that are mixed folder structure/file content, e.g. wether a folder with a CUE sheet in it and some FLAC files next to it is consistent, or if the length of the flac files as extracted/aggregated from it's internal streaming container metadata does not match up with the length specified/implied by the CUE sheet.
That example would obviously use a custom matcher method to compare the aggregated metadata from the flac files with the list extracted from the CUE sheet, but it would still combine far more idiomatic than more traditional approaches with their custom path strings or DOM::Tiny's usage of custom-ish css_selector-derived query methods 19:12
19:18 sauvin left
sena_kun namibj, can you please clarify a bit what do you mean by "naming/structuring"? In short, it seems like you want a client that can form&do HTTP requests/responses of certain format, right? 19:19
You probably want to start with defining some CLI API of your client with stubs under actions, eventually moving to implementing request forming and network part implementation. 19:22
Sorry, I am not familiar with rclone, so not sure how validation is placed in this schema. 19:23
19:23 reach_satori left, reach_satori joined
lizmat jmerelo++ # GSoC 19:24
samcv . 19:26
yoleaux 29 Jan 2019 18:55Z <patrickb> samcv: Could you split your two proposals into two separate files?
29 Jan 2019 18:55Z <patrickb> samcv: Also can you add some contact information next to your name in the idea file?
4 Feb 2019 11:37Z <AlexDaniel> samcv: colabti.org/irclogger/irclogger_lo...02-04#l153
patrickb samcv: I've done it already. 19:27
samcv ok great :) 19:28
i have been without internet. as it is not yet working at my new apartment
19:29 Kaiepi left 19:32 zacts left
jmerelo lizmat: it will be great if it's accepted. Hope so. 19:40
19:51 reach_satori left
sena_kun NativeCall question: I get how to create a signature for a function that takes a callback pointer, but how can I represent a callback pointer as part of a struct? 20:01
one of struct parts is: `int (*proc)(void);`, so my code has to be, like, `class Foo is repr('CStruct') { #`[ previous struct items here... ] has ??? }`? 20:02
`has &.proc:(--> int);` maybe? 20:03
20:03 Ven`` joined 20:07 jmerelo left 20:12 dvdl joined
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2019/02/06/...5-skipped/ 20:15
20:21 zachk joined 20:22 zachk left, zachk joined
namibj sena_kun: what do you mean with validation "in this schema"? 20:23
lizmat goes back to getting better& 20:24
20:28 yqt left 20:32 Kaiepi joined
sena_kun namibj, schema == "overall architecture of your module/script/app". by "validation" I meant your example of some matching by spec you provided. 20:33
namibj sena_kun: I specifically need someting that can send these commands to the rclone deamon, because the deamon does some api token caching, directory listings caching and most importantly rather sane remote-specific rate-limiting. 20:35
20:40 zacts joined
namibj Also it's somewhat easier to manage disk-io-threadcount if it's all in a single natively-multithreaded deamon, which gives much better disk throughput if you use more than one stream (tradeoff between tcp window_size/packet_loss_backoff induced throughput limits and the hdd_throughput degradation you get from more than one individually sequential read/write streams) 20:40
.
Altreus Is there a magic variable that knows the current loop index? 20:42
sena_kun namibj, sorry, not sure I am qualified enough to help with this. 20:45
Altreus, won't state variable do the job? Not sure about magical one. 20:47
Altreus Just wondered if it were built-in
Thought it might be a feature of the Label object or something 20:48
sena_kun Altreus, how do you terminate the loop in question, by condition? 20:49
m: my $a = 0; loop (my $i = 0;; $i++) { say "$i: {$a++}"; last if $i == 10 } 20:51
camelia 0: 0
1: 1
2: 2
3: 3
4: 4
5: 5
6: 6
7: 7
8: 8
9: 9
10: 10
sena_kun you may move the codition to form something like this, but it looks like foot shooting for me, so don't use it. :)
namibj The overall architecture of the whole system is to get info on things that need to be processed, mostly via matching strings in specific IRC channels (potentially also requiring semi-special authentification to a bot on that IRC network to access channels) 20:52
Altreus I'm confused by the question
It's like you asked about the question I haven't asked yet
oh when I said loop I meant generic loop concept, i.e. for loop 20:53
I wanted it for debugging because I have *another* issue whereby next does not appear to be nexting
sena_kun Altreus, a-a-a-a-ah. Not kind of "a-a-ah" as in "I know, there is a magic variable", but "It changes things".
for `for` you can do `.kv -> $i, $item` 20:54
for example
Altreus I realise I can also ... yeah
:kv I think
sena_kun .kv too
namibj or also from other sources, like maybe rss feeds or polling an API/website for a forum mailbox
.
Altreus oh right cool
sena_kun namibj, I may be wrong, but I wonder if it can be done with a bunch of source/transformer/sink implementations... Can you glance over cro.services/docs/approach to see if it sounds helpful? Just note that "network" is not mandatory part. 20:56
you can stream events from io and sink those into some Sink that doesn't deal with network.
right out of the box Cro mostly supports network protocols, but its core is just about building reactive microservices that produce/transform/receive arbitrary data. 20:59
21:01 zacts left
ufobat i started my first baby-scheme interpreter :D 21:01
sena_kun ufobat, not the Haskell one? ^^' 21:02
namibj It then extracts metadata if available/possible, prioritizes the items according to some rules/quotas/predicted_rate_limits/storage_space, stores this metadata and any queing control information required in a transactional datastore (to guard against kernel-update-induced system reboots)
ufobat i wanted to parse something easy :p
namibj , and dispatches items to one of a few state machines, depending on item type, source, metadata and queing priority information 21:03
sena_kun ufobat, oh, sorry, I mean there is a famous(I think, famous for _some_ people :) ) tutorial that implements some micro-Scheme in Haskell in a concise way.
Altreus here's my weird loop problem gist.github.com/Altreus/09df5154ce...68bbf5dd74 21:04
ufobat I cant read haskel :-( 21:05
Altreus The loop on line 27 of ofx2ledger should *not* be able to run both line 30 and line 39
ufobat but i found a similar pyhton tutorial for doing it :-)
Altreus And yet it does, per the output
ufobat i also dont know (much) scheme, i can write ma .emacsrc and that's it
namibj that state machine (one instance per item, potentially with nested_sub_instances spawned for compound items) handles for most cases fetching the item itself, extracting_further_metadata/thumbnail_generation/processing (some processing might be conditional on succesfull/sufficiently_unambiguous metadata extraction) 21:07
21:07 kawaii joined
sena_kun lizmat, ping? 21:09
namibj , followed by sorting the usually_complete_but_sometimes_possibly_non-completable according to the accumulated metadata. 21:10
sena_kun .tell lizmat thanks for a wonderful weekly! I believe that in twitter section, second tweet "motto" should be "Other ways to" instead of "Other was to". 21:11
yoleaux sena_kun: I'll pass your message to lizmat.
namibj It finishes by transferring the possibly_processed data to one or more archives, maybe in the future also automatically initiating a transfer of the data to e.g. the local device that initiated fetching of this specific item, i.e. manually on a laptop requesting "that item" to be fetched and transferred back to the laptop once the server (my perl6 deamon) finished grabbing it. 21:16
21:16 drolax joined 21:17 dvdl left
Altreus anyone able to reproduce my loop weirdness? 21:17
namibj Maybe, in some cases, even more in the future, starting the transfer to the laptop before it's finished, by specifically transferring those chunks/parts the server already has
One fetching deamon would lilely be rtorrent, which offers XML-RPC (I don't recall whether it's conforming to some specific standard, but I do know that it's not really documented nearly as well/centralized as the rclone deamon) 21:20
21:20 robertle left
TreyHarris Erm... github.com/perl6/doc/issues/2614 "Cool isn't cool" 21:21
I assume we just close this one?
Altreus p sure there's a reason for that name but I don't remember what it is
timotimo convenient OO loops? 21:22
loopbacks, or something
AlexDaniel something something
timotimo also, "i'm cool with that method"
TreyHarris "It's cool with whatever"
AlexDaniel TreyHarris: it's not a doc issue, so it should be moved… and then closed :D 21:23
actually I love that ticket
TreyHarris Agreed, writing a reply. Should I refer them to p6-l or elsewhere if they want to continue the plea somewhere it might be dealt with? 21:24
namibj over iirc HTTP, iiirc officially preferring an unix domain socket for security against adversaries able to e.g. <<curl [::1]:7575/api/v2>> with a XML_formatted RPC request in the POST body 21:25
.
21:27 pecastro joined 21:28 keeshanam joined 21:30 domidumont left 21:31 lizmat left 21:32 Ven`` left
namibj sena_kun: I'll now start reading what you and possibly others wrote in the time I was condensing my concepts into the many long messages above, which you may or may not have read (I'm not mad if ypu don't, but I do plan to open_source the clients for the deamons (rclone, rtorrent, maybe_some_non_native_irc, maybe_in_the_future tox.chat ) 21:36
21:36 molaf joined 21:37 keeshanam left
sena_kun namibj, I read those, but I wonder if the whole thing demands high performance from the code. 21:37
and if yes, Perl 6 might be not the best bet if you don't want to spend time on optimization. also you have to be likely ready to write some libraries in case something is missing for your task(and hopefully contribute those to ecosystem :) ). Not something to be afraid of, but there is no e.g. maven-scale number of libraries for everything. 21:39
namibj sena_kun: I now understand the confusion you experience(d) w.r.t. how the problem I want to try and tackle with tree_grammar, as well as the specific approach, is related to the rclone_deamon client. 21:40
21:42 molaf left 21:44 lucasb left
namibj Both topics are part of the same app, but I don't see a limitation as far as parsing/generating the JSON from/for the rclone_daemon with string_grammar/json_to_and_from_perl6_object/manual_hash_construction is concerned. 22:07
22:13 kurahaupo left, kurahaupo joined
namibj sena_kun: on your NativeCall issue from above: Did you consider using inline C (as a slang, like inline Lua or perl5) to declare the struct, so that you don't have to translate the function signatures in your C header file(s) into this "weird" perl6 syntax? 22:15
sena_kun eco: Inline::C 22:16
ugh, never mind.
timotimo Inline: :(
namibj ufobat: the issue with reading Haskell is in large part due to heavily-typed-multiple-dispatch operator-specific associativity
sena_kun namibj, I don't think there is Inline::C module, is there? 22:17
sena_kun .oO ( this inline will be always somewhat unhappy with something )
namibj i.e., custom operators can and will choose themselves whether they are right or left associative and iirc also (within more reason than right vs. left; thank $diety) operator precedence 22:18
this basically means that you can't just learn base language spec and then correctly parse common, in-the-wild haskell code by hand ad-hoc into a naive evaluation-order AST 22:19
TreyHarris namibj: Maybe that's why use of the `$` and `.` operators seems to be so much higher in Haskell than their counterparts in those other non-Haskell-family functional languages that have them? 22:23
22:24 rindolf left
Harzilein namibj: there's a certain variant of inline c that i liked even more, coming from unreadable pack/unpack... specifically the one used in the fastcgi spec. it's a bit verbose but _very_ clear 22:24
namibj: it uses suffixes for the field names to indicate byte order and size. 22:25
namibj apart from that, haskell isn't that hard. important is mostly that you grok currying, including how associativity affects whether a function get's passed itself, or whether it's result is passed, and then you need to consider parenthesis, the brackets-create-lists syntax akin to iirc python, and the mighty "$" which changes the iirc default chain-functions-like(my $tmp = &identiy_function; for 22:26
$list_of_identifiers -> $func { $tmp = $tmp.apply($func) ;}; return $tmp ;
TreyHarris github.com/FROGGS/p6-Inline-C exists... it hasn't seen a commit in 2 years, but that may mean It Just Works? 22:28
namibj TreyHarris: AlexDaniel timotimo i assume "Cool isn't cool" tries to advise caution against abusing methods of the Cool class on objects for which these methods behave unintuitively 22:29
I.e., cautioning against Cleverness/code-golfing/accitental-obfuscation when using these methods in un-ideomatic ways
TreyHarris namibj: I think you may be assuming too much, based on the other tickets they have submitted. They've generally been language-design issues being opened against the docs for some reason 22:30
Since Cool is the mutual superclass of Num and Str, I don't think you need to approach it with more caution than you think about whether Perl 5 is treating a value as a string or a number---that is, you should be cautious, but it DWIMs far more often than it doesn't 22:32
namibj sena_kun: the only part that could potentially be actually cpu-heavy after structuring the code to prevent unnecessary evaluation (i.e., not using breath-first search in a deep tree when the search will finish after only a couple leaf nodes have been inspected)
22:40 drolax left 22:42 skids left
namibj would be the out-of-order transfer of an item that is still downloading. And that feature, while certainly with it's real-world value proposition, is one I can 1) live without for the time being, and 2) implement in something else, considering that I'd probably want the matching client to be light-weight (<20 MiB binary tarball; <5 MiB non-file-backed-mmap (not counting potentially required receive buffers 22:44
for Reed-Solomon/Fountain-Code FEC (Forward error correction) to optionally offer _way_ tighter 99th percentile latency bounds in cases of packet loss.
I might go directly for NaCl + SIMD_FEC_(de/en)coding from Rust or so for a more general packet_loss/chunk_availability-tolerant file transfer tool. 22:47
22:50 lizmat joined
lizmat . 22:50
yoleaux 21:11Z <sena_kun> lizmat: thanks for a wonderful weekly! I believe that in twitter section, second tweet "motto" should be "Other ways to" instead of "Other was to".
lizmat done!
sena_kun++
sena_kun \o/
lizmat++ # weekly 22:51
22:53 mowcat joined
namibj sena_kun: I\m reasonably confident to have spottet something about inline C github.com/FROGGS/p6-Inline-C seems to do the inline part, and github.com/CurtTilmes/perl6-tcc seems to offer low-ish latency/dynamic C interop. 22:54
I have to say though, that none of those seems to obviously offer deducing function signatures from their C code. 22:55
sena_kun well, I'd go with just NativeCall, I think, both of those don't seem as easier options for me, unfortunately. :) 22:57
but I wonder why Inline::C isn't listed in the ecosystem. And looking at its issues it's broken right now. :S 22:58
afk
22:59 reach_satori joined
Altreus discovered my gist from before doesn't run 23:01
:P
it does now. Results are repeatable.
I can't understand why lines 30 and 39 clearly both run on iteration number 2. gist.github.com/Altreus/09df5154ce...68bbf5dd74 23:02
it should be impossible for them both to run 23:03
at least, if they can both run, they should always both run
oh wait they do 23:04
the streams aren't synchronised
in that case, my question is, why doesn't next skip the rest of the loop?
23:05 cpage_ joined, patrickb left
namibj sena_kun: this one, while currently showing Build:Failing, appears to offer a way to properly implement C struct introspection by feeding the C code to libllvm and allowing traversal of the generated AST: modules.perl6.org/dist/Libclang:cp...I/examples 23:06
23:07 cpage left, cpage_ is now known as cpage 23:08 pecastro left
namibj sena_kun: regarding your case of cuntion-takes-struct (or was it object_is_CStruct-contains-function_pointer ?), check if modules.perl6.org/dist/Libclang:cp...perl6.c#L5 explains your difficuly with structs specifically 23:08
23:10 TreyHarris left 23:13 sena_kun left
namibj TreyHarris: I'm referring to cases of other classes usually_after_multiple_inheritance_layers offering methods from Cool without those really fitting this distant subclass intuitively. 23:14
23:15 TreyHarris joined 23:17 kawaii left
namibj Using these methods requires seeing the Object on a very abstract level, which can be an unnecessary burden on the reader 23:17
[repeated, as you were offline]TreyHarris: I'm referring to cases of other classes usually_after_multiple_inheritance_layers offering methods from Cool without those really fitting this distant subclass intuitively.
23:20 notagoodidea joined
namibj Harzilein: I don't see why no one took the leap of throwing perl6 grammar at the relatively simple case of function signatures (without supporting macros or trigraphs), including deduction of struct-ordering/padding and ofc translating ABI-defined variable-sizes/representation (endianess; one's vs. two's complement) into a form suitable for 23:25
marshalling around NativeCall's 23:26
23:52 MasterDuke joined 23:53 MasterDuke left, MasterDuke joined