🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
00:51 vrurg left 00:53 vrurg joined 00:56 vrurg left 01:03 vrurg joined 01:14 vrurg left 01:15 vrurg joined 01:21 vrurg left 01:23 vrurg joined 05:10 kjp left 05:11 kjp joined 05:13 kjp left 05:14 kjp joined 06:11 guifa left 06:16 guifa joined
patrickb ab5tract, timo: I believe Coleman is working on a new build system starting with Moar. Maybe based on Ninja or Meson? 06:23
07:28 donaldh- joined 07:30 donaldh left, guifa left 07:31 guifa joined 07:33 Voldenet left, Voldenet joined
[Coke] thought I saw an alert on an email from patrickb in the past 24h but now don't see it. Was I perhaps sleep-emailing at the time? :) 12:07
patrickb I do not recall sending you a mail... 12:08
[Coke] ok. thought maybe it was a github update on something. 12:14
I am now *kind of* back on my schedule, but not 100%. :) 12:15
Geth rakudo/main: 5341a3dff7 | (Elizabeth Mattijsen)++ | lib/RakuDoc/To/RakuDoc.rakumod
RakuAST: make RakuDoc::To::RakuDoc work on declarator docs

This should fix the case of:
   $ raku -MRakuDoc::To::RakuDoc -e 'say RakuDoc::To::RakuDoc.render("file".IO.slurp.AST)
This fix comprises of: ... (5 more lines)
12:42
coleman I stopped working on the Meson build last summer. I still think it's a good idea, though 12:51
github.com/MoarVM/MoarVM/issues/1795 has links to some branches 12:53
Meson has patterns for config.h generation and other codegen stuff that requires running random scripts. 12:54
here's the root meson file I came up with github.com/dontlaugh/MoarVM/blob/m...eson.build 12:55
And (almost) every subdirectory will need its own. 12:56
ab5tract Each one needs its own? :( 14:14
16:13 kjp left 16:14 kjp joined
ab5tract I'm working on the JVM build process so that it can be converted to Kotlin and perhaps improved 16:56
but holy moly , this crap is complicated
crap = generated Makefile 16:57
lizmat ab5tract: one of the discussions we had at the RCS summit was about the benefits of an Inline::Java module, versus a JVM backend
the thought being that perhaps it would be better to spend effort on a fully functional Inline::Java module than on a JVM backend which e.g. misses NFG support 16:58
ab5tract Hmm... I guess I don't see how you can have one or the other
*without the other 16:59
lizmat well, we can use Inline::Perl5 without having a Perl backend? 17:00
ab5tract :O
how?
oh, sorry, I thought you meant without having libperl.so installed :)
I haven't looked at JNI recently but my understanding was that it was less fun than XS 17:02
lizmat but maybe better documented ?
ab5tract one would hope :)
how did the NativeCall conversations go? 17:06
there was some mentions of varargs support meaning that we could get away with not even writing the glue code, IIRC?
lizmat I wasn't really part of that discussion, perhaps nine / MasterDuke17 / patrickb can enlighten us 17:08
ab5tract This looks promising! blog.payara.fish/java-21-foreign-f...memory-api 17:09
Alright, I'm on board. One less moving piece to worry about. Though Inline::Kotlin > Inline::Java ;) 17:10
ugexe to play devils advocate here, the advantage of JVM backend is that raku then theoretically run anywhere the jvm does. with Inline::Java we do not get to say that 17:12
lizmat true, but the argument was also that non-Java users could benefit from access to the Java extensive library system (as long as the JVM runs on that architecture) 17:14
ab5tract ugexe: True. I guess ideally we could have both
but the JVM backend doesn't even really provide much interop with the Java ecosystem, IIRC 17:15
to me it's sort of hanging around as a perpetually-almost-finished thingy that can do more harm than good to first impressions
ugexe on the other hand if the jvm is always going to be a second class citizen (see aforementioned lack nfg support comment among other things) it isn't really fair to use those theoreticals as reasons to keep it around 17:16
ab5tract yeah, that's been my feeling on it for a while now 17:17
there's quite a bit more prior art for implementing a language on JVM that "feels native" than there was back in 2010 or whenever it was 17:18
lobste.rs/s/r0spkl/raku_s_core
I can invite anyone who wants to weigh in on the comment section
lizmat weekly: lobste.rs/s/r0spkl/raku_s_core 17:22
notable6 lizmat, Noted! (weekly)
Geth rakudo/main: 0eef26e188 | (Elizabeth Mattijsen)++ | src/Raku/ast/variable-declaration.rakumod
RakuAST: micro-opt for collecting RakuDoc from source

