Tyler Mandry's Avatar

Tyler Mandry

@tylermandry.bsky.social

Rust language design and sometimes cats https://tmandry.gitlab.io/blog/

209 Followers  |  52 Following  |  75 Posts  |  Joined: 29.11.2024
Posts Following

Posts by Tyler Mandry (@tylermandry.bsky.social)

For rustc, open a PR and nominate for lang.

The most natural order would be if it were upgraded in clippy first. It isn't strictly necessary but gives confidence in the impl. If you face resistance to that, lang could weigh in and say we want this, assuming the rest of the team agrees with me.

26.02.2026 07:54 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

This should be upgraded to warn by default and promoted to rustc imo. Is it ever correct to want the other thing?

(Still MaybeIncorrect fix because it can break existing code I guess)

25.02.2026 08:10 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Yes, that's reasonable to assume because deref coercions literally let you do that. It's just that the impl Any for Box<dyn Any> causes unsizing coercion to take precedence.

We should look into changing this behavior in future editions.

19.02.2026 15:12 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

the mobile client does. it only shows messages from one instance at a time.

11.02.2026 05:42 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Glide A breezy tiling window manager for macOS.

New features in glidewm.org since I announced it here. Thanks to our new contributors!

โ€ข Mission Control integration
โ€ข Resize windows with your keyboard
โ€ข glide launch --restore
โ€ข Status bar icon
โ€ข Install with homebrew (brew install glide)

+ bug fixes and other improvements

27.01.2026 16:20 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Feel free to open an issue if it's a problem for you in Glide

27.01.2026 02:11 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Find a way to work together ยท acsandmann rift ยท Discussion #179 I'm glad that you found the Glide codebase a good starting point for Rift, and I'm impressed by all the work and energy you've put into it. You've actually accomplished so much of what I wanted to ...

Yeah I mean, I said basically that in a nice way asking if we could work together and was ignored github.com/acsandmann/r...

27.01.2026 02:10 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
intro splash screen for interview of Taylor Cramer, Crubit Development Lead at Google

intro splash screen for interview of Taylor Cramer, Crubit Development Lead at Google

new interview with Taylor Cramer, development lead of Crubit

wanna hear about C++/Rust interop? wanna peek inside the mind of a language nerd?

another one from the Rust Project Content Team

26.01.2026 18:23 โ€” ๐Ÿ‘ 7    ๐Ÿ” 2    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I wish I knew! The maintainer forked the codebase without talking to me, committed all the code under their name, and then announced it on HN.

26.01.2026 21:39 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Yep that's literally the idea! :)

Amethyst does it already. But you have to handle some windows specially that don't have title bars, add delays between events, etc

16.01.2026 21:45 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yeah I have an open issue on how to implement it without SIP but it's not trivial

16.01.2026 21:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Yeah I would definitely accept contributions on the second, feel free to open an issue and we can discuss. I'm not sure what is meant by stacked windows, it sounds like a feature Glide has (I think briefly shown in the video) but maybe slightly different.

16.01.2026 21:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

It uses n-ary trees like sway/i3 instead of bsp so you can have e.g. 3 column layouts. No functionality depends on disabling SIP. Newer project so less functionality overall.

15.01.2026 04:17 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
GitHub - karinushka/paneru: A sliding, tiling window manager for MacOS. A sliding, tiling window manager for MacOS. Contribute to karinushka/paneru development by creating an account on GitHub.

Not under development but I am curious about how Glide could support it; it looks useful. You might want to check out github.com/karinushka/p...

14.01.2026 23:05 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The biggest difference is support for native spaces

14.01.2026 16:53 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Glide A breezy tiling window manager for macOS.

Announcing Glide, a tiling window manager I've been working on for macOS.

glidewm.org

14.01.2026 07:46 โ€” ๐Ÿ‘ 109    ๐Ÿ” 15    ๐Ÿ’ฌ 9    ๐Ÿ“Œ 1

ai generated code seems akin to plastic: revolutionary, cheap, moldable, and in a few years we will be desperately looking for ways to reduce reuse recycle

07.01.2026 01:14 โ€” ๐Ÿ‘ 40    ๐Ÿ” 2    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I agree, the version I like actually has awaits, even in async-agnostic code. So you model the effects explicitly even when they might not happen.

19.12.2025 03:45 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I'm referring to a call graph like

async fn -> higher order generic code -> async fn or closure

The code in the middle is e.g. standard library code like iterator combinators that you want to be generic over async and have the same behavior in both. But sometimes you want to specialize

17.12.2025 23:42 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I'm personally open to this idea but not yet convinced one way or another.

17.12.2025 17:28 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

This leads to two interesting ideas.. effect generics and effect specialization. Sometimes you want code "in the middle" to be the same, but not when you branch back out.

17.12.2025 17:28 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Async is a generalization; this means you can express more patterns in async than you can in sync.

However, some generic code would be written the same in both.

17.12.2025 17:28 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

hate it when programs present you with a text input and it's NOT READY FOR YOU TO TYPE IN โ€” like wdym?? I'm a meatbag full of water! You're a monster running at 4.5 GHz!!! How am I waiting on you!

14.11.2025 10:39 โ€” ๐Ÿ‘ 62    ๐Ÿ” 4    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

`T: Copy` is therefore a stronger bound than `T: !Drop` that tells you neither the type nor its fields (transitively) implement Drop.

21.10.2025 00:20 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Side note, Drop is a weird trait that technically means "defines its own drop glue in addition to whatever its fields do", there is nothing transitive about whether a type implements Drop.

21.10.2025 00:20 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

!Trait bound means the type promises to /never/ implement Drop, which usually requires an explicit negative impl (also unstable). In the case of Drop, `T: Copy` is a good approximation.

21.10.2025 00:20 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Screenshot of a list of three header files in a github repo. One of the files, updated last year, shows a commit message of "memory safety or whatever".

Screenshot of a list of three header files in a github repo. One of the files, updated last year, shows a commit message of "memory safety or whatever".

heh

11.10.2025 19:49 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

me: well, there's this cave with a bunch of spiders

04.10.2025 01:09 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

This is Not Okay and this is very cool

03.10.2025 19:56 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

A huge thanks to Michael for the staggering amount of high quality work you did in the compiler. I'm sad we couldn't keep you working on Rust, but I know you'll be great at the next thing.

09.09.2025 21:50 โ€” ๐Ÿ‘ 6    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0