🦋 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
00:02
reportable6 joined
|
|||
Nemokosch | as I said - @list.elems will explode on you if you happen to have a lazy list | 00:03 | |
ugexe | if it was lazy i would expect it to be $list.elems | 00:17 | |
a lazy list rather | |||
m: my $a := (42, 99).map({ say $_ }); say ?$a; say $a.elems | 00:18 | ||
camelia | 42 True 99 2 |
||
Nemokosch | m: my @a = lazy 1, 2, 3; say ?@a; say @a.elems | 00:19 | |
Raku eval | True Exit code: 1 Cannot .elems a lazy list onto a Array in block <unit> at main.raku line 1 | ||
ugexe | i don't think that 'lazy' does anything | 00:20 | |
Nemokosch | I mean, you can see it does, can't you | ||
rf | Can I augment a role | ||
ugexe | its used internally | ||
Nemokosch | (the error message got fixed since but it still wouldn't work) | ||
rf | I keep hitting: expecting a generic role Cannot augment Role because it is closed | 00:21 | |
ugexe | i see its listed in the docs | ||
which kind of surprises me | |||
Nemokosch | "lazy" is a really unfortunate term for it because yes, something can be lazy without being "lazy" | 00:23 | |
a "lazy" lazy thing is, for example, an infinite sequence | |||
m: my $seq = (1, 3 ... *); $seq.elems | 00:26 | ||
Raku eval | Exit code: 1 Cannot .elems a lazy list onto a Seq in block <unit> at main.raku line 1 | ||
ugexe | m: my $seq := (42, 99).map({ say $_ }); say $seq.is-lazy; say $seq.elems | 00:28 | |
camelia | False 42 99 2 |
||
Nemokosch | m: my $seq = (1, 3 ... * == 100); #`[ this one is also infinite but it doesn't know about it ] $seq.elems | ||
ugexe | i guess if .is-lazy is False it can .elems a lazy list | ||
Raku eval | Failed while reading stream: Max execution time exceeded | ||
ugexe | even if it is indeed lazy | ||
Nemokosch | yes, it is decided by that exact check | 00:29 | |
this "lazy" rather means "shouldn't start fetching values from this" than laziness by usual terms | 00:31 | ||
ugexe | github.com/rakudo/rakudo/wiki/is-lazy | ||
Nemokosch | has anyone seen AlexDaniel and me at the same time...? lol | 00:33 | |
joke aside, I didn't know about the ranges part | 00:34 | ||
el can you send data to a generator | 00:41 | ||
Nemokosch | what would that do? | 00:44 | |
00:44
Manifest0 left
|
|||
elcaro | You might be looking for Supply's | 00:45 | |
el def gen(): a = yield print(a) g = gen() next(g) g.send(1) # 1 | 00:46 | ||
^ | |||
Nemokosch | next is part of the interface of the iterator, right? | 00:47 | |
el yes | |||
Nemokosch | then probably not | ||
iterators don't take an argument to produce the next value | 00:48 | ||
el if it also has yield from it will become a coroutine | 00:49 | ||
Nemokosch | I have used yield from but I didn't look at it as a coroutine, just recursion over a generator | 00:50 | |
el its like a context switch or smth | |||
or await | 00:53 | ||
Nemokosch | elcaro is probably right | 00:56 | |
I'd look around Supply | |||
elcaro | jnthn's done a few conference talks on Asynchrony and Parallelism (with slides usually available on his site) that may also help digesting the different async/concurrent constructs | 01:14 | |
www.youtube.com/watch?v=l2fSbOPeSQs www.youtube.com/watch?v=hGyzsviI48M www.youtube.com/watch?v=E_ho6McixV0 www.youtube.com/watch?v=xg8tAv35YFg www.youtube.com/watch?v=xg8tAv35YFg | 01:16 | ||
01:24
epony joined
01:52
melezhik joined
|
|||
melezhik | . | 01:52 | |
tellable6 | 2023-02-09T22:50:01Z #raku <rf> melezhik I have a large JVM based code base I want to run in CI, does Sparrow support JVM images? | ||
melezhik | rf let me see, anyone know what is the way to install rakudo-jvm on linux boxes? | ||
I did not see anything on rakudo.org/downloads/rakudo for rakudo jvm | 01:53 | ||
rakubrew seems does not have it also? | |||
rakubrew download jvm-2022.12 | |||
Couldn't find a precomp release for OS: "linux", architecture: "x86_64", version: "2022.12" | |||
.tell rf - I am going to build docker image with rakudo-rvm installed from source (version 2022.12) and sparrow agent installed on it, so you could you use it in SparrowCI, I will let you know when it's ready | 02:09 | ||
tellable6 | melezhik, I'll pass your message to rf | ||
rf | . | 02:13 | |
Makes sense, I will try it | |||
melezhik | rf ++ | 02:25 | |
02:36
melezhik left
03:36
linkable6 left,
evalable6 left,
evalable6 joined
03:38
linkable6 joined
03:47
razetime joined
03:58
melezhik joined
|
|||
melezhik | .tell rf - just to clarify, you mean you want to run some Java code on SparrowCI or you are interested in rakudo-jvm? | 03:59 | |
tellable6 | melezhik, I'll pass your message to rf | ||
04:26
melezhik left
04:43
freeside left
04:52
freeside joined
05:00
ispyhumanfly left
05:10
pingu left
05:25
ispyhumanfly joined
05:40
ispyhumanfly left
05:43
razetime left
05:46
razetime joined
05:53
ispyhumanfly joined
05:58
ispyhumanfly left
06:00
reportable6 left
06:01
reportable6 joined
06:12
ispyhumanfly joined
06:16
ispyhumanfly left
06:44
razetime left
06:45
ispyhumanfly joined
06:52
ispyhumanfly left
07:04
ajdplaysalto joined
07:05
ajdplaysalto left
07:14
ircuser is now known as merpaderp
07:24
ispyhumanfly joined
07:25
Sauvin left
07:28
ispyhumanfly left
07:41
Sauvin joined
07:47
razetime joined
07:49
lichtkind joined
07:54
Sgeo left
08:05
nort joined
08:26
razetime left
|
|||
el how do i create a coroutine | 08:27 | ||
08:31
ajdplaysalto joined
|
|||
oh its start | 08:37 | ||
08:39
ispyhumanfly joined
08:44
ispyhumanfly left
08:57
ispyhumanfly joined
09:00
jpn joined
09:01
Manifest0 joined,
ispyhumanfly left
09:04
jpn left
09:07
epony left
|
|||
moritz | `start` starts a task that potentially runs in its own thread, governed by the currently active thread pool scheduler | 09:07 | |
which isn't quite the same as a coroutine, if my understanding of threading/coroutines is correct | |||
09:26
Simerax joined
09:39
codesections left
|
|||
nine | Coroutines don't require parallel processing. They are just routines that maintain their state while they give other routines a chance to run. gather/take is probably closest to what people expect. | 09:52 | |
That said, I don't think the concept of coroutines forbids actual parallel processing. | 09:53 | ||
Nemokosch | does that mean that "start creates a coroutine"? | 09:55 | |
09:55
ab5tract joined
|
|||
lizmat | no, what moritz said: `start` starts a task that potentially runs in its own thread, governed by the currently active thread pool scheduler | 10:02 | |
if the current threadpool scheduler doesn't support threads (like CurrentThreadScheduler), then "start" is the same as "do" | 10:04 | ||
remember: it's all pluggable in Raku :-) | |||
Nemokosch | okay, so it runs to completion in the thread it's assigned to? | 10:05 | |
lizmat | in 6.c it did, in 6.d there is no such guarantee | 10:10 | |
if the thread is waiting for something, it may get another job to do | 10:11 | ||
this allows Raku to have more connections open in e.g. Cro than there are threads | |||
10:14
app-test joined
10:17
app-test left
10:18
ab5tract left
|
|||
Nemokosch | I'm just trying to figure out if what start does matches "routines that maintain their state while they give other routines a chance to run" | 10:18 | |
and it feels like we are entering S5 modular logic 😅 | 10:19 | ||
lizmat | well, in Raku s/routine/block/ and I guess that'd be a correct description | 10:20 | |
10:21
jpn joined
10:31
sena_kun joined
10:32
sena_kun joined
10:37
Simerax left,
sena_kun left
|
|||
el gather/take = coroutine so how do i await in gather takr coroutine | 10:39 | ||
await? | 10:41 | ||
Nemokosch | it would help to know what you are actually trying to achieve | 10:45 | |
these are the parts of any language that probably won't map 1-to-1 | 10:46 | ||
el i think just use start and Channel | 10:50 | ||
Nemokosch | Channel is like a queue | 10:51 | |
if that's what you mean | |||
el those are sufficient | |||
Nemokosch | you probably know Promises | 10:52 | |
the interface is really similar to JS, even | |||
el ik | 10:55 | ||
start also create promises | |||
lizmat | see also: andrewshitov.com/2019/09/09/sleep-...in-perl-6/ | 10:58 | |
Nemokosch | constant time! | 10:59 | |
11:04
freeside left
|
|||
el more like O(n) time | 11:07 | ||
Nemokosch | nope, it's """"constant"""" | 11:09 | |
of course that's assuming that there are arbitrarily small time units | |||
and then you can just divide with a huge number | |||
11:11
ab5tract joined
|
|||
In other news, I'm done with the egoistic author (well, not even author, rather just maintainer) of Ddt; another thing goes to the bucket list... | 11:18 | ||
11:26
ispyhumanfly joined
11:30
ispyhumanfly left
12:00
reportable6 left
12:03
reportable6 joined
12:21
freeside joined
12:26
freeside left
|
|||
el whos ddt | 12:27 | ||
12:46
ab5tract left,
freeside joined
12:51
freeside left
|
|||
Nemokosch | Ddt is supposedly an alternative to mi6 | 12:54 | |
It was meant to be more elaborate from what I can tell | 12:55 | ||
13:16
ispyhumanfly joined
|
|||
lizmat | since it's a developers tool, I don't think it's worth spending much time on unless you're a user | 13:21 | |
13:25
ispyhumanfly left
|
|||
el and what happened with the author | 13:32 | ||
13:32
ispyhumanfly joined
13:46
freeside joined
13:51
freeside left
|
|||
rf | .tell melezhik I am interested in both | 13:59 | |
tellable6 | rf, I'll pass your message to melezhik | ||
14:17
freeside joined
14:22
freeside left,
ajdplaysalto left
14:25
jgaz joined,
ajdplaysalto joined
14:27
ab5tract joined
|
|||
Nemokosch | The author stopped using the language years ago basically, leaving the tool in a highly incomplete stage | 14:29 | |
lizmat | the maintainer you mean? skaji san is still maintaining App::Mi6 afaik ? | 14:31 | |
Nemokosch | skaji is maintaining App::Mi6 | ||
14:31
SARA-MARKTING joined
|
|||
to be honest, if I thought the situation was so great, I wouldn't bother with the whole thing | 14:33 | ||
I think App::Mi6 could be maintained better - but it's being maintained so I don't have much business there | |||
however, Ddt, which I think has a more ambitious core design, is completely unmaintained for years | 14:35 | ||
in this time, all the contribution from the supposed maintainer was, as much as I can see: 1. complaining how Raku is not production-ready 2. leaving PR's dangling 3. preaching about having "high standards" | 14:36 | ||
tonyo | fez is getting some dist features | 14:37 | |
tellable6 | 2023-02-09T22:21:23Z #raku <melezhik> tonyo - that's ok, I can wait till the issue is fixed, anyway I have already renewed my fez token, so it's not possible to reproduce the bug now | ||
tonyo | i'm also very bad about PRs, i get 500+ notifications from github a day and they just kind of turned into noise | 14:38 | |
my most long standing one being from when i worked on nodejs core 10+ years ago and probably my most downloaded module | |||
14:39
SARA-MARKTING left
|
|||
Nemokosch | fez dist features - that's definitely a welcome thing | 14:40 | |
frankly, mi6 is better than nothing, it's good enough for the caretaker stuff I usually do with a module | 14:41 | ||
but to think that this is "what we can offer", well... in that light, it's not much | |||
El_Che | tonyo: I disabled github notifications, too many | 14:43 | |
tonyo | i already see a bug in ddt that i was getting in fez | ||
El_Che: it's awful, and the `focused` dashboard is equally poor | 14:44 | ||
Nemokosch | for github notifications - the other problem is NOT getting notifications about something you might want | ||
tonyo | currently working on removing the os dependency of gzip and tar from fez so it has all it needs to package directly | ||
Nemokosch | like "github discussions"; for the main Raku repos, I would like to be notified about everything | 14:45 | |
14:51
ab5tract left
15:05
ab5tract joined
|
|||
[Coke] | . | 15:06 | |
tellable6 | 2023-02-08T02:25:31Z #raku <melezhik> [Coke] , do you mean me , when say "create a ticket" ? | ||
2023-02-08T17:42:58Z #raku <melezhik> [Coke] - github.com/Raku/doc/issues/4195 | |||
hey [Coke], you have a message: gist.github.com/ee67b3b2b172694c21...0ec71530b6 | |||
15:15
ab5tract left
15:36
david_ left
15:47
Sgeo joined
15:48
david_ joined
15:57
SARA-MARKTING joined
15:59
SARA-MARKTING left
16:01
ab5tract joined
16:22
perlbot left
16:23
simcop2387 left
16:27
perlbot joined,
simcop2387 joined
16:28
ispyhumanfly left,
ispyhumanfly joined
16:41
melezhik joined
|
|||
melezhik | o/ | 16:42 | |
tellable6 | 2023-02-10T13:59:34Z #raku <rf> melezhik I am interested in both | ||
melezhik | .tell rf for just java app testing please use this - github.com/melezhik/SparrowCI/blob...lpine.yaml | 16:43 | |
tellable6 | melezhik, I'll pass your message to rf | ||
melezhik | .tell rf as for rakudo with jvm backend I have a couple of blockers preventing me from building docker images for SparrowCI - github.com/rakudo/rakudo/issues/5197 and github.com/rakudo/rakudo/issues/5198 | 16:45 | |
tellable6 | melezhik, I'll pass your message to rf | ||
16:45
razetime joined
16:46
ajdplaysalto left
|
|||
melezhik | .tell rf I mean I can build a custom SparrowCI image with rakudo jvm backed in, but it's not going to have a zef or pakku dependency managers, I am not sure this is something you're after ... | 16:49 | |
tellable6 | melezhik, I'll pass your message to rf | ||
16:52
melezhik left
16:57
freeside joined
16:58
Guest7016 joined
17:02
freeside left
17:07
Guest7547 joined
17:18
lichtkind left
17:22
razetime left
|
|||
rf | .tell melezhik Thank you so much I will try the Java one this weekend | 17:23 | |
tellable6 | rf, I'll pass your message to melezhik | ||
17:23
Guest7016 left
17:29
freeside joined
17:33
freeside left,
melezhik joined
|
|||
melezhik | . | 17:35 | |
tellable6 | 2023-02-10T17:23:04Z #raku <rf> melezhik Thank you so much I will try the Java one this weekend | ||
melezhik | rf: sure | 17:36 | |
17:42
melezhik left
18:00
reportable6 left
18:01
reportable6 joined
18:06
freeside joined
18:11
sena_kun joined,
freeside left
|
|||
tonyo | m: multi MAIN('s'|'short') { 'short'.say; }; | 18:16 | |
camelia | ===SORRY!=== Error while compiling <tmp> Malformed parameter at <tmp>:1 ------> multi MAIN('s'|⏏'short') { 'short'.say; }; expecting any of: constraint |
||
p6steve | since Dan and Dan::Polars have a common API, I thought I'd do a cheeky benchmark gist.github.com/p6steve/4684eeca6b...1de16e0464 | ||
18:17
Oshawott left
|
|||
turns out that Rust is about 60x faster than Raku to sum a DataFrame column | 18:18 | ||
tonyo | i guess rust has some optimization to do | 18:19 | |
p6steve | BTW I suspect that this is roughly what you would get comparing vanilla Python with Python + (Rust) Polars | ||
well, I am spending serious tuits on Dan::Polars these days and would like there to be some concrete benefit ;-) | 18:20 | ||
lol | 18:21 | ||
Nemokosch | yeah that response really was tongue in cheek | ||
18:28
Guest3763 joined
|
|||
tonyo | hmm, do we have a way of using a junction in the signature like that to shorten MAIN argument matching? something akin to MAIN(:h(:$help)) which matches `-h --help` ? | 18:31 | |
Nemokosch | you can just "nest" this pair syntax as much as you want I think | 18:34 | |
:h( :help( :blah( :$bar ) ) ) | 18:35 | ||
tonyo | i want it to match `someprog h|help` | ||
without the flag requirement | |||
Nemokosch | hmm | ||
no better idea than the where clause so far... | 18:38 | ||
tonyo | yea that mangles the auto uSAGE | 18:43 | |
m: multi MAIN(Str $fff where * ~~ 'x'|'xxx') { } | |||
camelia | Usage: <tmp> <fff> |
||
Nemokosch | Even when anonymous? | 18:46 | |
tonyo | yea | 18:49 | |
even less info that way | 18:50 | ||
m: multi MAIN(Str:D $ where * ~~ "r"|"run") {} | |||
camelia | Usage: <tmp> <Str where { ... }> |
||
Nemokosch | Krrr | 18:53 | |
rf | Finally figured out how to get RakuLSP working on Emacs | 19:02 | |
tellable6 | 2023-02-10T03:59:18Z #raku <melezhik> rf - just to clarify, you mean you want to run some Java code on SparrowCI or you are interested in rakudo-jvm? | ||
2023-02-10T16:43:23Z #raku <melezhik> rf for just java app testing please use this - github.com/melezhik/SparrowCI/blob...lpine.yaml | |||
2023-02-10T16:45:13Z #raku <melezhik> rf as for rakudo with jvm backend I have a couple of blockers preventing me from building docker images for SparrowCI - github.com/rakudo/rakudo/issues/5197 and github.com/rakudo/rakudo/issues/5198 | |||
2023-02-10T16:49:08Z #raku <melezhik> rf I mean I can build a custom SparrowCI image with rakudo jvm backed in, but it's not going to have a zef or pakku dependency managers, I am not sure this is something you're after ... | |||
rf | I think I'll write a guide for it | ||
tonyo | rf: are you interested in testing the fez dist management side? | 19:05 | |
there's enough in there for it to be useful | |||
(but no guides for it yet) | |||
[Coke] | <garak>Especially when anonymous</garak> | 19:06 | |
rf | Yeah I'm pretty swamped until sunday, if you can wait until then :D | ||
tonyo | i can | ||
rf | Excellent, i'll let you know then! | 19:07 | |
tonyo | open testing, just working on getting everything in there still | ||
rf | Totally, I'm excited to see what you came up with | ||
tonyo | it's on the branch `dist` @ github.com/tony-o/raku-fez - once checked out you can just `zef install --force-install .` and use fez dist funcs | ||
19:10
Guest3763 left
19:11
Guest3763 left
|
|||
rf | tonyo: Holy-cow just quickly skimmed that branch, this looks amazing! | 19:13 | |
Geth | doc: coke self-assigned Need to note unordering-ge for Map/Hash/QuantHash/Bag/Set/Mix/BagHah/SetHash/MixHash github.com/Raku/doc/issues/2174 coke self-unassigned Need to note unordering-ge for Map/Hash/QuantHash/Bag/Set/Mix/BagHah/SetHash/MixHash github.com/Raku/doc/issues/2174 |
19:28 | |
tonyo | rf: 🙌 | 19:29 | |
19:35
epony joined
19:36
freeside joined
19:40
freeside left
20:12
Guest8086 joined
20:20
Guest7547 left
20:32
jpn left
20:34
jpn joined
20:39
jpn left
20:42
Guest8086 left
|
|||
Nemokosch | rf++ | 20:51 | |
20:55
derpydoo joined
20:57
jpn joined
21:06
jpn left
|
|||
21:10
Monalika9 joined
21:29
Monalika9 left
21:33
jpn joined
21:38
jpn left
21:47
sena_kun left,
derpydoo left
|
|||
rf | What's the best way for a multiline string in an array literal? | 21:56 | |
lizmat | q:to/STRING/; | 22:07 | |
foo | |||
bar | |||
STRING | |||
docs.raku.org/language/quoting#Heredocs:_:to | 22:08 | ||
rf | How can I do this within an array? | 22:15 | |
like [q:to/EOF/ abc abc abc EOF, ... | |||
Nemokosch | > The contents of the heredoc always begin on the next line, so you can (and should) finish the line. | 22:17 | |
Moreover: | |||
> You can begin multiple Heredocs in the same line. If you do so, the second heredoc will not start until after the first heredoc has ended. | |||
22:32
jpn joined
22:37
freeside joined
22:39
tejr left
22:40
jpn left
22:41
freeside left
22:42
tejr joined,
ajdplaysalto joined
22:43
ajdplaysalto is now known as Guest6727
22:45
Guest6727 left
22:46
Guest6727 joined,
Guest6727 left
22:48
ajdplaysalto joined
22:50
ajdplaysalto left
22:51
ajdplaysalto joined
22:52
jpn joined
22:54
freeside joined
22:57
jpn left
22:59
freeside left
23:02
redashes joined
|
|||
redashes | Hello | 23:03 | |
23:04
redashes left
23:09
jpn joined
23:10
jgaz left
23:12
ajdplaysalto left
23:15
jpn left
|
|||
rf | redashes: Hello! | 23:16 | |
tellable6 | rf, I'll pass your message to redashes | ||
rf | What is the ~ sigil? | 23:18 | |
I keep seeing it, but not sure what it does, coerce to string? | |||
moritz | yes, though it's a prefix, not a sigil | 23:19 | |
rf | That's what I thought, thanks! | 23:20 | |
I guess its the string version of my $abc = '123'; +$abc; | 23:21 | ||
[Coke] | this gives a LOT more info, but you can see it's a prefix with: raku --target=ast -e '~"3"' | 23:26 | |
23:28
jpn joined
|
|||
[Coke] | er, ~3 is sufficient. :) | 23:30 | |
23:36
jpn left
|
|||
Geth | doc/main: ebd0a68122 | (Monalika Patnaik)++ (committed using GitHub Web editor) | CONTRIBUTING.md Update CONTRIBUTING.md (#4197) * Update CONTRIBUTING.md |
23:38 | |
[Coke] | Anyone who has some spare tuits to work on documentation, I've created a milestone on raku/doc for things that I'd like to get done by the end of March: | 23:41 | |
github.com/Raku/doc/milestone/4 ; if any of these are on topics you're interested in, or think you can write something up for, we'd love the help, feel free to swing by #raku-doc to ask questions about how docs works, and ask here about how stuff works (if needed) | 23:43 | ||
We also still need help running QA against the upcoming site; feedback about gaps compared to the original site esp. welcome. | 23:44 | ||
23:48
jpn joined
23:56
derpydoo joined
23:58
jpn left
|