Ralith's Avatar

Ralith

@ralith.com

95
Followers
147
Following
85
Posts
16.04.2025
Joined
Posts Following

Latest posts by Ralith @ralith.com

And more to the point, does it have any bearing on structs whose last fields are sized?

05.03.2026 19:22 👍 0 🔁 0 💬 1 📌 0

Isn't that equally true of normal structs?

05.03.2026 19:21 👍 0 🔁 0 💬 1 📌 0

Wait, what? I don't see anything like that in the reference.

05.03.2026 18:09 👍 0 🔁 0 💬 1 📌 0

Ah, I thought ordered fields were required for tuples, but indeed repr(Rust) makes no such requirement.

05.03.2026 17:18 👍 0 🔁 0 💬 1 📌 0

Is that actually enough? (u8, u16) would need to be at an address that's *one greater than* a multiple of 4.

05.03.2026 17:09 👍 0 🔁 0 💬 1 📌 0

They don't really solve similar problems, do they?

05.03.2026 01:46 👍 0 🔁 0 💬 0 📌 0
Post image

** Speaker announcement ** Catch Sebastian Sydow's talk 'Writing GPU shaders in plain Rust' at RustWeek 2026!
Info & tickets: 2026.rustweek.org/talks/sebast...

See you in Utrecht May 18-23, 2026!

#rustweek2026 #rustlang

02.03.2026 12:31 👍 13 🔁 1 💬 1 📌 0

In a very real sense, it's karmic punishment for the rushed adoption of flakes.

01.03.2026 16:37 👍 2 🔁 0 💬 1 📌 0

At baseline, any pointer structure can be translated into an equivalent structure that uses indexes into a Vec or Slab. Usually this improves locality and makes serialization much easier without any cleverness required.

28.02.2026 00:39 👍 2 🔁 0 💬 0 📌 0

As soon as you compromise on "it must not suck" as a design goal, the remaining goals don't matter any more.

27.02.2026 02:13 👍 3 🔁 0 💬 0 📌 0

I think it would be a code smell to do the other thing on purpose, but you could write correct code that did so if you really wanted to, and maybe someone has.

Regardless, I agree that warning by default would make a lot of sense. Not sure how to make that happen, though.

25.02.2026 17:34 👍 0 🔁 0 💬 1 📌 0

I went a little overboard with this and a little bit insane. moultano.wordpress.com/2026/02/22/t...

23.02.2026 05:32 👍 265 🔁 72 💬 20 📌 31

"i dont like rust because i dont like fighting the borrow checker" then dont write code the borrow checker doesnt like idiot

24.02.2026 16:15 👍 101 🔁 14 💬 3 📌 0

zoom, enhance

23.02.2026 07:25 👍 21 🔁 3 💬 1 📌 0

I feel like this really wants some kind of filtering. Supersampling?

22.02.2026 18:08 👍 1 🔁 0 💬 1 📌 0
fractal

fractal

22.02.2026 02:12 👍 23 🔁 4 💬 1 📌 0

alacritty has been fine to me lately

18.02.2026 20:15 👍 1 🔁 0 💬 0 📌 0
Clippy Lints A collection of lints to catch common mistakes and improve your Rust code.

I wrote a clippy lint for this: coerce_container_to_any

18.02.2026 18:15 👍 4 🔁 0 💬 2 📌 0
Async/await on the GPU GPU code can now use Rust's async/await. We share the reasons why and what this unlocks for GPU programming.

We are excited to announce that we can successfully use Rust's async/await on the GPU. This has never been done before.

www.vectorware.com/blog/async-a...

Supporting Rust's async/await (and futures) enables existing Rust code to work on the GPU and makes GPU programming more ergonomic.

17.02.2026 16:04 👍 256 🔁 47 💬 5 📌 14
Video thumbnail

Just shipped bsky-comments!

Embed Bluesky threads anywhere with a zero-dependency Web Component.

• Framework Agnostic (Native WC)
• < 3kb gzipped
• Zero Config: Just paste the Post URL
• Light DOM: Fully customizable (CSS/Tailwind)

