A container class that needs cooperation from the contained items, usually with special data fields. For example, a doubly linked list where the forward and back pointers are regular member variables of the contained items. Intrusive containers can avoid memory allocations (which can be a correctness issue in a kernel) and go well with C's lack of built-in container classes. They are somewhat common in C and very rare in C++ and Rust.
At least for a double linked list you can probably get pretty far in terms of performance in the non-intrusive case, if your compiler unboxes the contained item into your nodes? Or are there benefits left in intrusive data structures that this doesn't capture?
Storing the data in nodes doesn't work if the given structure may need to be in multiple linked lists, which iirc was a concern for the kernel?
And generally I'd imagine it's quite a weird form for data structures for which being in a linked list isn't a core aspect (no clue what specifically the kernel uses, but I could imagine situations where where objects aren't in any linked list for 99% of time, but must be able to be chained in even if there are 0 bytes of free RAM ("Error: cannot free memory because memory is full" is probably not a thing you'd ever want to see)).
The main thing is that he object can be a member of various structures. It can be in big general queue and in priority queue for example. Once you find it and deal with it you can remove it from both without needing to search for it.
Same story for games where it can be in the list of all objects and in the list of objects that might be attacked. Once it's killed you can remove it from all lists without searching for it in every single one.
I'd be interested in "This time it's different" articles vs it being different that time. I find "This time it's different" articles to be a very bad sign.
RenderDoc is very cool, but more of a high level debugger, I guess? It's also good to analyze performance issues, e.g. when working with QML and QSG_VISUALIZE=overdraw / batches (both very high level) don't cut it anymore, or to get a different perspective. Watching a scene getting drawn API call by API call is fun.
RenderDoc is mostly a frame debugger, although it does support stepping through shaders as well which can be super useful. But for real performance analysis I would use PIX if you target D3D12 or RGP and Nsight for Vulkan. I'm at a Vulkan and Metal only shop and I wish I could use PIX for my every day work, since it also has excellent support for Intel GPUs.
3 million wreaths for 30 million USD, is that correct? That's still a dubious arrangement, but a sane price and far from the unbounded greed and depravity of some usually large and public corporations.
Its plainly using a charity as a mechanism to funnel work to the founder's for-profit business, so that the 501c3 is, in fact, organized and operated for the benefit of a private interest, which isn’t merely “dubious”.
If the price is sane, I wonder if there is a competitor looking to break into the action, hence the appearance of a piece "asking questions". A great method is to break up the original operation, insert a company that has no compunction about charging higher prices in the name of good process, and clean up.
I just went on Amazon and the wreaths there are like $20-$50. It makes sense that a bulk purchase should be less, so $10 does feel reasonable though I am no expert.
With LLMs becoming so good at coding, "just never make any mistake" is also becoming easier. I usually write my own code because I don't like the coding style of LLMs, but on more than one occasion now they have proven very useful as code reviewers and bug hunters.
We were talking about Rust issues. But yes, C should have a proper string type. But as long as it does not have a better standardized string type, it is possible to define your own (or use a library).
Unfortunately, I really doubt long rust's "forever" will last in the wake of the `time` crate controversy. I can't see like a lot of good options in that place from the perspectives of the rust-std maintainers, but it might've just been worth it to wait for a new edition or similar.
Damn weirdos. Next you're going to tell me that you can deploy it without k8s or even a container?! /s
reply