🦋 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. |
|||
00:00
reportable6 left,
reportable6 joined
00:03
jpn left
00:04
kjp left
00:07
kjp joined
00:22
nort left
|
|||
perryprog | In Soviet Russia, you only can use package scope. | 00:50 | |
00:52
jpn joined
00:57
jpn left
00:59
derpydoo joined
01:09
japhb left
01:33
japhb joined
01:46
jpn joined
01:51
jpn left
02:16
razetime joined
|
|||
Voldenet | in soviet russia package scope uses you | 02:37 | |
02:43
an3223 joined
|
|||
perryprog | UGH | 02:44 | |
I knew there was a better version | |||
thought the my/our joke is less clear | |||
Voldenet | joking is very important business ability in IT, so I hone that ability… | 02:46 | |
rf: if you give `sort-fast` already sorted array, it will allocate things 3 times and on top of that reallocate for every element – it might be possible to use MVMArray and friends directly without copying anything | 02:56 | ||
imo at minimum you should export multi dpqs_sort for CArray[num64], so it's possible to use it without copying memory | 03:02 | ||
03:34
jpn joined
03:39
jpn left
03:48
razetime left
|
|||
perryprog | How can one customize the search path for nativecall? It's not finding dylibs installed under /opt/homebrew/lib. | 04:01 | |
Voldenet | you can provide full path | ||
perryprog | Well this is for an installed thingy | 04:02 | |
Net::ZMQ, to be specific | |||
rf | Voldenet yeah that'll be the next steps I take | 04:09 | |
Voldenet | m: use NativeCall; my $*VM = class :: { method platform-library-name(IO $libname, $apiversion = "") { "/lib/hehe.so.4" } }.new; my sub zmq_socket() is native("zmqswtf_WTF",v5) { * }; zmq_socket(); | 04:22 | |
camelia | Cannot locate native library '/lib/hehe.so.4': /lib/hehe.so.4: cannot open shared object file: No such file or directory in method setup at /home/camelia/rakudo-m-inst-1/share/perl6/core/sources/C3AB583B2A487B774A5B6012470C058B4893F1C7 (NativeCall… |
||
Voldenet | perryprog: maybe the above will help | ||
ofc, you might need to capture previous $*VM and redispatch | |||
perryprog | I'm sorry, I did a really bad job of stating what my problem actually was. What I'm actually trying to do is install Jupyter::Kernel, which depends on ZMQ, which of course expects a native call to libzmq.5.dylib, but it can't find it since it's not in the search path that it's getting from.... somewhere | 04:25 | |
Voldenet | from here most likely github.com/rakudo/rakudo/blob/main...VM.pm6#L73 | 04:26 | |
perryprog | I did find that, but I don't see where it's grabbing its search path from | 04:28 | |
Voldenet | hm, I'd try using LIB env variable before anything | 04:33 | |
perryprog | Nope | 04:34 | |
(Funnily enough, the search path does have . as a default so I can run it while in /opt/homebrew/lib just fine :) ) | |||
04:36
razetime joined
|
|||
Voldenet | DYLD_LIBRARY_PATH perhaps? | 04:37 | |
perryprog | Tried that too, but macOS is weird about env vars that start with DYLD | ||
Voldenet | or DYLD_FALLBACK_LIBRARY_PATH | ||
perryprog | ❯ DYLD_FOOBAR=123 bash -c echo $DYLD_FOOBAR # prints nothing | ||
Voldenet | consider `DYLD_FOOBAR=123 bash -c 'echo $DYLD_FOOBAR'` | 04:38 | |
perryprog | oop u right | ||
phew I was also right | |||
(still nothing) | |||
Sadly it does seem like Jupyter::Kernel is pretty crashy at least in console mode (I dunno why) and I'm quite tired so I'll have to poke around at another time | 04:39 | ||
Voldenet | I'm pretty sure that MVM_backend_config contains prefix for libs | 04:40 | |
perryprog | (basically crashes if you tab complete in like... the wrong place? I'm not sure) | ||
Voldenet | but I have no idea how to override that | ||
perryprog | that sounds promising | ||
Voldenet | m: use nqp; nqp::backendconfig<prefix> = "/eh"; | ||
camelia | Cannot assign to an immutable value in block <unit> at <tmp> line 1 |
||
perryprog | I should probably file a bug report for Jupyter::Kernel regarding the tab complete crash instead of being blasé and not 🤔 | 04:41 | |
is Brian Duggan on IRC at all? | |||
Voldenet | probably not, but github issue may be more useful for this | 04:43 | |
perryprog | Yeah, but sometimes I like to check with more async-chat-active people if there's an "is this known" thing about a certain issue | 04:45 | |
Note that's 100% code for "I'm lazy" | |||
Voldenet | not lazy, time-efficient | 04:47 | |
perryprog | right right. Yes. That. | 04:48 | |
Eh who needs sleep. I just got distracted by a link to cpan and then that made me remember this work of art exists. metacpan.org/dist/Lingua-Romana-Pe...rligata.pm | |||
Voldenet | m: use nqp; nqp::backendconfig<prefix> := "/eh"; use NativeCall; my sub zmq_socket() is native("zmq",v5) { * }; zmq_socket(); | 04:49 | |
camelia | Cannot locate native library 'libzmq.so.5': libzmq.so.5: cannot open shared object file: No such file or directory in method setup at /home/camelia/rakudo-m-inst-1/share/perl6/core/sources/C3AB583B2A487B774A5B6012470C058B4893F1C7 (NativeCall) line… |
||
Voldenet | that doesn't appear to be working either way | ||
04:55
euandreh left
05:04
Sgeo_ joined,
Sgeo left
05:10
japhb left
05:18
jpn joined
05:20
euandreh joined
05:23
jpn left
05:24
jpn left
05:35
euandreh left
05:38
nort joined
05:48
euandreh joined
06:00
reportable6 left,
reportable6 joined
06:07
Tirifto left
06:13
jpn joined
06:18
jpn left
06:22
Tirifto joined
06:47
Sgeo_ left
06:49
tea3po joined
06:53
teatwo left
07:53
bloatable6 left,
nativecallable6 left,
sourceable6 left,
committable6 left,
shareable6 left,
statisfiable6 left,
benchable6 left,
bisectable6 left,
notable6 left,
greppable6 left,
reportable6 left,
evalable6 left,
quotable6 left,
coverable6 left,
squashable6 left,
unicodable6 left,
tellable6 left,
releasable6 left,
linkable6 left,
benchable6 joined,
committable6 joined,
shareable6 joined,
sena_kun joined,
reportable6 joined
07:54
sourceable6 joined,
notable6 joined,
bloatable6 joined,
tellable6 joined,
linkable6 joined,
greppable6 joined,
releasable6 joined
07:55
nativecallable6 joined,
coverable6 joined,
evalable6 joined,
statisfiable6 joined,
unicodable6 joined,
quotable6 joined,
squashable6 joined
07:56
bisectable6 joined
08:01
jpn joined
08:07
razetime left
08:13
jpn left
08:17
svragv joined
08:22
jpn joined
08:25
an3223 left
08:34
razetime joined
08:52
jpn left
09:00
BarrOff left
09:01
squashable6 left,
squashable6 joined
09:17
jpn joined
09:20
razetime1 joined
09:21
razetime left,
razetime1 is now known as razetime
09:59
razetime left
10:29
sena_kun left
10:54
teatime joined
10:55
teatwo joined
10:56
tea3po left
10:58
teatime left
11:06
ab5tract joined
11:51
rf left,
rf joined
11:56
lizmat left
12:00
reportable6 left,
reportable6 joined
12:11
kaskal joined
12:16
hankache joined
12:30
derpydoo left
12:47
hankache left
13:08
sena_kun joined
13:17
sena_kun left
13:18
sena_kun joined
13:34
japhb joined
|
|||
Anton Antonov | @perryprog “Sadly it does seem like Jupyter::Kernel is pretty crashy […]” — yes, others have observed that too. Of course, if you have Mathematica then you can use Raku in Mathematica notebooks (via the Mathematica-Raku connection.) 🙂 | 13:52 | |
@perryprog As Voldenet said, you can submit a GitHub issue — Brian has been fairly quick to respond to issues I have submitted. | 13:53 | ||
I have dealt in the past with libzmq related problems… I can find relevant references of resolving those in macOS. But that might not be of interest to @perryprog and @Voldenet. | 13:56 | ||
14:03
RakuIRCLogger left
14:04
jpn left
14:06
jpn joined
14:09
grondilu joined
|
|||
grondilu | Hi all. I have an issue involving two modules in two files, so it's a bit difficult to show here. I'll try to explain. | 14:11 | |
I have a directory ./Foo/ and two files ./Foo.rakumod and ./Foo/Bar.rakumod | 14:12 | ||
Foo is a module exporting a function. | |||
Bar is a class using Foo | |||
And calling the exported function inside a methoe | |||
*method | |||
rf | ./Foo/Foo.rakumod? | ||
grondilu | no, just ./Foo.rakumod | 14:13 | |
problem is : when calling Bar.new.the-method-calling-the-Foo-func() I get an error "no such symbol in Foo" or something | 14:14 | ||
rf | How are you running it? | ||
grondilu | $ raku -I. -MFoo::Bar -e 'Foo::bar.new.the-func()' | 14:15 | |
let me show you the content | |||
$ cat Foo.rakumod | |||
unit module Foo; | |||
our sub talk { say "hi" } | |||
rf | Ah maybe raku -I. -MFoo::Bar -e 'use Foo::Bar; Foo::bar.new.the-func()' | ||
grondilu | rf: I'll check that | 14:16 | |
nope, same error | 14:17 | ||
$ cat Foo/Bar.rakumod | |||
unit class Foo::Bar; | |||
method talk { use Foo; Foo::talk; | |||
} | |||
So what am I missing and can you guys reproduce that error? | 14:18 | ||
rf | I would recommend using Zef to install your module | 14:19 | |
Anton Antonov | @grandilu You can try defining the Foo function of interest as our and then use the full name "Foo::interest-func" in "Bar". | 14:20 | |
rf | It takes away a lot of the Raku -I. use lib lib mess | ||
Anton Antonov | Also, 🤮 -- I hate the stupid foo-bar fashion of making examples. | ||
[Coke] | given the number of people in raku who use vi, I imagine you'll find a similar number who still use foo/bar/baz - they were quite popular back in the dark ages of the late 80s. | 14:23 | |
Anton Antonov | @Coke Aha -- you showed yourself! | 14:24 | |
grondilu | Anton Antonov: that's what I did, isn't it? | ||
[Coke] | I have often shared that I learned how to use vi on a mainframe and then got stuck. | 14:25 | |
Anton Antonov | @grandilu Well, you did not say used our. | ||
@Coke If I want to make a "search engine" for the Raku documentation where is single origin of truth for the individual parts? | |||
[Coke] | If you want to make a search engine for the docs, that's a big question and you should talk with the folks in #raku-docs about what you're doing and if it makes sense to have it be part of raku/doc-website | 14:26 | |
er, #raku-doc | 14:27 | ||
perryprog | (@Anton, lol regarding Mathematica-Raku) | ||
Anton Antonov | @Coke Thanks! | ||
@Coke Also, a Raku package of such "search engine" might have a fairly large resources folder -- are there any guides, tips, rules, for Raku packages with large supporting data? | 14:28 | ||
[Coke] | over the last X years, raku/doc went from installing all the rakudoc files to not, because our install process was old and never updated to work once zef had helped fix how resources/ should work. | 14:31 | |
14:31
rf_ joined
14:32
rf left
|
|||
[Coke] | so right now, I'm the wrong person to ask. If you're thinking of installing the raku/doc stuff as well, then we also need to think about raku/rakudoc (the CLI tool which right now works not on installed data, but an env var pointing to a folder) | 14:32 | |
I can tell you that raku/doc-website has a generated file in the deployed website that combines all the bits for the search index. | |||
14:33
razetime joined
|
|||
Anton Antonov | @Coke This is helpful. More or less my approach is similar. | 14:34 | |
14:34
derpydoo joined
|
|||
@Coke For example, here is a folder with the "search engine" files for Zef recommenders : github.com/antononcube/Scalable-Re.../main/Data . | 14:35 | ||
Of course, if that collection files is too large, then they can be distributed separately. | 14:36 | ||
14:37
euandreh left
|
|||
@perryprog Well, I have to "finalize" and/or "speed-up" some of the conversions of Mathematica-to-Raku, but generally speaking I find the combination good enough. The "Jupyter::Kernel" package looks/feels very nice in VSCode (or VSCodium.) But, unfortunately I cannot install "Jupyter::Kernel" reliably on my mac. (Meaning, for example since rakudo version 2022.07 I cannot install "Jupyter::Kernel".) | 14:38 | ||
14:38
jgaz joined
|
|||
grondilu | Here is a shell script reproducing my issue: gist.github.com/grondilu/bdb1ea064...359fa97186 | 14:40 | |
Anton Antonov: what would you use instead of 'foo bar'? | 14:41 | ||
14:42
Djwrz777 joined
|
|||
Anton Antonov | @gradilu Shouldn't you have "use Foo;" in Bar.rakumod ? | 14:44 | |
grondilu | it's inside the method | 14:46 | |
grondilu just checked if putting it outside changes anything. It does not. | 14:52 | ||
Anton Antonov | @grondilu (Sorry, I occasionally misspell your handle.) | ||
grondilu | no worries | 14:53 | |
Notice that if I put Bar not in Foo/ but in ./, and rename the class accordingly, it works just fine. | 14:54 | ||
I suspect this is a bug, tbh. I'm considering creating an issue but I may be misunderstanding module use semantics. | 14:55 | ||
14:57
abraxxa-home joined
14:58
abraxxa-home left
15:00
Sgeo joined
15:01
rf joined
|
|||
rf | Morning folks | 15:04 | |
tonyo | rf: are you still using the dist branch of fez? | ||
rf | Probably | ||
Lol | |||
15:04
rf_ left
15:05
xinming left
|
|||
rf | Why? Is it in upstream now? | 15:05 | |
[Coke] | I have a raku script - if I do "script | garbage" I get a backtrace with "failed to write 6 bytes to filehandle..." - is there a best practice to avoid this? | 15:06 | |
15:07
xinming joined
15:12
razetime left
|
|||
tonyo | it isn't but i'm about to push a bunch of stuff to get rid of the pax/tar/gzip shell outs | 15:13 | |
it'll have pure raku tar and zlib bindings | |||
hopefully with all of the new usage mechanisms, logging, verbosity, and that it should be ready to start testing seriously as a module management tool | 15:15 | ||
if you do a pull you should see a bunch of new stuff | 15:18 | ||
15:24
Djwrz777 left
|
|||
lucs | Does anyone know of any modules that supply interactive (possibly optional) tests? | 15:36 | |
I'm thinking of having such tests in a module I'm making and I'm wondering how other people would have approached it. | 15:38 | ||
15:41
grondilu left
15:49
lizmat joined
|
|||
lucs | Does an END block run if a program raises an unhandled exception and dies? | 15:56 | |
I guess it wouldn't always be possilbe, but could it, in certain circumstances? | 15:57 | ||
lizmat | END blocks are always run unless there's a segfault | 16:03 | |
even if you do an exit() | |||
Nemokosch | grondilu: I don't think that's an issue, it's just a depressing topic | 16:04 | |
lizmat | PSA: it appears that the IRC logger conked out while I'm away, and I just realized I can't kick until probably Sunday | ||
Nemokosch | Foo::Bar doesn't implicitly mean "Foo/Bar" | 16:05 | |
lizmat | I realize now in a bad way that server doesn't live in our DMZ :-( | ||
my apologies: I'll resolve the logs with colabti's as soon as I can | 16:06 | ||
lucs | lizmat: Thanks (re. END) | ||
Nemokosch | actually, it would be interesting to know how Rakudo gets around packages | ||
lizmat | afk again& | ||
Nemokosch | because Rakudo really likes to use this convention | ||
16:06
lizmat left
|
|||
and it definitely doesn't install with zef... | 16:06 | ||
tonyo | gets around packages? | 16:08 | |
Nemokosch | Rakudo is full of this pattern | 16:09 | |
IO::Path is under IO/Path.pm6 and somehow the other modules just find it | |||
tonyo | grondilu: what's the meta look like in that ? | 16:10 | |
tellable6 | tonyo, I'll pass your message to grondilu | ||
tonyo | assuming there isn't one. if there was and you put Foo::Bar in the provides with the path to the right file, it'd work OK | 16:11 | |
Nemokosch | how does Rakudo do this without META6 files? | 16:15 | |
take github.com/rakudo/rakudo/blob/main.../Array.pm6 for example. It's full of Rakudo:: scoped stuff. | |||
is this something the Setting puts together? | 16:16 | ||
16:22
japhb left
|
|||
tonyo | it can find IO::Path because it's loaded by core.. you don't need to do anything to use it | 16:22 | |
m: dd IO::.keys | |||
camelia | ("ArgFiles", "Socket", "Path", "CatHandle", "Pipe", "Handle", "Notification", "Special", "Spec").Seq | ||
Nemokosch | Well, how does the core load it - especially in a way that other parts of core can also see the symbols? | 16:26 | |
perryprog | Anton, what was the installation issue you were having? | 16:35 | |
16:43
ProperNoun joined
17:22
tg57 joined
|
|||
tonyo | rf: if you could pull on fez and provide feed back it'd be much appreciated | 17:46 | |
the only shell outs remaining are going to be difficult to do without depending on some library | |||
[Coke] | anyone remember the options to make less work like more? | 17:56 | |
18:00
reportable6 left
18:02
reportable6 joined
|
|||
[Coke] | ah, nevermind. was trying "oh my zsh" and it's very... opinionated. | 18:03 | |
rf | @tonyo which branch? | 18:04 | |
tonyo | dist | ||
rf | On it! I'll let you know around sunday got a big release today at $work | 18:05 | |
[Coke] | never do big releases on fridays! | 18:06 | |
rf | Hahaha, I know. Unfortunately we have to get this out and i'll be On-Call saturday | 18:07 | |
[Coke] | good luck, then. | ||
rf | Yeah, I'm fairly confident, though the whole github SSH thing makes me worried a little lol | 18:08 | |
tonyo: These changes look excellent | 18:10 | ||
tonyo | thanks dude | ||
the bundling is the one i'm most concerned with..i need to deprecate checkbuild and replace it with something a little more robust | |||
then `dist` will be released | 18:11 | ||
rf | Im wondering if that whole tar module could be its own thing | ||
Feel like it may be useful :) | |||
[Coke] | +1 | ||
rf | Really dig the cmd stuff too | 18:12 | |
tonyo | yea it probably should be | 18:20 | |
18:21
jpn left
|
|||
tonyo | i didn't go through the all of the file types with it yet | 18:21 | |
and it'll puke on links iirc (was a while ago i wrote that) | |||
18:23
jpn joined
18:26
tg57 left
18:28
jpn left
|
|||
tonyo | i _am_ hoping my abuse of MAIN catches on and we get better custom USAGES/suggestions | 18:39 | |
18:51
teatwo left,
teatwo joined
19:04
jpn joined
19:11
japhb joined
|
|||
p6steve | hi - I'm wrestling with %?RESOURCES ... anyone have a good working example I can look at? | 19:19 | |
Nemokosch | the main thing to remember is that %?RESOURCES is conceptually flat. It's like an alternative to the file system. You declare which file you want to get and it will get it for you. | 19:25 | |
for example, there was this $dayjob module that had some js and css files in the resources folder | |||
it listed them in META6.json, like this: "resources": [ "common.css", "chartgeneration.js", "chartjs2_7_0.js", "chartjs-plugin-piechart-outlabels.js" ] | 19:26 | ||
tonyo | p6steve: github.com/tony-o/raku-fez/blob/di...kumod#L706 | 19:30 | |
tellable6 | tonyo, I'll pass your message to p6steve | ||
Nemokosch | and then e.g %?RESOURCES<common.css> would be something vastly similar to an IO::Path object | ||
p6steve | tonyo: thanks! | ||
Nemokosch | the documentation also kinda has an example docs.raku.org/type/Distribution::Resource | ||
p6steve | nemo: yeah - i read the docs and already tried what you say ... 'only' problem is that it doesn't work ;-( | 19:31 | |
nemo: appreciate the help, all the same - tx | |||
Nemokosch | 🍰 | ||
tonyo | p6steve: a lot of uses in that code base but you may need to grep | 19:34 | |
tellable6 | tonyo, I'll pass your message to p6steve | ||
tonyo | another one exists in lib/Fez/Util/Zlib to get the right reference to zlib | 19:35 | |
p6steve | ok - thanks for the help ... I have it ... what confused me is that you can't write %?RESOURCES<common.css> in a rakuscript, only in a rakumod !? | 19:39 | |
Nemokosch | that's more than possible. It's a feature of a distribution. | 19:41 | |
19:49
jgaz left
|
|||
rf | p6steve: github.com/rawleyfowler/JSON-Simd/...rakumod#L8 | 19:49 | |
tellable6 | rf, I'll pass your message to p6steve | 19:50 | |
20:03
japhb left
20:07
japhb joined
20:14
rf left
|
|||
tonyo | yea those are only available within the dist, so even in a bin/ _in_ a dist you can't get them. if you need them that way you should either put the CLI stuff in lib (which you should anyway), or make a helper to get the info for you (this leaks that data outside of the dist) | 20:16 | |
20:17
QhpAptyj9hj0RQwM joined
20:23
QhpAptyj9hj0RQwM left
20:40
sena_kun left
20:43
sena_kun joined
20:45
sena_kun left
20:47
QhpAptyj9hj0RQwM joined
20:55
swaggboi left
20:57
swaggboi joined
21:12
Ergo444 joined,
euandreh joined
|
|||
Ergo444 | hi does zef update the index based on github automatically? | 21:12 | |
21:18
Ergo444 left
|
|||
guifa_ | it does -- but I don't remember what the lag time on it is | 21:19 | |
21:24
QhpAptyj9hj0RQwM left
|
|||
Anton Antonov | @perryprog "Anton, what was the installation issue you were having?" -- Currently, the most significant is this one : github.com/bduggan/p6-digest-sha25...e/issues/5 | 21:34 | |
p6steve | ahhh - perhaps should be documented? | 21:38 | |
21:54
QhpAptyj9hj0RQwM joined
|
|||
Nemokosch | Ergo444: I think the question is a bit prone to misunderstandings. What do you mean by "based on github"? | 21:58 | |
if this is about module installation, the answer is more "no" than "yes", I mean, it takes REA into account (and it could take p6c into account) but you'd still need to let the ecosystem(s) know about your module | 22:00 | ||
22:25
lizmat joined
22:28
tg57 joined
22:30
euandreh left
22:40
tg57 left
22:41
pingu joined,
pingu left,
ab5tract left
22:48
Bocaneri joined
22:49
Bocaneri is now known as Guest6875
22:51
jpn left,
Sauvin left,
Sauvin joined,
jpn joined
22:53
Guest6875 left
23:05
jpn left
23:24
QhpAptyj9hj0RQwM left
|
|||
Voldenet | grondilu: the problem with .rakumod-only modules is that there is no `project root`, so your module could be either Tmp::Foo::Bar or Foo::Bar or Bar depending on the root directory used, which causes ambiguities | 23:49 | |
tellable6 | Voldenet, I'll pass your message to grondilu |