#rustc
if your code is slow, you just open a ticket in rustc and they make it fast.
November 7, 2026 at 10:13 PM
mistyping it and hitting enter on cargo rub and rustc touches it through my jorts
November 4, 2026 at 3:44 AM
rustc is pretty fast compared to 6 years ago
November 5, 2026 at 4:03 PM
going back in time and handing the Bell Labs folk a copy of rustc (all their hardware explodes trying to run it, greatly affecting the timeline)
November 5, 2026 at 9:27 AM
Thank you ~rustc~, very cool.
November 9, 2026 at 6:51 PM
rustc uses llvm iirc. No idea about z3.
November 2, 2026 at 1:22 AM
endless positive things I could say about Rust, rustc, Cargo, and the whole ecosystem
made programming actually fun for me again when I got started with it
November 6, 2026 at 7:16 AM
New update about our progress on the Rust GCC backend!

blog.antoyo.xyz/rustc_codege...

The generated asm for const arrays is finally acceptable, resulting in huge reduction of memory usage.
Progress Report #44: rustc_codegen_gcc can now bootstrap rustc on Aarch64!
Antoyo's Personal Blog
blog.antoyo.xyz
November 3, 2026 at 10:32 PM
--release should perform the TailCallElimPass LLVM optimisation step: godbolt.org/z/KnsoGf4r3.

I agree with you that there is absolutely no guarantee; I just needed an excuse to play with Compiler Explorer!
Compiler Explorer - Rust (rustc 1.99.0)
pub fn fold(slice: &[i32], init: i32, f: fn(i32, i32) -> i32)-> i32 { match slice { [] => init, [first, rest @ ..] => fold(rest, f(init, *first), f), } }
godbolt.org
November 3, 2026 at 11:06 PM
gosh my battery life got so much better this is wonderful

wait, rustc, what are you doing

please

stop

put that down

no

