|
🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel! Set by lizmat on 6 September 2022. |
|||
|
01:22
SrainUser joined
|
|||
| SrainUser | How do I import a function from a local raku file? | 01:23 | |
| I typed "unit module foo" and "is export" for the file to export the function. I typed "use foo" as an import statement for the other file. I get an error saying it could not find foo. | 01:28 | ||
| timo | if it's a local file, you'll need to tell rakudo to look locally, usually by supplying `-I folder` (which shouldn't be a huge folder, like your entire home directory, because it will be scanned) | 01:37 | |
| if you're in a module, meaning you have a META6.json, that's where you'd have to have an entry for your module foo in the "provides" section | 01:38 | ||
|
01:44
guifa joined
|
|||
| SrainUser | So a module in a file requires a META6.json file to tell raku to import from the current working directory? | 01:44 | |
| timo | no, there's a third way which is `use lib ".";` or `use lib "thefolder";` in the raku script | 01:46 | |
| it will look for files named with .rakumod extension by default | 01:49 | ||
| gnite! | 01:52 | ||
| SrainUser | It still does not find any module inside the ".rakumod" file. All I typed was "use lib ".";" and "use foo;" | 01:57 | |
| timo | mkdir /tmp/srainmodule; cd /tmp/srainmodule; echo "unit module foo; sub footest() is export { say 'success'; }" > foo.rakumod; echo "use lib '.'; use foo; footest()" > main.raku; rakudo main.raku | 02:00 | |
| this one-liner works on my end | |||
| i've got to go sleep now, maybe this helps | |||
| if you set RAKUDO_MODULE_DEBUG=1 in the environment, rakudo will output debug lines related to module loading, it should have lines in it like "Successfully handled 'lib' as a pragma", "try-load source at ./foo.rakumod", and near the end "Performing imports for 'foo'" and "Imports for 'foo' done" | 02:02 | ||
| if it doesn't, maybe seeing where the success runs out helps figure out what's wrong | |||
| SrainUser | Okay, Goodnight | 02:03 | |
| timo | o/ | ||
| SrainUser | I figured it out. The filename of the ".rakumod" file must be the name of the module it contains. | 02:22 | |
| guifa | xinming: I should make a module Token::IP-String | 02:44 | |
| Would go nicely with a project I'm workin gon anyways | |||
|
02:55
kylese left
02:56
kylese joined
03:15
kylese left,
kylese joined
04:44
Aedil joined
|
|||
| Xliff | Anybody out there? .... out there....... out there ....... out there | 05:24 | |
| How can I turn the integer 123456789012345 into its representative bytes? | 05:25 | ||
| m: Bub.allocate(10).write-uint64(123456789012345).gist.say' | 05:26 | ||
| m: Bub.allocate(10).write-uint64(123456789012345).gist.say | |||
| camelia | ===SORRY!=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> ).write-uint64(123456789012345).gist.say<HERE>' expecting any of: infix infix stopper statement end statement modifier… |
||
| ===SORRY!=== Error while compiling <tmp> Undeclared name: Bub used at line 1. Did you mean 'Sub', 'Buf'? |
|||
| Xliff | m: Buf.allocate(10).write-uint64(123456789012345).gist.say | ||
| camelia | Too few positionals passed; expected 3 or 4 arguments but got 2 in block <unit> at <tmp> line 1 |
||
| Xliff | m: Buf.allocate(10).write-uint64(123456789012345, 0).gist.say | ||
| camelia | MoarVM panic: Memory allocation failed; could not allocate 123456789012353 bytes | ||
| Xliff | m: Buf.allocate(10).write-uint64(0, 123456789012345).gist.say | ||
| camelia | Buf:0x<79 DF 0D 86 48 70 00 00 00 00> | ||
| Xliff | Oh, nevermind. | ||
| m: Buf.allocate(10).write-uint64(0, 123456789012345, BigEndian).gist.say # since intel is insane | 05:28 | ||
| camelia | Buf:0x<00 00 70 48 86 0D DF 79 00 00> | ||
|
06:05
guifa left
06:42
samebchase joined
06:46
Sgeo left
|
|||
| xinming | m: my $s = "hello"; (S/hel/aaa/ with $s).say; (S/hel/bbb/ given $s).say; | 08:38 | |
| camelia | aaalo bbblo |
||
| xinming | In this example, they both work, So the only diff between 'with' and 'given' are, 'with' will try to test the definied'ness of the $s, 'given' will always do the S/// Is my understanding right? | 08:39 | |
|
08:52
sena_kun joined
|
|||
| Xliff | Yep. | 08:57 | |
| my $a; (S/Aaa/bbb/ given $a).say | |||
| m: my $a; (S/Aaa/bbb/ given $a).say | |||
| camelia | Use of uninitialized value of type Any in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. (Any) in block at <tmp> line 1 |
||
|
09:05
Xliff left
|
|||
| xinming | got it, thanks. | 09:21 | |
| lizmat | and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2024/12/30/2024-...ate-rings/ | 12:38 | |
|
15:57
MoC joined
|
|||
| antononcube | Is there any Raku module that tells (computes or retrieves) what are sunrise and sunset times of certain city or time zone? | 16:18 | |
| tbrowder | antononcube: see Astro::Sunrise | 17:54 | |
| lucs | Module loading question: gist.github.com/lucs/911dec0edc4df...00dd365ef1 | 18:01 | |
| ugexe | probably because you are running code that prints in the mainline of a module | 18:05 | |
| which would get run during precompilation | |||
| lucs | Hmm... | ||
| Ah. | 18:06 | ||
| I can avoid doing that doctor. | 18:07 | ||
| Shouldn't hurt anymore :) | |||
|
18:09
Altai-man joined
18:11
bartolin left
18:12
bartolin joined
|
|||
| lucs | Heh. When I first noticed it was doing that, I kept trying to modify the code to see what was going on, resulting in a new precomp each time, and the same result. | 18:12 | |
| Running it as is, no duplication. | |||
|
18:12
sena_kun left,
rypervenche left
18:13
rypervenche joined
|
|||
| antononcube | @tbrowder Thank you! | 18:23 | |
|
18:45
MoC left
19:23
Aedil left
|
|||
| xinming | Is it possible to die when var ia uniniailized? | 19:38 | |
| timo | depending on where in your code it is you have multiple ways to do it | 19:39 | |
| you can have a :D type smiley on the type of the variable, then an assignment with an undefined value will throw an exception | |||
| xinming | It's not assignment, It's just when I try to print a string, the string has many vars, So it reports one of them uninitialized. I want the script to die with use of that var when print | 19:42 | |
| timo | ah, your print is a long command with a bunch of variables in it, and any one of them might be undefined? | 19:44 | |
| you are currently getting an "use of uninitialized value in string context" error? | |||
| xinming | Yea | 19:45 | |
| Use of uninitialized value element of type Any in string context | |||
| I want to die with the variable name, So I can dump context to see what happened | 19:46 | ||
| timo | ok not sure how exactly to get the variable name, but you can put `CONTROL { die "dieing because of this warning: $_" };` in front | 19:47 | |
| ugexe | doesn't have to be in front | 19:48 | |
| xinming | Thanks for the CONTROL phaser | 19:49 | |
| Will try | |||
| timo | CONTROL runs when any warning is emitted in the dynamic context of your function, which may be more than you want | 19:51 | |
| also not just warnings are control exceptions | |||
| you may want to match on the type in $_ being CX::Warn | |||
|
20:00
Altai-man left
20:03
sena_kun joined
20:31
Sgeo joined
20:36
xinming left
20:38
xinming joined
20:45
xinming left
21:20
guifa joined
|
|||
| tbrowder | yw | 22:30 | |
| hope it works for your needs | |||
| antononcube | I am making a Doomsday Clock, in Raku. | 22:39 | |
| But, the clock gauges can be utilized for showing, say, the times at different capitals. I want to also indicate with the color of the clock-faces is it night or day. | 22:41 | ||
|
22:53
sena_kun left
22:56
yewscion joined
23:03
yewscion_ joined,
yewscion left
|
|||
| coleman | The only winning move is not to play | 23:39 | |