This channel is intended for people just starting with the Raku Programming Language ( Logs are available at
Set by lizmat on 8 June 2022.
00:05 rf joined 00:46 Heptite joined
jaguart this compilation error: `Type check failed in binding to parameter '$address'; expected Str but got Any (Any)` 01:27
no `$address` in my source...
Nemokosch may I ask what your code is? 01:28
jaguart I think the error comes from rakudo\src\core.c\Distribution\Locally.pm6
code is pretty simple similar to - `class This::Thing is Other::Module::Thing {}` 01:29
Nemokosch the error message is quite clearly LTA 01:31
how do you tell the compiler where it could find your compunit? 01:32
jaguart I have `-Ilib,.,xt - and then I have links in my lib/ to ../../Other/Module/lib/Module 01:33
I will play with paths...
Nemokosch -I flag? 01:34
I'm far from educated on these matters but I think the two things here are use lib and the -I flag
I would expect links to be resolved but who knows 01:37
rf I think it's trying to bind to a parameter $address in the sub/method being called, check the line and see if the caller parameter is Nil. 01:43
01:50 deoac joined
deoac I'm trying to view but the menu (Home, About, ... Contact) takes up nearly the entire screen.  This happens in both Safari and Chrome.  I have no ad blockers enabled.  Is this happening to anyone else? 01:53
jaguart looks ok on desktop - but the menu stacks when you reduce the width down 01:54
actually there is something wrong - the top menu disappears probably ment to be behind a trigram - but you cant access it. The secondary menu is large dark buttons - this stacks pushing the content down a couple of pages 01:56
Nemokosch you mean the "hamburger menu"? 02:00
anyway, that site always worked "good enough" for me
I wonder if we'd have to settle for an O(n^2) solution for the second task 😛 02:01
jaguart so `Type check failed in binding to parameter '$address'; expected Str but got Any (Any)` happens when you have links in your lib folder to folders containing other modules, I think because it finds the compunit but is confused about which distribution it belongs in 02:08
if you remove the links and instead do everything via a long `-Ilib,../Module1/lib,../Mod2/lib` it seems to work ok 02:09
Nemokosch it would be good to note this some way 02:10
IRC, issue, StackOverflow, Reddit, I don't know 02:11
for some random reason, it seems that Jonathan Worthington is hanging out quite a lot on SO actually
jaguart maybe lots of warm Raspberry Pi 😛 02:12
deoac Reducing the width of the window did the trick.  Weird. 02:34
rf Do you have a 4k monitor by chance? 02:57
03:27 rf left 03:56 deoac left 05:31 Heptite left
jaguart m: say 3840 / 1024 05:43
camelia 3.75
05:44 Kaiepi left
jaguart arg - just spent an hour debugging why `x (1,2)` was not matching any signature - space between method-name and args -> was sending a list into `x()` 😦 06:10
09:13 dakkar joined
Nemokosch I thought this was well-known, also clearly intended 10:33
10:44 Kaiepi joined 12:59 guifa left 13:00 guifa joined 13:42 jgaz joined 15:05 rf joined
rf How can I get around 2 modules with exported functions colliding? I made my module's function our scoped, but it still is mad at me when I try to use it. 15:06
lizmat note that module exporting / loading is lexical 15:11
m: my $ok = { use Test; &ok }; $ok 1
camelia ===SORRY!=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> my $ok = { use Test; &ok }; $ok⏏ 1
expecting any of:
infix stopper
statement end
statement modifier…
lizmat m: my $ok = do { use Test; &ok }; $ok 1 15:12
camelia ===SORRY!=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> my $ok = do { use Test; &ok }; $ok⏏ 1
expecting any of:
infix stopper
statement end
statement modif…
lizmat meh
m: my $ok = do { use Test; &ok }; $ok(1)
camelia ok 1 -
lizmat this imported all of the Test subs inside the scope, and returned only &ok 15:13
m: my $ok = do { use Test; &ok }; $ok(1); plan 42
camelia ===SORRY!=== Error while compiling <tmp>
Undeclared routine:
plan used at line 1
lizmat m: my $ok = do { use Test; &ok }; $ok(1); ok 1
camelia ===SORRY!=== Error while compiling <tmp>
Undeclared routine:
ok used at line 1
15:25 Kaiepi left
rf Ok thanks 15:25
I think I can make it work with this
15:28 Heptite joined 15:32 Kaiepi joined
rf lizmat: That worked perfectly, thank you! 15:37
lizmat you can even make it look like a sub if you want: 15:38
m: my &ok = do { use Test; &ok }; ok 1
camelia ok 1 -
Nemokosch lizmat: does your from module not provide some sugar for this? 15:42
lizmat yup 15:48
thanks for reminding me :-)
rf Is there any way to make a class attribute completely immutable? 16:03
I want it to be not assignable, and also the type to be frozen so you can't screw with it 16:04
lizmat is it a private attribute ? 16:08
rf Sort of? I override the getter, and it's not rw 16:16
lizmat class A { my constant foo = 42; method getter { foo } } 16:20
or 16:21
class A { method getter(--> 42) { } }
17:35 dakkar left
rf m: class A { my constant foo; }; => 'bar'); 17:49
camelia ===SORRY!=== Error while compiling <tmp>
Missing initializer on constant declaration
at <tmp>:1
------> class A { my constant foo⏏; }; => 'bar');
rf m: class A { has constant $.foo; }; => 'bar');
camelia ===SORRY!=== Error while compiling <tmp>
Virtual method call $.foo may not be used on partially constructed object (maybe you mean $!foo for direct attribute access here?)
at <tmp>:1
------> class A { has constant $.foo⏏; };…
stevied anyone familiar with 17:53
I just get error when I try to store data: `$'metals.raku');` gets me: `No such method 'to-file' for invocant of type 'Str'` 17:54
tbrowder stevied pls file an issue. 17:55
stevied ok
tbrowder that is a pretty naive approach and may not be worth using 17:56
stevied here you go: 17:58
tbrowder thnx, i will try to fix 17:59
stevied: since i created that module,i’ve been using JSON::Fast to basically do the same thing. Also, that module is heavily used, actively maintained, and has top-tier authors. 19:09
Nemokosch what is Storable::Lite for exactly? 19:12
It seems simple enough to fix, if it should be fixed
<@563790557831495691> by the way, have you checked out ? 19:15
19:33 deoac joined 19:51 deoac left
stevied it's like perl's old storable module. I'm just going to convert the data to json and save that to a file 20:12
yeah, I went with json. I am not as familiar with that format so not sure if it might break with the data in some way while I can be sure something that serializes rak directly would work. 20:14
21:47 n1to joined
so I'm using JSON::Fast with `my %raku = from-json 'metas.json'.IO.slurp;` and that line is dumping the entire data structure to the screen 21:57
no idea why this is happening
Nemokosch there must be something that we cannot see from this snippet 21:58
stevied this is how the json was saved: 22:00
my $json = to-json [ $metas ];
spurt 'metas.json', $json;
$metas is a hash
maybe that makes a difference? 22:01
Nemokosch what does spurt take?
stevied not sure what you mean. it's saving the json data 22:02
Nemokosch lines() operates on `$*IN`, I was thinking if it could be operating on `$*OUT` by sheer chance 22:05
but that doesn't seem to match the docs
stevied why not? 22:06
anyway, how are you running the code?
stevied in a raku script 22:09
ugh, this is why I didn't want to use json. no fucking idea what I'm doing. 22:10
Nemokosch 🤣
22:11 discord-raku-bot left, discord-raku-bot joined
stevied "Odd number of elements found where hash initializer expected: 22:11
Found 1933 (implicit) elements:"
Nemokosch which line?
by the way, I have an idea what you were doing wrong with Storage::Lite 22:14
let me install that module
stevied i tihnk the module was just buggy
hold on, i'll paste the entire code
Nemokosch I wouldn't worry too much about that 22:15
stevied holy shit, debian updated their website. hell froze over 22:16
Nemokosch oh yeah, worked for me
stevied my spagetti code: 22:17
important bits are at the bottom
22:17 Heptite left
saves %metas to json and spit it out to file 22:18
22:18 Heptite joined
Nemokosch 22:21
stevied oh cool
22:21 jgaz left
wonder why that's not on the docs 22:22
Nemokosch well, what docs? this is a random module
stevied docs in the module
Nemokosch probably simply because nobody bothered to write it down 22:23
not all published stuff is equally well maintained
fortunately, the source code is pretty simple 22:24
stevied so looks like I got this json working. no idea how. just random trial and error 22:25
so if I save the data structure as a hash and restore it to a scalar, it works: `my $raku = from-json 'metas.json'.IO.slurp;`
the `$raku` behaves like a hash
22:29 discord-raku-bot left 22:30 discord-raku-bot joined
well, at any rate, I now have all meta files for every version of every distro in one giant file. only took me 2 friggin' days to do. haven't coded in raku for a few months and I got rusty fast. 22:30
but in my defense, it was a little tricky to figure out
rf That's cool, you should host this somewhere, you can be the Raku archivist 22:34
Nemokosch rf: do you know REA? 22:39
stevied that's where I got the data from 22:41
all the meta files are in a tarball
so i had to extract each meta file 22:42
anyway, now i'm closer to the goal of forking each module with legacy file names and submitting a patch 22:43
curious to see how it works out 22:44
rf Lol that is awesome, goodluck! 22:47
stevied thanks. i figured it was a one day project but now it looks like it's turning into more like a one week project. 🙂 22:48
22:53 discord-raku-bot left, discord-raku-bot joined 23:10 n1to left