I switched from Windows to Linux not directly because of the most recent shit show with Recall (though it's part of the general trend). But it sure does make me feel even better about making that choice when I'm struggling with some minor annoyance on Linux.
@pervognsen Considering trying some Linux out on my home laptop, but I use it for work quite a bit where we currently can't build for Linux. Guess that's a reason as good as any to port stuff, but that makes switching a vastly different undertaking.
@wolfpld@pervognsen Possibly. We're doing pretty UI heavy stuff and while I know WSL can do UI too I don't know how representative of an environment it is. But yes it could definitely be a way to get some of the main stuff running. (We're currently on Windows and MacOS so it already has platform splits and I expect at least some things will be the same on linux and macos.)
@wolfpld@pervognsen Installed a dual boot of Endeavor OS now. Haven't had time to poke around a lot yet, but initial install went without hitches as far as I can tell.
Bleh, Git 2.45 broke fresh clones of repos using git-lfs because they disallow post-checkout hooks by default, this broke my overnight game builds. https://github.com/git-lfs/git-lfs/issues/5749
Should be fixed in Git 2.45.2 apparently, but the temporary workaround is to define the env var GIT_CLONE_PROTECTION_ACTIVE=false during clone
@sinbad We went from a SVN repo to Git with LFS and when we did that we first converted without LFS and then migrated binary stuff to LFS. It did it really well without much problem as I can remember, but it rewrites git history so you can obviously only do it on a repo where that's ok.
Who remembers this awesome jankfest? The IK was bleeding edge for 1998 and when that indie game Hellish Quart came out I remember getting flashbacks to Die By The Sword.
@Liquidream Cool game! It took me more tries than I'd like to admit for this one, but I picked another random one and got it on the first frame. Maybe I should quit while on top. 😄
I asked my son "if you flip a coin 3 times, is it more likely to get 3 heads in a row, or head, tails, tails?"
He thought for a second and thought "they are equally likely aren't they?"
Oh damn... he is so much smarter than I was.
This came up in another thread today but I figure I'd throw a brief comment to the timeline. The concept of "grace periods" where you separate the logical and physical deletion of resources is something you see in RCU, EBR, QSBR, etc, but it's just as useful in single-threaded code where you only have pseudo-concurrency through subroutine calls. Like the age-old pattern of deferring deletion until the end of the game loop, or autorelease pools in Objective C which get drained by the run loop.
@pervognsen What would you say the big upsides of e.g. "slot arenas" are compared to classic allocation of objects? Memory locality is obviously one, although I'm thinking that mostly affects operations that involve sequential iteration over objects?
@pervognsen Can you have generations in an arena with different object sizes? I'm thinking an old generation value should never end up in the middle of a new object, if that makes sense.
@pervognsen Got it, just wanted to double check if there was some trick I hadn't thought about.
My most recent foray into it was mostly for a different reason; having clonable arenas so a full state can be synced between threads or stored for undo etc etc. But that means the arena location isn't static and needs to be passed around together with references and I never came up with a satisfactory way of doing that.
It looks a bit funny but Rc<Arc<T>> seems like a reasonable choice in a lot of cases. Specifically, you have locally shared ownership of a remotely shared resource instead of directly sharing ownership of the remote resource (which comes with contention issues). Most of the time you probably wouldn't literally have Rc<Arc<T>> but Rc<LocalStruct> where LocalStruct (transitively) has an Arc<T>. But same thing really.
@pervognsen@artificialmind Yes absolutely. I think a complicating (but not disqualifying) factor in our case is that we're making plugins and don't really have control over the "main loop". There's rather multiple entry points from both host and system. It's of course still possible to do it, autorelease-style or otherwise, but it makes it a little bit more annoying.