🦋 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:04 Aedil joined 01:04 apac left 01:33 hulk joined, kylese left 02:15 hulk left, kylese joined 03:45 kylese left 03:48 kylese joined 06:05 Sgeo_ joined 06:08 Sgeo left 06:44 Sgeo_ left 07:23 lichtkind joined 08:05 apac joined, wayland joined
wayland librasteve_: I don't have a Reddit account, but if I haven't done that by Friday, then please feel free to remind me (I'm busy tonight, but should have time Friday/Saturday my time) 08:07
08:13 melezhik joined 08:15 dakkar joined
melezhik Just dropped a small HN post on small Raku/sparrow based apk build files parser - news.ycombinator.com/item?id=44657415 09:58
tellable6 2025-07-22T09:29:05Z #raku <wayland76> melezhik: No worries, thanks :)
melezhik Useful for people dealing with maintenance of alpine packages 09:59
10:09 arkiuat left 10:38 arkiuat joined 10:43 arkiuat left 11:12 arkiuat joined 11:17 arkiuat left
tbrowder wayland: i went to reddit and reglanced at yr raku collections piece. for one thing it's missing "pdf" as a collection term. i also have not been able to figure out how to reply to a post or get out of the apparent unrelatet stream of commercials and ramblings by new age ppl 11:29
i don't like reddit 11:30
11:38 arkiuat joined 11:43 arkiuat left
disbot4 <librasteve> tbrowder: I'm not saying that reddit is good (!), but as a tool for us to showcase raku (in order to interest and engage eg. potential Python, Go, PHP converts), it seems pretty useful to me ... imo if you comment here about Waylands collections then it will quickl scroll up and away, whereas over there we can have a thread - and for Wayland to have garnered (now 2k views) maybe some of that will trigger interest and is worth 11:55
trying to amplify
12:08 arkiuat joined 12:13 melezhik left, arkiuat left 12:30 wayland left 12:34 wayland joined 12:36 arkiuat joined
wayland tbrowder: PDF is there, listed as one possible value of the "Formats > File" facet. 12:39
disbot4 <librasteve> lol 12:40
12:40 arkiuat left 13:07 arkiuat joined
wayland librasteve_: I don't have anything to respond to on the Pathways of Entry one, but I've commented on the RaClU one. 13:09
disbot4 <librasteve> =b
13:12 arkiuat left
disbot4 <antononcube> @tbrowder On a related sentiment — I do not like Number theory. 13:14
wayland I don't like zucchini -- does that count? :p 13:15
disbot4 <antononcube> Sure, he wrote lots of math books with certain slant. (In Itallian.) 13:28
wayland Haha :) 13:37
13:42 arkiuat joined 13:46 arkiuat left
jdv not that it matters much but does anyone have any idea why the max rss of "raku -e 'say 123' is 138MB? 13:51
seems a bit higher than I remember:) perl's is 5MB, for comparison. ruby's is 14MB. 13:52
lizmat that's MoarVM + NQP + Rakudo core.c + core.d setting for you 13:54
jdv a mem constrainted env may not appreciate that. just wondering where it's mostly coming from? 13:57
is it inefficient NFG stuff or i have no idea what else would take up that much space 13:58
lizmat I don't have a good answer about that, but don't think it's the NFG machinery per se, but more like the massive Grammar 14:03
which, BTW, currently loads both the legacy grammar as well as the Raku grammar 14:04
which could explain the rise in memory usage you've seen
you could try *ing out the lines 3 and 4 in src/main.nqp to see how much of a change that would make 14:05
14:10 arkiuat joined 14:14 arkiuat left 14:24 gordonfish joined 14:35 melezhik joined
melezhik Just published small post on Raku/Sparrow/AlpineLinux ecosystem - dev.to/melezhik/raku-sparrow6-swis...linux-2ngh 14:36
14:43 arkiuat joined 14:48 arkiuat left 15:01 arkiuat joined 15:08 arkiuat left 15:11 apac left 15:17 human_blip left 15:19 human_blip joined 15:27 LainIwakura joined
disbot4 <melezhik.> news.ycombinator.com/item?id=44659822 interesting , proxmox likes Raku ) 15:31
15:39 arkiuat joined
coleman jdv: do you know a one-liner to capture RSS on a short-running program like that? 15:41
15:43 arkiuat left
jdv coleman: /usr/bin/time -v raku -e 'say 123' 2>&1 | grep 'Max' ? 15:46
coleman Nice! I didn't know about /usr/bin/time vs $(which time), nor the -v flag 15:50
jdv yeah, shell vs standalone 15:53
there's a bunch like that iirc
echo, etc...
16:00 arkiuat joined 16:05 arkiuat left 16:11 rir joined
rir Is there an embedded way to find the commit of roast that was current for a commit of rakudo? 16:17
jdv embedded? just point in time afaik. 16:22
rir Embedded ~~ a reference in rakudo. 16:28
16:29 LainIwakura left 16:34 dakkar left 16:36 arkiuat joined 16:40 arkiuat left
jdv no 16:49
17:02 arkiuat joined
[Coke] they are independent 17:04
You should in general be using latest roast, with a version specific branch if needed. 17:05
You could do best guess based on time of rakudo tag vs. time of roast commit (to the appropriate branch) 17:06
lizmat mind you, it shouldn't be too hard to create a list of rakudo tag -> roast commit pairs
17:07 arkiuat left
lizmat possibly in a script, to be run after a release has been done ? 17:26
[Coke] what does it mean, though. 17:33
17:34 LainIwakura joined, arkiuat joined
lizmat well, if you would like to test roast with a given rakudo release, that could be helpful ? 17:35
[Coke] to be more specific, which version of roast? 17:38
latest roast should always be the best version of roast.
lizmat ideally, yes 17:39
17:39 arkiuat left
[Coke] If you want to see if a version of rakudo passes an old version of roast, what's the question we're answering there? 17:39
17:41 LainIwakura left
lizmat such a test could be on other architectures 17:44
[Coke] but why? 17:45
what's the use case asking for that data?
lizmat I mean... I could see that for some types of error spelunking, it could be useful to have out of the box
rir apparently has a need for it, maybe they should elaborate ?
rir An old version of rakudo that was not a release would not be checked against later commits of roast? If not, testing against the then-current roast seems a way to diagnose then-current code. 17:47
[Coke] no, we don't recheck old compilers against updated tests. 17:49
maybe if we had a "LTS"-style model that would track. 17:50
but let's say we had a rakudo-A that passed roast-A, then we make roast-B, and now rakudo-A doesn't pass that test. If we have verified that roast-B is the correct test (sometimes we fix bugs in the spec), then the fix is to update to the rakudo that passes the test. 17:52
(this is the kind of use case I'm asking after) - if the end result is "update rakudo", then while I think it makes sense to figure out an ad hoc way to do the testing, not sure it makes sense to check how we do releases, etc. 17:53
(I am not saying "no", I'm just want to be clear about why we'd add work to the process, etc.)
17:54 melezhik left 17:56 wayland76 joined, wayland left
[Coke] "not sure it makes sense to *change* how..." 17:57
17:58 arkiuat joined
[Coke] if it's just "how would we do that today", then yah, it's ad hoc. 17:59
18:11 arkiuat left
rir I thought the roast commit might be referenced some where in a rakudo release, somewhat like a git submodule. That might make it easier diagnose old code. Thanks Coke, Liz, jdv. 18:18
[Coke] cool cool. Sorry I sound like a crotchety old dude when I start talking on IRC. :) 18:22
(... to be fair, that's not an unreasonable description in general :)
18:36 arkiuat joined 18:41 arkiuat left 18:51 PipStuart left 18:53 arkiuat joined 18:58 arkiuat left
rir Coke, I disagree with your 2 last. 19:02
jdv the release tarball contains a copy of *I think* roast 6.d branch in t/spec. but that's arguably by accident and not terribly useful. 19:07
[Coke] and there's a ticket to change that tarball to main instead, I think. 19:14
I got the impression it was never intentionally that branch, that's just the last one tested.
19:17 arkiuat joined
jdv i think the same. be nice if the sha was in there somewhere maybe as well 19:41
19:52 Aedil left 19:55 arkiuat left 20:18 arkiuat joined 20:22 arkiuat left
Voldenet 130MB may seem like a lot if you compare it to perl or ruby, but nodejs takes 40MB 20:26
and nodejs is very inflexible in terms of syntax, so it doesn't seem like a fair comparison 20:31
20:31 arkiuat joined
Voldenet I wonder if it would be possible to not even load a grammar 20:35
currently it's possible to precompile stuff and do `use App::Thing; main();` - that requires grammar to be loaded
20:36 arkiuat left
Voldenet maybe it'd be possible to do something like `raku -MApp::Thing` so that only the bytecode is loaded 20:38
and some sub is by default loaded from the module
20:42 arkiuat joined 20:46 arkiuat left
timo wouldn't be terribly much work. you'd probably have to load the Perl6::ModuleLoader and ask it to load that file, maybe you'll have to do something to set up a CompUnitRepo to get it loaded correctly 20:49
20:53 arkiuat joined 20:59 arkiuat left 21:06 arkiuat joined
ugexe yes, just use a MAIN 21:18
raku -MZef::CLI -e '' install Foo::Bar
which for zef in particular is nice because it ensures you're always using the zef for the current version of raku instead of whatever is at the head of PATH 21:19
timo i don't think we have anything that makes `-e ''` not cause Grammar and Actions to be loaded and the compiler bits to be run 21:23
21:23 apac joined
ugexe oh, i guess i missed the important aspect of that idea 21:24
timo actually, main.nqp of Rakudo loads Grammar and Actions 21:27
so you may need to write your own entrypoint in nqp to get around having that loaded for your raku code
21:35 apac left, coleman left 21:36 coleman joined 21:37 apac joined 21:56 lichtkind left
Voldenet hm, `-e ''` could be simply special-cased, but probably separate entrypoint is a better idea 22:09
another idea would be to skip loading things when env variable is set 22:12
something similar to `if nqp::getenvhash()<RAKUDO_RAKUAST> {` 22:13
`RAKUDO_NOAST` 22:14
lizmat this memory issue will go away as soon as the Raku grammar is the only grammar 22:28
so why are we spending time on that now ?
Voldenet not needing AST at all is a valid use case, especially for a lot of binaries 22:31
maybe it will only reduce usage by 20% instead of 90%
lizmat then how do you think the new Raku grammar works? 22:32
even the legacy grammar builds ASTs, just not RakuAST ones
Voldenet I expected it to be eager-loaded in some way, if it's lazy, then there's no point debating this indeed 22:33
if it's taking over 100kB to load, it's already a large cost if precompiled code doesn't need that 22:35
22:39 apac left 22:50 deoac joined 22:57 wayland76 left 23:11 arkiuat left 23:21 arkiuat joined
timo we will at the very least mmap the .moarvm files into memory 23:37
being able to circumvent both grammars, both actions, the World, and the MASTOperations and QASTCompilerMAST and such, should add up to a lot 23:41