github.com/florianschep...

#webdev #opensource #buildinpublic

16.02.2026 10:10 👍 181 🔁 34 💬 2 📌 3
fine-grained oauth scopes when authenticating with tangled

fine-grained oauth scopes when authenticating with tangled

quick weekend update: we now have fine-grained oauth scopes!

16.02.2026 03:48 👍 237 🔁 19 💬 3 📌 0

Me using git in 2024: "it has a few rough edges, sure, but it's really nice!"

Me using git in 2025, having used jj for 2 months: "HOW DO YOU PEOPLE LIFE LIKE THIS?!"

14.02.2026 00:45 👍 11 🔁 2 💬 1 📌 0
Post image

Happy birthday to one of my favourite haters, Charles Darwin

12.02.2026 16:31 👍 10354 🔁 3080 💬 162 📌 419
Preview
First thoughts on integrating with standard.site Notes on the limitations and unresolved design questions encountered while integrating a blog with standard.site.

First thoughts on integrating with standard.site

07.02.2026 18:27 👍 8 🔁 1 💬 3 📌 2

swing by the bakery

10.02.2026 23:35 👍 2 🔁 0 💬 0 📌 0

jj makes version control fun in all the ways git doesn't.

10.02.2026 23:11 👍 3 🔁 2 💬 1 📌 0
GitHub - 0WD0/majutsu: Majutsu! Magit for jujutsu Majutsu! Magit for jujutsu. Contribute to 0WD0/majutsu development by creating an account on GitHub.

Whoa nice! If you're hesitant to try @jj-vcs.dev because you're a Magit user maybe try this out

10.02.2026 16:25 👍 16 🔁 7 💬 0 📌 0
A power graph showing a sharp spike, followed by a medium plateau, followed by a very low baseline

A power graph showing a sharp spike, followed by a medium plateau, followed by a very low baseline

A screenshot of the following rust code:

let mut red = Output::new(p.P3_18, Level::High, DriveStrength::Normal, SlewRate::Slow);
loop {
    Timer::after_millis(900).await;
    // For the 100ms the LED is low, we manually take a wakeguard to prevent the
    // system from returning to deep sleep, which drastically increases our power
    // usage (experimentally: 1660uA vs the 154uA visible with these clocks *not*
    // running in deep sleep), but also prevents these clock sources from being
    // disabled automatically.
    red.set_low();
    let _wg = WakeGuard::new();
    Timer::after_millis(100).await;
    red.set_high();
    // The WakeGuard is dropped here before returning to the top of the loop. When this
    // happens, we will enter deep sleep automatically on our next .await.
}

A screenshot of the following rust code: let mut red = Output::new(p.P3_18, Level::High, DriveStrength::Normal, SlewRate::Slow); loop { Timer::after_millis(900).await; // For the 100ms the LED is low, we manually take a wakeguard to prevent the // system from returning to deep sleep, which drastically increases our power // usage (experimentally: 1660uA vs the 154uA visible with these clocks *not* // running in deep sleep), but also prevents these clock sources from being // disabled automatically. red.set_low(); let _wg = WakeGuard::new(); Timer::after_millis(100).await; red.set_high(); // The WakeGuard is dropped here before returning to the top of the loop. When this // happens, we will enter deep sleep automatically on our next .await. }

This is the CPU boosting up to 3.25mA current when we wake up from an interrupt and start up some clocks, then chilling out at 1.6mA while I force it into light-sleep, followed by dropping down to 150uA for 900ms as I allow it to go to deep sleep.

All automatically.

github.com/embassy-rs/e...

10.02.2026 00:12 👍 19 🔁 1 💬 3 📌 0

Living the dream of async Rust!

10.02.2026 00:22 👍 1 🔁 0 💬 0 📌 0

"Hard for the compiler to reason about" was short-hand for "requires the extra syntax that the question was complaining about, plus additional constraints on your program structure," and trying to convey a subtext that it's worth critically examining assumptions about when they're needed.

08.02.2026 17:16 👍 2 🔁 0 💬 1 📌 0