<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://shift.click/feed.xml" rel="self" type="application/atom+xml" /><link href="https://shift.click/" rel="alternate" type="text/html" /><updated>2024-06-24T14:04:58-07:00</updated><id>https://shift.click/feed.xml</id><title type="html">shift.click</title><subtitle>shift.click: Thom Chiovoloni's Website/Blog</subtitle><author><name>Thom Chiovoloni</name></author><entry><title type="html">I wish `#[non_exhaustive]` worked with struct update syntax</title><link href="https://shift.click/blog/non-exhaustive-fru-sad/" rel="alternate" type="text/html" title="I wish `#[non_exhaustive]` worked with struct update syntax" /><published>2024-04-10T00:00:00-07:00</published><updated>2024-04-10T00:00:00-07:00</updated><id>https://shift.click/blog/non-exhaustive-fru-sad</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="rust" /><category term="code" /><category term="rants" /><category term="quick-thoughts" /><summary type="html"><![CDATA[It’s pretty annoying that in Rust, #[non_exhaustive] structs don’t support “struct update” / “functional record update” syntax (the syntax that powers Stuff { a: b, c: d, ..blah }).]]></summary></entry><entry><title type="html">Why is there no realloc that takes the number of bytes to copy?</title><link href="https://shift.click/blog/missing-alloc-api/" rel="alternate" type="text/html" title="Why is there no realloc that takes the number of bytes to copy?" /><published>2024-04-09T00:00:00-07:00</published><updated>2024-04-09T00:00:00-07:00</updated><id>https://shift.click/blog/missing-alloc-api</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="rust" /><category term="code" /><category term="allocators" /><category term="rants" /><category term="quick-thoughts" /><category term="why-did-i-post-this" /><summary type="html"><![CDATA[I’d like a variant of realloc that takes the number of bytes that should be copied, in the case a copy is needed.]]></summary></entry><entry><title type="html">Allocator trait 1: Let’s talk about the Allocator trait</title><link href="https://shift.click/blog/allocator-trait-talk/" rel="alternate" type="text/html" title="Allocator trait 1: Let’s talk about the Allocator trait" /><published>2023-08-06T17:08:12-07:00</published><updated>2023-08-06T17:08:12-07:00</updated><id>https://shift.click/blog/allocator-trait-talk</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="rust" /><category term="code" /><category term="allocators" /><category term="allocator-trait-series" /><summary type="html"><![CDATA[There are… several things I find wanting about the current version of the core::alloc::Allocator trait (as of 2023-08-06). I’m going to do a short series where I post about some of the bigger issues, and explore the different tradeoffs and design choices we might make. This post is an introduction to that.]]></summary></entry><entry><title type="html">Miri Feature Wishlist</title><link href="https://shift.click/blog/miri-wishlist/" rel="alternate" type="text/html" title="Miri Feature Wishlist" /><published>2021-11-07T00:00:00-07:00</published><updated>2021-11-07T00:00:00-07:00</updated><id>https://shift.click/blog/miri-wishlist</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="code" /><category term="rust" /><category term="miri" /><summary type="html"><![CDATA[Miri is an evaluator for rust that detects many kinds of undefined behavior. Here are some things it could (possibly) do that would catch bugs I’ve had/seen before.]]></summary></entry><entry><title type="html">Codelet: A better `saturate`/`clamp01` function</title><link href="https://shift.click/codelet/codelet-saturate/" rel="alternate" type="text/html" title="Codelet: A better `saturate`/`clamp01` function" /><published>2021-04-02T00:00:00-07:00</published><updated>2021-04-02T00:00:00-07:00</updated><id>https://shift.click/codelet/codelet-saturate</id><author><name>Thom Chiovoloni</name></author><category term="Codelet" /><category term="codelet" /><category term="code" /><category term="rust" /><category term="floats" /><summary type="html"><![CDATA[Let’s talk about clamping a float between 0.0 and 1.0.]]></summary></entry><entry><title type="html">Introducing “Codelets”</title><link href="https://shift.click/blog/introducing-codelets/" rel="alternate" type="text/html" title="Introducing “Codelets”" /><published>2021-04-01T00:00:00-07:00</published><updated>2021-04-01T00:00:00-07:00</updated><id>https://shift.click/blog/introducing-codelets</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="codelet" /><category term="meta" /><summary type="html"><![CDATA[In an effort to post more, I’m going to start posting shorter (and frankly, lower effort) blog posts known as “Codelets”.]]></summary></entry><entry><title type="html">Futex-likes</title><link href="https://shift.click/blog/futex-like-apis/" rel="alternate" type="text/html" title="Futex-likes" /><published>2021-01-04T00:00:00-08:00</published><updated>2021-01-04T00:00:00-08:00</updated><id>https://shift.click/blog/futex-like-apis</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="code" /><category term="threading" /><category term="futex" /><category term="rust" /><category term="C/C++" /><summary type="html"><![CDATA[Most major OSes offer some form of futex-like functionality at this point. Some of these are a bit obscure and hard to remember, though, so I thought I’d write some stuff about them down so that I can refer to it or link it later.]]></summary></entry><entry><title type="html">A Few Github Action “Recipes” for Rust</title><link href="https://shift.click/blog/github-actions-rust/" rel="alternate" type="text/html" title="A Few Github Action “Recipes” for Rust" /><published>2020-09-06T00:00:00-07:00</published><updated>2020-09-06T00:00:00-07:00</updated><id>https://shift.click/blog/github-actions-rust</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="rust" /><category term="code" /><category term="ci" /><category term="testing" /><category term="github-actions" /><summary type="html"><![CDATA[Here’s some blocks of yaml you can copy-paste to make github actions work for your Rust project. Go nuts.]]></summary></entry><entry><title type="html">“Tear”able Puns, and Worse Ideas: A Minimally Thread-Safe Cell</title><link href="https://shift.click/blog/tearcell/" rel="alternate" type="text/html" title="“Tear”able Puns, and Worse Ideas: A Minimally Thread-Safe Cell" /><published>2020-06-11T00:00:00-07:00</published><updated>2020-06-11T00:00:00-07:00</updated><id>https://shift.click/blog/tearcell</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="rust" /><category term="code" /><category term="cells" /><category term="atomics" /><category term="crates" /><category term="interesting code" /><category term="bad code" /><category term="mistakes" /><summary type="html"><![CDATA[If you’ve ever thought “Using a Mutex&lt;[f32; 3]&gt; is pointless, what’s the worst thing that could happen here?”, I’ve written the Cell type that empowers you to find out the answer to that question yourself.]]></summary></entry><entry><title type="html">Layouts and `dealloc`: An unfortunate aspect of Rust’s allocation API</title><link href="https://shift.click/blog/on-dealloc/" rel="alternate" type="text/html" title="Layouts and `dealloc`: An unfortunate aspect of Rust’s allocation API" /><published>2020-06-10T00:00:00-07:00</published><updated>2020-06-10T00:00:00-07:00</updated><id>https://shift.click/blog/on-dealloc</id><author><name>Thom Chiovoloni</name></author><category term="Blog" /><category term="rust" /><category term="code" /><category term="allocators" /><category term="rants" /><category term="should be a github issue" /><summary type="html"><![CDATA[Note: This assumes you have familiarity with Rust, memory allocation, etc.]]></summary></entry></feed>