🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
timotimo Xliff: if you can reproduce it, can you try if the typical MVM_ env vars change anything? 00:18
i may be of more use tomorrow, not any more today :) 00:19
Xliff Fair enough. 00:22
OK. Before you split, what were those vars again?
timotimo MVM_SPESH_DISABLE, MVM_JIT_DISABLE, MVM_SPESH_INLINE_DISABLE, all individually 00:48
why not also SPESH_OSR_DISABLE and SPESH_PEA_DISABLE just for fun 00:49
Xliff Thanks! 01:03
01:09 klapperl joined 01:10 HoboWithAShotgun left
xinming SmokeMachine: In postgres, There is something like json_column->>'json_key' = 'value' In this case, What is the right ast to generate the json_column->>'json_key'? NOTE, The 'json_key' can not be placeholder, So, It should be passed as literal string. 01:22
Xliff xinming: What does the model look like. Can you post an example? 01:31
01:33 wildtrees left
xinming Xliff: create table test ( id serial, json_column json ); :-) 01:36
Xliff That's not the Red def though, is it?
xinming I have patched version of Red which generates right sql for json
The default Red def doesn't work with postgres jsonb 01:37
json*
Xliff OK, so you need some way to tell Red to generate the json_column, right?
Do you have a fork I can look at? 01:38
xinming I don't have that.
hmm, I created pull request
Xliff: github.com/FCO/Red/pull/404
Xliff: The json/jsonb one need to be patched.
Xliff: I don't mean to generate the json_column, I need the json op in postgres db. 01:39
Let's json, The result sql will be something like, SELECT ... FROM ... WHERE json_column->>'json_key' = 'value';
Xliff Yeah, that's probably beyond my current understanding of Red... sorry. 01:42
xinming: Yeah, you will have to talk to SmokeMachine about that. 01:51
It looks like that has to be done by .translate 01:52
02:40 pdcawley left, pdcawley joined 02:41 cpan-raku left 02:43 cpan-raku joined, cpan-raku left, cpan-raku joined 02:44 pdcawley left 02:53 rindolf joined
rindolf hi all 02:53
03:29 colomon_ joined, colomon left, colomon_ is now known as colomon 03:42 wtwt5237 joined
wtwt5237 could someone please help me with zef? I installed perl6, and cannot find it under /bin? 03:43
sorry if I am missing something obvious.
03:44 hythm joined
rindolf wtwt5237: hi 03:46
wtwt5237: how did you install perl6? 03:47
hythm wtwt5237, I install rakudo with `rakudobrew build moar-blead`, then I nstall zef with 'rakudobrew build zef`, then I find zef in ` /home/hythm/.rakudobrew/versions/moar-blead/install/share/perl6/site/bin/zef ` 03:48
wtwt5237 thanks! 03:49
hythm, let me give that a try. thanks! 03:50
hythm np, I also add rakudobrew bin directory to $PATH as instructed in rakudobrew README.md 03:51
Xliff You can do 'rakudobrew mode shims' and not have to worry about $PATH if you have the environment set correctly. 03:53
hythm good to know 03:58
Xliff :) 04:00
good night! ;)
04:00 Xliff left
hythm gn 04:00
wtwt5237, I think you need to switch to moar-blead `rakudobrew switch moar-blead` before installing zef
wtwt5237 trying these. thanks all! 04:01
04:08 kurahaupo joined 04:45 wtwt5237 left 05:14 hythm left 06:09 jmerelo joined
jmerelo releasable6: status 06:09
releasable6 jmerelo, Next release will happen when it's ready. There are no known blockers. 248 out of 463 commits logged (⚠ 9 warnings)
jmerelo, Details: gist.github.com/bf470eba700c1eb866...ac51539b1b
06:09 sena_kun joined, jaldhar joined 06:10 jaldhar left, jaldhar joined 06:12 jaldhar left, jaldhar_ joined 06:25 jaldhar_ left 06:26 jaldhar_ joined 06:44 xkr47 left 06:49 wamba joined 06:55 jaldhar_ left 06:56 jaldhar_ joined 06:59 jaldhar_ left 07:00 jaldhar_ joined
SmokeMachine xinming: I think it could be something like: `Red::AST::JsonItemStr.new: .json-column, ast-value “json-key”` 07:09
07:12 stoned75 left
SmokeMachine xinming: but I think it’ll need a specific translation for that ast... that could be something like: `multi method translate(Red::AST::JsonItemStr $_, $context?) { my ($lsql, @l) := do given self.translate: .left, $context { .key, .value }; my ($rsql, @r) := do given self.translate: .right, $context { .key, .value }; “{ $lsql }->>{ $rsql }” => [|@l, |@r] }` 07:19
And the column’s AT-KEY will need to return a rw container... 07:24
And do something like this to be possible to be used on update: github.com/FCO/Red/blob/master/lib...te.pm6#L16 07:26
xinming: ^^
xinming: I think we’ll need to change the update a little... the key expect to be a column name, but should be an AST... 07:29
07:29 Altai-man_ joined 07:32 sena_kun left 07:34 mid_home left 07:35 jmerelo left 07:38 xkr47 joined
SmokeMachine xinming: here: github.com/FCO/Red/blob/master/lib...eq.pm6#L70 07:38
xinming: github.com/FCO/Red/blob/master/lib...ate.pm6#L8 07:40
07:41 linfir joined
SmokeMachine xinming: and here: github.com/FCO/Red/blob/master/lib...L.pm6#L651 07:42
07:44 Altai-man_ left 07:50 wbn joined 07:54 sena_kun joined 07:59 linfir left 08:01 wamba left
ZzZombo m: 'asd' ~~ /<ident>/ 08:03
camelia ( no output )
08:10 kurahaupo left 08:11 kurahaupo joined 08:19 sena_kun left 08:27 kensanata joined 08:28 pdcawley joined 08:32 pdcawley left 08:51 wamba joined
ZzZombo m: say 'asd' ~~ /<ident>/ 08:53
camelia 「asd」
ident => 「asd」
ZzZombo "<ident>Identifier. Also a default rule." -- what does it mean? 08:55
08:56 wamba left 09:06 wamba joined 09:13 daxim left 09:16 mid_laptop joined, daxim joined 09:21 wamba1 joined 09:22 wamba left 09:30 ufobat joined 09:36 wamba1 left 09:39 wamba joined
ZzZombo m: my $a = 'asd'; say 'asd' ~~ /<.$a>/ 10:09
camelia 「asd」
ZzZombo m: my $a = 'asd'; say 'asd' ~~ /<$a>/ 10:10
camelia 「asd」
ZzZombo huh, this works.
m: my $a = 'asd'; say 'asd' ~~ /{$a}/
camelia 「」
10:20 wamba left 10:22 abraxxa joined
abraxxa I'm trying to write a grammar for FireHol firewall rule definitions and might found a parser bug 10:22
10:23 Wahnberger joined
Wahnberger Hi there: is the an elegant way to get the last part of a string, splitted by an given seperator? 10:23
10:23 wamba joined
Wahnberger something like: my $foo = $d.Str.split( / \\ / ).last; 10:23
abraxxa paste.scsys.co.uk/587097 10:24
the commented token was my first try that doesn't work
10:35 sena_kun joined, wamba left 10:52 wamba joined 10:54 mid_laptop left 10:55 wamba left 11:02 wamba joined 11:05 daxim left 11:10 daxim joined 11:29 Altai-man_ joined 11:32 sena_kun left
Juerd Wahnberger: If you use 'tail' instead of 'last', that should work :) 11:36
lizmat also, if you want the last N, you can do .tail(N) 11:37
Wahnberger ahh :) 11:39
11:47 jaldhar_ left 11:48 jaldhar_ joined 11:49 jaldhar_ left
lizmat conversely, if you only want the first, you can do .head 11:50
11:50 jaldhar_ joined
lizmat and .head(N) for the first N 11:50
also, if you want a certain number of elements: 11:51
you can just treat the result of split as an array 11:52
m: dd "123456789".comb[5,0,7]
camelia ("6", "1", "8")
11:53 jaldhar_ left 11:54 jaldhar_ joined
Wahnberger is head inside similar to a perl split like (split(/ bla /))[1] ? 11:54
and tail
slice..in perl 11:55
11:55 jaldhar_ left 11:56 jaldhar_ joined
lizmat head / tail are methods on Seq uences 11:56
many method produce them
*methods
$filename.IO.lines is one of them
$filename.IO.lines.head(3)
will give you the first 3 lines of the file indicated by $filename 11:57
Wahnberger i see
lizmat so nothing specific about split
it's just a method that produces a Seq
Wahnberger saved 3 lines of code now :D 11:58
11:58 mid_laptop joined 12:03 jaldhar_ left 12:04 jaldhar_ joined 12:05 jaldhar_ left 12:06 jaldhar_ joined 12:07 jaldhar_ left 12:08 jaldhar_ joined
jjatria How can you get a key / value slice from a Hash? I'm thinking of something like `%foo{qw( a b c )}` in Perl 12:25
Altai-man_ can you provide an example of input/output?
jjatria Sure, one second 12:26
Altai-man_ m: my %foo = a => 42, b => 50; say $_ => %foo{$_} given 'a';
camelia a => 42
Altai-man_ or, hmm, do you want slicing?
jjatria Well, I'm after what in Perl is called a slice, but not just for keys _or_ values, but for both 12:27
Altai-man_ m: my %a = a => 32, b => 50; say %a<a b>;
camelia (32 50)
jjatria So, closer to what you posted first
Altai-man_ ah, ok
jnthn m: m: my %a = a => 32, b => 50; say %a<a b>:kv;
camelia (a 32 b 50)
jnthn m: m: my %a = a => 32, b => 50; say %a<a b>:p;
camelia (a => 32 b => 50)
jnthn Depending on whether you want a flat view of Pair objects
*or Pair objects
jjatria Oh, perfect. Thanks! 12:28
ZzZombo m: say '/etc/passwd'.IO.slurp 12:36
camelia bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
ftp:x:40:49:FTP account:/srv/ftp:/bin/bash
games:x:12:100:Games account:/var/games:/bin/bash
lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
mail:x:8:12:Mailer daemon:/var/sp…
12:38 mid_laptop left
ZzZombo m: say '/etc/shadow'.IO.slurp 12:39
camelia Failed to open file /etc/shadow: Permission denied
in block <unit> at <tmp> line 1
12:43 lucasb joined 12:45 wamba left, jaldhar_ left 12:46 jaldhar_ joined 13:04 mid_laptop joined 13:09 daxim left
lizmat *phew* :-) 13:11
13:16 daxim joined 13:26 lizmat_ joined 13:27 jaldhar_ left 13:28 jaldhar_ joined 13:30 jaldhar_ left, jaldhar_ joined, lizmat left
Wahnberger how can i get the http status code from a Cro Get? I thought something like that would work but doesnt: my $head = await $resp.head; (works) and then say $head{"status"}; (wont work)? 13:30
13:30 sena_kun joined
Wahnberger it says "Type Cro::HTTP::Response does not support associative indexing." 13:30
13:32 Altai-man_ left
lizmat_ $head.status ? 13:32
13:33 lizmat_ is now known as lizmat
Wahnberger args :/ 13:33
13:34 mid_laptop left
timotimo o/ 13:35
ZzZombo m: :our $a = 'a' 13:37
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3:our7⏏5 $a = 'a'
expecting any of:
infix
infix stopper
statement end
statement modifier
statement…
ZzZombo m: sub a { :our $a = 'a' }
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3sub a { :our7⏏5 $a = 'a' }
expecting any of:
infix
infix stopper
statement end
statement modifier
ZzZombo m: token a { :our $a = 'a' } 13:38
camelia Potential difficulties:
Useless declaration of a has-scoped method in mainline (did you mean 'my token a'?)
at <tmp>:1
------> 3token 7⏏5a { :our $a = 'a' }
ZzZombo m: my token a { :our $a = 'a' }
camelia ( no output )
ZzZombo m: :our 13:50
camelia WARNINGS for <tmp>:
Useless use of ":our" in sink context (line 1)
ZzZombo m: :our.say 13:51
camelia our => True
[Coke] m: given .WHAT for {} # but there IS a block. 13:52
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3given .WHAT for 7⏏5{} # but there IS a block.
13:57 wamba joined
Wahnberger is there a way to split a multiline output which i get from a qqx{} shell command into an array? 13:57
13:57 jaldhar_ left 13:58 jaldhar_ joined
[Coke] .lines ? 13:58
m: "hi\nthere\nfriend".lines.say
camelia (hi there friend)
[Coke] m: dd "hi\nthere\nfriend".lines 13:59
camelia ("hi", "there", "friend").Seq
14:00 mid_laptop joined
Wahnberger :) 14:00
..hard to learn and then easy to use..
14:13 jaldhar_ left 14:14 jaldhar_ joined
lizmat Wahnberger: well, once you realize you can use .lines on IO objects as well as strings, as well as on supplies 14:18
and know there is a .words method as well
you should expect to be able to use .words the same way everywhere as well
AlexDaniel uuuuhhhhhhhh 14:20
timotimo heyo AD 14:21
AlexDaniel processing output from tools can be a bit more difficult
abraxxa how can i match any word but not 'custom' in a grammar?
AlexDaniel I don't even remember what's the right way to do it, is it .split(“\n”) ?
timotimo <!before "custom">\w+
AlexDaniel it's definitely not .lines 14:22
abraxxa i've read about lookahead assertion but that doesn't help as I don't want to match something based on what is before or after it
AlexDaniel or is it .lines if you run it on .IO but not strings?
timotimo what you want is to reject matching a thing if it was a thing
which is equivalent to matching something and then refusing the match when at its end there's a thing you don't like in front of the match position
AlexDaniel lizmat: and that's the thing, you can realize it, of course, but it does different things, if I'm not mistaken
abraxxa timotimo: hm...hard to grasp but it seems to work, thanks! 14:23
AlexDaniel like
m: say “foo\rbar”.lines[0]
camelia foo
AlexDaniel I think it doesn't do that on IO stuff, but I'm not sure 14:24
timotimo splitting by /\n/ will do "smart" newline stuff
splitting by /\x[a]/ (or whatever the ascii code for newline is) will only accept the actual \n character 14:25
lizmat right
afaik :-)
AlexDaniel what do you mean right
abraxxa is there a way to define the same regex for multiple different named tokens or rules? 14:26
i've defined a quoted-string token which i use in some other named tokens but don't want it to show up in the match object
as it's just a helper token
lizmat define it as a regex, and use that ?
AlexDaniel m: dd “foo\r\nbar”.split(/\x[A]/) 14:27
camelia ("foo\r\nbar",).Seq
AlexDaniel so clearly that didn't split by \n
timotimo, lizmat: this is something we actually have to fix in the language, somehow 14:29
timotimo \r\n is not \n
just like ä isn't a
blame the unicode consortium
14:29 jaldhar_ left
timotimo all we can do is document better or unconfuse in some other way 14:30
14:30 jaldhar_ joined
AlexDaniel what does unicode consortium has to do with processing output from qqx 14:32
we have to actually make it possible, not document the excuses
maybe it's already possible, I don't remember 14:33
14:35 jaldhar_ left 14:36 jaldhar_ joined
lizmat it's the unicode consortium, afaik, who decided that \r\n is a single codepoint 14:37
14:37 abraxxa left
lizmat different from \r and \n 14:37
AlexDaniel lizmat: it has nothing to do with how you process output from unix commands 14:38
14:38 daxim left
AlexDaniel in which case the output is separated with \n, that's it 14:38
[Coke] wonders why "it's definitely not lines" 14:41
AlexDaniel [Coke]: well, it depends. What are you processing? Is it purely text, or some \n-separated output? The latter is very common 14:42
[Coke]: looking at docs.raku.org/type/Proc::Async
“whenever $proc.stdout.lines { # split input on \r\n, \n, and \r”
El_Che lo
AlexDaniel pretty sure I wrote that comment
because it drives me crazy :) 14:43
14:43 daxim joined, jaldhar_ left 14:44 jaldhar_ joined
AlexDaniel actually, makes me wonder if that's what it actually does 14:44
maybe the comment is wrong 14:45
no, the comment is right :) 14:47
jnthn Probably Blob wants to have a `.split`
[Coke] even though .lines splits on more than just \n, if you're not expecting random \r characters, why not use it?
timotimo \r\n being a grapheme gives a little bit of friction with old-timey tools
14:47 jaldhar_ left
jnthn I suspect for every time there are \r's that are undesirably eaten by .lines, there's thousands more times where the result of using .lines is that one's code is portable if run on Windows. 14:48
14:48 jaldhar_ joined
[Coke] jnthn++, right. 14:48
timotimo don't forget you can use :v to get the thing back that was split on
AlexDaniel … absolutely wrong
timotimo with split, but not with lines
if you .lines on an IO with :!chomp, do the line endings stay with the line strings? i would expect them to.
jnthn Probably, yes. 14:49
AlexDaniel you guys go try to process output of something, then struggle once you get \r, then say this nonsense
timotimo unix tools don't output text, they output "text" :P 14:50
AlexDaniel when you're processing output of some tool, you're typically expecting the line to be in some format
once you get \r in there, it splits the line in half
timotimo i wonder if changing the .in-nl on Proc::Async's pipes by default is more wtf than dwim 14:51
and maybe \r\n and \n is a saner selection than \r \r\n and \n 14:52
AlexDaniel it's not…
14:52 abraxxa joined
AlexDaniel but we should only have two sets of options, that's right 14:52
jnthn No, the sane thing to do is to work at byte level if you're actually processing output that should be treated as an octet stream
And we should make that easier 14:53
14:53 abraxxa left
timotimo unix: text is the ultimate exchange format 14:53
unicode consortium: hold my beer
jnthn :)
timotimo but yes, 100% on Blob.split
14:54 abraxxa joined 14:55 abraxxa left 15:08 abraxxa joined 15:09 abraxxa left 15:23 jaldhar_ left 15:24 jaldhar_ joined 15:29 Altai-man_ joined 15:32 sena_kun left 15:35 jaldhar_ left 15:36 jaldhar_ joined 15:37 ggoebel joined, jaldhar_ left 15:38 jaldhar_ joined, rindolf left 15:55 jaldhar_ left 15:56 jaldhar_ joined 16:07 jaldhar_ left 16:08 jaldhar_ joined 16:27 jaldhar_ left 16:28 jaldhar_ joined
lizmat m: for ^1000000 { my %h = a => 42, b => 666 }; say now - INIT now 16:30
camelia 2.11986731
lizmat m: class A { has $.a; has $.b }; for ^1000000 { my $obj = A.new(a => 42, b => 666) }; say now - INIT now 16:31
camelia 0.4957836
lizmat morale: don't use hashes as fake objects in Raku, it's 4x as slow as using classes / objects
16:35 wamba left
[Coke] lizmat: nice. 16:36
lizmat same goes for accessors: 16:37
m: my %h = a => 42, b => 666; for ^10000000 { my $a = %h<a> }; say now - INIT now
camelia 0.72105429
lizmat m: class A { has $.a; has $.b }; my $obj = A.new(a => 42, b => 666); for ^10000000 { my $a = $obj.a }; say now - INIT now
camelia 0.5161566
lizmat feels like material for a blog post 16:40
perhaps an advent post ?
AlexDaniel lizmat: damn 16:47
AlexDaniel rewrites a bunch of code
:D
I wonder…
6c: class A { has $.a; has $.b }; for ^1000000 { my $obj = A.new(a => 42, b => 666) }; say now - INIT now 16:48
Geth doc: bafa925464 | finanalyst++ | doc/Language/compilation.pod6
new compilation tutorial
16:49
committable6 AlexDaniel, gist.github.com/b68f2aa208fd71f31f...dce2a5a6ab 16:51
AlexDaniel 6c: for ^1000000 { my %h = a => 42, b => 666 }; say now - INIT now
timotimo once hashes that don't escape are translated to sets of registers, creating hashes and not using them will be ridiculously fast, and this benchmark if used exactly as shown will become very misleading 16:52
16:53 finanalyst joined
brass lizmat: that seems like it would be a good blog post, it's good to know 16:53
16:54 joule joined
[Coke] yah, any optimizations that go into NQP to make things faster need to be revisted as other things are made faster, neh? 16:54
finanalyst hi all, an apology. I just drafted a new tutorial for the docs on compilation based on a talk by niner. But by mistake I commited it rather than posting as a PR 16:55
brass Is there a doc that explains what nqp does and how it fits in with rakudo and moarvm?
committable6 AlexDaniel, gist.github.com/e45da1c5e2f3387f44...32efc186bc
timotimo no problem, git makes it easy to revert stuff 16:56
brass I want to learn more about how they all fit together
finanalyst timotimo: I don't quite know how to revert it from the main repo
timotimo it's just the one commit, right?
finanalyst yse
yes
last one
timotimo in that case just "git revert master" will do it
lizmat finanalyst: but you didn't push yet, right ? 16:57
finanalyst github.com/perl6/doc/commit/bafa92...0c87b62c0a
timotimo i see the commit notification up there
lizmat ah, ok, you did push
finanalyst lizmat: yep. it was a mistake. I thought I was push ing to my forked repo
16:58 jaldhar_ left, jaldhar_ joined 16:59 jaldhar_ left
finanalyst would someone please tell me how to reverse my commit? 17:00
17:00 jaldhar_ joined
Grinnz git-revert, as timotimo said 17:00
it will create a new commit reversing the commit (you can't change history you've pushed) 17:01
Geth doc: eb0c073de5 | finanalyst++ | doc/Language/compilation.pod6
Revert "new compilation tutorial"

