This channel is intended for people just starting with the Raku Programming Language (raku.org). Logs are available at irclogs.raku.org/raku-beginner/live.html 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 theweeklychallenge.org/ 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 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 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; }; A.new(foo => 'bar'); | 17:49 | |
camelia | ===SORRY!=== Error while compiling <tmp> Missing initializer on constant declaration at <tmp>:1 ------> class A { my constant foo⏏; }; A.new(foo => 'bar'); |
||
rf | m: class A { has constant $.foo; }; A.new(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⏏; }; A.new(… |
||
stevied | anyone familiar with raku.land/zef:tbrowder/Storable::Lite? | 17:53 | |
I just get error when I try to store data: `$metals.to-file('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: github.com/tbrowder/Storable-Lite/issues/1 | 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 raku.land/zef:finanalyst/RakuConfig ? | 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 | |
Nemokosch | docs.raku.org/routine/spurt#(Indep..._sub_spurt | ||
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: paste.debian.net/1266929/ | 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 | github.com/tbrowder/Storable-Lite/issues/1 | 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 | ||
github.com/tbrowder/Storable-Lite/...aster/docs | |||
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
|