🦋 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:06
LainIwakura joined
00:45
lichtkind left
01:14
hulk joined,
kylese left
02:15
hulk left,
kylese joined
03:11
stanrifkin_ joined
03:14
stanrifkin left
03:45
kylese left
03:48
kylese joined
03:56
derpydoo joined
05:25
LainIwakura left
05:34
SpaceRobot joined
|
|||
SpaceRobot | 0 Hello robots...... | 05:34 | |
05:37
lizmat_ joined
05:41
lizmat left
06:02
derpydoo left
06:10
LainIwakura joined
06:21
SpaceRobot left
06:22
LainIwakura left
06:24
Aedil joined
06:37
derpydoo joined
06:39
derpydoo left
06:40
LainIwakura joined
06:44
LainIwakura left
09:46
Geth joined
10:39
sjm_ left
|
|||
wayland | .tell ab5tract: The changes to the Distribution/Resource writeup are in a PR at github.com/Raku/doc/pull/4570 (you may not be that keen, but thought I'd mention it) | 10:58 | |
tellable6 | wayland, I'll pass your message to ab5tract | ||
wayland | Do we still have a karma bot? | 11:00 | |
lizmat | don't think we do, but we haz logs and a search engine on the logs... | 11:07 | |
wayland | Was that intentional, or did it just fall by the wayside? | 11:16 | |
lizmat | I think the latter... | 11:18 | |
but since we haz the logs, we could get one up and running again, and feed it all the karma back to 2005 if one feels that to be necessary | 11:19 | ||
antononcube | I uploaded with fez a new version of "WWW::OpenAI" , version 0.3.6, and still do not see it in raku.land and 360.zef.pm . | 12:03 | |
Anyone else having that problem? | |||
wayland | antononcube: I've had it take a fair while before. | 12:41 | |
lizmat: Cool :) . | 12:42 | ||
antononcube | @wayland Ok. But it is already 11+ hours since I uploaded it. 🙂 | 12:44 | |
wayland | I don't think I've had any go longer than 2h. | 12:50 | |
antononcube | 😭 | 13:00 | |
13:16
grondilu joined
|
|||
grondilu | Hello. Is mixing a parametric role supposed to be expensive? I used one in my Chess module and lost a lot of performance. | 13:17 | |
see github.com/grondilu/chess/commit/f...862f85998c | 13:18 | ||
vasko | librasteve: The reason `PUT /task/1/done` and `DELETE /task/1/done` is more HTMX & REST over `GET /task/1/toggle` is that the former is more uniform. With a `GET /task/1/done` subresource to check if it's done. It also has the benefit of being declarative and idempotent. The `/toggle` is basically RPC. And as you already mentioned if you want a | 13:44 | |
`/task/1/toggle` you want `POST` for XSS, preloading & caching reasons. | |||
librasteve: The other approach is not to use a subresource, you can also do a form which does a `PUT /task/1` with an `done` key in the body. | 13:46 | ||
14:00
wayland left,
wayland joined
|
|||
ugexe | i dunno if mixing in a parametric role is supposed to be expensive, but it certainly feels intuitive that it would be the fastest/cheapest thing | 14:10 | |
that it would not be the fastest/cheapest thing rather | |||
14:12
wayland left,
wayland joined
|
|||
SmokeMachine | vasko: I’m thinking about that, and maybe doing something like this would make that possible: `multi method done is accessible{:http-method<PUT>) { $!done = True }; multi method done is accessible{ :http-method<DELETE> } { $!done = False }`. I don’t think this would work now (because, if I remind it correctly, I save use the method name instead of the method it self) but I think that might be implementable… | 14:21 | |
14:21
wayland left,
wayland joined
|
|||
SmokeMachine | And it should work for any set of http methods… | 14:22 | |
vasko | SmokeMachine can you make `done` a cromponent too? | 14:28 | |
14:31
Sgeo joined
|
|||
Voldenet | grondilu: Is mixin always being slow or just when using parametrized role with it? Because I'm suspecting that github.com/rakudo/rakudo/blob/main...ns.nqp#L65 gets called for any parametrized value | 14:32 | |
in general I'd expect specialization/monomorphization be slow, but I was wondering which part was slower | 14:35 | ||
m: role SAN[Str $san] { method SAN { $san } }; my $start = now; for ^1000 { my $w = "a" but SAN["bleh"]; }; say now - $start # parametrized role | 14:43 | ||
camelia | 0.008457542 | ||
Voldenet | m: role SAN { has $.san; method SAN { $.san } }; my $start = now; for ^1000 { my $w = "a" but SAN.new(san => "bleh"); }; say now - $start # non-parametrized role | 14:44 | |
camelia | 0.564101691 | ||
Voldenet | m: my $start = now; for ^1000 { my $w = "a" but role { has $.SAN = "bleh" }; }; say now - $start | 14:45 | |
camelia | 0.082737783 | ||
Voldenet | fascinating | ||
SmokeMachine | vasko: sorry, what do you mean by making it a Cromponent? How would you use that? | ||
Voldenet | however | 14:47 | |
m: role SAN[Str $san] { method SAN { $san } }; my $start = now; for ^1000 { my $w = "a" but SAN["bleh" ~ $_]; }; say now - $star | |||
camelia | ===SORRY!=== Error while compiling <tmp> Variable '$star' is not declared. Did you mean '$start'? at <tmp>:1 ------> "a" but SAN["bleh" ~ $_]; }; say now - <HERE>$star |
||
Voldenet | m: role SAN[Str $san] { method SAN { $san } }; my $start = now; for ^1000 { my $w = "a" but SAN["bleh" ~ $_]; }; say now - $start | ||
camelia | 0.735249532 | ||
Voldenet | So, parametrization takes a lot of time if it doesn't hit the cache | 14:48 | |
and mixin fails to hit the cache for different specializations it seems | |||
14:52
wayland left,
wayland joined
|
|||
[Coke] | 'rakubrew build-zef' gave me Building zef latest but then HEAD is now at f924b1f Bump version 0.22.8 | 14:56 | |
missing a fetch or something? (shouldn't that be 2c6ab9f?) | 14:57 | ||
ugexe | i think that shows what version the local clone is currently at | 14:58 | |
and it gets updated *from* that version to whatever | 14:59 | ||
[Coke] | looks like you need 'rakubrew self-upgrade' in there to update that zef clone | 15:02 | |
ugexe: if I have items in test-depends, but try to run with --/test, 'zef install --deps-only --/test .' does nothing - Is there a way to say "I want to install my test dependencies but not test the deps themselves"? | 15:07 | ||
ugexe | `--/test --test-depends` maybe | 15:10 | |
along with --deps-only | |||
Voldenet | m: my $start = now; for ^1000 -> $i { my $w = "a" but role { has $.SAN = "bleh" ~ $i }; }; say now - $start # for completion | 15:11 | |
camelia | 0.063507467 | ||
ugexe | yeah - github.com/ugexe/zef/blob/2c6ab9ff...kumod#L405 | ||
[Coke] | nice, thanks! | 15:13 | |
(raku/doc is just a weird repo, can't imagine anyone else wants this particular combo. :) | |||
antononcube | .seen patrickb | 15:16 | |
tellable6 | antononcube, gist.github.com/6d3c66c82f1f4ac72b...028253488a | ||
15:18
human-blip left
15:20
human-blip joined
15:22
wayland left
15:23
wayland joined
|
|||
Voldenet | grondilu: I've compared profiles and with `$move but SAN[…variable…]` roughly the same time is taken by ParametricRoleGroupHOW.parametrize and Mixins.mixin – `$move but role { has $.SAN = … }` is orders of magnitude faster | 15:29 | |
vasko | SmokeMachine Like if you made `done` a cromponent within `Task`, then `done` would could routes `GET/PUT/DELETE /task/$id/done`. If you do `GET /task/1/done` you would get a 200 or a 404 indicating if whether the done subresource exists. | 15:32 | |
Voldenet | generate_mixin is called every time, but it isn't slow | ||
15:33
wayland left,
wayland joined
15:40
wayland left,
wayland76 joined
15:49
Aedil joined
15:53
wayland76 left,
wayland joined
16:14
wayland left,
wayland joined
16:24
wayland left,
wayland joined
|
|||
SmokeMachine | vasko: but how would the RENDER method for done work? I’m not getting how would work done as a component… | 16:31 | |
16:43
wayland left
16:44
wayland joined
16:52
Sgeo_ joined
16:55
Sgeo left,
wayland left
16:56
wayland joined
17:36
wayland left,
wayland joined
17:50
wayland left
17:51
wayland76 joined,
wayland76 left,
wayland76 joined
18:56
kst`` left
|
|||
antononcube | So, who can fix fez ? 🙂 I do not see 'WWW::OpenAI:ver<0.3.6>" in 360.zef.pm , but it try to upload version I get an email that I have to bump the package version. | 19:00 | |
19:03
kst`` joined
|
|||
SmokeMachine | wayland76: hi! Just to let you know I have answered your Red issue. | 19:06 | |
ab5tract | Voldenet: that’s a really interesting finding. Can I trouble you to create a ticket for this so it doesn’t fall through the cracks? | 20:28 | |
tellable6 | 2025-05-02T10:58:13Z #raku <wayland> ab5tract: The changes to the Distribution/Resource writeup are in a PR at github.com/Raku/doc/pull/4570 (you may not be that keen, but thought I'd mention it) | ||
patrickb | antononcube: What's up? I'm usually following IRC pretty closely. Off to bed now, but type away! | 20:32 | |
wayland76 | patrickb: He uploaded his module, but it's not appearing on raku.land, etc. | ||
(not sure if that's what he wanted you for, but anyway :) ) | 20:33 | ||
lizmat | antononcube ping tonyo | 21:51 | |
antononcube fwiw, the REA didn't see it either yet | |||
so that tracks | |||
tbrowder | lizmat: distro 'Pod::TreeWalker' might be the solution for my use case rather than the RakuAST route. Your touch in the 't/lib/TestWalker.rakumod' appears to be a very good example of how to collect desired data from pod. | 21:55 | |
antononcube | .seen tonyo | 21:59 | |
tellable6 | antononcube, I saw tonyo 2025-04-15T15:52:08Z in #raku-dev: <tonyo> then | ||
antononcube | @patrickb You asked for certain LLM processing of IRC logs. | 22:11 | |
wayland76 | m: role Foo { method foo() {} }; say Foo.^methods(:all); | 22:30 | |
camelia | (foo) | ||
wayland76 | Why doesn't that return all the methods from eg. Mu? | 22:31 | |
coranila | m: role Foo {}; say Foo.new.methods(:all) | 22:34 | |
Raku eval | Exit code: 1 No such method 'methods' for invocant of type 'Foo' in block <unit> at main.raku line 1 | ||
evalable6 | (exit code 1) No such method 'methods' for invocant of type 'Foo' in block <unit> at /tmp/gFtp5LXGSL line 1 |
||
coranila | ah shucks, the caret! | 22:35 | |
wayland76: the point stands, you gotta pun to get an actual MRO; the role is not an object and as such does not know how to look for methods particularly well | |||
m: role Foo {}; say Foo.new.^methods(:all) | 22:36 | ||
Raku eval | (permutations prepend max flat FLATTENABLE_HASH batch match throw-cannot-be-empty end nodemap fmt join Array AT-KEY maxpairs ACCEPTS splice produce roll List ASSIGN-KEY Bag SetHash tree BIND-KEY repeated none grep values ZEN-KEY print-nl unique are iterator lazy-if all pairup any Hash minmax elems BagHash keys serial fail-cannot-be-empty collate ASSIGN-POS push Slip reduce Seq antipairs sort Supply BIND-POS | ||
combinations Mix AT-POS EXISTS-KEY Map iterator-and-first unshift Set slice nl-out cache FLATTENABLE_LIST deepmap duckmap pairs EXISTS-POS kv skip head DELETE-POS first DELETE-KEY rotor sum MixHash categorize chrs toggle tail minpairs squish map reverse throw-iterator-cannot-be-lazy pick append classify eager hash flatmap invert fail-iterator-cannot-be-lazy list min one ...) | |||
evalable6 | (EXISTS-KEY DELETE-KEY DELETE-POS cache list fm… | ||
coranila, Full output: gist.github.com/9b72a888fb346ec102...2a4efcdceb | |||
vasko | SmokeMachine: it doesn't matter it could be an empty 200, a Boolean or some resource with information about when it was done, but we don't care too much. What we care is it exists or not. | 22:37 | |
22:37
wayland76 left
|
|||
SmokeMachine | vasko: but that’s the thing… for a component it should matter… a component, at least initially, is something to be shown on the browser… | 22:43 | |
22:45
wayland76 joined
|
|||
wayland76 | coranila: Thanks! | 22:46 | |
23:08
lichtkind left
|