Prevent repeated lookups of $*RAKUDOC dynamic variable
17:28
lizmat hmmm... did we bork --doc somehow? I can't get it to output anything? 17:37
raku lib/Test.rakumod --doc
I sorta expect something to show ?
[Coke] --doc first?
yah, it matters 17:38
(I am testing on 2025.04, no results if comes last)
lizmat aah.... hmmm
aah, duh
lizmat tries to restart her brain 17:39
yeah, otherwise it's just an argument to the raku program, instead of to raku itself 17:40
[Coke] my brain is only slightly more awake than yours, no worries 17:41
[Coke] checks and realizes he's drinking caffeine free soda. 17:42
oops
ab5tract hmm... can we be smart about this in the case that the file doesn't contain a MAIN?
it would maybe collide with someone doing manual processing of @*ARGS to find a `--doc` flag, but that feels a bit like DIHWIDT? 17:43
lizmat you can still handle your own @*ARGS without a MAIN
right
ab5tract or maybe we could some proxying logic to @*ARGS and emit a worry if an argument was passed but @*ARGS was not accessed in any way? 17:45
or maybe I'm overthinking :)
lizmat that would affect all argument parsing... 17:46
ab5tract yeah, but it's awkward that you can pass unsupported, unused arguments without complaint 17:48
anyway, it's a minor pain in the foot at best
lizmat although thinking about this, maybe an environment variable to force doc production may make more sense in that respect? 17:49
meh... dunno 17:50
ab5tract yeah.. the solutions are all a bit awkward compared to the scope of the problem (brains)
another option could be to disregard the before / after file name distinction for all `raku` supported flags but emit a worry saying it is better provided before any file name rather than after 17:52
dunno, though. the problem is that it is pretty annoying when you forget this, but probably not annoying enough to add a whole song and dance around it 17:54
[Coke] this feels like a DIHWIDT to me. 17:58
ab5tract [Coke]: which part? 18:02
usually when we can give some info back to the user that they may be in the process of repeatedly hurting themselves, we do so 18:03
[Coke] If I read it write, is the suggestion to have 'raku foo --doc' try to emit a helpful error? 18:04
"it right"
ab5tract I was brainstorming to see if there were any reasonable ways to do so. The conclusion so far is that no, there isn't 18:05
but DIHWIDT is not traditionally an indicator that "we shouldn't bother to help" 18:06
[Coke] ... did I say "we shouldn't bother to help"? 18:07
ab5tract I didn't say that you did
[Coke] ... ok, then I have no idea what conversation we're having now. 18:08
ab5tract maybe I interrupted your thought
[Coke] I will drop out and return
18:08 [Coke] left 18:30 librasteve_ joined
patrickb ab5tract: varargs support is sorted out. I only need to finish the implementation. (I'm obviously naive here.) 18:50
I was the strong proponent of Inline::Java. I fully realize that this is subjective and I do not want to discourage any effort to continue with our JVM backend. 18:52
But I do see the bigger benefits in Inline::Java compared to a JVM backend. But creating an Inline:: module from scratch is a huge amount of work. Because of that it is literally the last point on my personal Raku to-do list. 18:55
For anyone interested: boekernet.de/~patrick/finger.txt 18:56
ab5tract patrickb: :D 18:57
timo leont: i've got something that makes YAMLish not be as unhappy when run multiple times in parallel 19:13
leont Oooh 19:14
timo i don't exactly understand why it behaves that way only when run in parallel though
github.com/timo/yamlish/commit/19a...a0bdfeb610 with this commit i can run this without getting warnings about Nil in string context: rakudo -I . -MYAMLish -e 'my $input = "xt/data/config.yml".IO.slurp; await do for ^1000 { start say load-yaml $input }' 19:20
the {} in between the $<sp>=... and the stuff using it is load-bearing 19:21
but this only changes root-block and block, there's more places that do indent handling. i don't immediately have a good example yaml file to exercise those code paths though 19:22
i love that the first example yaml i downloaded wasn't parseable because it ended with `---` and either yamlish doesn't like that, or it might just actually be invalid yaml? 19:30
ab5tract m: my $role-how = Rational.HOW; my &floor = $role-how.find_method(Rational, "floor"); floor(1.5) # :( 20:58
camelia Invocant of method 'floor' must be an object instance of type
'Rational', not a type object of type 'Rational'. Did you forget a
'.new'?
in block <unit> at <tmp> line 1
coleman Unparsable yaml, what is this, Thursday? 21:29
22:12 rakkable__ left, rakkable joined