00:37
MasterDuke joined
|
|||
timo | like and rakuscribe | 01:22 | |
07:58
sena_kun joined
08:09
sena_kun left
08:33
finanalyst joined
|
|||
ab5tract | timo: it suddenly occurred to me ask whether you ever encountered this bug report / MR: R#5358 & R#5424 | 09:33 | |
linkable6 | R#5358 [open]: github.com/rakudo/rakudo/issues/5358 [ASYNC] Supply.throttle should allow `:vent-at(0)`. | ||
R#5424 [open]: github.com/rakudo/rakudo/pull/5424 [ASYNC] Allow a value of 0 with :vent-at | |||
ab5tract | I was bummed to find that it didn’t work on my Mac (M2) | 09:35 | |
finanalyst | [Coke] Sorry for delay. re 'use v6.e.PREVIEW' and 'use experimental'. Are they not the same thing? | 09:53 | |
nine | They're not even related | 09:59 | |
Geth | rakudo/main: 4ccbad96c1 | (Elizabeth Mattijsen)++ | lib/RakuAST/Deparse/Highlight.rakumod RakuAST: remove unnecessary "use experimental" The "use v6.e.PREVIEW" already covers this |
||
lizmat | they're related in the sense that "use experimental :rakuast" is a no-op in 6.e and higher | 10:00 | |
Geth | roast: 779ff37c4d | (Elizabeth Mattijsen)++ | S09-subscript/slice.t Add test for @a[**] |
10:30 | |
10:30
finanalyst left
|
|||
ab5tract | nine: it just occurred to me that the current revision gating implementation doesn’t allow for removing candidates after a certain version | 11:46 | |
Setting a max version so to speak. This is probably necessary if we want revision gating to provide for replacing multi candidates that have equivalent signatures | 11:50 | ||
nine | True. But now that what we have is in place, this sounds like a bit of a typing exercise to get :) | 12:49 | |
MasterDuke | lizmat: did you write a convert-an-existing-package-to-fez guide or am i imagining that? | 13:06 | |
ab5tract | nine: true. If you reckon it’s a missing piece worth filling in, I’ll get to typing :) | 13:19 | |
timo | i have never seen that bug report | 13:20 | |
that test code is relying on "sleep", maybe it should be re-made with Test::Scheduler or what it's called | |||
13:58
sena_kun joined
16:30
finanalyst joined
|
|||
ab5tract | timo: thanks for the suggestion, I'll take a look into it | 17:08 | |
17:15
finanalyst left
|
|||
timo | it would be nice if the only reason it doesn't give the expected output on your end is that the timing is different | 17:15 | |
18:34
finanalyst joined
|
|||
[Coke] | uniname-words – AlwaysFail # this is in my current overview for the ongoing run of Blin. But it installs fine, it seems. Will have to investigate. | 19:27 | |
(mentioned 'cause it's lizmat - rak is in the same state on this run so far.) | |||
gist.github.com/coke/58c2ee6579970...7d47d7a4ed - rak's log-new on this run. | 20:04 | ||
I suspect there's an issue with pinning versions that Blin isn't playing well with. | 20:05 | ||
Would love to have a "clean" run of Blin so I can see what the real output looks like, then I can dig into specific modules. My stretch goal was to get a list of all the failing modules and see about submitting PRs (but at least let's check the ones we don't think should be failing) | 20:15 | ||
[Coke] finds github.com/Raku/ecosystem-unbitrot/issues | 20:23 | ||
[Coke] wonders how long that's been bitrotting itself. | 20:25 | ||
coleman | you're doing the Lord's work coke | 20:52 | |
[Coke] | heh | 20:53 | |
timo | ab5tract: there is both Test::Time and Test::Scheduler | 21:12 | |
actually, Test::Time builds on top of Test::Scheduler it looks like | 21:14 | ||
Test::Time seems to just wrap &sleep, &now, and &time in addition to what Test::Scheduler does | 21:15 | ||
can someone verify the pgp signature of MoarVM 2024.08.tar.gz? it doesn't verify for me | 21:36 | ||
21:41
finanalyst left
|
|||
ab5tract | timo: sounds useful to me | 21:44 | |
I just saw this comment: lobste.rs/s/yiiatz/hylo_safe_syste...g#c_szhqbe | 21:45 | ||
And wondered whether the ‘is copy’ trait solves this problem category in general … or maybe I’m missing something? | 21:46 | ||
timo | is copy is shallow, that will not satisfy very many people :P | 21:50 | |
plus, there's also the question of references / object graphs | 21:51 | ||
if i go over my array of Foo and mutate something inside one of the Foos, how do i know if the Foo is also in some other array somewhere else? | |||
ab5tract | Not surprised that I’m missing something :) | ||
If is copy were not shallow, I wouldn’t expect you to be able to affect any other Foos at a distance | 21:54 | ||
Which seems like a scenario that could be covered by CoW? | 21:55 | ||
timo | yeah, like how snapshots in many filesystems that support them work | 21:56 | |
ab5tract | It would be a cool feature if we could pull it off | 21:57 | |
timo | there's definitely some value in bringing your intentions on when changes can happen to what parts of your datastructure into something that the compiler or runtime can reason about | ||
ab5tract | It almost seems like is copy should be redundant and the only way to directly impact references should be via is raw/is rw (which should probably be reunited at some point) | 21:59 | |
timo | i think those are really about a different kind of thing | 22:00 | |
22:03
sena_kun left
|
|||
ab5tract | Not sure I understand. Are you saying that is raw is significantly distinct from is rw? | 22:03 | |
timo | no, just that raw, rw, and copy are only kind of tangentially related to how &mut works in rust | 22:05 | |
ab5tract | I don’t know Rust, so I can only extrapolate. If it’s about controlling mutability of references in scope, those are the tools I’m aware of in Raku | 22:06 | |
timo | i'm pretty sure mutable references work deeply within structures and whatnot too | 22:07 | |
ab5tract | > If at any point i have a &mut, i can rely on the fact that modifying it won’t change any other reference that i have access to (mutable or not) | 22:08 | |
timo | we don't really have anything like that. you put a scalar in something somewhere and boom, immediately freely mutable | 22:09 | |
yeah, there's the "borrow" checker that makes sure you're not aliasing anything and so on | |||
i haven't done enough rust yet to know enough details though | 22:10 | ||
so i think you can't have a mutable reference to an entry in an array and then get a mutable reference to the array itself | |||
not exactly sure if i understand what they mean by "that i have access to (mutable or not)" | 22:12 | ||
ab5tract | It certainly sounds like an awesome feature to have. I guess it makes sense that the borrow checker is involved, but I can’t stop coming back to CoW … probably a strong indication that I don’t understand the dynamics very well | 22:13 | |
timo | CoW can be thought of as "just an optimization" | 22:16 | |
which is good for understanding because whether or not cow happens doesn't matter for the outcome, except for performance in terms of memory use and time spent copying | 22:20 | ||
ab5tract | In this case it would be an optimization deployed to ensure that no scary little scalar can hurt you because you would automatically engender a copy upon modification | 22:21 | |
timo | think of it more as "whenever you're retrieving a value, partial or whole, you're actually making a full copy" and then cow becomes "when can we leave out or postpone the copy until we really can't get away without one" | 22:23 | |
ab5tract | I’m probably being in redo my dense but that just seems like another way of saying that we can get away with the cost of a shallow clone while providing the guarantees of a deep clone | 22:25 | |
“in redo my” = “incredibly dense “ | |||
timo | no that's correct | 22:28 | |
well, it's a bit more than the cost of a shallow clone | |||
ab5tract | True, it’s not actually free of course. | 22:30 | |
But if you can guarantee that every parameter object is (eventually) deep cloned unless specified is raw, my naive take is that you achieve what this user is celebrating about &mut in Rust | 22:32 | ||
timo | well, with rust you can also go from copy-everything back to mutate-some-stuff, and the compiler helps you not mess up | 22:34 | |
ab5tract | Interesting. So in a single scope you can go from “mutating this affects nothing“ back to “mutating this affects its actual reference”? | 22:44 | |
“nothing but this local copy/object/whatever” | 22:45 | ||
Anyway, the actual feature of knowing whether your changes can affect references or not seems useful to me. Maybe we can even add a borrow checker via RakuAST eventually, given some strict adherence by the user to conduct themselves in ways that wouldn’t immediately invalidate it :) | 22:49 | ||
timo | oof ... that would be a project for sure ... | 22:50 |