🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Log inspection is getting closer to beta. If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 25 August 2021.
00:07 reportable6 left 00:09 reportable6 joined
thowe Well, yeah, that's what I was thinking. Will the version denoted be something newer versions will/should be able to understand and execute, or will is the thinking that there will be warnings? 00:17
00:19 swaggboi joined
guifa yes, the idea is that upon encountering use v.6.c, the interpretation will switch to 6.c mechanics 00:28
I know there was some issue a while back with changes to one where if you created the "same" core class under 6.c and 6.e guarded code, but I forget the exact details and I think vrurg mostly solved it all 00:30
00:33 Skarsnik left 00:44 frost joined, frost left 01:06 jgaz left 01:40 Colt left 01:41 Colt joined
vrurg The biggest userland problem with 6.e is about roles which are incompatible with 6.c/d classes. Basically it means 'use v6.e; my $v = 42 but role { ... }' is an error now. This restriction can be lifted as the incompatibility is in handling of submethods only, but I would need to get back to it someday later. 01:58
guifa vrurg: ah okay. i knew it was something there but didn't want to misidentify the issue
02:12 ggoebel left, ggoebel joined
kybr is zef just really slow? should i be using zef or is there a different thing now? 02:42
02:49 japhb joined
moon-child kybr: as far as I know, yes 02:52
03:00 ggoebel left 03:02 nine left, nine joined
vrurg kybr: most likely it is not zef itself, but tests which are taking most of the installation time. 03:54
04:02 linkable6 left, evalable6 left
Xliff \w 04:49
What's the best way to rotate an array? So if I have (0...5) and I rotate it 2 steps, I get (2, 3, 4, 5, 0, 1)
moon-child m: say (0...5).rotate(2) 04:50
camelia (2 3 4 5 0 1)
moon-child Xliff: like that?
Xliff Oh! LOLOL!! 04:51
moon-child++
moon-child :) 04:52
guifa grr 05:01
"Missing serialize REPR function for REPR MVMContext (BOOTContext)"
05:03 evalable6 joined, linkable6 joined
guifa seems to be caused by a shaped array 05:24
(in situations where module A uses module B, and module B has a shaped array in it) 05:39
Xliff github.com/Xliff/p6-GDA/commit/351...c4d7c9ba60 # Thanks, everyone! 05:40
05:47 frost joined 05:54 qorg11 left 06:06 qorg11 joined 06:08 reportable6 left 06:10 reportable6 joined 06:17 solitario left, solitario joined 07:16 Colt left, Colt joined 07:26 synthmeat joined 07:29 seednode left 07:30 seednode joined 08:13 solitario left, solitario joined 08:17 holyghost joined 08:39 TheAthlete joined
holyghost Hi TheAthlete 08:40
TheAthlete Hello! 08:43
08:54 Sgeo left 08:57 Skarsnik joined
Voldenet m: my @a; %a.push({ :b(1) :c(2) }); %a.push(%( :b(3) :c(4) )); say %a 09:34
camelia ===SORRY!=== Error while compiling <tmp>
Variable '%a' is not declared. Did you mean '@a'?
at <tmp>:1
------> my @a; ⏏%a.push({ :b(1) :c(2) }); %a.push(%( :b(
09:35
Voldenet m: my @a; @a.push({ :b(1) :c(2) }); @a.push(%( :b(3) :c(4) )); say @a
camelia [{b => 1, c => 2} {b => 3}]
Voldenet m: my @a; @a.push({ :b(1) :c(2) }); @a.push(%( :b(3), :c(4) )); say @a
camelia [{b => 1, c => 2} {b => 3, c => 4}]
Voldenet this behaviour is a little surprising
moon-child yeah, that definitely seems wrong to me 09:36
nothing to do with arrays fwiw 09:37
Voldenet m: my @a; @a.push({ :b(1) :c(2) }); @a.push(%( :b(3) :c(4) )); @a.push(( :b(5) :c(6) )); say @a
camelia [{b => 1, c => 2} {b => 3} (b => 5 c => 6)]
moon-child m: say %( :3b :4c )
camelia {b => 3}
moon-child the :4c should definitely not be silently dropped
Voldenet especially puzzling: 09:40
m: my $l = (:2b :3c); say %$l
camelia {b => 2, c => 3}
SmokeMachine m: my @a; my %b = :3b, :4c; @a.push({ :b(1) :c(2) }); @a.push(%b); say @a 09:54
camelia [{b => 1, c => 2} {b => 3, c => 4}]
SmokeMachine m: my @a; @a.push({ :b(1) :c(2) }); @a.push(% = :b(3) :c(4) ); say @a
camelia [{b => 1, c => 2} {b => 3}]
SmokeMachine m: my @a; @a.push({ :b(1) :c(2) }); @a.push(% = (:b(3) :c(4)) ); say @a
camelia [{b => 1, c => 2} {b => 3, c => 4}]
SmokeMachine m: my @a; @a.push({ :b(1) :c(2) }); @a.push(( :b(3) :c(4) ).Hash); say @a 09:55
camelia [{b => 1, c => 2} {b => 3, c => 4}]
SmokeMachine odd
m: my @a; @a.push({ :b(1) :c(2) }); @a.push(%( :b(3), :c(4) )); say @a 09:56
camelia [{b => 1, c => 2} {b => 3, c => 4}]
SmokeMachine the comma!
moon-child yes 09:57
SmokeMachine m: say %(:1a :2b); say %(:1a, :2b)
camelia {a => 1}
{a => 1, b => 2}
09:57 linkable6 left, evalable6 left
SmokeMachine m: say %(:1a :2b :3c :4d); 09:57
camelia {a => 1}
moon-child m: say %(:1a 2b, :3c :4d) 09:58
camelia ===SORRY!=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> say %(:1a⏏ 2b, :3c :4d)
expecting any of:
infix
infix stopper
statement end
statement modifier
10:00 archenoth joined 10:03 Oshawott left 10:29 ggoebel joined 10:32 dakkar joined
dakkar TIL: List instances are not value objects 10:48
so trying to use lists as keys for a map / hash won't work
lizmat yeah, sadly so
raku.land/zef:lizmat/Tuple 10:49
dakkar (in addition to the slightly surprising bit where `%hash{@thing}` is interpreted as something like `@thing.map: $hash{$_}`) 10:50
lizmat that's just a slice ?
coming from Perl it may be a WAT :-) but that's just Stockholm Syndrome :-)
dakkar yes, I (now) know
lizmat the general rule in Raku is that anything between { } is code 10:51
dakkar if I want to avoid the slice, I have to pass the list via a scalar container (which still doesn't do what I need because lists aren't values) 10:52
lizmat indeed
$@thing
@thing.item # more verbose
dakkar I keep getting surprised by sensible-in-retrospect choices ☺
www.thenautilus.net/cgit/media-control/tree/ this is the thing I'm making 10:54
it's a (very minimal, very insecure) web ui to lirc + vlc, to control my "home theatre"
10:58 linkable6 joined
lizmat nice! one of my longer term projects is to get rid of Apple TV and replace it with a Raspberry Pi with a Raku app on it 10:58
where would you be running this ? 10:59
10:59 evalable6 joined
dakkar it's running on a microITX fanless pc 11:04
bit overpowered, maybe, but it makes sense to me ☺ 11:05
lizmat yeah... you gotta work with what you got... :-) 11:06
dakkar (a user gets automatically logged in, its .bashrc starts X, which starts vlc)
11:29 abraxxa joined, abraxxa left 11:49 sena_kun left 11:50 sena_kun joined 12:07 dakkar left 12:08 reportable6 left, reportable6 joined
Geth doc: 632dc9c197 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/classtut.pod6
Change 'method' to 'sunmethod' for TWEAK
12:39
linkable6 Link: docs.raku.org/language/classtut
nine [HTTP::Status] Testing with plugin: Zef::Service::TAP+{<anon|1>} 12:47
===> Testing [FAIL]: HTTP::Status:ver<0.0.3>:auth<zef:lizmat>
Aborting due to test failure: HTTP::Status:ver<0.0.3>:auth<zef:lizmat> (use --force-test to override)
Is there any way to get more output from zef here? Like the actual test output
lizmat ugexe ^^ 12:53
this is why I use my custom test script: it is silent if all ok, but has all the goods (including --ll-exception stacktraces) if it goes wrong
13:08 evalable6 left, linkable6 left, evalable6 joined
Xliff nine: Hmmm.... so only output something if a test fails and only output the failure messages or somesuch? 13:13
nine Xliff: I'd be happy to see any output at all. Currently on this machine all tests fail with no indication of why. 13:16
lizmat gist.github.com/lizmat/a860b3364b6...1e59186394 # typical ok output
gist.github.com/lizmat/2f44864fa90...305de4ec68 # typical failure output 13:17
(after adding a "die 'just to show'" statement at the end of the test file 13:18
)
sena_kun jdv, o/ 13:21
releasable6, status 13:22
releasable6 sena_kun, Next release will happen when it's ready. There are no known blockers. 198 out of 198 commits logged
sena_kun Just wanted to ensure you know the ignored commits should be specified in the commit message during release. :) 13:23
13:45 mathias[m] left, mathias[m] joined 13:53 discord-raku-bot left, discord-raku-bot joined 14:11 linkable6 joined 14:14 getimiskon joined 14:23 frost left 14:42 monkey_ joined
jdv wut now? 14:52
sena_kun: oh, i had noticed that somewhere. whether i remember at the actual time, eh... 14:53
sena_kun jdv, like this: github.com/rakudo/rakudo/pull/4529...0267e1dccd 14:54
here is the PR: github.com/rakudo/rakudo/pull/4529
when I did it, a nice heuristic is to look at the previous release and monkey see, monkey do it, so the chance of forgetting something is less. 14:55
jdv that's what i've been doing. takes forever but whatever.
there were only 8 ignored commits for you?
14:56 holyghost left 14:58 Sgeo joined
sena_kun jdv, it varies from release to release. 14:59
more for the next one: github.com/rakudo/rakudo/pull/4585...3bc8ec13cd
jdv i forget - what it the purpose there? the list is already in the changelog. 15:02
sena_kun jdv, AFAIK it is for releasable6 bot to know what commits from the past should not be prompted as "need to log those". It gives you list of commits that are not logged and on release you either have them directly in the changelog or in this form in a commit message. 15:07
see github.com/Raku/whateverable/blob/...p6#L42-L53 for the implementation
El_Che if there are no candidates to take over rakudo start, I would suggest making the project less visible (rakudo site) or archived (issues on github). 2c etc 15:09
lizmat El_Che: PRs welcome: github.com/Raku/raku.org 15:10
El_Che lizmat: no, this is not a technical discussion, but more of a political one, e.g. rsc 15:11
lizmat A draft PR is a good source of discussion :-)
MasterDuke should we consider bundling zef in rakudo releases? 15:12
jdv sena_kun: anyway - this is this release's list - gist.github.com/jdv/68a3ae15138eb7...d0053723af
lizmat MasterDuke: that is definitely an option, at least for me :-) 15:13
El_Che MasterDuke: I include it in my packages bacause without it is "no batteries included and we won´t tell which ones you need" :)
MasterDuke yep, El_Che++
El_Che it's less straight forward thant it sounds, though, raku going for the home install 15:14
lizmat TIL El_Che's distributions have zef :-)
sena_kun jdv, looks alright to me. 15:17
jdv i mean 93 is a lot more:) 15:18
cool
i'm honestly not sure why the bot picked up a bunch of those but i didn't look why yet 15:20
sena_kun jdv, I think that's because we skipped 2021.11, so there was more time for people to do changes. 15:21
jdv seems buggy as a bunch of the commits don't even exist in my repo or they aren't in master's ancestry
maybe i'll peek later
but, yeah the sheer volume is likely partly cause that
MasterDuke there was a force push at one point 15:22
maybe the bot needs a refreshed rakudo clone to work from
lizmat yeah, there was a force push :-( 15:23
MasterDuke or something like `git reset --hard`
jdv i imagined it was some form of git shenanigan 15:26
s
lizmat the shenanigan was all of my making :-( 15:28
jdv it made the changelog figuring a challenge:) 15:38
lizmat sorry, should have remembered and mentioned it :-( 15:39
ugexe nine: you can run --/prove. the prove plugin itself just needs someone to wire zefs --verbose flag up to it
jdv lizmat: oh there was no missing it, thanks 15:41
ugexe nine: oh wait, thats using the TAP::Harness plugin. so `--/prove --/tap-harness` 15:43
the TAP::Harness plugin could use better integration
15:48 ggoebel left
El_Che lizmat: github.com/rakudo/rakudo.org/pull/75 15:50
15:52 mcmillhj joined
jdv for some reason i'm getting t/spec/S12-construction/destruction.t failures. anyone else see that. 15:53
lizmat jdv: I've seen them occasionally 15:54
jdv odd cause i didn't rebuild since last night - right on head and i swear it was fine
ignoreable?
MasterDuke that's a flapper 15:57
mcmillhj I am trying to update an Array with a response from a sub but it seems like an extra level of `[]` are being added. What's actually going on here so I can understand and avoid in the future: gist.github.com/mcmillhj/3ac9edc27...da89274c7e ? 15:59
tellable6 2021-12-22T17:43:55Z #raku <[Coke]> mcmillhj - it's the parens around ($should-continue, @buffer) - remove the parens and it works as you expect.
2021-12-22T18:14:25Z #raku <SmokeMachine> mcmillhj it seems if you replace the List `()` with a signature `:()` and the `=` with a `:=` you get what you want: glot.io/snippets/g5eg08jvxz
jdv ok
mcmillhj SmokeMachine: I am confused as to why that works. What is the difference between the Signature and a normal Capture? 16:03
16:06 [Coke] left
guifa lizmat: data has been successfully pulled apart. Currently working on deciding the best way API to expose "determine-stuff-based-on-calendrical-inputs" and "determine-stuff-based-on-posix-time-stamp", but I should have that figured out by tonight and integrated back into DateTime::Timezones for your loggable profit. github.com/alabamenhu/TimezonesZoneInfo 16:09
lizmat guifa++
guifa also advantage of this: I can update the timezone data without needing to update the DateTime::Timezones module anymore (which is basically why I did the same thing with CLDR) 16:10
lizmat++ for putting the idea in my heda
16:23 kjp left 16:24 monkey_ left, holyghost joined 16:48 slowtype- joined, slowtyper left 16:59 kjp joined 17:08 morte_ joined 17:29 mcmillhj left 17:50 mcmillhj joined, mcmillhj left 18:00 ggoebel joined 18:07 reportable6 left 18:15 holyghost left, holyghost joined 18:19 holyghost left 18:23 holyghost joined 18:52 holyghost left 18:54 holyghost joined 19:04 holyghost left 19:08 reportable6 joined 20:08 linkable6 left 20:10 linkable6 joined 20:17 holyghost joined
Skarsnik hm, how do I use a 'module' defined in the same file that has a name like 'Foo::MyModule'? 20:22
tonyo Skarsnik: if it's already in scope then no need to `use` it 20:24
also, haven't seen your name in a long time
Skarsnik pff, obviously trying to insolate a segfault from a big projet into a single file make it not segfault >< 20:28
I still have one of the weird bug from this code 20:30
my %h = (a => 1, b => 2, c => 3, d => 4); for %h.keys -> $k {say $k; if %h{$k} % 2 == 0 {%h<e> = 5; %h{$k}:delete}}. This can output 4 or 5 values 20:45
I think it's because we insert and remove in the hash it has issue seeing a change in the hash? 20:49
was there a bot to run some code x time? 20:54
merryprog m: say "yup" 20:55
camelia yup
merryprog oh, multiple times
Skarsnik !help
evalable6, help
evalable6 Skarsnik, Like this: evalable6: say ‘hello’; say ‘world’ # See wiki for more examples: github.com/Raku/whateverable/wiki/Evalable
merryprog That'd be github.com/Raku/whateverable/wiki/Benchable
20:56 getimiskon left
Skarsnik m: my $cpt = 0; for 0..20 {my %h = (a => 1, b => 2, c => 3, d => 4); for %h.keys.sort -> $k {$cpt++; if %h{$k} % 2 == 0 {%h<e> = 5; %h{$k}:delete}}}; say $cpt 21:01
camelia 84
Skarsnik should be like 80 or 100 if this was stable I think
err, need to remove the sort 21:02
not even sure why it's always 84 with the sort 21:03
oh because 0..20 is 21 loop 21:04
SmokeMachine m: my $cpt = 0; for 0..20 {my %h = (a => 1, b => 2, c => 3, d => 4); for %h.keys -> $k {$cpt++; if %h{$k} % 2 == 0 {%h<e> = 5; %h{$k}:delete}}}; say $cpt 21:13
camelia 89
Skarsnik m:my $cpt = 0; for ^20 {my %h = (a => 1, b => 2, c => 3, d => 4); for %h.keys -> $k {$cpt++; if %h{$k} % 2 == 0 {%h<e> = 5; %h{$k}:delete}}}; say $cpt 21:14
evalable6 86
Skarsnik m:my $cpt = 0; for ^20 {my %h = (a => 1, b => 2, c => 3, d => 4); for %h.keys -> $k {$cpt++; if %h{$k} % 2 == 0 {%h<e> = 5; %h{$k}:delete}}}; say $cpt
evalable6 87
Skarsnik fun time...
21:14 TheAthlete left
Skarsnik I will fill an issue x) 21:14
SmokeMachine m: my %a = :1a, :2b, :3c; for %a.keys { .say; %a<a b c>:delete; say %a } 21:15
camelia a
{}
b
{}
SmokeMachine m: my %a = :1a, :2b, :3c; for %a.keys { .say; %a<d e f> = 1 xx *; say %a } 21:17
camelia c
{a => 1, b => 2, c => 3, d => 1, e => 1, f => 1}
b
{a => 1, b => 2, c => 3, d => 1, e => 1, f => 1}
d
{a => 1, b => 2, c => 3, d => 1, e => 1, f => 1}
a
{a => 1, b => 2, c => 3, d => 1, e => 1, f => 1}
SmokeMachine m: @a = ^10; for @a { .say; @a = () } 21:19
camelia ===SORRY!=== Error while compiling <tmp>
Variable '@a' is not declared
at <tmp>:1
------> <BOL>⏏@a = ^10; for @a { .say; @a = () }
SmokeMachine m: my @a = ^10; for @a { .say; @a = () }
camelia 0
1
2
3
4
5
6
7
8
9
SmokeMachine m: my @a = ^10; for @a { .say; FIRST @a.push: 99 } 21:20
camelia 0
1
2
3
4
5
6
7
8
9
99
Skarsnik I think it's because I insert and delete something in the hash, so like the size stay the same 21:21
SmokeMachine It seems to me deletion is not reflected in the iterative but addition is… what makes sense… 21:24
21:24 djerius left 21:26 djerius joined 21:31 monkey_ joined 21:46 morte_ left 21:47 morte_ joined 22:12 [Coke] joined
[Coke] wonders why irssi didn't reconnect on its own 22:12
new internet definitely seems to drop out more often. :| 22:13
Geth doc: 867454075b | Coke++ | doc/Language/classtut.pod6
Revert "Change 'method' to 'sunmethod' for TWEAK"

This reverts commit 632dc9c1978fb8a98139bea8c00181f7f580aaa6.
The new code doesn't compile, so this change needs rework.
22:30
linkable6 Link: docs.raku.org/language/classtut
22:39 Voldenet left 22:41 Xliff left
[Coke] tbrowder: ^^ the example test failed, and the code fails the same way when run against rakudo directly 22:52
22:55 morte_ left
tbrowder hm, did i originally contribute the code? shouldn’t TWEAK be a submethod? 22:58
ah, i think the rhs needs an ! vice . 23:01
$!
[Coke] if it should or not, that was not quite the right solution. I figured this was the easiest way to push it back. :) 23:04
tbrowder if it were my example i think i would have used a prefix ++ 23:05
i can probably fix it tomorrow. i’m surprised docs are being regenerated so soon 23:06
Geth doc: 49bf7a2718 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/classtut.pod6
TWEAK is a submethod, use ! in twigid
23:11
linkable6 Link: docs.raku.org/language/classtut
23:12 Voldenet joined
tbrowder ok, i tweaked the TWEAK again ;-D 23:12
twigid, twigil, “whatever” my granddaughter would say 23:14
well, shoot, the postfix ++ operator looks to be the intended one, but the prefix should work. i’ll change it back if the twigil change works 23:19
[Coke] "if it works" - you ran the test, right? 23:24
you can use TEST_FILES env var or pass in file names as a command line arg to an individual test.
It fails.
I'll let you revert or fix it; but you can run the test without me. "make xtest" does every test every file. if you have a local change, you can do 'TEST_FILES=doc/Language/classtut.pod6 make xtest' e.g. 23:25
23:30 Skarsnik left
[Coke] sends an email to various TPF folks about the selection of Houston for the conference and how that has negatively impacted his decision to attend this year. (If you do the same, please be kind). 23:33
I'll let folks know if I hear anything back. (best I am hoping for at this point is a donation to a charity or something to compensate.) 23:34
tbrowder what’s the prob with houston? 23:58