00:12 arkiuat left 00:22 sftp left 00:23 sftp joined, sftp left, sftp joined
aruniecrisps @librasteve do you mind if i make a couple of contributions to Air for DataStar? 00:24
00:24 arkiuat joined
i'm thinking there may be some useful utility functions that may come in handy 00:24
00:28 arkiuat left 00:41 arkiuat joined 00:46 arkiuat left 00:49 gabiruh_ left, gabiruh joined
ugexe i am guessing the rakudo star problem is because it installs its modules to the 'vendor' repo, and for whatever reason the staging repo doesn't work right with that (although from my understanding it should be fine) 00:51
00:51 arkiuat joined
ugexe so you end up with the staging repo zef generates that is for the 'site' repo (where modules are usually installed) but references dependencies in 'vendor' repo. so its like 3 layers deep in repos 00:52
00:57 kaskal left 01:00 librasteve_ left 01:01 kaskal joined 01:04 ds7832 left 01:36 kaskal left 01:40 Rakuists joined 01:41 kaskal joined 01:56 guifa left 02:19 Rakuists left 02:48 hulk joined, kylese left 03:15 hulk left, kylese joined 03:17 arkiuat left 03:24 arkiuat joined 03:29 arkiuat left 03:58 arkiuat joined 04:03 arkiuat left 04:14 Aedil joined 04:22 arkiuat joined 04:26 arkiuat left 04:37 arkiuat joined 04:41 arkiuat left 04:47 arkiuat joined 04:52 arkiuat left 04:55 arkiuat joined 05:04 arkiuat left
antononcube .seen lizmat 05:12
tellable6 antononcube, I saw lizmat 2025-10-27T20:58:19Z in #moarvm: <lizmat> #1946 #1947
antononcube @lizmat Is it possible to use the package "Ecosystem" to retrieve the descriptions of packages and their URLs? (As found in META6.json's.) 05:15
05:17 arkiuat joined 05:23 arkiuat left 05:35 arkiuat joined 05:42 arkiuat left 05:54 Sgeo left 05:55 arkiuat joined 06:00 arkiuat left
librasteve hi @aruniecrisps … i’m pretty sure that App::Mi6 curates the META6.json eg on build cmd 06:11
06:17 arkiuat joined
@aruniecrisps I would like to see DataStar implemented with Air … my very vague knowledge is that someone (sorry can’t recall who) has been prototyping SSE with raku. At a 30000’ level I would like to see SSE hooked up to Cromponents (which as you likely know underpins the Air::Component module) in a way that you can add reactive code to a Component and wire it up to the DOM via Raku Supplies or Channels. Suggest you 06:20
fork Air and write the nicest possible DataStar SSE implementation probably avoiding Air::Component … eg make something analogous called Air:: Element … for now. When that is working, then we can work out how to reintegrate everything…??
06:22 arkiuat left 06:33 arkiuat joined 06:39 arkiuat left 06:52 arkiuat joined 06:57 arkiuat left 07:02 arkiuat joined 07:07 wayland76 joined 07:12 arkiuat left 07:24 arkiuat joined 07:27 melezhik joined 07:28 Rakuists__ joined, Rakuists__ is now known as Woopy, Woopy left 07:29 arkiuat left 07:30 Rakuists__ joined, Rakuists__ is now known as RakuistsHello
RakuistsHello hello test from irc client 07:30
simon_sibl Hey there !
07:31 RakuistsHello left 07:34 Aedil left 07:39 apac joined 07:45 apac left 07:57 arkiuat joined 08:01 arkiuat left 08:02 arkiuat joined 08:07 arkiuat left
ab5tract librasteve: I keep mentioning SSE 08:16
so I'm probably the guilty party :) 08:17
The protocol specification at least is super simple
wayland76 Question: docs.raku.org/type/Metamodel/C3MRO says "C3 is the default resolution order for classes and grammars in Raku". Does that mean that a different order can be used?
ab5tract it's basically "data: {self.data
it's basically "data: {self.data}\n\n" 08:18
inside an http packet
I haven't actually implemented it yet though
wayland76: I do not think core provides any other MROs, but I might be mistaken 08:19
from the metamodel code, it's not clear how pluggable it really is
antononcube: the rip plugin has code that does this 08:21
github.com/ab5tract/raku-intellij-...Fetcher.kt 08:23
wayland76 ab5tract: Thanks! Yes, I haven't seen any others. I was hoping it'd be, if not pluggable, then at least overridable (ie. in a Slang) 08:24
ab5tract oh for sure it is in theory swappable 08:25
As with all pieces of the metamodel
how well that works in practice ...
08:33 arkiuat joined 08:38 arkiuat left 09:03 arkiuat joined
wayland76 Turns out I was confusing inheritance ordering (C3MRO) with multiple dispatch ordering (does this use C3MRO as well, or something else?) 09:03
ab5tract I think so 09:05
09:07 dakkar joined 09:09 arkiuat left
ab5tract IIRC The magic is in select_candidates 09:10
09:30 librasteve_ joined 09:38 arkiuat joined 09:43 arkiuat left
wayland76 .tell antononcube Definitely not a vi guy. I lean towards nano (pine was my first e-mail program). I probably could've gone emacs if it'd been a bit easier. 09:54
tellable6 wayland76, I'll pass your message to antononcube
09:55 arkiuat joined
wayland76 .tell ds7832 Interesting! I can see why the Neo is popular (and I usually can't see why a layout is popular). My main board is currently on a Moonlander, and I've gone QWERTY-like, but with extra layers. One of the things I've done is that matching punctuation (eg. parentheses) is in the same place on opposite hands; left opens, right closes. 09:57
tellable6 wayland76, I'll pass your message to ds7832
10:00 arkiuat left
wayland76 .tell jubilatious1_98542 Well, the creator of your Perl keyobard probably isn't going to be me any time soon (I'm more of a maximalist -- more keys, rather than more layers), and if it is, it'll be a Moonlander layout. 10:00
tellable6 wayland76, I'll pass your message to jubilatious1_98524
wayland76 If people haven't seen the keyboardio that Coke offered, I'd urge them to take a look. If I didn't already have a Moonlander, I'd be asking for it :) . 10:02
Anyway, thanks everyone for your feedback on the Raku keyboard layout. No-one's complaining that their favourite symbol has been left out, so I'm going to take that as a good sign :) . 10:05
librasteve_: Any particular recommendations? I'm seeing some in your various measurement modules. 10:09
librasteve not really … i am slowly drifting toward ascii only (already there with App::Crag) … I would say keep a ° (degree) symbol somewhere handy is about the only one 10:19
wayland76 librasteve_: You read my mind -- I've added that, and ignored the rest :) 10:20
10:21 arkiuat joined
wayland76 (ie. I'd already decided that was the one to add :) ) 10:21
10:26 arkiuat left
librasteve =b 10:29
10:44 arkiuat joined 10:50 arkiuat left 10:54 Pixi` joined 10:58 Pixi left 11:20 arkiuat joined 11:25 arkiuat left 11:33 oodani left 11:34 oodani joined 11:41 arkiuat joined 11:42 Aedil joined, apac joined 11:45 arkiuat left 12:00 apac left 12:06 arkiuat joined 12:12 arkiuat left 12:20 arkiuat joined 12:25 apac joined 12:33 arkiuat left 12:41 arkiuat joined 12:44 apac left 13:20 Maylay left 13:53 apac joined 14:11 ds7832 joined 14:18 Maylay joined
ds7832 ugexe: thank you very much for the help and explannations! 14:20
tellable6 hey ds7832, you have a message: gist.github.com/8a6248bc8e0df449d9...d4859b8fd4
14:30 librasteve_ left 14:31 stanrifkin joined 14:39 arkiuat left
aruniecrisps Also I do need to get around to making a job queue library for Raku 14:40
@librasteve sure, my plan for datastar is to create three levels of integrations: one standalone library with the basics, an integration at the Cro level and one at the Air level 14:41
The standalone library is what has already been releasrd
Released
My Cro::Datastar library is going to basically have helper functions for getting headers and params out from Datastar specific requests 14:44
And then Air::Jetstream (the Air integration) is probably going to have helper functions for generating Datastar attributes and valuesn 14:45
Values
Also another thing on my to-do list is to finally get around to making that pattern matching Slang 14:46
I think I can go off of Slang::Forgiven
jubilatious1_98524 weekly: unix.stackexchange.com/questions/8...812#800812 14:51
notable6 jubilatious1_98524, Noted! (weekly)
tellable6 2025-10-28T10:00:54Z #raku <wayland76> jubilatious1_98542 Well, the creator of your Perl keyobard probably isn't going to be me any time soon (I'm more of a maximalist -- more keys, rather than more layers), and if it is, it'll be a Moonlander layout.
14:51 arkiuat joined 14:56 arkiuat left 15:20 arkiuat joined 15:25 arkiuat left 15:28 arkiuat joined 15:33 arkiuat left
perryprog I'm curious... how would y'all approach writing a function that turns something like <a b c d> into something like (((), a, (b, c, d)), ((a), b, (c, d)), ((a, b), c, (d)), ((a, b, c), d, ()))? 15:49
15:50 arkiuat joined 15:55 arkiuat left
librasteve @arun - Air::Jetstar sounds cool ... I look forward to playing with it! 16:01
[Coke] I'd probably loop over the position instead of the elements, and group everything before and after the individual element. (adding a padding as needed. and you probably mean (,) not () ) 16:02
16:08 arkiuat joined
[Coke] anyone know how to generate test output that can be parsed by an azdo pipeline? 16:11
I am currently generating TAP for something in raku, but want to output so devops can easily see it (rather than having to search for "failed test" or "not ok" in 1000s of lines of output 16:12
16:13 arkiuat left
[Coke] also: any modules yet that replace Test's TAP output with anything else? 16:21
16:22 apac left
jubilatious1_98524 m: my @a = <a b c d>; for @a.kv -> $k,$v { say @a[ 0..^$k,$k+1..*] }; 16:22
evalable6 ((b c d))
((a) (c d))
((a b) (d))
((a b c))
jubilatious1_98524 ^^ @perryprog 16:23
[Coke] @a.keys, no $v necessary.
perryprog :eyes: very nifty, will take a closer look in a bit (Ish) 16:24
16:25 apac joined
jubilatious1_98524 m: raku -e 'my @a = <a b c d>; for @a.kv -> $k,$v { say @a[ 0..^$k], @a[$k], @a[$k+1..*] };' 16:25
evalable6 (exit code 1) ===SORRY!=== Error while compilin…
jubilatious1_98524, Full output: gist.github.com/6d795493929dee5168...af753b2495
[Coke] wonders if it's easier to add a separate test module that outputs non-tap and has all its own routines, or to take over stderr, consume the TAP, then emit non-tap at exit time
jubilatious1_98524 m: my @a = <a b c d>; for @a.kv -> $k,$v { say @a[ 0..^$k], @a[$k], @a[$k+1..*] };
evalable6 ()a(b c d)
(a)b(c d)
(a b)c(d)
(a b c)d()
jubilatious1_98524 ^^ @perryprog 16:26
16:26 arkiuat joined
[Coke] m: my @a = <a b c d>; for @a.keys -> $k { say @a[ 0..^$k], @a[$k], @a[$k+1..*] } 16:27
camelia ()a(b c d)
(a)b(c d)
(a b)c(d)
(a b c)d()
[Coke] m: my @a = <a b c d>; for @a.kv-> $k, $v { say @a[ 0..^$k], $v, @a[$k+1..*] }
camelia ===SORRY!=== Error while compiling <tmp>
Unsupported use of -> as postfix. In Raku please use: either . to call
a method, or whitespace to delimit a pointy block.
at <tmp>:1
------> my @a = <a b c d>; for @a.kv-><HERE> $k, $v { say @a[ 0..^$k]…
[Coke] m: my @a = <a b c d>; for @a.kv -> $k, $v { say @a[ 0..^$k], $v, @a[$k+1..*] }
camelia ()a(b c d)
(a)b(c d)
(a b)c(d)
(a b c)d()
jubilatious1_98524 @cokebot9000 Nice. 16:28
16:28 apac left
timo m: for "abcd".comb(/./, :match) -> $/ { say "($/.prematch())$/.Str()($/.postmatch())" } 16:29
camelia No such method 'CALL-ME' for string 'a'
in block <unit> at <tmp> line 1
timo m: for "abcd".comb(/./, :match) -> $/ { say "($/.prematch())$/.Str()\($/.postmatch())" }
camelia ()a(bcd)
(a)b(cd)
(ab)c(d)
(abc)d()
tonyo .tell librasteve hey dude, any word on brussels?
tellable6 tonyo, I'll pass your message to librasteve
jubilatious1_98524 @timotimo Original! 16:30
timo only works for strings though 16:31
16:32 arkiuat left
timo m: my @a = <a b c d>; for @a.keys -> $k { say @a[ 0..^$k], @a[$k], @a[$k^..*] }; # the ^.. allows us to not have to write a +1 there 16:32
camelia ()a(b c d)
(a)b(c d)
(a b)c(d)
(a b c)d()
timo m: my @a = <a b c d>; for @a.keys -> $k { say @a.head($k), @a[$k], @a.tail(* - $k) };
camelia Cannot resolve caller Numeric(WhateverCode:D: ); none of these signatures matches:
(Mu:U \v:: *%_)
in block <unit> at <tmp> line 1
timo ah, interesting, it doesn't have a candidate for callables? 16:33
m: my @a = <a b c d>; for @a.keys -> $k { say @a.head($k), @a[$k], @a.skip($k) };
camelia ()a(a b c d)
(a)b(b c d)
(a b)c(c d)
(a b c)d(d)
timo m: my @a = <a b c d>; for @a.keys -> $k { say @a.head($k), @a[$k], @a.skip($k + 1) };
camelia ()a(b c d)
(a)b(c d)
(a b)c(d)
(a b c)d()
timo that's how to use skip correctly for this case 16:34
jubilatious1_98524 m: my @a = <a b c d>; for @a.kv -> $k,$v { say join " | ", @a[ 0..^$k].join(","), @a[$k], @a[$k+1..*].join(",") };
evalable6 | a | b,c,d
a | b | c,d
a,b | c | d
a,b,c | d |
timo i really wanted to do something with triangle reduce, but that doesn't immediately give access to the remainder of the arguments 16:37
m: .say for [\,] <a b c d>
camelia (a)
(a b)
(a b c)
(a b c d)
timo m: say ($_.head.raku, " ", $_.skip.raku) for [\,] <a b c d> 16:38
camelia ("a" ().Seq)
("a" ("b",).Seq)
("a" ("b", "c").Seq)
("a" ("b", "c", "d").Seq)
timo m: say ($_.head(*-1), " | ", $_.tail) for [\,] <a b c d>
camelia (() | a)
((a) | b)
((a b) | c)
((a b c) | d)
timo m: given <a b c d> -> $in { say ($_.head(*-1), "|", $_.tail, "|", $in.skip(.elems + 1)) for [\,] @$in } 16:39
camelia (() | a | (c d))
((a) | b | (d))
((a b) | c | ())
((a b c) | d | ())
timo m: given <a b c d> -> $in { say ($_.head(*-1), "|", $_.tail, "|", $in.skip(.elems)) for [\,] @$in } 16:40
camelia (() | a | (b c d))
((a) | b | (c d))
((a b) | c | (d))
((a b c) | d | ())
timo not my greatest work
16:46 librasteve_ joined 16:48 ds7832 left 16:49 ds7832 joined
jubilatious1_98524 skip has potential. 16:56
Voldenet I'd use a lot simpler approach, but it does memmove so it's probably fairly slow 16:58
sub sliding-iterate(*@n) { gather { my @i; while $_ = @n.shift { take (@i, $_, @n); @i.push: $_ }}}; say sliding-iterate <a b c d>
evalable6 (([] a [b c d]) ([a] b [c d]) ([a b] c [d]) ([a b c] d []))
16:59 apac joined, ab5tract_ joined 17:01 arkiuat joined
Voldenet m: sub sliding-iterate(*@n) { my $c = +@n; (^$c).map({ 0..^$_, $_, $_^..^$c }).map({ $_.map({ @n[$_] }) }) }; sliding-iterate(<a b c d>).say 17:04
camelia ((() a (b c d)) ((a) b (c d)) ((a b) c (d)) ((a b c) d ()))
Voldenet probably a lot faster, because it does operations on ranges
17:06 arkiuat left 17:09 ab5tract_ left 17:15 ab5tract_ joined 17:16 ab5tract_ left 17:17 ab5tract_ joined 17:19 apac left
timo actually, shift and push don't memmove, they just change the "start" pointer 17:20
Voldenet oh, so that could be actually faster than ranges approach, hm 17:21
timo on the other hand, taking @i and @n like that may be trouble if the consumer of your iterator doesn't do its own copying and keeps the references around 17:22
17:22 arkiuat joined
timo m: sub sliding-iterate(*@n) { gather { my @i; while $_ = @n.shift { take (@i, $_, @n); @i.push: $_ }}}; my @bits = eager sliding-iterate <a b c d>; .say for @bits; 17:22
camelia ([a b c d] (HANDLED) Cannot shift from an empty Array
in block <unit> at <tmp> line 1
[])
([a b c d] (HANDLED) Cannot shift from an empty Array
in block <unit> at <tmp> line 1
[])
([a b c d] (HANDLED) Cannot shift from an empty Array…
timo uh, not the failure mode i expected 17:23
Voldenet the approach with ranges is in practice 2x faster :) 17:25
timo :D
the nested maps one?
Voldenet yeah 17:26
timo m: sub sliding-iterate(*@n) { my $c = +@n; @n[(^$c).map({ 0..^$_, $_, $_^..^$c })] }; sliding-iterate(<a b c d>).say
camelia ((a (b c d)) ((a) b (c d)) ((a b) c (d)) ((a b c) d))
timo no need for the nested map, even 17:27
though it doesn't give the empty list at the start or end in this one
17:27 arkiuat left
ab5tract_ that's pretty nice to read 17:28
timo that may be unacceptable that the empty lists are thrown out for the first and last entry of the result 17:29
Voldenet and last approach is a bit slower in practice
(well it allocates, obviously)
since the problem is about `for ^@n { @n.say }` and having 3 constant iterators with common storage that only iterates using index multiple times 17:32
well, two indexes
the outer and inner
it can be probably written as class and be very optimized
17:34 apac joined
ab5tract_ Voldenet: true, there is (at least) an axis each for beauty and for elegance 17:36
17:36 dakkar left 17:42 swaggboi left 17:45 swaggboi joined 17:49 arkiuat joined 17:50 ab5tract_ left 17:54 arkiuat left
Voldenet also, the "what is the fastest" will also depend on how it's used 17:56
ab5tract irccloud benefits in the beauty of Halloy? can it really be possible? 18:21
18:22 arkiuat joined
[Coke] Anyone have a pointer on what an HTTP::UserAgent delete would look like with a json body? 18:22
(how to write the call)
I have an API I need to call that is a DELETE that takes some input in query params (easy) and some in a JSON body 18:26
(wondering if I need to switch from using that module to something else)
Voldenet HTTP::Request.new('DELETE', URI.new('foo.com/bar'), HTTP::Header.new(Foo => 'bar'))
[Coke] for the body, though... .add-content? 18:34
and then how to fire it? 18:35
perryprog Thanks for all the fun responses! I was also trying to do it in a fancy reduce way but I agree that just doing the imperative ranges is quite clear 18:39
I continue to love how easy it is to nerd snipe this channel :)
Voldenet either add-content or add-form-data on HTTP::Request, then HTTP::UserAgent has send-request method that accepts the request 18:40
and returns response
[Coke] perfect. Danke! 18:41
Voldenet perryprog: it's a fun problem actually, so no wonder everyone's interested – I've even asked gpt to generate optimized version, but let's just say it wasn't what I hoped for :D 18:43
perryprog Yeah it's one of those things that feels like it might have a really clean solution 18:44
jubilatious1_98524 @cokebot9000 Would you consider using Cro::HTTP::Client? stackoverflow.com/questions/788090...3#78813313 18:49
[Coke] In a future rewrite, sure. This is some "legacy" stuff I'm using for work, and am just trying to get the job done right now, not shave a yak 18:50
ALso: while I am both [Coke] and @cokebot9000, if I'm posting as one, you're better off replying to that one. :)
jubilatious1_98524 @perryprog I learned something. Thanks.
@coke-or-new-coke I'm on Discord...not sure I can reply to your IRC messages directly? 18:52
Voldenet not-really-clean solution from gpt :P 0x0.st/K_KF.raku 18:54
I did some poking around it to understand it more, but I doubt it's sane solution 18:55
It's probably fast (that's what I asked for) but difficult to use otherwise 18:57
19:10 simcop2387 left 19:13 librasteve_ left 19:19 melezhik_ joined 19:21 melezhik_ left 19:54 Aedil left 19:56 simcop2387 joined 20:12 disbot1 left, disbot1 joined 20:17 ds7832 left 20:18 ds7832 joined 20:20 wayland joined, wayland76 left 20:47 LainIwakura joined 20:50 LainIwakura85 joined 20:54 LainIwakura left 20:57 wayland left 21:21 arkiuat left 21:22 orangebot left 21:29 apac left, apac joined 21:31 arkiuat joined 21:36 arkiuat left 21:37 librasteve_ joined 21:41 arkiuat joined 21:45 arkiuat left 21:46 simcop2387 left 22:07 arkiuat joined 22:09 apac left 22:12 arkiuat left 22:27 LainIwakura85 left 22:35 Sgeo joined 22:42 melezhik left, arkiuat joined 22:47 arkiuat left 22:54 kylese left 23:03 arkiuat joined 23:09 arkiuat left 23:18 ds7832 left 23:21 ds7832 joined 23:23 arkiuat joined 23:33 LainIwakura joined 23:38 stanrifkin left