| 2019-07-15 |
| → Manifest0 joined | 00:04 |
| ← Manifest0 left | 00:16 |
| → aborazmeh joined | 00:16 |
| ← aborazmeh left | 00:16 |
| → aborazmeh joined | 00:16 |
| → Manifest0 joined | 00:22 |
| ← Manifest0 left | 00:28 |
| → Sgeo__ joined | 00:31 |
| ← Sgeo_ left | 00:34 |
| → Manifest0 joined | 00:35 |
| ← reach_satori_ left | 00:36 |
| → reach_satori_ joined | 00:36 |
| ← Manifest0 left | 00:41 |
| → Manifest0 joined | 00:46 |
|
Geth
| ¦ problem-solving: AlexDaniel assigned to jnthn Issue What can and what cannot be changed in 6.c-errata? https://github.com/perl6/problem-solving/issues/62 | 00:48 |
| ← Manifest0 left | 01:05 |
| ← aborazmeh left | 01:10 |
| → formalin14 joined | 01:12 |
| → Manifest0 joined | 01:12 |
| ← Manifest0 left | 01:19 |
| → Manifest0 joined | 01:25 |
| ← mowcat left | 01:26 |
| → jeromelanteri joined | 01:28 |
| ← epony left | 01:30 |
| ← Manifest0 left | 01:44 |
| → Manifest0 joined | 01:49 |
| ← Manifest0 left | 01:58 |
| → Manifest0 joined | 02:03 |
|
devz3ro
| have a perl6 newbie question, anyone have a minute? I'm sure it's simple | 02:05 |
| ← Manifest0 left | 02:16 |
|
vrurg
| devz3ro: if you're still here... | 02:19 |
|
yoleaux
| 14 Jul 2019 08:12Z <SmokeMachine> vrurg: isn't Sparrow6 a replacement for puppet, ansible and stuff like that? pulp is much simpler! and about Red, no problem... take your time! | 02:19 |
|
| 14 Jul 2019 08:15Z <SmokeMachine> vrurg: thanks! | 02:19 |
| → Manifest0 joined | 02:22 |
|
devz3ro
| currently using - my @lines = 'list.txt'.IO.lines; | 02:31 |
|
| the list.txt is a file of strings | 02:32 |
| → molaf joined | 02:33 |
|
devz3ro
| I'm trying to grep out some text in the list - for @lines -> $line { if $line.grep(/fox/) { put $line; } } | 02:35 |
|
| this works | 02:35 |
|
| what i'm trying to do is print out the next member of the array that follows that match | 02:36 |
|
| someone pasted the answer before, but I don't think I asked it correctly, it only worked with integers | 02:37 |
|
vrurg
| First of all, you do eager reading here. I.e. you fetch all your lines into memory at once by assigning to an array. With $file.IO.lines.grep: /fox/ you'd have lazy fetching. | 02:40 |
|
| Another thing: you apply .grep to a scalar $line. This is a perfomance loss because $line gets converted into a list first – .grep is a sequence method. | 02:41 |
|
devz3ro
| so if I have something like this | 02:42 |
|
| my @lines = <the quick brown fox jumps over the lazy dog>; | 02:42 |
|
| how do I print out a match of "fox" but also "jumps" | 02:42 |
|
| without knowing what "jumps" is | 02:43 |
|
vrurg
| I'm trying to work out a working solution. Actually, what you need is .keys method applied to the output of .grep applied to .lines. .keys will provide you with indicies. | 02:44 |
|
| But that's just a start point. Because for a lazy sequence which you get it would be tricky. | 02:45 |
|
| I have another approach in mind by need to check if it works. | 02:45 |
|
devz3ro
| well this might make things easier | 02:45 |
|
| cause in this text file I have, I *think* I can create hashes, just not sure how to do it for everything | 02:46 |
|
| because every 2 lines should be paired | 02:46 |
|
vrurg
| What if two sequential lines match? | 02:49 |
|
| You get the first and the following, then the second and the following? I.e. second match appears twice? | 02:50 |
|
devz3ro
| in my case they won't ever | 02:50 |
|
| first line has text, second has a url, third has text, fourth has a url | 02:54 |
|
| and so on, alternating | 02:54 |
|
| for a lot of lines :) | 02:55 |
|
| that's why I was relying on grep to match the line, but I need to grab the line immediately following which has the url that's paired with the match | 02:55 |
|
vrurg
| Too late, I'm making stupid mistakes. But basically your pipeline shoud be .lines.kv.grep( { what you need } ) | 02:57 |
|
| .kv gives you index => line Pair. | 02:58 |
|
devz3ro
| so back to this example | 02:58 |
|
| my @lines = <the quick brown fox jumps over the lazy dog>; | 02:58 |
|
| how can I pair them | 02:59 |
|
vrurg
| Oops. because it's .pairs, not .kv | 02:59 |
|
devz3ro
| or how could I print out "the quick" then "brown fox" .. | 02:59 |
|
vrurg
| my @l = "revision.p6".IO.lines; @l.pairs.grep( { .value ~~ /"==="/ } ).map( { @l[.key, .key + 1].join("\n") } ).join("\n").say | 03:01 |
|
| That's it. It's drops lazyness, but does what you need. | 03:01 |
|
| You can move on from this point. Unfortunately, I need to go. | 03:02 |
|
devz3ro
| will check, thanks for your time | 03:03 |
|
vrurg
| welcome! :) | 03:04 |
|
| o/ | 03:04 |
| ← El_Che left | 03:04 |
| ← formalin14 left | 03:05 |
| → formalin14 joined | 03:06 |
| ← tune left | 03:07 |
| → tune joined | 03:07 |
| → El_Che joined | 03:10 |
|
vrurg
| devz3ro: I've what was wrong wuth my solution for lazy sequence from lines. | 03:11 |
|
| "revision.p6".IO.lines.pairs.grep( { state $last = False; my $p = $last; $last = .value ~~ /"==="/; $p || $last } ).values».say | 03:11 |
|
| It still could be optimized, but it demonstrates the principle. | 03:12 |
|
devz3ro
| is there anyway to loop this? | 03:13 |
|
| with prompt being the grep | 03:13 |
|
| I can probably figure that out | 03:14 |
|
| this at least gets me started, thanks again | 03:14 |
|
vrurg
| welcome and now I'm certainly away! :) | 03:15 |
| → AlexDani` joined | 03:19 |
| ← AlexDaniel left | 03:23 |
| ← Manifest0 left | 03:28 |
| ← molaf left | 03:29 |
| AlexDani` → AlexDaniel | 03:30 |
| ← AlexDaniel left | 03:30 |
| → AlexDaniel joined | 03:30 |
| → Manifest0 joined | 03:35 |
| ← Manifest0 left | 03:39 |
| → Manifest0 joined | 03:47 |
| ← formalin14 left | 03:48 |
| → sisar joined | 03:55 |
|
sisar
| I see that the docs.perl6.org uses the word 'routine' and 'method' interchangeably. Are they in fact the exact same thing? | 03:56 |
| → dominix_ joined | 04:06 |
| ← Manifest0 left | 04:06 |
| ← dominix__ left | 04:10 |
| ← |Sno| left | 04:10 |
| ← MilkmanDan left | 04:11 |
| → Manifest0 joined | 04:11 |
| → MilkmanDan joined | 04:13 |
| ← sisar left | 04:15 |
| → sisar joined | 04:22 |
|
sisar
| Oh, and also the words 'function' and 'subroutine'. Can someone please clarify them for me ? | 04:24 |
| ← Manifest0 left | 04:24 |
| → uzl joined | 04:24 |
|
uzl
| sisar: From what I understand, a routine is an umbrella term for both subroutines and methods. | 04:25 |
|
sisar
| And function? | 04:26 |
|
uzl
| Yeah, subroutines (subs for short) are the equivalent of functions in other programming languages | 04:26 |
|
| sisar: A method could be considered a subroutine that knows the class it belongs to. However, Perl 6 makes this distinction more apparent, in relation to plain subs, by using the `method` keyword. | 04:28 |
|
sisar
| ok, that kinda makes sense. | 04:29 |
| → Manifest0 joined | 04:29 |
|
sisar
| thanks ! | 04:29 |
|
uzl
| sisar: No problem! | 04:29 |
|
sisar
| Do you think it makes sense to ave this as an FAQ ? Is this confusion a common one ? | 04:30 |
|
| *have | 04:30 |
|
uzl
| sisar: If you look at https://docs.perl6.org/language/functions, there's a short discussion about the use of the terms 'routine'. | 04:33 |
|
sisar
| uzl: ah ! Thanks! | 04:34 |
|
uzl
| sisar: So playing with Perl 6? Having fun?! | 04:35 |
|
sisar
| I used to play with it quite a few year ago. Trying to pick up again, since I've forgotten most of it. And those were my undergrad days. Now that I'm a more experienced programmer, I think i can appreciate it better. | 04:37 |
|
| And yes, I'm having fun! :-) | 04:37 |
|
uzl
| Oh, great! The documentation will certainly be useful to help you remember stuff. Make sure to raise an issue (https://github.com/perl6/doc) should something in there be unclear or sound wacky ;). | 04:40 |
|
| m: class A { has $.meth; submethod TWEAK { $!meth = &self::do }; method do { 'do' } }; A.new | 04:41 |
|
camelia
| rakudo-moar 4eb4c0c79: ( no output ) | 04:41 |
|
uzl
| m: class A { has $.meth; submethod TWEAK { $!meth = &self::do }; method do { 'do' } }; A.new.meth | 04:41 |
|
camelia
| rakudo-moar 4eb4c0c79: ( no output ) | 04:41 |
|
uzl
| m: class A { has $.meth; submethod TWEAK { $!meth = &self::do }; method do { 'do' } }; A.new.meth() | 04:42 |
|
camelia
| rakudo-moar 4eb4c0c79: ( no output ) | 04:42 |
|
uzl
| m: class A { has $.meth; submethod TWEAK { $!meth = &self::do }; method do { 'do' } }; A.new.meth().put | 04:42 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «Use of uninitialized value of type Any in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1» | 04:42 |
| ← kaare_ left | 04:43 |
| → kaare_ joined | 04:43 |
|
uzl
| It seems nobody is around. I'll have to leave this question here lest I forget tomorrow. | 04:45 |
|
| Is it possible to assign methods to variables and pass them around as arguments inside the class akin to subroutines? I know there are accessible by either self. or self! inside other methods but I'm wondering I can pass a method's code object as an argument to another method. | 04:46 |
|
| uzl goes away. | 04:48 |
| ← uzl left | 04:48 |
| ← Manifest0 left | 04:54 |
| → Manifest0 joined | 04:59 |
| ← Manifest0 left | 05:06 |
| → Manifest0 joined | 05:10 |
| → Xliff joined | 05:14 |
|
Xliff
| \o | 05:14 |
|
| m: say "a9873fd1" ~~ /<[0..9a..f]> ** {8, 17}$/ | 05:15 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «「d1」» | 05:15 |
|
Xliff
| m: say "a9873fd1" ~~ /<[0..9a..f]> ** 8$/ | 05:15 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «「a9873fd1」» | 05:15 |
|
Xliff
| m: say "a9873fd1" ~~ /<[0..9a..f]> ** 17$/ | 05:15 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «Nil» | 05:15 |
|
Xliff
| m: say "a9873fd1" ~~ /<[0..9a..f]> ** 8,17$/ | 05:15 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «=== SORRY!=== Unrecognized regex metacharacter , (must be quoted to match literally)at <tmp>:1------> say "a9873fd1" ~~ /<[0..9a..f]> ** 8 ⏏ ,17$/ Unable to parse regex; couldn't find final '/'at <tmp>:1------> say "a9873…» | 05:16 |
|
Xliff
| m: say "a9873fd1" ~~ /<[0..9a..f]> ** {8,17}$/ | 05:16 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «「d1」» | 05:16 |
|
Xliff
| How do I match 8 OR 17 chars? | 05:16 |
|
| m: say "a9873fd1" ~~ /<[0..9a..f]> ** [8,17]$/ | 05:16 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Quantifier quantifies nothingat <tmp>:1------> say "a9873fd1" ~~ /<[0..9a..f]> ** ⏏ [8,17]$/ » | 05:16 |
|
Xliff
| m: say "a9873fd1" ~~ /<[0..9a..f]> ** 8 | <[0..9a..f]> ** 17]$/ | 05:16 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Unable to parse regex; couldn't find final '/'at <tmp>:1------> /<[0..9a..f]> ** 8 | <[0..9a..f]> ** 17 ⏏ ]$/  expecting any of: infix stopper» | 05:16 |
|
Xliff
| m: say "a9873fd1" ~~ /[ <[0..9a..f]> ** 8 | <[0..9a..f]> ** 17 ] $/ | 05:17 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «「a9873fd1」» | 05:17 |
|
Xliff
| ^^ That seems to take too many characters. Is there a shorter way? | 05:17 |
| → ufobat joined | 05:18 |
| ← MilkmanDan left | 05:20 |
|
Xliff
| m: say "a9873fd1" ~~ /[ <xdigit> ** 8 | <xdigit> ** 17 ] $/ | 05:21 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «「a9873fd1」 xdigit => 「a」 xdigit => 「9」 xdigit => 「8」 xdigit => 「7」 xdigit => 「3」 xdigit => 「f」 xdigit => 「d」 xdigit => 「1」» | 05:21 |
|
Xliff
| m: "a9873fd1" ~~ /[ <xdigit> ** 8 | <xdigit> ** 17 ] $/; $/.Str.say | 05:22 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «a9873fd1» | 05:22 |
|
Xliff
| m: "a9873fd1" ~~ /[ <xdigit> ** 8 | <xdigit> ** 17 ] $/; $/.say | 05:22 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «「a9873fd1」 xdigit => 「a」 xdigit => 「9」 xdigit => 「8」 xdigit => 「7」 xdigit => 「3」 xdigit => 「f」 xdigit => 「d」 xdigit => 「1」» | 05:22 |
|
Xliff
| m: "a9873fd1" ~~ /[ <xdigit> ** 8 | <xdigit> ** 17 ] $/; $/.Str.say | 05:22 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «a9873fd1» | 05:22 |
| → MilkmanDan joined | 05:22 |
|
Xliff
| m: "a9873fd1" ~~ /(0[ <xdigit> ** 8 | <xdigit> ** 17 ]) $/; $/say | 05:23 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «=== SORRY!=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> <xdigit> ** 8 | <xdigit> ** 17 ]) $/; $/ ⏏ say  expecting any of: infix infix stopper statement end statemen…» | 05:23 |
|
Xliff
| m: "a9873fd1" ~~ /(0[ <xdigit> ** 8 | <xdigit> ** 17 ]) $/; $/.say | 05:23 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «Nil» | 05:23 |
|
Xliff
| m: "a9873fd1" ~~ /( [ <xdigit> ** 8 | <xdigit> ** 17 ]) $/; $/.say | 05:23 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «「a9873fd1」 0 => 「a9873fd1」 xdigit => 「a」 xdigit => 「9」 xdigit => 「8」 xdigit => 「7」 xdigit => 「3」 xdigit => 「f」 xdigit => 「d」 xdigit => 「1」» | 05:23 |
|
Xliff
| :/ | 05:23 |
|
| ¯\_(ツ)_/¯ | 05:23 |
| ← sisar left | 05:25 |
| ← adu left | 05:29 |
| ← Manifest0 left | 05:29 |
| → Manifest0 joined | 05:35 |
| ← Manifest0 left | 05:40 |
|
tadzik
| woot, lizmat keynote \o/ | 05:42 |
| → Manifest0 joined | 05:44 |
| → formalin14 joined | 05:45 |
| → Sgeo_ joined | 05:45 |
| ← Sgeo__ left | 05:48 |
| ← silug left | 05:53 |
| → silug joined | 05:53 |
| ← Manifest0 left | 05:55 |
| → epony joined | 05:56 |
| ← Sgeo_ left | 05:58 |
| ← jeromelanteri left | 06:00 |
| → Manifest0 joined | 06:01 |
| ← Manifest0 left | 06:09 |
| → Manifest0 joined | 06:13 |
| → ufobat_ joined | 06:23 |
| ← ufobat left | 06:26 |
| ← Manifest0 left | 06:32 |
| → Manifest0 joined | 06:39 |
| ← MasterDuke left | 06:42 |
| → ravenousmoose joined | 06:48 |
| ← [particle] left | 06:50 |
| ← notable6 left | 06:50 |
| ← sftp left | 06:50 |
| ← pierrot left | 06:50 |
| ← matiaslina left | 06:50 |
| ← benchable6 left | 06:50 |
| ← coverable6 left | 06:50 |
| ← ChoppedBacon left | 06:50 |
| ← joy_ left | 06:50 |
| ← zostay left | 06:50 |
| ← albongo left | 06:50 |
| ← riatre left | 06:50 |
| ← Altreus left | 06:50 |
| ← sjn left | 06:50 |
| ← f3ew left | 06:50 |
| ← DarthGandalf left | 06:50 |
| ← wbn left | 06:50 |
| ← spacedbat left | 06:50 |
| ← niceplace_ left | 06:50 |
| ← Seance[m] left | 06:50 |
| ← folex left | 06:50 |
| ← tyil[m] left | 06:50 |
| ← shareable6 left | 06:50 |
| ← committable6 left | 06:50 |
| ← reportable6 left | 06:50 |
| ← cosimo left | 06:50 |
| ← nine left | 06:50 |
| ← hobbs left | 06:50 |
| ← irdr left | 06:55 |
| → irdr joined | 06:56 |
| ← Manifest0 left | 07:08 |
| → domidumont joined | 07:10 |
| → Manifest0 joined | 07:14 |
| ← domidumont left | 07:15 |
| → DarthGandalf joined | 07:16 |
| → wbn joined | 07:16 |
| → spacedbat joined | 07:16 |
| → Seance[m] joined | 07:16 |
| → niceplace_ joined | 07:16 |
| → folex joined | 07:16 |
| → tyil[m] joined | 07:16 |
| → shareable6 joined | 07:16 |
| → committable6 joined | 07:16 |
| → reportable6 joined | 07:16 |
| → cosimo joined | 07:16 |
| → nine joined | 07:16 |
| → hobbs joined | 07:16 |
| card.freenode.net set mode: +vvv | 07:16 |
| ← redhands left | 07:16 |
| → [particle] joined | 07:16 |
| → notable6 joined | 07:16 |
| → sftp joined | 07:16 |
| → pierrot joined | 07:16 |
| → matiaslina joined | 07:16 |
| → benchable6 joined | 07:16 |
| → coverable6 joined | 07:16 |
| → ChoppedBacon joined | 07:16 |
| → joy_ joined | 07:16 |
| → zostay joined | 07:16 |
| → albongo joined | 07:16 |
| → riatre joined | 07:16 |
| → Altreus joined | 07:16 |
| → sjn joined | 07:16 |
| → f3ew joined | 07:16 |
| card.freenode.net set mode: +vvv | 07:16 |
| → domidumont joined | 07:17 |
| ← Manifest0 left | 07:19 |
| → Manifest0 joined | 07:25 |
| ← Manifest0 left | 07:32 |
| → Manifest0 joined | 07:37 |
| → Sgeo joined | 07:38 |
| ← Manifest0 left | 07:44 |
| → Manifest0 joined | 07:49 |
| → zakharyas joined | 07:57 |
| → radek joined | 07:57 |
| → dakkar joined | 07:58 |
| → noisegul joined | 07:58 |
| ← radek left | 08:04 |
| → aborazmeh joined | 08:04 |
| ← aborazmeh left | 08:04 |
| → aborazmeh joined | 08:04 |
| → radek joined | 08:05 |
| ← Manifest0 left | 08:06 |
| → Manifest0 joined | 08:11 |
| ← Manifest0 left | 08:18 |
| → rindolf joined | 08:21 |
| → Manifest0 joined | 08:23 |
| ← zakharyas left | 08:26 |
| ← DarthGandalf left | 08:26 |
| ← wbn left | 08:26 |
| ← spacedbat left | 08:26 |
| ← niceplace_ left | 08:26 |
| ← Seance[m] left | 08:26 |
| ← folex left | 08:26 |
| ← tyil[m] left | 08:26 |
| ← shareable6 left | 08:26 |
| ← committable6 left | 08:26 |
| ← reportable6 left | 08:26 |
| ← cosimo left | 08:26 |
| ← nine left | 08:26 |
| ← hobbs left | 08:26 |
| ← [particle] left | 08:27 |
| ← notable6 left | 08:27 |
| ← sftp left | 08:27 |
| ← pierrot left | 08:27 |
| ← matiaslina left | 08:27 |
| ← benchable6 left | 08:27 |
| ← coverable6 left | 08:27 |
| ← ChoppedBacon left | 08:27 |
| ← joy_ left | 08:27 |
| ← zostay left | 08:27 |
| ← albongo left | 08:27 |
| ← riatre left | 08:27 |
| ← Altreus left | 08:27 |
| ← sjn left | 08:27 |
| ← f3ew left | 08:27 |
| → abraxxa joined | 08:28 |
| ← irdr left | 08:30 |
| → sena_kun joined | 08:30 |
| → patrickb joined | 08:30 |
| → irdr joined | 08:31 |
| ← abraxxa left | 08:33 |
| → f3ew joined | 08:35 |
| → sjn joined | 08:35 |
| → [particle] joined | 08:35 |
| → joy_ joined | 08:35 |
| → ChoppedBacon joined | 08:36 |
| → pierrot joined | 08:36 |
| → notable6 joined | 08:36 |
| → coverable6 joined | 08:36 |
| → benchable6 joined | 08:36 |
| → sftp joined | 08:36 |
| ChanServ set mode: +v | 08:36 |
| ChanServ set mode: +v | 08:36 |
| ChanServ set mode: +v | 08:36 |
| → Altreus joined | 08:36 |
| → zostay joined | 08:36 |
| → nine joined | 08:36 |
| → niceplace joined | 08:36 |
| → wbn joined | 08:36 |
| → cosimo joined | 08:36 |
| → hobbs joined | 08:36 |
| → reportable6 joined | 08:36 |
| → committable6 joined | 08:36 |
| → shareable6 joined | 08:36 |
| ← hobbs left | 08:36 |
| → hobbs joined | 08:36 |
| ChanServ set mode: +v | 08:36 |
| ChanServ set mode: +v | 08:36 |
| ChanServ set mode: +v | 08:36 |
| → spacedbat joined | 08:36 |
| → zakharyas joined | 08:36 |
| Altreus → Guest44051 | 08:36 |
| → riatre joined | 08:37 |
| → matiaslina joined | 08:37 |
| → DarthGandalf joined | 08:37 |
| → folex joined | 08:39 |
| ← ufobat_ left | 08:40 |
| → c1nil joined | 08:40 |
| → Seance[m] joined | 08:41 |
| ← c1nil left | 08:41 |
| → p6doc joined | 08:41 |
| → tyil[m] joined | 08:42 |
| tyil[m] → Guest1109 | 08:43 |
| ← p6doc left | 08:46 |
| → abraxxa joined | 08:49 |
| ← Manifest0 left | 08:54 |
| ← radek left | 08:56 |
| → foldr joined | 08:56 |
| → Manifest0 joined | 09:00 |
| ← ravenousmoose left | 09:01 |
| → ravenousmoose joined | 09:01 |
| ← dakkar left | 09:03 |
| ← Manifest0 left | 09:11 |
| ← f3ew left | 09:14 |
| ← aborazmeh left | 09:15 |
| → Manifest0 joined | 09:17 |
| ← Manifest0 left | 09:26 |
| → bbkr joined | 09:30 |
| → Manifest0 joined | 09:31 |
|
foldr
| Is it possible to give Zef a list of packages and have it create an archive with those packages and all their dependencies in it? | 09:31 |
|
lizmat
| not afaik, but ugexe might know | 09:32 |
|
foldr
| I'm looking for a nice way to deploy a Perl 6 app to a server without running Zef on the server (I want all the dependencies to be inside my app's .deb file). | 09:33 |
| → dakkar joined | 09:35 |
|
moritz
| foldr: docker is the simplest way to do that | 09:35 |
|
foldr
| Oh no, nightmares. | 09:36 |
|
| Ok, I'll figure something out. | 09:36 |
|
| I think I'll just configure Zef to put the packages in a local directory and then ship that with my app. | 09:37 |
|
moritz
| if you writing something similar to dh-virtualenv for Perl 6, that would be very awesome :D | 09:37 |
|
foldr
| If I find the time I'll write a Nixpkgs thing for Perl 6 packages. | 09:37 |
|
| Been on my todo list for a while but it's a lot of work. | 09:39 |
|
El_Che
| foldr: do you have root? | 09:40 |
| ← Manifest0 left | 09:47 |
|
foldr
| Yeah, otherwise I couldn't run apt-get install. | 09:47 |
|
El_Che
| I ask because rakudo is not yet relocable | 09:48 |
|
foldr
| Oh, I'll run it in a chroot anyway, with systemd RootDirectory. | 09:48 |
|
El_Che
| install rakudo-pkg on a staging server, install the needed modules as root in /opt/rakudo-pkg using the included zef and tar /opt/rakudo-pkg | 09:49 |
|
moritz
| didn't somebody make moarvm relocatble? | 09:49 |
|
foldr
| I build Rakudo with Nix so the path will be in /nix/store. | 09:49 |
| ← Black_Ribbon left | 09:49 |
|
El_Che
| ok, you need to build with that path then | 09:49 |
|
foldr
| My .deb file will contain a minimal file system and the Nix store, and I run it with systemd RootDirectory setting which sets up a chroot. :) | 09:49 |
|
El_Che
| (if you want to include the runtime there instead of sysmtewide) | 09:50 |
|
| foldr: no experience with nix so far, more into containers in integration for my apps | 09:50 |
|
| moritz: I think lizmat posted something about it, but I don't know rakudo supports it yet | 09:50 |
|
lizmat
| .ask jmerelo will the rendered chinese documentation also be linked from docs.perl6.org ? | 09:51 |
|
yoleaux
| lizmat: I'll pass your message to jmerelo. | 09:51 |
|
foldr
| El_Che: when you say install the packages with zef into /opt/rakudo-pkg, where would zef get the packages from? | 09:51 |
| → Manifest0 joined | 09:51 |
|
foldr
| If it gets them from GitHub or CPAN then that'd be a problem because I can't deploy when those are down or the package has been deleted. | 09:52 |
|
| Which is why I'd like to have them inside my package when doing a release (failing release is better than failing deploy). | 09:53 |
|
| What I think would work is: the release script calls zef install, with zef configured to store the packages in some specific temporary directory. Then, the release script copies them into the to-be-released archive, together with Rakudo and my own code. | 09:54 |
|
lizmat
| weekly: http://blogs.perl.org/users/ovid/2019/07/the-perl-conference-in-riga.html | 09:55 |
|
notable6
| lizmat, Noted! | 09:55 |
|
foldr
| Thanks for the help, I'll give this a try and see how far I can get :) | 09:57 |
|
| The --contained flag may be helpful as well. | 09:57 |
|
El_Che
| foldr: I was thinking installing in /opt/rakudo-pkg but the provided root zef and create a new deb from /opt/rakudo-pkg. If you want to compile the runtime yourself, it can be off course an other dir | 09:59 |
|
| zef will get the packages from the internet on your staging machine, not on the target host | 10:01 |
|
| you can even remove zef from the dir at package time | 10:01 |
|
foldr
| Is /opt/rakudo-pkg some special directory? | 10:02 |
|
| Ah, I see: https://github.com/nxadm/rakudo-pkg | 10:02 |
|
El_Che
| no, the one that I picked up for compiling rakudo | 10:03 |
|
| the point is that /opt/rakudo-pkg is selfcontained | 10:03 |
|
| all the deps are there | 10:04 |
|
| and the only extra package is zef, which is configured to install in /opt/rakudo-pkg | 10:04 |
|
foldr
| But what about packages from modules.perl6.org? | 10:04 |
|
El_Che
| (root zef, there is also a user zef install script to install libs in your home) | 10:04 |
| ← BuildTheRobots left | 10:04 |
|
El_Che
| /opt/rakudo-pkg/bin/zef install blah | 10:04 |
|
| it will download from there | 10:05 |
|
foldr
| Will it put those modules in /opt/rakudo-pkg too? | 10:05 |
|
El_Che
| yes | 10:05 |
|
foldr
| Ah thanks, makes sense. | 10:05 |
|
El_Che
| the recommended way is a user zef, for most use cases | 10:05 |
|
| but the zef is there for global installs like your use case | 10:06 |
| → BuildTheRobots joined | 10:08 |
|
foldr
| Well I don't want a global installation of Rakudo on my server, because globals are the root of all evil. But since I'm in a chroot I can just put /opt/rakudo-pkg inside the chroot. :) | 10:09 |
|
El_Che
| yeah, it's not ideal for now. Things will get easier | 10:09 |
|
| I'll re-evaluate stuff once rakudo is relocatable. | 10:10 |
|
| for now the usecase I had in my mind was: regular system (os packages), docker (os packages) and build from source for everything else | 10:11 |
| → Sgeo_ joined | 10:11 |
|
foldr
| I'm basically doing Docker except without Docker and with systemd RootDirectory. :D | 10:11 |
|
nine
| El_Che: it's possible to build a relocatable rakudo | 10:11 |
|
El_Che
| nine: that wonderful news | 10:12 |
|
| 's | 10:12 |
| ← Sgeo left | 10:14 |
|
nine
| In fact I think that's even the default nowadays. There's a --no-relocatable Configure.pl flag | 10:14 |
| → jeromelanteri joined | 10:14 |
|
nine
| moritz: I wonder what the need for virtual env is with Perl 6? Considering that we can install multiple versions of a distribution. | 10:14 |
|
El_Che
| nine: I'll experiment with it | 10:15 |
| ← jeromelanteri left | 10:15 |
| ← sena_kun left | 10:15 |
| → jeromelanteri joined | 10:15 |
|
moritz
| nine: isolation | 10:17 |
|
| nine: if I install several applications on one system, I don't want this to mask a missing depencency, for example | 10:17 |
|
El_Che
| I would use this soundtrack: https://www.youtube.com/watch?v=7Mz5AEgE24o | 10:18 |
|
| moritz: I would prefer a system where an app is packaged with all its dependencies, and why not, the runtie | 10:19 |
|
| runtime | 10:19 |
|
moritz
| that's basically what dh-virtualenv does (all libraries, though not the runtime) | 10:20 |
|
El_Che
| well, without the complexity of an extra system | 10:20 |
|
| no magic variables or links | 10:20 |
|
| just like a jar or go binary (if runtime included) | 10:20 |
|
| most *env and *brew system I came across are more of a development thing and not a deployment strategy | 10:21 |
|
foldr
| If your app can run in a chroot then relocatability is not an issue. | 10:23 |
|
El_Che
| yeah, but that doesn't solve the dependency problem. Deploying a jar or go binary is a bless. Deploying python or perl 5 and I want to stab in my own eyes | 10:24 |
|
foldr
| But if it's not, and not being able to relocate, then the trick is simple: use content-addressable storage. | 10:24 |
| ← ravenousmoose left | 10:24 |
|
El_Che
| foldr: the world moved to containers. Drop app, run it. No extra configs needed/desired | 10:25 |
|
foldr
| Yeah that works too, I haven't found a container solution without nightmares. | 10:25 |
|
El_Che
| foldr: I am not saying it's the best, but those are the expectation of people deploying your code | 10:25 |
|
foldr
| I'm not touching Docker with a ten foot pole anymore, I've learned my lesson. | 10:26 |
|
El_Che
| we've been running containers for ages, without trouble | 10:26 |
|
| foldr: use podman | 10:26 |
|
foldr
| But chroot always worked, so I use that. :) | 10:26 |
|
El_Che
| foldr: if you can get it automated on scale, sure | 10:26 |
|
tadzik
| foldr: hehe, what happened? | 10:27 |
|
| (with the lesson) | 10:27 |
| → mowcat joined | 10:28 |
|
El_Che
| (we build images with buildah, and run machines with devs with podman as Docker runtime. Evaluating podman for the Nomad cluster) | 10:29 |
|
foldr
| tadzik: disk filling up with old images, containers not starting, containers not connecting to each other, data being deleted that shouldn't be, and so on. I'm sure there are solutions to these problems, but my favorite solution is to just avoid it altogether. | 10:30 |
|
El_Che
| There is considerable investment to get it right | 10:30 |
|
foldr
| Whereas really the only isolation I want is the file system. | 10:30 |
|
El_Che
| we simplified the network and firewalling setup by using ipv6 | 10:30 |
|
| images are on a artifact server not on the hosts running the container | 10:31 |
|
| so, yes, there is overhead work involved | 10:31 |
| ← daxim left | 10:31 |
| → daxim joined | 10:32 |
|
tadzik
| foldr: nodnod. To be fair, sounds like some of the problems you describe could be attributed to the misuse of docker and friends, but I do agree that docker is a bit tricky to get right and doesn't make the right thing very obvious | 10:32 |
|
| not sure if/what is better than that, docker is the only real experience that I havei | 10:32 |
|
El_Che
| lots of infra required to get it right: load balancer, CI, git repos to tricker img building and deployment, orchestrator, shared storage (if needed), firewalling | 10:34 |
|
| and I am probably forgetting the half | 10:34 |
|
| artefact repository for images | 10:34 |
|
tadzik
| well, you don't neceserilly need all of this, fwiw | 10:34 |
|
| I run a teamspeak server in a docker and it needed none of that :) | 10:35 |
|
El_Che
| security scanner for images (<--- this is nice) | 10:35 |
|
| tadzik: of course, not. I run my home infra on containers and I don't have all that :) | 10:35 |
|
tadzik
| :) | 10:35 |
|
El_Che
| I meant for work-like-setups | 10:35 |
|
tadzik
| my experience doesn't reach far enough for anything inter-host | 10:35 |
|
patrickb
| El_Che, nine: The flag was renamed from --no-relocatable to --relocatable and rakudo defaults to building non-relocatable to not break the loads of edge cases that the relocatable build can not accomodate for. | 10:36 |
|
tadzik
| mostly just boils down to "let's slap this into a docker so it's less annoying" | 10:36 |
|
El_Che
| well, in my experience is better to handle inter container/inter host traffic through the load balancer | 10:36 |
|
| patrickb: thx for the info. Relocable allows to create macos images and linux tar.gz. For the packages itself is it less relevant, I think | 10:37 |
|
| although it would be cool to copy the runtime from the system when packaging an app | 10:38 |
|
| patrickb: are this edge cases known? I can't think of one. | 10:41 |
| ← jeromelanteri left | 10:45 |
|
nine
| patrickb: ah, yes, that fits better with my memory. Tures out I haven't updated rakudo on my laptop for quite a while | 10:52 |
|
| El_Che: yes, they appeared during the phase when relocatability was the default | 10:52 |
| ← Manifest0 left | 10:54 |
| ← patrickb left | 10:56 |
| → Manifest0 joined | 10:59 |
| ← Manifest0 left | 11:03 |
| → Manifest0 joined | 11:09 |
|
bbkr
| hi. will 2019.07 be relased this week? | 11:09 |
|
El_Che
| releasable6: status | 11:10 |
|
releasable6
| El_Che, Next release will happen when it's ready. R6 is down. At least 1 blocker. 666 out of 714 commits logged | 11:10 |
|
| El_Che, Details: https://gist.github.com/fe6fe0769d4bda73426d2bef141e144f | 11:10 |
|
El_Che
| bbkr: it looks it's getting very close | 11:10 |
|
bbkr
| yay, IO::Socket::Async memory leaks fixes incoming :) | 11:12 |
|
tyil
| :o | 11:12 |
|
| hype | 11:12 |
| → ravenousmoose joined | 11:13 |
| → nepugia joined | 11:14 |
| → ufobat joined | 11:14 |
|
tyil
| I have a sub in a module in which I use LogP6, and in the module I call get-logger("s").warn("warning"). if I call the sub, however, I see no output at all, and the docs aren't very clear to me as to why this is | 11:14 |
|
| anyone here who is well versed in LogP6? :p | 11:16 |
| ← Manifest0 left | 11:24 |
| ← zakharyas left | 11:27 |
| → Manifest0 joined | 11:29 |
| → Sgeo__ joined | 11:30 |
| ← Sgeo_ left | 11:33 |
| → patrickb joined | 11:35 |
| ← Manifest0 left | 11:35 |
|
foldr
| How does Perl 6 know what to set $?DISTRIBUTION to? Does it derive the path from PATH6LIB? | 11:36 |
|
| I couldn't find any docs on distribution/resources. | 11:37 |
|
| Although https://docs.perl6.org/language/modules mentions distributions and file system layouts. | 11:38 |
|
patrickb
| El_Che: An example would be building Moar, NQP and Rakudo in separate prefixes. | 11:40 |
|
| Or OpenBSD where relocatability is currently not supported. | 11:40 |
| → Manifest0 joined | 11:41 |
| ← Manifest0 left | 11:49 |
|
foldr
| It seems like it derives the path to the distribution either from the compunit's path or from PERL6LIB. | 11:51 |
| → dolmen joined | 11:51 |
| → gregf_ joined | 11:52 |
|
foldr
| Obviously from the former, yeah. Because PERL6LIB can consist of much more than that. :P | 11:52 |
| ← gregf_ left | 11:53 |
| → Manifest0 joined | 11:54 |
| → [particle]1 joined | 11:57 |
| ← [particle] left | 11:58 |
| ← Manifest0 left | 12:07 |
| → Manifest0 joined | 12:12 |
| ← Manifest0 left | 12:24 |
| → Manifest0 joined | 12:30 |
|
foldr
| p6: my &postfix:«->@*» = { .List }; say [1, 2, 3]->@* | 12:35 |
|
camelia
| rakudo-moar 4eb4c0c79: OUTPUT: «(1 2 3)» | 12:35 |
| ← formalin14 left | 12:38 |
| → formalin14 joined | 12:39 |
|
ugexe
| foldr: each CompUnit::Repository sets it however they know how | 12:42 |
|
| when you do -I . instead of -I lib and there is a META6.json file then the meta6.json data is used | 12:42 |
|
| with -I lib (which isn't pointing at a META6.json file) it must be derived as you noted | 12:43 |
|
| with installed modules it does a variant of the former | 12:45 |
|
foldr
| Ah. I should write a META6.json file. | 12:46 |
| ← Manifest0 left | 12:47 |
|
foldr
| Oh that's really nice, mapping from package names to file names. | 12:50 |
|
| Configuration over Convention :) | 12:51 |
| → cpan-p6 joined | 12:51 |
| ← cpan-p6 left | 12:51 |
| → cpan-p6 joined | 12:51 |
| → Manifest0 joined | 12:52 |
| ← Manifest0 left | 12:57 |
|
foldr
| I wonder why provides entries must include lib/ but resources entries must not include resources/. | 12:59 |
| → Manifest0 joined | 13:01 |
| → lucasb joined | 13:09 |
| ← formalin14 left | 13:09 |
| → zakharyas joined | 13:14 |
| → uzl joined | 13:18 |
|
uzl
| Hello! So I've a quite specific question about the MAIN sub. | 13:20 |
|
| I've put it: https://github.com/uzluisf/question-main | 13:21 |
|
patrickb
| lizmat: ^ That might be one for you. | 13:22 |
| → pamplemousse joined | 13:22 |
|
lizmat
| weird way to ask a question, but will mention it in the P6W :-) | 13:23 |
|
uzl
| This is another question: https://colabti.org/irclogger/irclogger_log/perl6?date=2019-07-15#l140 | 13:23 |
|
| lizmat: Yeah, I could've done here but irc isn't the best for long-ish question | 13:24 |
| → Sgeo_ joined | 13:24 |
|
uzl
| Would SO be a better alternative? | 13:24 |
|
lizmat
| uzl: there is also StackOverflow | 13:24 |
|
| yes | 13:24 |
|
| both questions are prime SO candidates :-) | 13:25 |
|
uzl
| lizmat: I'll do that then. | 13:25 |
|
lizmat
| uzl++ | 13:26 |
|
timotimo
| https://wiki.gnome.org/Projects/Clutter/Apocalypses - is the apocalypse/exegesis/synopsis thing actually common? i first saw it for perl6 | 13:26 |
| ← Sgeo__ left | 13:28 |
|
patrickb
| timotimo: I'm pretty sure it's a Larry invention. | 13:28 |
|
| timotimo: And I can't imagine the clutter guys accidentally came up with the same scheme, so I suspect they copied from p6. | 13:29 |
|
timotimo
| cool | 13:29 |
|
moritz
| and larry stole it from the bible | 13:30 |
| ← Manifest0 left | 13:41 |
| ← zakharyas left | 13:43 |
| → Manifest0 joined | 13:47 |
| → sena_kun joined | 13:51 |
| ← Manifest0 left | 14:06 |
| → natrys joined | 14:09 |
| → Manifest0 joined | 14:11 |
| ← Manifest0 left | 14:16 |
| ← uzl left | 14:21 |
| → Manifest0 joined | 14:21 |
|
| masak .oO( thou shalt not steal [except concepts and digital information, which is basically copying, so it's fine] ) | 14:21 |
|
El_Che
| "Every artist is a cannibal/every poet is a thief/all kill for inspiration/and then sing about the grief." (U2, The Fly) | 14:24 |
|
| :) | 14:24 |
| → Sgeo__ joined | 14:28 |
| ← pamplemousse left | 14:28 |
| ← Sgeo_ left | 14:31 |
|
foldr
| Poets are very good at obscuring their crimes. | 14:34 |
|
El_Che
| foldr: you should meet more Perl 6 programmers | 14:35 |
|
| (who said something about bodies in the closet! Shut up!) | 14:36 |
| → antoniogamiz joined | 14:40 |
| → Sgeo_ joined | 14:41 |
| → mst_ joined | 14:41 |
| ← mst_ left | 14:41 |
| → mst_ joined | 14:41 |
|
ugexe
| foldr: because modules don't have to go into lib/ (although lots of tooling naively expects this) | 14:43 |
|
| resources do have to go into a specific subdir because items under resources/libraries get special naming applied (foo -> libfoo.so) | 14:44 |
| ← mst left | 14:44 |
| ← Sgeo__ left | 14:45 |
|
ugexe
| it is also so a CompUnit::Repository can know where resources are located | 14:45 |
| → zakharyas joined | 14:45 |
| → Sgeo__ joined | 14:46 |
|
ugexe
| when you do -I $some-dir-without-meta6 CompUnit::RepositoryFileSystem assumes resources is in $some-dir-without-meta6.parent.child('resources') | 14:46 |
| mst_ → mst | 14:46 |
| ← Sgeo_ left | 14:50 |
| ← Manifest0 left | 14:50 |
| → molaf joined | 14:51 |
| → Sgeo_ joined | 14:52 |
|
foldr
| ugexe++ thanks! | 14:53 |
| foldr → rfold | 14:55 |
| → Manifest0 joined | 14:55 |
| ← domidumont left | 14:55 |
| ← Sgeo__ left | 14:56 |
|
lizmat
| weekly: https://dev.to/antoniogamiz/work-report-week-7-4dna | 14:57 |
|
notable6
| lizmat, Noted! | 14:57 |
|
antoniogamiz
| noisegul: thanks for the reporting! | 15:05 |
| ← Manifest0 left | 15:06 |
|
antoniogamiz
| s/reporting/report | 15:06 |
| ← __jrjsmrtn__ left | 15:06 |
| → __jrjsmrtn__ joined | 15:11 |
| → pamplemousse joined | 15:11 |
| → Manifest0 joined | 15:12 |
| → Sgeo joined | 15:13 |
|
noisegul
| antoniogamiz: Hey no problem, I'm actually unsure whether I was missing something there, so it's more like a question/report, depending on the situation. | 15:13 |
| ← natrys left | 15:14 |
| → Sgeo__ joined | 15:15 |
| ← Sgeo_ left | 15:16 |
| ← patrickb left | 15:16 |
| ← Sgeo left | 15:17 |
|
antoniogamiz
| noisegul: I have already published a new version that should be installed correctly | 15:20 |
|
| at least in the CI environment it is installed without problems | 15:20 |
|
noisegul
| antoniogamiz: will take a look at it right away :) | 15:21 |
| ← goon_ left | 15:22 |
| ← pamplemousse left | 15:24 |
| Guest44051 → Altreus | 15:26 |
| ← Altreus left | 15:26 |
| → Altreus joined | 15:26 |
| → cxreg joined | 15:27 |
| → pamplemousse joined | 15:27 |
| ← zakharyas left | 15:33 |
|
TreyHarris
| .tell tbrowder No, I'm an idiot (or rather, used a new Git interface I wasn't used to for a thing I don't do often--which is much the same as idiocy, anyway), and for the past year I thought I was pushing to origin when I was pushing to my private fork--nobody dropped any issues for the past year so I didn't notice. I'm trying to unspool them into stuff that can be reviewed easily. Give me a week | 15:43 |
|
yoleaux
| 14 Jul 2019 23:40Z <tbrowder> TreyHarris: ^^^? | 15:43 |
|
| TreyHarris: I'll pass your message to tbrowder. | 15:43 |
| ← Manifest0 left | 15:45 |
| → Manifest0 joined | 15:49 |
| ← pamplemousse left | 15:52 |
| ← molaf left | 15:53 |
| ← rfold left | 15:56 |
| ← abraxxa left | 15:58 |
| ← Manifest0 left | 15:58 |
|
lizmat
| and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2019/07/15/2019-28-perl-6-documentation/ | 15:59 |
| ← dolmen left | 15:59 |
| → Manifest0 joined | 16:05 |
| → dominix__ joined | 16:06 |
|
tbrowder
| TreyHarris: thnx, no rush, just checking! | 16:07 |
|
yoleaux
| 15:43Z <TreyHarris> tbrowder: No, I'm an idiot (or rather, used a new Git interface I wasn't used to for a thing I don't do often--which is much the same as idiocy, anyway), and for the past year I thought I was pushing to origin when I was pushing to my private fork--nobody dropped any issues for the past year so I didn't notice. I'm trying to unspool them into stuff that can be reviewed easily. Give me a week | 16:07 |
| ← Guest1109 left | 16:07 |
| → Guest1109 joined | 16:07 |
| ← dominix_ left | 16:10 |
| ← khisanth_ left | 16:10 |
| ← Manifest0 left | 16:17 |
| → Sgeo_ joined | 16:23 |
| → Manifest0 joined | 16:23 |
| → khisanth_ joined | 16:24 |
| ← sena_kun left | 16:26 |
| ← Sgeo__ left | 16:26 |
| → sena_kun joined | 16:27 |
| ← antoniogamiz left | 16:28 |
| ← dakkar left | 16:33 |
| → redhands joined | 16:35 |
| ← Manifest0 left | 16:44 |
| → Sgeo__ joined | 16:47 |
| → b2gills1 joined | 16:47 |
| → [Sno] joined | 16:48 |
| ← b2gills left | 16:49 |
| → Manifest0 joined | 16:49 |
| ← Sgeo_ left | 16:50 |
| → b2gills joined | 16:50 |
| ← b2gills1 left | 16:52 |
| → b2gills1 joined | 16:53 |
| → cwilson joined | 16:54 |
| ← b2gills left | 16:55 |
| → b2gills joined | 16:56 |
| ← b2gills1 left | 16:57 |
| → b2gills1 joined | 16:58 |
| ← b2gills left | 17:00 |
| → b2gills joined | 17:01 |
| ← b2gills1 left | 17:03 |
| ← redhands left | 17:03 |
| → pamplemousse joined | 17:05 |
| → rfold joined | 17:12 |
| → goon_ joined | 17:18 |
|
pamplemousse
| lizmat++ #p6weekly | 17:19 |
| → domidumont joined | 17:28 |
| → sjm_uk joined | 17:35 |
| → pecastro joined | 17:52 |
| ← domidumont left | 17:53 |
|
Geth
| ¦ problem-solving: AlexDaniel assigned to jnthn Issue Should `without` allow chaining? https://github.com/perl6/problem-solving/issues/63 | 17:53 |
| ← Manifest0 left | 17:54 |
| → Sgeo_ joined | 17:55 |
| ← pecastro left | 17:57 |
| ← Sgeo__ left | 17:58 |
| → Manifest0 joined | 17:59 |
|
Geth
| ¦ problem-solving: AlexDaniel self-assigned [WIP] Decluttering of the language and other things https://github.com/perl6/problem-solving/issues/64 | 18:05 |
| ← Manifest0 left | 18:12 |
| → Manifest0 joined | 18:17 |
| ← sjm_uk left | 18:17 |
| → sjm_uk joined | 18:20 |
| ← Manifest0 left | 18:27 |
| ← sauvin left | 18:28 |
| ← irdr left | 18:31 |
| → Manifest0 joined | 18:34 |
| → irdr joined | 18:37 |
|
tyil
| matiaslina: thanks for the responses on github, I'll continue with playing around tomorrow :) | 18:44 |
| → wildtrees joined | 18:45 |
|
matiaslina
| you're welcome tyil :) | 18:51 |
|
| just ping me if something comes up or leave an issue | 18:51 |
|
tyil
| will most certainly do ^_^ | 18:51 |
|
| if youre interested, I made Matrix::Bot using your Matrix::Client as a base for it (friends asked me to make a Matrix bot instead of an IRC bot) | 18:52 |
|
matiaslina
| already seen that on the weekly | 18:54 |
|
| super cool! | 18:54 |
| ← sena_kun left | 18:55 |
|
matiaslina
| I can drop some tips tonight if you want | 18:55 |
| → sena_kun joined | 18:55 |
|
noisegul
| Are there Rakudo (not Rakudo Star) release builds for Windows currently? | 18:56 |
|
tyil
| matiaslina: would be much appreciated, I dont know Matrix as well as I do IRC :p | 18:58 |
| ← sena_kun left | 18:58 |
| → sena_kun joined | 18:58 |
|
matiaslina
| Will do then ^^ | 19:00 |
|
| I'm trying to keep the docs/ updated with descriptions and examples | 19:00 |
|
| or in the examples/ directory | 19:01 |
|
| so anyone can have some sort of guide :p | 19:02 |
| ← sena_kun left | 19:03 |
| → sena_kun joined | 19:03 |
|
tyil
| for now I'm already happy there's a module at all, so I don't first have to read through the entire API spec to make one :p | 19:13 |
| → redhands joined | 19:16 |
|
AlexDaniel
| tyil: oooooooooooooooooh | 19:20 |
|
| tyil: niiiiiiice | 19:20 |
|
| tyil: how similar is it to IRC::Client ? | 19:21 |
|
tyil
| I'm taking a lot of inspiration from it, making it plugin-based and using multi-subs for handling events | 19:21 |
|
AlexDaniel
| noisegul: no, but this is likely to change a bit later this year | 19:21 |
|
tyil
| I have the tiniest of working prototypes | 19:22 |
|
| https://gitlab.com/tyil/sjon/blob/master/lib/Local/Sjon.pm6#L13 | 19:22 |
|
AlexDaniel`
| test | 19:22 |
|
AlexDaniel
| :S | 19:22 |
|
| the bridge is still very slow | 19:22 |
|
tyil
| matrix.org is very slow | 19:22 |
|
AlexDaniel
| or maybe that, yeah | 19:22 |
|
tyil
| their room told me I shouldn't make use of their api at all because its already overloaded | 19:23 |
|
| (instead of just telling me where their docs are on their request limits) | 19:23 |
|
noisegul
| AlexDaniel: alright, thanks | 19:23 |
|
AlexDaniel
| well… is it possible to run your own bridge, or something? | 19:24 |
|
tyil
| I don't intend to take on the technical debt of setting up matrix | 19:24 |
|
| and then maintaining it | 19:24 |
|
AlexDaniel
| yeah | 19:24 |
|
| I run my own homeserver but maintaining bridges and stuff I don't want to do… | 19:25 |
|
tyil
| besides, there's also some technical issues that I would like to see resolved before considering it | 19:25 |
|
| such as their current inability to trash old logs | 19:25 |
|
| I'm not sure if they understand not everybody is going to rent an enterprise cluster just to chat | 19:25 |
|
matiaslina
| AlexDaniel: you can run your own bridges, but the IRC bridge on matrix.org works great for me, so I don't have the need | 19:31 |
|
AlexDaniel`
| well, have you noticed how slow it is? | 19:32 |
|
| also there was a longstanding bug when some messages were simply not shown | 19:32 |
|
| I think it was related to special characters in nicknames, and that was recently fixed | 19:32 |
|
| but omg that bug was there for a loooooong time | 19:32 |
|
matiaslina
| lol, didn't even check what is the difference on matrix and on irssi | 19:34 |
|
| I dont use irc that much :p | 19:34 |
|
| but yeah, there was some time when the bridge was super buggy | 19:34 |
| ← Manifest0 left | 19:41 |
|
TreyHarris
| Does anyone here happen to know what on GitHub the little box badges on comment lines like "Member", "Owner", etc. are called? "badge" means something else to GitHub. (I know what they're for, I'm looking for wmhat they're called so I can find docs and APIs.) | 19:41 |
|
Xliff
| <bbkr> yay, IO::Socket::Async memory leaks fixes incoming :) | 19:45 |
|
| bbkr: Where did you hear that? | 19:45 |
| → veesh joined | 19:46 |
| → Manifest0 joined | 19:46 |
|
ugexe
| TreyHarris: its something like Organizational Context | 19:48 |
|
TreyHarris
| ugexe: Hmm... I was specifically wondering if the Sponsor button could result in a vanity badge for participants in comment lists or commit lists like "Member" and "Owner", but if it's a "context" I'm guessing not | 19:49 |
| → patrickb joined | 19:50 |
|
ugexe
| thats what it was called in some UI component I used. or rather OrganizationalSomeComponentContext | 19:51 |
| → pecastro joined | 20:11 |
| → Itaipu_ joined | 20:12 |
| ← Itaipu left | 20:12 |
| ← TreyHarris left | 20:14 |
| → TreyHarris joined | 20:16 |
| ← sjm_uk left | 20:18 |
| → Itaipu joined | 20:19 |
| ← Itaipu_ left | 20:19 |
| → molaf joined | 20:23 |
| → Itaipu_ joined | 20:24 |
| ← Itaipu left | 20:25 |
| dominix__ → dominix | 20:26 |
| ← dominix left | 20:28 |
| ← wildtrees left | 20:29 |
| → wildtrees joined | 20:30 |
| ← rfold left | 20:40 |
| ← Manifest0 left | 20:48 |
| → Manifest0 joined | 20:48 |
|
veesh
| is there a recursion limit in perl6? | 20:50 |
| ← robertle left | 20:51 |
|
timotimo
| yeah, your RAM | 20:55 |
|
veesh
| lol | 20:57 |
|
| it doesn't seem to eat up my ram as fast as I thought it would | 20:57 |
|
| learning about ackermann functions | 20:57 |
| → Black_Ribbon joined | 20:58 |
| ← lucasb left | 20:58 |
|
timotimo
| could be because it's slow :( | 20:59 |
|
| the more frames on the stack, the more the GC has to do, but it shouldn't be that bad | 21:00 |
|
patrickb
| vrurg: Do you think you can find some time this week to have another look at the Mac spaces in path problem? | 21:07 |
|
veesh
| timotimo: it seems to run pretty fast, I'll check how slow this sort of thing is meant to be | 21:10 |
|
| i'm memoizing, so i think it doesn't get so bad | 21:10 |
|
| at least in terms of stack frames | 21:10 |
|
masak
| oooh! Ackermann function :D | 21:11 |
| ← Manifest0 left | 21:11 |
|
masak
| I have a real memory about that from my... well, not childhood really, but early formative years | 21:12 |
|
| I grew up with Turbo BASIC (honk if you did, too) | 21:12 |
|
veesh
| i grew up with gamemaker 5.... | 21:13 |
|
| i feel young | 21:13 |
|
masak
| in the standard distribution of Turbo BASIC, there was a file called ACKERMAN.BAS | 21:13 |
| ← patrickb left | 21:14 |
|
El_Che
| isn't .BAS basic? | 21:15 |
|
masak
| it is. | 21:15 |
|
El_Che
| ah, lol | 21:15 |
|
| I read "Turbo Pascal" | 21:15 |
|
masak
| I just downloaded a copy. it has detailed instructions for how to run it. | 21:15 |
|
Xliff
| Is there a perl6 equivalent to the command: "openssl rsautl -decrypt -inkey $keyFile"? | 21:15 |
|
El_Che
| I need to stop fast reading stuff | 21:15 |
|
ugexe
| my first program was in the tile-based workflow programming language in the ps1 game Carnage Heart | 21:15 |
|
masak
| my version, as I reacall it, just had the exclamation "ACKERMANN!" | 21:15 |
|
| I was very confused | 21:15 |
|
| to me as a 12-ish-year-old, the rest of the code was just random math. not sure I even paid attention to the weird recursion in the middle. | 21:16 |
|
El_Che
| I only remember GORILLAS.BAS | 21:16 |
|
masak
| that's QBasic/QuickBasic | 21:16 |
|
Xliff
| masak: *honk* | 21:16 |
|
masak
| El_Che: this was before that | 21:16 |
|
| Xliff: <3 | 21:16 |
|
Xliff
| Ahhh... Delphi and .PAS | 21:17 |
| → Manifest0 joined | 21:17 |
|
Xliff
| What was that.... eventually it all became Borland, right? | 21:17 |
|
masak
| El_Che: I did do some Turbo Pascal too, though. TP was *fast*. both in compilation and in the compiled machine code. | 21:17 |
|
ugexe
| Borland C++ Builder was good | 21:17 |
|
masak
| Xliff: Borland made Turbo BASIC. | 21:17 |
|
| I still have the manuals at home. massive nostalgia value. | 21:18 |
|
Xliff
| masak: Right. They also created Delphi and Turbo Pascal. | 21:18 |
|
masak
| right. | 21:18 |
|
El_Che
| Lazarus was the name on linux later on, I think | 21:18 |
|
masak
| and Anders Hejlsberg is hiding in there somewhere. | 21:18 |
|
Xliff
| Got my first real programming job working in Delphi. | 21:18 |
|
ugexe
| the VCL was great for bangin out windows apps | 21:19 |
|
masak
| looking at ACKERMAN.BAS now, it's pretty clear to me they were using it as a benchmark and not much else | 21:19 |
|
Xliff
| masak: Where are you looking at to see ACKERMAN.BAS? | 21:20 |
|
masak
| maybe also for checking correctness (since they would've known the correct answer to `FNack%(3,6)`) | 21:20 |
|
| Xliff: I googled "ACKERMAN.BAS Turbo Basic" and got a hit on some .ua FTP site | 21:21 |
|
Xliff
| Oh, nice! | 21:22 |
|
| .oO( So why am I getting Bas Ackermann? ) | 21:22 |
|
masak
| Turbo BASIC was _very_ formative for me | 21:23 |
|
| looking back, I must've written hundreds of small programs/games/whatever | 21:23 |
|
| and somewhere even picked up patterns and good-ish habits | 21:24 |
|
| I will forever keep hoping that Dijkstra was wrong about BASIC forever corrupting programmers beyong repair... :P | 21:24 |
|
| beyond* | 21:24 |
|
Xliff
| LOL | 21:24 |
|
masak
| also interesting from a Perl perspective: Turbo BASIC had sigils, but it put them at the end | 21:25 |
|
| I will just note that while I was a BASIC programmer, I never much cared about the sigils. I guess they felt like excessive type annotations to me at the time | 21:26 |
|
| it was definitely possible to just code without them | 21:26 |
|
Xliff
| Wow! It was less than 30 lines! | 21:26 |
|
masak
| yeah. I mean, it's fairly readable. BASIC is an Algol, after all. | 21:26 |
|
| "END IF". boy, does that take me back. | 21:27 |
|
| these days, I spell that `}` :P | 21:27 |
|
Xliff
| Yes. Nice nostalgia hit, but I will keep my Perl6. :P | 21:27 |
|
| And that's one less EC2 action down. I think I'm in the 60's now. | 21:28 |
|
| 64 | 21:28 |
|
| That's out of.... lots. | 21:28 |
|
masak
| oh! interesting tidbit related to that: I believe Dylan got that one right. in Dylan, you can write either `end`, or `end module airport` (repeating the opener) | 21:29 |
|
| meanwhile, in bash: `fi`, `esac` -- a relic from Algol68 | 21:30 |
|
| in many ways we're very much similar to what Algol60 gave us, syntactically. in other ways not... :) | 21:33 |
| ← pecastro left | 21:36 |
| → netrino joined | 21:40 |
|
masak
| re "I will keep my Perl 6" -- yes, of course | 21:42 |
|
| I feel the biggest difference between the BASICs and Pascals back then, even C implementations; and the modern-ish dynamic languages of today: Perl, Python, Ruby, etc -- is that dynamic allocation became a lot more natural and a lot less "ritualistic" | 21:43 |
|
| when the "stigma" of allocation goes away, one is much more likely to allocate something dynamically | 21:43 |
|
| think about JavaScript: just by writing `{}`, you've dynamically allocated a new object on the heap. you hardly felt it. | 21:44 |
|
| significantly, I meet junior programmers daily these days who simply don't consider that cost. to them, a dynamic allocation is no worse than a static one. | 21:45 |
|
Xliff
| m: (15..30).Str.say | 21:47 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30» | 21:47 |
|
Xliff
| Crap. I was hoping to get just the min/max value from that. :/ | 21:47 |
|
| m: (15..30).min.say | 21:51 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «15» | 21:51 |
|
timotimo
| m: (15..30).gist.say | 21:51 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «15..30» | 21:51 |
|
Xliff
| m: (015..030).min.say | 21:52 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «Potential difficulties: Leading 0 has no meaning. If you meant to create an octal number, use '0o' prefix; like, '0o15'. If you meant to create a string, please add quotation marks. at <tmp>:1 ------> (015 ⏏ ..030).min.say  …» | 21:52 |
|
Xliff
| :( | 21:52 |
|
| m: (15.. 30).min.say | 21:52 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «15» | 21:52 |
|
wildtrees
| if .* on m:ex// is matching too much, how do I exclude matching a few characters from .* ? | 21:59 |
|
sena_kun
| .*? | 21:59 |
|
| or do you want something else? | 22:00 |
|
| can you provide an example? | 22:00 |
|
| m: say 'asdf' ~~ m/.*/; | 22:01 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «「asdf」» | 22:01 |
|
sena_kun
| m: say 'asdf' ~~ m/<-[f]>/; | 22:01 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «「a」» | 22:01 |
|
sena_kun
| m: say 'asdf' ~~ m/<-[f]>*/; | 22:01 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «「asd」» | 22:01 |
|
sena_kun
| ^ everything but 'f' | 22:01 |
|
wildtrees
| sena_kun, yea that is working nicely now, thanks | 22:03 |
|
| timotimo pays no respects | 22:03 |
| ← Manifest0 left | 22:10 |
| ← noisegul left | 22:13 |
| → Manifest0 joined | 22:15 |
| ← Manifest0 left | 22:20 |
|
sena_kun
| m: enum A <One Two>; say A('One'); | 22:20 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «(A)» | 22:20 |
|
sena_kun
| what is DWIM here? | 22:20 |
|
| m: enum A <One Two>; say A(A.enums<One>); # hmmm | 22:22 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «One» | 22:22 |
|
ugexe
| m: enum A <One Two>; say +A::Two | 22:22 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «1» | 22:22 |
|
SmokeMachine
| m: use Pod::To::Markdown; use MONKEY-SEE-NO-EVAL; say EVAL "=head bla\n$=pod" | 22:22 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «===SORRY!===Could not find Pod::To::Markdown at line 1 in: inst#/home/camelia/.perl6 inst#/home/camelia/rakudo-m-inst-2/share/perl6/site inst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor inst#/home/camelia/rakudo-m-inst-…» | 22:22 |
|
SmokeMachine
| m: use Pod::To::HTML; use MONKEY-SEE-NO-EVAL; say EVAL "=head bla\n$=pod" | 22:23 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «===SORRY!===Could not find Pod::To::HTML at line 1 in: inst#/home/camelia/.perl6 inst#/home/camelia/rakudo-m-inst-2/share/perl6/site inst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor inst#/home/camelia/rakudo-m-inst-2/sh…» | 22:23 |
| ← rindolf left | 22:26 |
| → Manifest0 joined | 22:27 |
| ← veesh left | 22:27 |
| ← Manifest0 left | 22:45 |
|
Xliff
| How can you set and export and env variable in Perl6? | 22:51 |
| ← pamplemousse left | 22:51 |
| → Manifest0 joined | 22:51 |
| ← Sgeo_ left | 22:54 |
| → Sgeo_ joined | 22:54 |
| ← sena_kun left | 22:59 |
|
vrurg
| .tell patrickb Can't promise, but I think it will be possible. | 23:04 |
|
yoleaux
| vrurg: I'll pass your message to patrickb. | 23:04 |
|
timotimo
| Xliff: you just put it into the env hash, doesn't that work? | 23:04 |
|
Xliff
| No. | 23:07 |
|
| I had to add it to the command line invocation, or my code wouldn | 23:08 |
|
| *wouldn't work | 23:08 |
|
ugexe
| m: %*ENV<FOO> = 42; say qx/echo $FOO/ | 23:10 |
|
camelia
| rakudo-moar 63a4d958e: OUTPUT: «42» | 23:10 |
|
Xliff
| Hmm.... | 23:13 |
|
| OK. I will circle back, later. | 23:13 |
|
| ugexe++ | 23:13 |
|
| .oO( But when I tried it... it didn't work... ) | 23:14 |
|
| https://github.com/Xliff/p6-Amazon-AWS-EC2/commit/ce9ce3bd2da0d8a2cb023802ce27b2d6c1ea0714 | 23:14 |
|
ugexe
| are you spawning a process through nativecall? | 23:14 |
|
Xliff
| No. | 23:14 |
|
| 235,193 lines of Perl6 code in the last 13 months. :) \o/ | 23:15 |
| ← netrino left | 23:22 |
|
timotimo
| haha, what's with the 30 empty lines at the end of META6.json | 23:23 |
|
Xliff
| timotimo: LOL. Somehow those keep getting added when I run the dependencies script. That script the files to META6.json, automatically. | 23:24 |
|
| Thought I had fixed that. :P | 23:24 |
|
| Plus... META6.json is not counted in code line counts. :) | 23:24 |
|
| HAH! Think I found it. | 23:27 |
| → Sgeo__ joined | 23:29 |
|
Xliff
| timotimo: https://github.com/Xliff/p6-GtkPlus/commit/5b384b0482375a2cd1ac0ff3aa88befab1f12ed5 | 23:32 |
| ← Sgeo_ left | 23:32 |
|
timotimo
| :) | 23:32 |
| ← Manifest0 left | 23:37 |
| → [particle] joined | 23:40 |
| ← [particle]1 left | 23:41 |
| → Manifest0 joined | 23:43 |
|
SmokeMachine
| Hi guys! is there a better way to do this? https://github.com/FCO/pulp/blob/master/lib/Pulp/Plugin/PodToMarkdown.pm6 | 23:46 |
|
| it's working, and it's README.md was created with this... but is there a better way to do that? | 23:46 |
|
timotimo
| have you had a look how mi6 does it? | 23:47 |
|
SmokeMachine
| timotimo: no, I haven't! good idea! thank you very much! | 23:47 |
|
| timotimo: it seems to be almost the same (or am I loosing something?) https://github.com/skaji/mi6/blob/master/lib/App/Mi6.pm6#L137 | 23:49 |
|
timotimo
| well, that's a good sign :) | 23:50 |
|
SmokeMachine
| timotimo: but it uses the file name (that I can't, because Im using "memory files"...) | 23:50 |
|
| s/memory/virtual/ | 23:50 |
|
| timotimo: :) | 23:51 |
|
| timotimo: thank you for you help! :) | 23:51 |
|
| vrurg: Hi! was I wrong? wasn't sparrowdo a puppet alternative? | 23:52 |
|
vrurg
| SmokeMachine: No. My point was only to consider if it worth spending llimited resources on something what is already implemented. The key word is 'limited' here. :) | 23:53 |
|
| Yet, anyway: you wanted to implement it and the result is very elegant, to my view! | 23:54 |
|
SmokeMachine
| vrurg: :) thanks... I'm having to use gulp at work, so what the best way to understand it than writing my own gulp? :P | 23:55 |
|
| s/what/what's/ | 23:55 |
| → aborazmeh joined | 23:57 |
| ← aborazmeh left | 23:57 |
| → aborazmeh joined | 23:57 |