This reverts commit bafa9254643d3dca86e8bed2bc58ab0c87b62c0a.
17:02
finanalyst OK done. I'll make a PR now. 17:03
17:04 mid_laptop left
Grinnz now is a good time to do it on a branch instead of master, too ;) 17:04
17:09 wamba joined 17:13 jaldhar_ left 17:14 jaldhar_ joined
Geth doc: finanalyst++ created pull request #3082:
new compilation tutorial
17:16
17:27 jaldhar_ left 17:28 jaldhar_ joined 17:30 sena_kun joined 17:32 Altai-man_ left 17:39 finanalyst left 17:43 jaldhar_ left 17:44 jaldhar_ joined 17:47 jaldhar_ left 17:48 jaldhar_ joined 17:51 kensanata left 17:59 jaldhar_ left 18:00 jaldhar_ joined 18:03 jaldhar_ left 18:04 jaldhar_ joined 18:07 chloekek joined 18:21 mid_home joined 18:25 cpan-raku left 18:26 cpan-raku joined, cpan-raku left, cpan-raku joined 18:29 jaldhar_ left 18:30 jaldhar_ joined 18:35 wamba left 18:36 wamba joined 18:56 ufobat left 19:11 Xliff joined
Xliff o/ 19:11
timotimo: On github.com/Xliff/p6-GtkPlus/issues/40
19:11 jaldhar_ left
Xliff timotimo: Setting MVM_SPESH_DISABLE=1 fixes the issue 19:12
19:12 jaldhar_ joined
Xliff timotimo: Setting MVM_SPESH_DISABLE=1 fixes the issue 19:13
oops
MVM_SPESH_INLINE_DISABLE also works
SPESH_OSR_DISABLE and SPESH_PEA_DISABLE have no effect. 19:15
Thanks!
19:15 jaldhar_ left 19:16 jaldhar_ joined 19:17 mla joined 19:18 jaldhar_ left, jaldhar_ joined
timotimo can you check if setting MVM_SPESH_NODELAY makes the problem appear much quicker? 19:19
Xliff Setting MVM_SPESH_NODELAY also eliminates the issue 19:22
timotimo hm. interesting 19:26
19:27 lichtkind left, jaldhar_ left 19:28 jaldhar_ joined 19:29 jaldhar_ left, Altai-man_ joined 19:30 jaldhar_ joined 19:32 sena_kun left
timotimo do we have something nice for "give me an array shallow-cloned from this other array, except index X should have object A in it? 19:35
javascript has the wordy-but-working Object.assign({}, [...arr], {[X]: A}) 19:36
i'd like something that can also work with something immutable
19:37 Xliff left 19:42 jaldhar_ left, jaldhar_ joined 19:45 jaldhar_ left 19:46 jaldhar_ joined 19:49 jaldhar_ left 19:50 jaldhar_ joined, daxim left 19:52 wildtrees joined
Kaiepi m: sub clone-with-replacement-at(@arr, Int:D $idx, Mu $obj is raw) { @arr.WHAT.new: |@arr[0..$idx-1].clone, $obj, |@arr[$idx+1..*].clone }; say clone-with-replacement-at [1,2,3,4,5], 2, 42 19:53
camelia [1 2 42 4 5]
Kaiepi something like this timotimo ?
19:55 daxim joined
wildtrees what does that : | notation do? 19:55
19:57 patrickb joined, jaldhar_ left
Kaiepi | makes a Slip out of the array given, : does a method call in this case 19:58
m: sub clone-with-replacement-at(@arr, Int:D $idx, Mu $obj is raw) { @arr.WHAT.new: |@arr[0..$idx-1].clone, $obj, |@arr[$idx+1..*].clone }; say clone-with-replacement-at((1,2,3,4,5), 2, 42).^name
camelia List
19:58 jaldhar_ joined
timotimo i was hoping for something shorter, not longer :D 19:58
Kaiepi hm 19:59
timotimo not that big a deal 20:01
though the javascript version of that code also allows an arbitrary amount of replacements at once
jnthn I'm pretty sure the .clone ain't needed there
If you're slicing then you're already getting a List back 20:02
timotimo right
jnthn Also, 0..^$idx instead of -1, and $idx^..* on the other side :)
Also, no need for .WHAT.new, just .new 20:03
timotimo and probably head($n) and tail(* - $n) maybe
jnthn That's at lesat some saving :)
20:03 jaldhar_ left 20:04 jaldhar_ joined 20:05 jaldhar_ left 20:06 jaldhar_ joined 20:08 jaldhar_ left, jaldhar_ joined
patrickb o/ 20:08
tellable6 2019-11-07T08:40:24Z #raku-dev <El_Che> patrickb: thank you for your work. I think we are in the same page. I was also thinking on building on CentOS 6
2019-11-07T08:41:45Z #raku-dev <El_Che> patrickb: we need to add macos instructions once we try that out
patrickb El_Che: I hope we'll manage to make the upcoming release the first that also offers precompiled archives. 20:10
El_Che Good plan. I would like to add relocatble .tar.gz to rakudo-pkg, maybe have a look at mac and win as well. Depending on time 20:15
patrickb What's still to be decided is how we promote those precompiled releases on the website. 20:17
El_Che patrickb: I think there is a use case for precompiled packages (certainly if in a repo) and precompiled tar.gz 20:20
patrickb I'd guess we somehow need to put that on rakudo.org/files. Ugh, some more opitions are listed on raku.org/downloads (including your rakudo-pkg packages). Those pages really need some tidying and streamlinification.
El_Che yes, they are ajungle
patrickb Step 1. - Find out who is to decide on how the website can change. 20:22
Step 2. - Find someone with a website affinity.
El_Che we're also in a situation where more distributions have rakudo
patrickb I think the raku.org download page needs to go. It should just link to rakudo.org and have a sentence or two about potential alternative implementations. 20:24
El_Che Download should be in one page, in my view yes. And as long there aren't competing compilers, there is no need to complicate things 20:25
20:26 daxim left
patrickb Also when we have multiple compilers it's clearer when the different implementations have their own download page on their own domains. raku.org is not about implementations. 20:27
And then I'd remove the words "official" and "3rd party" from the download page. Just offer downloads and don't classify them. 20:28
20:31 daxim joined
patrickb is the rakudo.org repository seriously placed in the perl6 org?!? github.com/perl6/rakudo.org 20:31
timotimo well, for anything in the rakudo org you need a CLA i believe? 20:33
if you want a commit bit
20:33 jaldhar_ left 20:34 jaldhar_ joined 20:41 dumarchie joined
dumarchie Hi, can anyone tell me how to re-export an enum? 20:41
I would expect it to be a common use case for a role to export an enum and for a class implementing the role to re-export the enum. 20:44
timotimo you'd do it the same way you re-export anything else, i believe 20:45
our TheEnum is export = OtherPackage::TheEnum perhaps? i'ven't done this yet 20:46
AlexDaniel patrickb: regarding step 1, you decide. If you feel that others may object, then you submit it as a PR to the problem-solving repo 20:47
timotimo: you don't need to sign CLA for rakudo.org changes
dumarchie I tried sub EXPORT, the enum symbol is exported but the enumerated values are not. 20:48
timotimo yes because it's in the perl6 org on github :)
AlexDaniel yep
timotimo ah, i see
it's probably not enough to simply "import TheEnum;" in the class body
rba patrickb: I think too we need to make it more simple for the people to fine the releases. 20:49
timotimo actually, i think you can't put an "our" scoped thing into a role?
AlexDaniel timotimo: ah, I misread the conversation, that's exactly what you said :)
AlexDaniel runs away
timotimo no you will stay here and atone for your sins
just one tone will be enough
rba patrickb: And we need to just offer all the options, src, pkgs and star vx. plain rakudo.
patrickb rba: Just what I think.
AlexDaniel screams in F sharp 20:50
rba AlexDaniel: I had to sign a CLA, but I don't have access to rakudo org in github... Hmmm....
patrickb I suspect just flying under the radar and doing the changes to the websites directly will be a lot less hassle than going through problem-solving...
AlexDaniel
[Coke]: can you confirm that rba signed a CLA? 20:51
rba patrickb: If you like you create a PR and I setup a separate hosting based on the PR, then we can fiddle arround till we feel fine and repleace the prod ones...
El_Che CLA sounds so ORacle :)
patrickb rba: I like that idea 20:52
AlexDaniel patrickb: that's right, and you can always do it later if people start complaining :)
dumarchie "import TheEnum;" in the class body does not work indeed
patrickb I'll try to put something together.
rba: On a different topic. Can you imagine making that MacOS of yours somehow available for testing and release work for raku devs? 20:53
rba patrickb: You mean ssh access? 20:54
patrickb: On the mac?
patrickb ssh would be the obvious choice, yes.
rba: It was you talking about a MacOS mini catching dust, was it? 20:55
rba patrickb: As the idea came up with running Blin on it as well and now ssh access, I have to extend my DMZ first. But yes why not. Just don't use all my bandwith... :-)
El_Che patrickb: travis has mac builds, looking at it for creating pkgs
rba patrickb: Yes. I wanted to have a look at the macmini this weekend. 20:56
patrickb El_Che: That'd be a nice solution.
rba crosses fingers to have time.
AlexDaniel rba: not sure if you've seen my answer: colabti.org/irclogger/irclogger_lo...11-07#l183
ah, a bit earlier even: colabti.org/irclogger/irclogger_lo...11-07#l165 20:57
rba Realised github actions could start own runners, then I started thinking...
patrickb rba: No hurries.
rba AlexDaniel: Need to check, but thought that mac is 64 bit. 20:58
AlexDaniel rba: sure, but it doesn't mean you'll be able to run linux binaries there
rba AlexDaniel: ack 20:59
El_Che rba, AlexDaniel : I can follow the mac, 64-bit, linux statements
rba's mac will only be for testing 64-bit macos 21:01
32-bit can be easily run on 64-bit docker
AlexDaniel oh 21:02
that's interesting
rba Again, what is not 32-bit? Blin itself?
El_Che This is how I create my 32-bit base images: github.com/nxadm/rakudo-pkg/blob/m...baseimg.p6
rba didn't got the point.
AlexDaniel rba: don't worry about it, I mentioned 32-bit builds just because currently we're not checking for regressions on 32-bit archs 21:03
El_Che AlexDaniel: I use these images in rakudo-pkg: hub.docker.com/r/nxadm/ubuntu-i386/tags
AlexDaniel rba: once we have blin running automatically at least on one architecture, we can think how to extend that :)
El_Che There are not many i386 users though
AlexDaniel El_Che: but… arm? 21:04
KotH El_Che: we are many!
El_Che I offer 32-bit packages mostly for the case that devs want to test stuff or for people running 32-bit VMs on the cloud
AlexDaniel: I gave you a finger and you take the arm :) 21:05
AlexDaniel: arm is possible but painful
rba I will see maettu tomorrow. Heard that he annexed another physical machine in his office again.
El_Che AlexDaniel: crosscompiling, e.g. for rasppi
rba Thats for Blin on Linux.
El_Che KotH: that did wake you up, didn'it :)
AlexDaniel El_Che: it doesn't have to be crosscompiling if you get a beefy arm machine :P
rba The Mac we can use for build automation, Blin or just for testing if needed. 21:06
El_Che AlexDaniel: you're at the shoulder now :)
AlexDaniel El_Che: I'm not done yet :D
KotH El_Che: we are always awake! always watching! bidding our time! *g*
AlexDaniel El_Che: because it can be really cool to have Blin on ARM :D
El_Che AlexDaniel: I had a look some time ago at qemu + docker for building rakudo packages
AlexDaniel El_Che: ehh, qemu… in my experience that's really slow :S 21:07
[Coke] what is rba's email address? (privmsg is fine)
AlexDaniel but my experience is outdated :)
El_Che AlexDaniel: yeah, I wanted to do it on travis, like the other packages
but I didn't get around it 21:08
KotH hmm? no cross compiling framework?
El_Che But my usecase was small becasue I ended getting celeron NUCs and 32-bit rakudo is slow anyway
AlexDaniel KotH: well, it depends. We don't have it, but for example users of Debian get rakudo packages on all archs just fine
[Coke] I have no emails from that address, no one else has added him to the list of CLAs. 21:09
was it emailed or mailed?
KotH AlexDaniel: well, debian does ethical compiling
AlexDaniel KotH: what's that?
KotH AlexDaniel: compiling on the arch itself
AlexDaniel right 21:10
KotH AlexDaniel: kind of a slur from the people in embedded linux, because nobody in his right mind would want to compile on arm (quemu is fast in comparison)
rba [Coke]: Hmm. So I'm an illegal contributor?
[Coke]: Let me search the papers and the scan. Where to send? 21:11
AlexDaniel rba: you don't have commits in rakudo
notable6: CLA
notable6 AlexDaniel, 1 note: 2019-08-01T07:40:37Z <AlexDaniel>: www.perlfoundation.org/contributor...-agreement print it out, sign it, scan it in (resize your scan to 250KB or less). Email to trademark -at- perlfoundation.org and don't forget to CC will at coleda.com
rba AlexDaniel: Is perl6 org handled differently? 21:12
AlexDaniel rba: yes
rba AlexDaniel: Ok, and why?
AlexDaniel rba: :(
[Coke] this is *just* for rakudo. doesn't include anythign in perl6, nqp, MoarVM...
because we're trying to avoid legal issues with the perl6 compiler. 21:13
It was setup by the foundation way back in the parrot days, and is similar (as I understand) to the p5 situation.
21:13 joule left
AlexDaniel previous discussions: colabti.org/irclogger/irclogger_lo...07-08#l228 colabti.org/irclogger/irclogger_lo...-08-01#l13 21:14
[Coke] hurls www.perlfoundation.org/license-faq.html
rba Understand. 21:16
KotH as someone who has been involved in a license change proces... for the love of all that is good and chocolaty! please sign the CLA!!!!
AlexDaniel KotH: that's not exactly going to help with the current state of things 21:17
you see, nqp is still in perl6 org, with no CLA requirement
21:18 dumarchie left
[Coke] The person to talk to at TPF about such things is Allison, as far as I know. 21:18
KotH AlexDaniel: one problem at a time, one problem at a time
rba [Coke]: My mistake, was only sent to trademark -at- perlfoundation.org
[Coke] but I would not recommend removing it from the rakudo process. 21:19
AlexDaniel I'm ok with that, but why?
[Coke] I will ping the president and ask why it's not being handled.
AlexDaniel: did you read the TPF page?
21:20 daxim left
rba [Coke]: I'm fine with the CLA. 21:20
[Coke]: rba 21:21
[Coke] I've received rba's CLA and added him to the contributor doc. Feel free to add them to the github repo. 21:22
rba About the promotion of rakudo release vs. rakudo-star releases. What should we do.
[Coke] (doc) the list maintained by the TPF with a list of contributors.
rba Should we just be quicker in upding rakudo-star and alway offer both?
updating
always
El_Che rba: as I understand it, rakudo star is maintained (and released) by different people 21:23
AlexDaniel jnthn: can you add rba to github org?
rba like to write german, as the inglisch isch buggy toooday.
AlexDaniel jnthn: rakudo org I mean, CLA was received as confirmed by [Coke]
El_Che AlexDaniel: looking for 64bit arm? twitter.com/gamelaster/status/1192...5334576128 21:24
21:24 daxim joined
AlexDaniel El_Che: yes, but I guess most people have just a bunch of rpi's that are not 64-bit :) 21:25
but of course it's a thing, yes
[Coke] jnthn: you may also want to add me as a rakudo admin.
AlexDaniel rba: well, the question that's still not answered completely is why we have star at all. You see, at some point we'll likely start recommending distro packages more than we do star 21:26
rba: “Windows!” is a good argument, but maybe then rakudo star should be exactly that? 21:27
rba AlexDaniel: Is this a discussion of batteries included or not?
El_Che The concept of Star is completely lost on my if there is a module manager
Grinnz AlexDaniel: given perl's sordid history with what core should include, i think having deliverables on two ends of the spectrum officially supported isn't a bad idea
in that context
AlexDaniel rba: it's more about defining what star is and why we do it, it's not necessarily about including batteries or not 21:28
El_Che Grinnz: those are not the 2 ends of the spectrum
Grinnz no, but two ends that matter :P
El_Che the other end, which I would like to see, is an application packaged with it modules and the runtime
install star, install or update something with zef and zoof, star is gone 21:29
rba El_Che: And with the star release promoted on rakdudo.org, the first thing to do anyway is to update zef.
El_Che Grinnz: so the two sides of the coin for me are minimal packages (compiler+module manager), e.g. for docker images and for people that hate installing what they don't need (both me), or a self-contained app, easily deployable 21:30
the middle ground is meh
21:30 sena_kun joined
El_Che again imho 21:30
Grinnz well, once you have an app that is actually something to run, and not to program in, that's not a rakudo distribution but well, an app 21:31
that's more along the lines of par packager
(unless i misinterpreted what you meant by app)
El_Che think more of jars of go programs with the added problem of a runtime
rba So sending star into a winter sleep and changing the download page to offer more different options (pkgs as well) of *rakudo* on the rakudo.org downloads page? 21:32
El_Che par wasn't really a huge success
Grinnz right, so that's not a rakudo distribution, that's an application that includes how to run that specific application
El_Che yes, but my point is that fucntionality would be part of rakudo
21:32 Altai-man_ left
El_Che as is creating jar part of the the java toolkit and go binaries of the go compiler 21:33
Grinnz what i'm talking about is a distribution for people to program in, not to give to users
El_Che (again apples and oranges, but you get my drift)
Grinnz: yes, exactly
Grinnz: with the addition that a lot of your users are programmers and admin
Grinnz not disagreeing, just seems like two very different conversations 21:34
rba El_Che: Not all programmers are admins. Not in the companies I've worked before. Some of them better never see a command line... (pray for it.)
El_Che someone will have to deploy the stuff 21:35
and the more difficult, the less likely people will do it
Admins deploying Perl, Ruby and Python complain all the time :)
(it seems)
rba: in devops enviroments, programmers end up doing a big part of the CI/deployment. 21:36
anyway, like Grinnz points out, it's likely a different discussion
rba El_Che: agreed. 21:37
dist.tyil.nl/raku/rakudo-star/
patrickb: Will let you know when we have a staging webhosting ready for rakudo.org. 21:42
21:42 finanalyst joined
rba will be afk 21:42
patrickb rba: Thanks! 21:47
21:48 daxim left 21:55 daxim joined, finanalyst left
[Coke] if I recall correctly, star was meant to get us from point a (compiler only) to point b (various distributions of Perl 6/Raku existing), at which point we wouldn't need Star. But I don't see any other distros yet, so Star as a part of the path still seems relevant. (also, at some point, I think everyone just started assuming Star was a thing in its own right.) 22:00
El_Che [Coke]: the idea of distributions sounds a lot like an early optimazation problem. Or a solution to a non-existent problem 22:02
A few sucesfull languages have multiple compiles, I don't know of any with multiple distributions 22:03
[Coke] The thought was to provide a one-stop bundle that has enough for someone to do something. I don't need that, but I can tell you that over the past 4 years, many people have done ONLY star downloads because they couldn't be bothered with something like zef.
El_Che the perl distributions were mostly a way to get an installer for windows 22:04
[Coke] we don't have multiple distro, though, just one. neh?
El_Che I think no one has
[Coke] El_Che: having been here since 2015, that's a big plus for windows, but it wasn't the main reason for rakudo star.
El_Che multiple compiles, I get that, but that's firmly in the wishful thinking territory at the moment
[Coke]: No, I get the bootstrap-like problem of the past 22:05
[Coke]: Just thinking that the problem for the solution is gone
[Coke] Anyway, are you suggesting we do something in particular to the current state, or just talking about how things have been so far? 22:06
El_Che Personally? I would like to see official Linux, MacOS and Windows compiler+zef packages on the main site
"offcial" being an imporant part 22:07
the sitatuion is confusing today (being myself part of the confusion, probably)
[Coke] "official" compiler?
El_Che official binary downloads 22:08
with rakudo+zef
[Coke] So, just for the compiler, not for the star distro?
El_Che yes
[Coke] Sure, seems reasonable.
El_Che [Coke]: like this: golang.org/dl/
[Coke] I think that's a different discussion than R*.
El_Che I am doing that all evening I think, so I am going to stop with that :) 22:09
22:13 lucasb left
patrickb El_Che, [Coke]: From what it looks like now, we will have such rakudo+zef releases from the coming release onwards. I'm currently in the process of changing the raku.org and rakudo.org websites to sanitize the download pages. I'll be liberal in changing it to what I think makes sense. I'll create PRs. The PRs are then up for discussion. 22:16
El_Che patrickb: it sounds great 22:19
22:20 RubioTerra joined 22:25 jaldhar_ left 22:26 jaldhar_ joined
SmokeMachine xinming: now Red must be accepting left AST... github.com/FCO/Red/commit/0f52e246...5ed76de210 22:26
22:27 dduncan joined, dduncan left
brass Is it possible to have @.a and $.a in the same object? 22:29
patrickb What happened to pl6env? I can't seem to find it anymore...
[Coke] m: class A { has @.a; has $.a } ; dd A.new 22:31
camelia 5===SORRY!5=== Error while compiling <tmp>
Two or more attributes declared that both want an accessor method 'a'
at <tmp>:1
[Coke] m: class A { has @!a; has $!a } ; dd A.new
camelia A.new
[Coke] ^^
it's the accessors that get you
m: class A { has @!a; has $.a } ; dd A.new
camelia A.new(a => Any)
22:31 jaldhar_ left 22:32 jaldhar_ joined
brass Hm ok neat 22:34
22:36 wamba left 23:10 patrickb left 23:18 MasterDuke left 23:29 Altai-man_ joined 23:32 sena_kun left