no!
October 31, 2026 at 1:20 AM
Pre-Pre-RFC: `#[zeroize_on_return]` for function-boundary zeroization
Okay. I’m moderately (at best) familiar with rustc and wildly unfamiliar with LLVM. But from what I can tell, LLVM allows type aliasing so long as the relevant parts of the layout are compatible. So: * Rust’s AM guarantees padding is not clobbered unless the entire struct is assigned. * LLVM allows aliasing the same memory between a layout with explicit padding (like a byte array field) and a layout with implicit padding if they are equal in other regards. * Explicit padding is never overwritten no matter what. I’m _not_ suggesting a design right now, I just want to figure out whether this is technically possible: * Similar to the proposed attribute, some `zero_padding` function attribute is introduced. GCC has `-fzero-init-padding-bits`, for example. * With the attribute, all padding initializes to 0 alike GCC (may also require something like `-ftrivial-auto-var-init`, unsure). * Rust never changes the padding of a partial struct update, so zero-inits are preserved. If the struct is fully updated, the value it’s updated to was originally initialized with 0 padding and also was never clobbered by partial writes. * Within annotated functions, all writes are performed with explicit-padding LLVM layouts so that LLVM cannot apply optimizations that would clobber 0-padding. Reads may or may not need explicit padding, I’m not sure what kind of optimizations are enabled for reading undef padding. * Unannotated functions work as usual; all secrets must have been zeroized before returning to or calling them. I’m not sure this is bullet-proof, but sounds doable in principle? I’m also aware it’s unrealistic to annotate all callees all the time, but I think this can be mitigated by good practice (keeping secret-processing code minimal, zeroizing asap, etc.).
internals.rust-lang.org
November 9, 2026 at 3:45 PM
Finally tracked down why some of my downloads are slow and it's because Fastly is the one serving the content. I'll get at most 1.5 MiB/s and then it throttles to like 500 MiB/s or hovers at around 900 MiB/s. So updating rustc takes forever :(
November 1, 2026 at 7:01 PM
Yet Another Performance Footgun in Rust - Multithreading Lock Edition
No, because you said the end product should be rustc level error, I corrected it that the end product should be compiler magic You seems to not read the discussion well, because that things are already solved with the latest details of specification that I already wrote earlier. That, ASAP drop has no effect in safe Rust code correctness due to it works out of the box with reference, and fallback safe to scope drop for T that is converted to pointer (standart library can use ASAP manual annotation to bypass the fallback, otherwise any T that is converted to raw pointer be it standart library or user code that is not manually ASAP annotated is untouched, still uses scope drop), dedicated ASAP lock types (practically making existing scope lock untouched, so any argument mentioning legacy scope block lock user code issue is not correct, because it is untouched). So you haven't shown legacy code that will not handled with that newest specifications, just instantly assert people will audit their code. Maybe can you write the new list? If the end product is compiler magic, not a compiler error or warning, it is ok to do the experiment in Clippy lint. Tho there is potential downside that I need to state, but ok to choose either way. Experimenting in linting way won't give insight about how to implement it in compiler magic, so it can double the work. If the experimentation is done in a fork of Rust compiler, so people gets hand touch experience directly to the real thing that will be implemented to the main branch later. But it is ok too to do via lint for the initial test, just the final result is compiler magic that I explained before, not compiler error or warning
internals.rust-lang.org
November 5, 2026 at 5:07 PM
Yet Another Performance Footgun in Rust - Multithreading Lock Edition
No, because you said the end product should be rustc level error, I corrected it that the end product should be compiler magic You seems to not read the discussion well, because that things are already solved with the latest details of specification that I already wrote earlier. That, ASAP drop has no effect in safe Rust code correctness due to it works out of the box with reference, and fallback safe to scope drop for T that is converted to pointer (standart library can use ASAP manual annotation to bypass the fallback, otherwise any T that is converted to raw pointer be it standart library or user code that is not manually ASAP annotated is untouched, still uses scope drop), dedicated ASAP lock types (practically making existing scope lock untouched, so any argument mentioning legacy scope block lock user code issue is not correct, because it is untouched). So you haven't shown legacy code that will not handled with that newest specifications, just instantly assert people will audit their code. Maybe can you write the new list? If the end product is compiler magic, not a compiler error or warning, it is ok to do the experiment in Clippy lint. Tho there is potential downside that I need to state, but ok to choose either way. Experimenting in linting way won't give insight about how to implement it in compiler magic, so it can double the work. If the experimentation is done in a fork of Rust compiler, so people gets hand touch experience directly to the real thing that will be implemented to the main branch later. But it is ok too to do via lint for the initial test, just the final result is compiler magic that I explained before, not compiler error or warning
internals.rust-lang.org
November 5, 2026 at 3:06 PM
Yet Another Performance Footgun in Rust - Multithreading Lock Edition
Making Clippy lint deny by default in rustc level does not solve the problems of a lint that I stated earlier. So I recommend you reread it To put it simple, lint/error is not compiler magic. Lint/error just tells you the info, you have to do the grunge work to fix it yourself manually, which result in bad user experience because people get something in ther way that could actually be moved to compiler magic. Compiler magic is the compiler handles it all automatically user just receive the clean result, user does not see warning or error message, user does not need to do the fix manually (writing manual drop), compiler already insert the drop code automatically when later compiling the code, it does not edit your code but its own internal state when compiling and the cache in target folder. So rustc level deny will still has these problems fuji-184: > * you write many code, you don't know where to place it, you run clippy, it tells you to place the manual drop here and here and here, you reedit the code, then you write many new code again, you don't know where to place it, you run clippy again, it prints message to place drop here and here and here and here, you scroll and edit the code again to any code and any file. Then the code is filled with memory management ceremony not business logic > * you can not get ASAP drop if it is code written by other people, eg 3rd party libraries. Because Clippy needs to insert `drop` manually physically by hand, not compiler magic, and you don't have access to the code >
internals.rust-lang.org
November 5, 2026 at 3:07 PM
Yet Another Performance Footgun in Rust - Multithreading Lock Edition
Making Clippy lint deny by default in rustc level does not solve the problems of a lint that I stated earlier. So I recommend you reread it To put it simple, lint/error is not compiler magic. Lint/error just tells you the info, you have to do the grunge work to fix it yourself manually, which result in bad user experience because people get something in ther way that could actually be moved to compiler magic. Compiler magic is the compiler handles it all automatically user just receive the clean result, user does not see warning or error message, user does not need to do the fix manually (writing manual drop), compiler already insert the drop code automatically when later compiling the code, it does not edit your code but its own internal state when compiling and the cache in target folder. So rustc level deny will still has these problems fuji-184: > * you write many code, you don't know where to place it, you run clippy, it tells you to place the manual drop here and here and here, you reedit the code, then you write many new code again, you don't know where to place it, you run clippy again, it prints message to place drop here and here and here and here, you scroll and edit the code again to any code and any file. Then the code is filled with memory management ceremony not business logic > * you can not get ASAP drop if it is code written by other people, eg 3rd party libraries. Because Clippy needs to insert `drop` manually physically by hand, not compiler magic, and you don't have access to the code >
internals.rust-lang.org
November 5, 2026 at 1:06 PM
Yet Another Performance Footgun in Rust - Multithreading Lock Edition
No, because you said the end product should be rustc level error, I corrected it that the end product should be compiler magic You seems to not read the discussion well, because that things are already solved with the latest details of specification that I already wrote earlier. That, ASAP drop has no effect in safe Rust code correctness due to it works out of the box with reference, and fallback safe to scope drop for T that is converted to pointer (standart library can use ASAP manual annotation to bypass the fallback, otherwise any T that is converted to raw pointer be it standart library or user code that is not manually ASAP annotated is untouched, still uses scope drop), dedicated ASAP lock types (practically making existing scope lock untouched, so any argument mentioning legacy scope block lock user code issue is not correct, because it is untouched). So you haven't shown legacy code that will not handled with that newest specifications, just instantly assert people will audit their code. Maybe can you write the new list? If the end product is compiler magic, not a compiler error or warning, it is ok to do the experiment in Clippy lint. Tho there is potential downside that I need to state, but ok to choose either way. Experimenting in linting way won't give insight about how to implement it in compiler magic, so it can double the work. If the experimentation is done in a fork of Rust compiler, so people gets hand touch experience directly to the real thing that will be implemented to the main branch later. But it is ok too to do via lint for the initial test, just the final result is compiler magic that I explained before, not compiler error or warning
internals.rust-lang.org
November 5, 2026 at 1:06 PM
Yet Another Performance Footgun in Rust - Multithreading Lock Edition
Making Clippy lint deny by default in rustc level does not solve the problems of a lint that I stated earlier. So I recommend you reread it To put it simple, lint/error is not compiler magic. Lint/error just tells you the info, you have to do the grunge work to fix it yourself manually, which result in bad user experience because people get something in ther way that could actually be moved to compiler magic. Compiler magic is the compiler handles it all automatically user just receive the clean result, user does not see warning or error message, user does not need to do the fix manually (writing manual drop), compiler already insert the drop code automatically when later compiling the code, it does not edit your code but its own internal state when compiling and the cache in target folder. So rustc level deny will still has these problems fuji-184: > * you write many code, you don't know where to place it, you run clippy, it tells you to place the manual drop here and here and here, you reedit the code, then you write many new code again, you don't know where to place it, you run clippy again, it prints message to place drop here and here and here and here, you scroll and edit the code again to any code and any file. Then the code is filled with memory management ceremony not business logic > * you can not get ASAP drop if it is code written by other people, eg 3rd party libraries. Because Clippy needs to insert `drop` manually physically by hand, not compiler magic, and you don't have access to the code >
internals.rust-lang.org
November 5, 2026 at 5:07 PM
Yet Another Performance Footgun in Rust - Multithreading Lock Edition
Making Clippy lint deny by default in rustc level does not solve the problems of a lint that I stated earlier. So I recommend you reread it To put it simple, lint/error is not compiler magic. Lint/error just tells you the info, you have to do the grunge work to fix it yourself manually, which result in bad user experience because people get something in ther way that could actually be moved to compiler magic. Compiler magic is the compiler handles it all automatically user just receive the clean result, user does not see warning or error message, user does not need to do the fix manually (writing manual drop), compiler already insert the drop code automatically when later compiling the code, it does not edit your code but its own internal state when compiling and the cache in target folder. So rustc level deny will still has these problems fuji-184: > * you write many code, you don't know where to place it, you run clippy, it tells you to place the manual drop here and here and here, you reedit the code, then you write many new code again, you don't know where to place it, you run clippy again, it prints message to place drop here and here and here and here, you scroll and edit the code again to any code and any file. Then the code is filled with memory management ceremony not business logic > * you can not get ASAP drop if it is code written by other people, eg 3rd party libraries. Because Clippy needs to insert `drop` manually physically by hand, not compiler magic, and you don't have access to the code >
internals.rust-lang.org
November 5, 2026 at 11:06 AM
DNA computing will be the equivalent of bean soup doing

#!/usr/bin/env rustc
println!("I am alive!")

// but for like a hundredth or less
// the silicon we use today.
November 1, 2026 at 1:01 AM