🦋 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.
00:26 skyl4rk left 00:27 skyl4rk joined 00:29 wamba joined 00:38 sena_kun left 00:41 benjif joined 00:43 finanalyst left
SmokeMachine Did someone changed my post date or did I do something wrong? 00:44
tbrowder Smoke 00:45
00:47 stoned75 left
tbrowder SmokeMachine: if it was scheduled for 21 Dec it's on time. time should be 0001 UTC. i show that as 47 minutes ago 00:47
good post, btw! 00:48
jmerelo has been shuffling articles a bit to cover no-shows... 00:49
00:50 lucasb left
SmokeMachine tbrowder: maybe that was that... I thought iy would be on 22nd... 00:51
tbrowder: thanks!
tbrowder hm, 22?, 00:52
SmokeMachine yes... I hope I have not made something wrong... 00:53
tbrowder haven't heard from jmerelo recently, but i'll see what schedule is now...
00:54 sena_kun joined
tbrowder planned schedule it on raku/raku-advent-2019 00:54
that schedule showd you on 21 dec, all is gut! 00:56
ff: in us english slang that's "fannie fatigue" or "finger fumble" 00:57
00:59 mspo joined
tbrowder SmokeMachine: in yr post there is one bad link... 01:00
no bad link now, but i get flaky stuff from wordpress...don't like it at all 01:03
SmokeMachine tbrowder: great... thanks! 01:04
tbrowder docs look nice 01:05
SmokeMachine :) 01:06
tbrowder ok, i found bad link, but not in advent post 01:07
i went to docs, beginner tutorial.. 01:08
SmokeMachine I think that really does not exist... 01:09
tbrowder clicked on "Red architecture" link and got 404...
SmokeMachine :( 01:10
tbrowder what doesn't exist?
SmokeMachine many tutorials/docs... 01:12
this is the only docs that exist: github.com/FCO/Red/tree/master/docs 01:13
tbrowder well p, 01:15
i was talking about starting at the link in the advent post to "reading 'the documentation'" took me to "fco.github.io" 01:19
on that page is a link to "Beginner tutorial" 01:20
that link takes me to a page with a link to "Red architecture" which gives me a 404 01:22
01:28 wamba left
SmokeMachine that page is generated by that link I've sent you... 01:30
the "Red architecture" still does not exist... I have to fix that... 01:31
Red:api<2> was released! twitter.com/raku_cpan_new/status/1...76096?s=20 01:39
01:42 wamba joined 01:43 wamba left 01:44 gabiruh left
vrurg_ SmokeMachine++!! 01:57
01:59 kalkin- joined
SmokeMachine \o/ 02:01
02:03 kalkin left 02:18 wildtrees left 02:37 sena_kun left 02:44 cpan-raku left 02:45 cpan-raku joined, cpan-raku left, cpan-raku joined 02:54 sena_kun joined 03:08 no-n is now known as pony 03:55 benjif left 04:00 holyghost joined 04:22 benjif joined 04:39 sena_kun left 04:54 sena_kun joined 05:35 entonian joined 06:18 AlexDaniel left, cognomin_ joined 06:21 cognominal left 06:26 sauvin joined 06:31 cognominal joined 06:34 cognomin_ left 06:38 sena_kun left 06:53 sena_kun joined
guifa jnthn: I just realized your advent day post went to the wrong calendar 07:10
07:34 ricar joined 07:38 benjif left 07:47 RobRaku joined 08:17 ricar left 08:21 epony left, xinming_ left 08:22 xinming_ joined 08:39 rindolf joined, sena_kun left 08:54 sena_kun joined 09:22 jmerelo joined 09:48 stoned75 joined 09:52 epony joined, stoned75 left 09:54 stoned75 joined 09:57 RobRaku left 09:59 kalkin- left 10:05 kalkin- joined
kalkin- modules.raku.org/search/?q=slang+sql ← 0 results 10:06
zmodules.raku.org/search/?q=slangSlang::SQL is first result
10:08 chloekek joined 10:09 Voldenet left 10:12 cpan-raku left 10:13 cpan-raku joined, cpan-raku left, cpan-raku joined, mid_laptop joined
chloekek I see there are some CPAN URLs in ecosystem-api.p6c.org/projects.json, does this make sense? 10:19
10:21 mid_laptop left 10:22 mid_laptop joined 10:39 sena_kun left 10:48 Voldenet joined, Voldenet left, Voldenet joined 10:55 sena_kun joined
SmokeMachine is there any public API that give me all raku modules published that depends on another specific module? 11:19
sena_kun SmokeMachine: zef rdeps? 11:20
oops, *rdepends
SmokeMachine sena_kun: I didn't know that, thanks!
jmerelo SmokeMachine: p6-river also computes that, but just that.
sena_kun zef rdepends Crypt::Random gives you some output
SmokeMachine jmerelo: Hi! do you know if some one have changed the date of my post? I did I make something wrong? 11:21
chloekek I’m a bit confused about #| POD. 11:25
Can I have multiple lines of #| POD, or do I have to use #|( … ) in that case?
And is it possible to attach normal POD, like =head1 … =cut, to a declaration instead of using #|? 11:26
SmokeMachine jmerelo: www.irccloud.com/pastebin/k4bEQT06/ 11:27
11:28 wamba joined
jmerelo SmokeMachine: if anyone did, it was me... 11:29
SmokeMachine sena_kun: do you know if there is a way to make `zef rdepends` return only the most recent version of each module?
jmerelo SmokeMachine: I rearranged posts to cover those that were missing and so on.
SmokeMachine jmerelo: I'm just afraid I may have done something wrong... 11:30
jmerelo SmokeMachine: please open an issue there. That should have worked...
SmokeMachine: why?
sena_kun SmokeMachine: I am not sure, but you can do a raku one-liner
like .split, then .Version on the second piece, put into separate buckets using .categorize, then select first based on version, pretty print 11:31
SmokeMachine jmerelo: my post was scheduled (or at least I think it was) for tomorrow, but it was published today...
11:31 jmerelo left
chloekek It seems that it is not possible to do any formatting within #| POD. 11:32
Because Pod::Block::Declarator.leading returns Str. 11:33
11:33 kensanata joined
chloekek OTOH, when I want to document a declaration with =head1, then I must repeat the signature in the POD. 11:33
CIAvash chloekek: Just saw your code from a few days ago, if you are interested, you can use hyperoperators there. 11:38
m: our constant @archive-extensions = <.tar.gz .tgz .zip>; my @rsync-includes := ‘*/’, “/id/*/*/*/Perl6/*” «~« |@archive-extensions ; say “--include=” «~« @rsync-includes;
camelia (--include=*/ --include=/id/*/*/*/Perl6/*.tar.gz --include=/id/*/*/*/Perl6/*.tgz --include=/id/*/*/*/Perl6/*.zip)
chloekek Nice!
SmokeMachine what makes more sense to create a test to verify if my new Red version has broken any of the modules that depends on that (only 2 currently), test the last version of each module or test every version? 11:56
12:10 chloekek left
moritz depends on your change/deprecation policy 12:12
but given the current maturity state of the ecosystem, I'd personally go with the latest version only
SmokeMachine moritz: thanks 12:16
12:24 kalkin- left
SmokeMachine moritz: do you think this makes sense? github.com/FCO/Red/blob/master/.gi...em.yml#L23 12:24
12:32 chloekek joined
moritz SmokeMachine: looks sensible 12:37
12:38 sena_kun left 12:40 finanalyst joined 12:50 Altai-man joined 12:51 Altai-man is now known as sena_kun 12:55 cpan-raku left
tbrowder .tell chloekek in the next release you should be able to have limited user formatting in the pod leading declarator blocks. i need to put that in the docs, but turning the handling on at the moment requires an environment variable to be set. 13:13
tellable6 tbrowder, I'll pass your message to chloekek
13:13 dogbert11 joined, benjif joined
chloekek .tell tbrowder amazing! 13:14
tellable6 chloekek, I'll pass your message to tbrowder
13:14 dogbert17 left
tbrowder goal is to have an appropriate program option to turn it on but i haven't yet grokked option handling 13:15
you can try it out on the master branch. see pr 13:16
rakudo pr...
chloekek Time to download 2964 tarballs with Raku distributions in them. 13:18
tbrowder chloekek: sorry, i lied, pr was stalled because of so much delay for lsst release. i just got my dev setup built again yesterday. i'll try to get the pr ready soon. 13:22
in the meantime, if someone can point me to how to mod the raku program option handling... 13:24
13:29 finanalyst left
sena_kun releasable6, help 13:32
releasable6 sena_kun, status | status link # See wiki for more examples: github.com/perl6/whateverable/wiki/Releasable
sena_kun releasable6, changelog gist.github.com/Altai-man/ed744868...59e7cfb951 13:34
releasable6 sena_kun, It looks like a URL, but mime type is ‘text/html; charset=utf-8’ while I was expecting something with ‘text/plain’ or ‘perl’ in it. I can only understand raw links, sorry.
sena_kun releasable6 changelog gist.githubusercontent.com/Altai-m...quick-test
13:36 ufobat__ left
sena_kun releasable6, status 13:36
releasable6 sena_kun, Next release in ≈5 hours. There are no known blockers. 0 out of 288 commits logged
sena_kun, Details: gist.github.com/161b43f1280ee94aff...acfb1eb676
sena_kun hmm
releasable6, changelog gist.githubusercontent.com/Altai-m...quick-test
releasable6 sena_kun, Successfully fetched the code from the provided URL
sena_kun, Unknown changelog format
13:36 kensanata left 13:44 xinming_ left 13:45 xinming_ joined
sena_kun m: my $_ = 42; (-> { say $_ }).perl.say; 13:45
camelia Potential difficulties:
Redeclaration of symbol '$_'
at <tmp>:1
------> 3my $_7⏏5 = 42; (-> { say $_ }).perl.say;
-> { #`(Block|62375016) ... }
13:58 lucasb joined 14:07 patrickb joined 14:10 kotrcka joined 14:13 patrickb left
AlexDaniel` sena_kun: it needs a full file 14:29
sena_kun: but it knows how to parse the wiki 14:30
so editing github.com/rakudo/rakudo/wiki/ChangeLog-Draft is enough for the bot
sena_kun AlexDaniel`, I have another question: in releasable unreviewed commits I see some commits older than the release, e.g. github.com/rakudo/rakudo/commit/e7...22c6a2c904 is Nov 5, but the release was Nov 26. what am I missing? 14:33
AlexDaniel` branch merge? 14:34
it's not older than the release
master (#3280)
it's on master but not on any tag, so it's a new commit
releasable is right
sena_kun d'oh
I am dummy, didn't see the PR link 14:35
14:36 wamba left 14:37 Altai-man_ joined 14:39 sena_kun left 14:48 wamba joined
tbrowder need module distro help please: given installed modules Foo and Bar when in a script using them, how do i access a file in %*RESOURCES for Foo as opposed to Bar when they have the same name? i have to go but please .tell me. thnx. 14:53
15:00 RobRaku joined 15:07 RobRaku left 15:14 dogbert11 left 15:15 dogbert11 joined 15:18 cpan-raku joined, cpan-raku left, cpan-raku joined 15:19 RobRaku joined
tyil didn't even know you could access the %*RESOURCES of module outside of the module that ships them 15:20
15:23 dogbert11 left 15:24 dogbert11 joined 15:25 RobRaku left 15:26 RobRaku joined 15:30 RobRaku left
Kaiepi greppable6, Supply.migrate 15:38
greppable6 Kaiepi, 1 line, 1 module: gist.github.com/bfd5d626b812166f9b...d4a58e601a
Kaiepi greppable6, .migrate
greppable6 Kaiepi, 28 lines, 10 modules: gist.github.com/4f6d3c03531c15a455...c007b67cf4
15:40 RobRaku joined 15:45 RobRaku left 15:47 RobRaku joined 15:54 RobRaku left
uzl[m] chloekek: Re #| POD: You can have multiple lines of #| for the multiline comments, just like #| with bracketing characters. I just wish multiline comments weren't formatted into a single line (For instance, newlines are all removed). And you're right, not POD formatting within a declarator block. 16:05
Altai-man_ lizmat, ping? 16:09
lizmat pong
Altai-man_ lizmat, hi! can you please explain what github.com/rakudo/rakudo/pull/3280 does, if it is user-observable? 16:10
I played with .perl method on different chunks of code dancing around parameters, but couldn't spot any difference
lizmat m: dd ({ ... }).signature 16:11
camelia :(;; $_ is raw = OUTER::<$_>)
lizmat that's the only case now where the $_ is the same as the $_ of the outer context
m: dd (sub { ... }).signature 16:12
camelia :()
lizmat m: dd (-> $_ { ... }).signature
camelia :($_)
lizmat m: dd (-> ;; $_ is raw { ... }).signature
camelia :(;; $_ is raw)
lizmat Altai-man_: does that explain it to you ?
Altai-man_ thanks! I am logging it as "Made `.perl` method call on signature of {...} display `$_` variable from outer scope" 16:14
lizmat Altai-man_ ++
Altai-man_ m: say $*RAKU 16:19
camelia Perl 6 (6.d)
16:27 lucasb left
lizmat yeah, that still needs to be taken care of 16:29
as many other internal things
Altai-man_ lizmat, github.com/rakudo/rakudo/blob/mast...de.pm6#L39 <- do we have tests for that? It doesn't work for me with `Cannot assign to an immutable value` and looking at the code I understand why: the named param is immutable
we can either mark the parameter as is copy or do some other trick
lizmat I'll mark it as "is copy" 16:30
Altai-man_ lizmat++
Altai-man_ .oO ( maybe I should've done that to gain some commits to rakudo )
lizmat Altai-man_: if you want, please do :-) 16:31
since I put in the hack, which was not complete, I felt responsible to fix it
but if you want to do it, by all means!
16:37 sena_kun joined 16:39 kensanata joined, Altai-man_ left
sena_kun heh, this modem connection is truly, truly irredeemable... 16:39
lizmat seems we lost Geth again ?? 16:40
pinging tyil
moritz a new instance of geth has a too long gethation period :D 16:44
16:45 dogbert17 joined 16:46 kotrcka left 16:48 dogbert11 left
guifa uzl[m] & chloekek: adding in the newlines was tbrowder’s work IIRC, so it should be available soon. 17:15
17:47 wildtrees joined 17:48 wildtrees left, wildtrees joined
sena_kun lizmat, does github.com/rakudo/rakudo/commit/a5...920d86d41a count as an optimization? 17:49
17:51 wildtrees left 17:52 gabiruh joined 17:57 sena_kun left 17:58 sena_kun joined 18:03 sena_kun left 18:04 sena_kun joined
tbrowder tyil: and i'm not sure you can either, but if you can't i don't see the utility of them unless during installation they can get placed somewhere. 18:24
18:28 wildtrees joined
tbrowder hm, wonder if something like this would work: in module Foo define a sub that grabs a %?RESOURCES file and spurts it to a user-defined path which is input to the sub? trying that... 18:31
tyil geth is up 18:35
geth is in this very channel
guifa Am I crazy to make a module that just provides an exception sub class and nothing else? 18:36
unit module Intl::Exception; class X::Intl is Exception { }; # nothing else lol 18:37
(otherwise I’m not sure how catching on just X::Intl would be if multiple modules all define it) 18:38
tyil lizmat: is the webhook showing an error in github? 18:40
for geth?
I'll restart it either way for good measure, but the bot itself is connected to irc just as I would expect 18:46
18:46 Geth_ joined, Geth left 18:57 Altai-man_ joined 18:58 sena_kun left 19:18 Altai-man_ left 19:19 sena_kun joined
chloekek .tell jmerelo I collected (and automated the collection of) a bunch of data about packages including historic versions, maybe this can be used to improve package discovery and reproducible builds. For each version: tarball URL, tarball hash, META6.json info. 19:31
tellable6 chloekek, I'll pass your message to jmerelo
tbrowder ok, my theory on extracting a resource from %?RESOURCES worked, hooray!! 19:49
19:56 wamba left 20:13 mid_laptop left
SmokeMachine tbrowder: how? 20:20
tbrowder ah, you'll have to wait until advent day 23 to see! ;-D 20:21
SmokeMachine :) 20:24
20:40 finanalyst joined 20:43 xi left 20:45 xi joined 21:18 gabiruh left 21:20 Altai-man_ joined 21:23 sena_kun left, vividsnow left
Geth_ advent: e0e8845685 | (Tom Browder)++ (committed using GitHub Web editor) | raku-advent-2020/schedule
take the first slot
moritz tbrowder: wow, you're early on this one :D 21:33
tbrowder well, you know, to beat the rush ;-D
guifa haha wow 21:40
chloekek p6: my $query := ‘foo % bar _ baz \ lol’; say S:g/(<[%_\\]>)/\\$0/ given $query; 21:41
camelia foo \% bar \_ baz \\ lol
21:57 kensanata left
chloekek p6: class C { has Str $x; }; my %h = x => Any; C.new(|%h); 21:57
camelia ( no output )
chloekek p6: class C { has Str $.x; }; my %h = x => Any; C.new(|%h); 21:58
camelia Type check failed in assignment to $!x; expected Str but got Any (Any)
in block <unit> at <tmp> line 1
chloekek This is a bummer.
I guess I can remove undefined entries from the hash.
p6: class C { has Str $.x; }; my %h = x => Nil; C.new(|%h.pairs.grep(*.value.defined)); 21:59
camelia ( no output )
chloekek p6: class C { has Str $.x; has Str $.y; }; my %h = x => Nil, y => 'a'; C.new(|%h.pairs.grep(*.value.defined)); 22:01
camelia Default constructor for 'C' only takes named arguments
in block <unit> at <tmp> line 1
Geth_ doc: 52d05f7ea2 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/variables.pod6
Tidy grammar and spelling
chloekek p6: (|{a => 1, b => Nil}).perl.say 22:08
camelia slip(:b(Any), :a(1))
chloekek p6: (|{a => 1, b => Nil}.pairs).perl.say
camelia slip(:b(Any), :a(1))
chloekek p6: (|{a => 1, b => Nil}.pairs.grep(*.value.defined)).perl.say 22:09
camelia slip(:a(1),)
chloekek p6: (|{a => 1}).perl.say
camelia slip(:a(1),)
chloekek :|
p6: (\(|{a => 1})).perl.say 22:11
camelia \(:a(1))
chloekek p6: (\(|{a => 1, b => Nil}.pairs.grep(*.value.defined))).perl.say
camelia \(:a(1))
chloekek p6: class C { has Str $.x; }; my %h = x => Nil; C.new(|\(|%h.pairs.grep(*.value.defined))); 22:12
camelia ( no output )
chloekek Ok that’s rather silly.
22:21 kensanata joined
moritz p6: class C { has Str $.x; }; my %h = x => Nil; C.new(|%h.pairs.grep(*.value.defined).hash)).perl.say 22:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected closing bracket
at <tmp>:1
------> 3ew(|%h.pairs.grep(*.value.defined).hash)7⏏5).perl.say
moritz p6: class C { has Str $.x; }; my %h = x => Nil; C.new(|%h.pairs.grep(*.value.defined).hash).perl.say
camelia C.new(x => Str)
chloekek p6: my $s := |{a => 1, b => Nil}.pairs.grep(*.value.defined); class C { has Int $.a; has Int $.b }; C.new($s) 22:31
camelia Default constructor for 'C' only takes named arguments
in block <unit> at <tmp> line 1
chloekek p6: my $s := |{a => 1, b => Nil}.pairs.grep(*.value.defined); class C { has Int $.a; has Int $.b }; C.new(|$s)
camelia Default constructor for 'C' only takes named arguments
in block <unit> at <tmp> line 1
chloekek It seems that | is not slip if it is in an argument lst.
p6: my $s := |{a => 1, b => Nil}; class C { has Int $.a; has Int $.b }; C.new($s) 22:32
guifa | has a different function in argument lists
camelia Default constructor for 'C' only takes named arguments
in block <unit> at <tmp> line 1
guifa it defines a capture
chloekek p6: class C { has Str $.x; }; my %h = x => Nil; C.new(|\(|%h.pairs.grep(*.value.defined)));
camelia ( no output )
chloekek Then why does this not fail?
guifa Err, sorry I meant to say | is different in parameters, it’s fine in arguments. The reason it doesn’t fail is that is that you haven’t forced $.x to be defined 22:34
If you output C you’ll see what happens:
p6: class C { has Str $.x; }; my %h = x => Nil; say C.new(|\(|%h.pairs.grep(*.value.defined))); 22:35
camelia C.new(x => Str)
guifa The value of $.x is Str — an undefined type object
p6: class C { has Str:D $.x; }; my %h = x => Nil; say C.new(|\(|%h.pairs.grep(*.value.defined)));
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable definition of type Str:D requires an initializer
at <tmp>:1
------> 3class C { has Str:D $.x7⏏5; }; my %h = x => Nil; say C.new(|\(|%h.
expecting any of:
guifa Notice the addition of the smiley constraint :D after Str — it says that $.x has to be not just a Str, but a defined Str 22:36
and so it errors
I’m actually writing a little doc on that topic right now
chloekek I mean, why doesn’t it fail with the error Default constructor for 'C' only takes named arguments?
guifa Named arguments are by default optional and you don’t have to provide for all of them, and you can even provide extra ones without problem. Positional arguments are by default required and passing more or less than expect causes problems. 22:38
22:38 pilne left
guifa since you didn’t overload new(), it goes with the default one 22:39
22:39 pilne joined
guifa and the default new() only takes named arguments (its signature is *%args, IIRC) 22:41
23:03 rindolf left 23:08 kensanata left 23:21 sena_kun joined 23:23 Altai-man_ left
chloekek p6: my %h = 'a' => Str; (%h<a> //= '') .= split(','); say %h<a>.perl 23:29
camelia $(("",).Seq)
chloekek p6: my %h = 'a' => Str; %h<a> //= '' .= split(','); say %h<a>.perl
camelia Cannot modify an immutable Str ()
in block <unit> at <tmp> line 1
chloekek p6: my %h = 'a' => Str; (%h<a> //= '') .= split(',').cache; say %h<a>.perl 23:31
camelia $(("",).Seq)
chloekek p6: my %h = 'a' => Str; (%h<a> //= '') = <a b c>; say %h<a>.perl 23:32
camelia $("a", "b", "c") 23:33
chloekek Oh I am so confused.
Lists and sequences and arrays are so complicated compared to Perl 5.
tobs They are. In this case I would expect (%h<a> //= '') to assign '' but still return the Scalar container for the key "a" in %h, which then gets assigned the list (itemized). 23:35
chloekek p6: my %h = 'a' => Str; (%h<a> //= '') := <a b c>; say %h<a>.perl
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use bind operator with this left-hand side
at <tmp>:1
------> 3 = 'a' => Str; (%h<a> //= '') := <a b c>7⏏5; say %h<a>.perl
chloekek p6: my %h = 'a' => Str; %h<a> //= ''; %h<a> := <a b c>; say %h<a>.perl
camelia ("a", "b", "c")
chloekek It would be easier if scalar container introduction was explicit. 23:36
Would be nice to have a pragma for that.
p6: my %h = 'a' => Str; %h<a> //= ''; %h<a> := $(<a b c>); say %h<a>.perl
camelia $("a", "b", "c")
tobs I think the idea is that for a user, a Hash is just a Map with implicit containers in every slot. The Scalar containers are what enables mutability of Hash over Map. 23:41
23:45 kalkin- joined
chloekek Ah, I don’t have to mutate the hash, since I’m spurting it into an argument list and I can supply an override afterwards. 23:48
my @meta-tags = split(‘,’, %^r<meta-tags> // ‘’).grep(?*).sort; SearchResult.new(|%^r, :@meta-tags);
23:55 finanalyst left 23:56 EuAndreh[m] joined