00:19
zenmov joined
|
|||
Geth | advent/main: b3ea66ac69 | (Hillel Wayne)++ (committed using GitHub Web editor) | raku-advent-2024/authors.md Add RAC article (#120) |
00:33 | |
01:25
guifa joined
01:29
Manifest0 left
02:03
zenmov left
02:11
zenmov joined
02:30
hulk joined,
kylese left
02:33
_________ left
03:00
yewscion joined,
kjp left
03:01
kjp joined
03:03
kjp left,
kjp joined
03:06
yewscion left
03:15
hulk left,
kylese joined
03:27
yewscion joined
03:33
yewscion left
05:23
zenmov left
06:20
Aedil joined
06:21
_________ joined
07:10
zenmov joined
08:43
kst joined
|
|||
Geth | advent/main: 136146c433 | ab5tract++ (committed using GitHub Web editor) | raku-advent-2024/authors.md Add article on revision gating |
08:53 | |
Voldenet | m: {} | 09:04 | |
camelia | ( no output ) | ||
Voldenet | also short, maybe not as short as 0 | ||
09:05
Manifest0 joined
|
|||
Voldenet | and empty does work with `raku -e ''` | 09:05 | |
09:20
dakkar joined
09:52
sena_kun joined
10:10
sena_kun left
10:17
MoC joined
|
|||
Geth | raku.org: pelanaut++ created pull request #226: Atikon-Logo aktualisiert und mit www.atikon.com/ verlinkt |
10:23 | |
raku.org/main: 1ed6abbe5a | (Peter Lang)++ (committed by Elizabeth Mattijsen) | 2 files Atikon-Logo aktualisiert und mit www.atikon.com/ verlinkt |
10:24 | ||
11:44
Sgeo left
12:20
finanalyst joined
13:07
finanalyst left
14:46
librasteve_ joined
|
|||
antononcube | @lizmat I will play with "App::Ecosystems" soon. Should produce interesting package-dependency graphs. | 15:35 | |
Here is a such graph from 2022: imgur.com/33P7QmG | 15:38 | ||
15:42
donaldh left
15:43
donaldh joined
15:44
pierrot left
15:45
pierrot joined,
Ekho left,
guifa left
|
|||
I just filed a (low priority) metadata documentation issue to GitHub's repository for "App::Rak", which, I think, is a good idea to follow for all Raku package Git repositories. See: github.com/lizmat/App-Rak/issues/63 . | 15:47 | ||
15:50
bdju left
15:51
bdju joined
15:53
Ekho joined
|
|||
timo | finanalyst.github.io/ModuleCitation/ do you know about this yet? | 15:55 | |
16:01
zenmov left
|
|||
ugexe | the graphs end in 2019 lol | 16:20 | |
timo | there's a "fork me on github" button near the middle, presumably you can find a CI job there with some output or so? | 16:22 | |
16:47
MoC left
|
|||
antononcube | @ugexe I might have used some old or obsolete repository. | 16:48 | |
timo | is REA a good primary source for this kind of information, or would the fez ecosystem be better? | 16:54 | |
antononcube | @timo That kind of questions is why I proclaimed my anticipated use of lizmat's (new) "App::Ecosystems". | 17:06 | |
I.e. I hope that package to give "up to date" information. | 17:07 | ||
timo | makes sense, yeah | 17:17 | |
doing some analysis of historical data could be interesting at some point, too | |||
antononcube | I did such rudimentary analysis for a TRC-2022 presentation, but I was mostly focused on making/demoing a recommender for Raku packages. | 17:21 | |
17:32
dakkar left
|
|||
botato | I really like the interactive style of development supported by common lisp, or even to a decent extent python with autoreload/importlib.reload, where you can make changes to your code and run the new version without restarting the whole program and losing any state | 18:55 | |
it seems rakudo doesn't support reloading a module, is that something that long-term could be added, or just not possible for rakudo? | 18:56 | ||
19:01
sena_kun joined
|
|||
timo | at first look, it seems tricky | 19:01 | |
but it depends a lot on what depth of "replacement" you expect from reloading a module | |||
under what circumstances is it okay to abort and say "the before and after for $thing are not compatible enough for a hot reload"? | 19:03 | ||
our metaobject protocol allows a fair bit of shenanigans, and if you are okay with "if you break it you get to keep the pieces" you can poke around in some internals with the ops that start with "nqp::" | 19:06 | ||
ab5tract | I wonde, how much of an obstacle is our current lack of a mechanism for parent classes to "inform" their child classes of augmentation? | 19:07 | |
in the broader context of hot reloading, I mean | 19:08 | ||
timo | right. okay, imagine we already had that, because i can think of a hacky way to do that that is very not fast and very not a good idea for production ... | ||
ab5tract | I think there might be interest in this even in the face of those concerns | 19:09 | |
I also wonder if we could leverage `:ver<>` in hot reloading efforts ... | 19:12 | ||
timo | m: class A:ver<1> { has $.foo }; class A:ver<2> { has Int $.foo }; say A.new(foo=>"hi"); | 19:13 | |
camelia | ===SORRY!=== Error while compiling <tmp> Redeclaration of symbol 'A'. at <tmp>:1 ------> s A:ver<1> { has $.foo }; class A:ver<2><HERE> { has Int $.foo }; say A.new(foo=>"hi") expecting any of: generic role |
||
timo | m: package First { class A:ver<1> { has $.foo }; }; package Second { class A:ver<2> { has Int $.foo }; }; say First::A.new(foo=>"hi"); say First::A.new() ~~ Second::A | ||
camelia | First::A.new(foo => "hi") False |
||
timo | m: class PretendyClassHOW is Perl6::Metamodel::ClassHOW does Perl6::Metamodel::TypePretense { }; my $before_a := Perl6::Metamodel::ClassHOW.new_type(:1ver, :name("A")); $before_a.compose(); my $after_a := PretendyClassHOW.new_type(:2ver, :name("A")); $after_a.pretend_to_be([$before_a<>]); $after_a.compose(); say $before_a.new() ~~ $after_a; say $after_a.new() ~~ $before_a; | 19:23 | |
camelia | ===SORRY!=== Error while compiling <tmp> Invalid typename 'Perl6::Metamodel::TypePretense' at <tmp>:1 ------> sHOW does Perl6::Metamodel::TypePretense<HERE> { }; my $before_a := Perl6::Metamodel:: |
||
timo | ah? | ||
ab5tract | could it be a bootstrap order issue? | 19:24 | |
timo | i think that package is just not in scope | ||
19:24
Aedil left
|
|||
timo | this is probably going to become too long for a single line of irc very fast | 19:24 | |
m: use Perl6::Metamodel:from<NQP>; class PretendyClassHOW is Perl6::Metamodel::ClassHOW does Perl6::Metamodel::TypePretense { }; my $before_a := Perl6::Metamodel::ClassHOW.new_type(:1ver, :name("A")); $before_a.compose(); my $after_a := PretendyClassHOW.new_type(:2ver, :name("A")); $after_a.pretend_to_be([$before_a<>]); $after_a.compose(); say $before_a.new() ~~ $after_a; say $after_a.new() ~~ | 19:25 | ||
camelia | ===SORRY!=== Error while compiling <tmp> Missing required term after infix at <tmp>:1 ------> new() ~~ $after_a; say $after_a.new() ~~<HERE><EOL> expecting any of: prefix term |
||
timo | $before_a; | ||
dangit | |||
that really was very fast | |||
m: use Perl6::Metamodel:from<NQP>; class PCH is Perl6::Metamodel::ClassHOW does Perl6::Metamodel::TypePretense { }; my $a := Perl6::Metamodel::ClassHOW.new_type(:1ver, :name("A")); $a^.compose(); my $b := PretendyClassHOW.new_type(:2ver, :name("A")); $b.pretend_to_be([$a<>]); $b.^compose(); say $a.new() ~~ $b; say $b.new() ~~ $a; | 19:27 | ||
camelia | ===SORRY!=== Error while compiling <tmp> Undeclared name: PretendyClassHOW used at line 1 |
||
timo | m: use Perl6::Metamodel:from<NQP>; class PCH is Perl6::Metamodel::ClassHOW does Perl6::Metamodel::TypePretense { }; my $a := Perl6::Metamodel::ClassHOW.new_type(:1ver, :name("A")); $a^.compose(); my $b := PCH.new_type(:2ver, :name("A")); $b.pretend_to_be([$a<>]); $b.^compose(); say $a.new() ~~ $b; say $b.new() ~~ $a; | ||
camelia | WARNINGS for <tmp>: Useless use of "^" in expression "$a^.compose()" in sink context (line 1) No such method 'compose' for invocant of type 'Any' in block <unit> at <tmp> line 1 |
||
timo | oops | ||
m: use Perl6::Metamodel:from<NQP>; class PCH is Perl6::Metamodel::ClassHOW does Perl6::Metamodel::TypePretense { }; my $a := Perl6::Metamodel::ClassHOW.new_type(:1ver, :name("A")); $a.^compose(); my $b := PCH.new_type(:2ver, :name("A")); $b.pretend_to_be([$a<>]); $b.^compose(); say $a.new() ~~ $b; say $b.new() ~~ $a; | |||
camelia | Method A.pretend_to_be not found in block <unit> at <tmp> line 1 |
||
timo | m: use Perl6::Metamodel:from<NQP>; class PCH is Perl6::Metamodel::ClassHOW does Perl6::Metamodel::TypePretense { }; my $a := Perl6::Metamodel::ClassHOW.new_type(:1ver, :name("A")); $a.^compose(); my $b := PCH.new_type(:2ver, :name("A")); $b.^pretend_to_be([$a<>]); $b.^compose(); say $a.new() ~~ $b; say $b.new() ~~ $a; | 19:28 | |
camelia | Too many positionals passed; expected 2 arguments but got 3 in block <unit> at <tmp> line 1 |
||
timo | silly. | 19:29 | |
m: use Perl6::Metamodel:from<NQP>; class PCH is Perl6::Metamodel::ClassHOW does Perl6::Metamodel::TypePretense { }; my $a := Perl6::Metamodel::ClassHOW.new_type(:1ver, :name("A")); $a.^compose(); my $b := PCH.new_type(:2ver, :name("A")); $b.HOW.pretend_to_be([$a<>]); $b.^compose(); say $a.new() ~~ $b; say $b.new() ~~ $a; | |||
camelia | False False |
||
timo | well, that's not HOW to do that | ||
ab5tract | :D | 19:30 | |
timo | this is an area of the metamodel that i haven't touched before, i don't think | 19:31 | |
antononcube | weekly: youtu.be/S_3e7liz4KM | 19:32 | |
notable6 | antononcube, Noted! (weekly) | ||
ab5tract | antononcube++ | ||
REPL food for thought: "A problem with REPLs is that they embed an iterative design process, and potentially the only way to get back to a guaranteed state is to rerun the entire code history" | 19:33 | ||
timo | bpython has this cool "undo" feature where it actually reruns the whole history up until the previous line you executed :D | 19:37 | |
if there's side-effects in your code so far, well, tough luck ;) ;) | 19:38 | ||
ok, i'm not feeling up to MOP noodling right now, I think | 19:51 | ||
20:03
Sgeo joined
|
|||
ab5tract | that's fair :) | 20:31 | |
xinming | With Cache::Async module, Is it possible to do .get-if-present("$key"), if not found, let Cache::Async handle the build in the background automatically? | 20:47 | |
Something like: my $d = $cache.get-if-present("$key"); unless $d { $cache.build("$key"); return "default" }; $cache.get("$key"); | 20:49 | ||
Xliff | Happy Turkey Day for those of you celebrating! | ||
xinming | What I mean is, when the data is not in cache, We return 'default' and build cache in the background. if cache is expired, We return stale cached value, also build in the background. | 20:51 | |
When I read the doc, it returns a Promise, I think I may need to hold the promise and wait for it to finish somewhere. otherwise, if I early return, The promise var goes out of scope, probably be aborted. | 20:52 | ||
21:17
dustinm` left
21:20
dustinm` joined
|
|||
ab5tract | xinming: Maybe you can return the promise always? If the cache gives back the default (use a sentinel), then you give back the promise that will produce the result. If the cache has the value, you can create a Promise, create a Vow from that promise, then keep the vow with the value from the cache before returning the promise | 22:01 | |
I hope that makes sense and/or helps :) | |||
22:22
sena_kun left
23:36
cm left
23:42
xinming left
23:45
cm joined
|