Skip to content

Add an Inside Rust blog post for bootstrap sequence redesign #1582

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 29, 2025

Conversation

jieyouxu
Copy link
Member

@jieyouxu jieyouxu commented Apr 17, 2025

Accompanying blog post for bootstrap sequence redesign: rust-lang/rust#119899

r? @onur-ozkan (and @Mark-Simulacrum)
cc @rust-lang/bootstrap (significant stage 0 bootstrap changes)

Rendered

@jieyouxu

This comment was marked as resolved.

@senekor
Copy link
Contributor

senekor commented Apr 17, 2025

Yes, the path key is required. The format has to be "YYYY/MM/DD/whatever-you-want".

I'll try to improve the templates so they produce better error messages in this case.

@senekor
Copy link
Contributor

senekor commented Apr 17, 2025

Oh if it's an inside-rust post, that should be in the path as well. So: "inside-rust/YYYY/MM/DD/whatever".

If the date of publication is not yet known, it's recommended to use the placeholder "9999/12/31" as the date, CI will prevent that from being published accidentally.

I can definitely improve docs/guidance/tooling/error msgs here.

Copy link
Member

@onur-ozkan onur-ozkan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work!

Just two suggestions in addition to my minor notes:

  1. It'd be helpful to mention the implementation PR.

  2. Consider showing the staging diagram to illustrate how things looked before and how they look now (the updated version is in the implementation PR).

@jieyouxu
Copy link
Member Author

It'd be helpful to mention the rust-lang/rust#119899.

I have no idea how I didn't include that when I even remember telling myself not to forget that lmao

@jieyouxu jieyouxu force-pushed the stage0-std-redesign branch 2 times, most recently from c8bc2d5 to 222f4fe Compare April 17, 2025 08:35
@jieyouxu
Copy link
Member Author

jieyouxu commented Apr 17, 2025

Changes since last review (in round 2 222f4fe):

  • Added a comparison diagram showing difference before/after the redesign.
  • Addressed nits.
  • Actually link to the stage 0 redesign PR itself.

Copy link
Member

@BoxyUwU BoxyUwU left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some random thoughts.

In general I feel like this post doesn't do too much to explain why the new system is a clearer/simpler mental model. And I think that does a bit of a disservice to all of the (great) explanation of what that actually means in terms of changes to building the compiler/library.

It's almost like the post frames this as an arbitrary change in what depends on what because it just so happens to make std's life simpler. When, as far as I can tell, the new system is just generally more coherent and how you would expect things to work.

E.g. generally when a rust crate is built by compiler X it also depends on the standard library built and shipped with/by X. With the previous bootstrapping setup the compiler was actually depending on some weird frankenstein std that was built by the beta compiler but wasn't shipped with it.

Similarly the inconsistency between "build the stage0 compiler" and "build the stage0 std library" was weird and has now been resolved (stage0 compiler is beta compiler, stage0 library was a weird frankenstein std but is now the beta std), but doesn't really seem to be mentioned anywhere in this post.

I think it would be a lot easier to understand what has changed if the post started with the motivation and talked about the shift in mental model to something that's generally more coherent. It's hard to fully understand what has changed without talking about how the change fits in with the wider "heres how things normally work".

Generally that's what my review comments are trying to get at I think 🤔 Small changes that would help build the right mental model for readers- but realistically it should probably be all together in one upfront paragraph for the motivation.

@jieyouxu jieyouxu force-pushed the stage0-std-redesign branch 2 times, most recently from 55c9200 to 8a3af91 Compare May 23, 2025 17:33
@jieyouxu
Copy link
Member Author

I tried to do another iteration of the blog post, the motivation bits I find is still not very convincing but idk how to make it so.

Significant changes:

  • Added a TL;DR
  • Moved motivation way earlier and
  • Dropped the exact invocation tables because I found it more noise than signal.
  • Added diagrams that I hope helps to explain the difference between current vs redesigned stage 0 bootstrap sequence

Known deficiencies:

  • Motivation/justification still needs work
  • There still isn't concrete examples as suggested, still have to think about it.

Suggestions / feedback welcomed.

Copy link
Member

@jyn514 jyn514 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is really good work. thanks for writing it up, i can tell you spent a lot of time on it.

@jieyouxu jieyouxu force-pushed the stage0-std-redesign branch from eb9b334 to 9641bc3 Compare May 24, 2025 12:58
@jieyouxu
Copy link
Member Author

Addressed feedback in (round 5):

  • Added a specific example re. the trait solving feature requiring addition of a new lang item.
  • Fixed various wording and links.

@jieyouxu jieyouxu changed the title [WIP] Add an Inside Rust blog post for stage 0 std redesign Add an Inside Rust blog post for stage 0 std redesign May 24, 2025
@jieyouxu jieyouxu marked this pull request as ready for review May 24, 2025 13:07
@jieyouxu jieyouxu force-pushed the stage0-std-redesign branch from 25a67cd to 614ff6f Compare May 24, 2025 15:15
@jieyouxu
Copy link
Member Author

Tried to address some more feedback in (round 6).

@jieyouxu jieyouxu requested a review from Mark-Simulacrum May 24, 2025 15:27
@jieyouxu jieyouxu force-pushed the stage0-std-redesign branch from 57c1c18 to 355976a Compare May 24, 2025 15:45
@jieyouxu
Copy link
Member Author

Addressed review feedback (round 8).

@jieyouxu jieyouxu force-pushed the stage0-std-redesign branch from 6a5e3c1 to 7a43aa8 Compare May 28, 2025 12:12
@jieyouxu jieyouxu changed the title Add an Inside Rust blog post for stage 0 std redesign Add an Inside Rust blog post for bootstrap sequence redesign May 28, 2025
Co-authored-by: jyn <[email protected]>
Co-authored-by: Noratrieb <[email protected]>
Co-authored-by: Mark Rousskov <[email protected]>
@jieyouxu jieyouxu force-pushed the stage0-std-redesign branch from 7a43aa8 to 8564c2a Compare May 28, 2025 12:15
@jieyouxu
Copy link
Member Author

I updated the blog post date to be tomorrow (2025-05-29). Let me know if there are blocking concerns or need to delay the blog post for whatever reason.

cc @Mark-Simulacrum @onur-ozkan

Copy link
Member

@onur-ozkan onur-ozkan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you for working on this!

@jieyouxu
Copy link
Member Author

Ok, I resolved two outstanding comments that AFAICT are not blocking.

@onur-ozkan onur-ozkan merged commit 44e0602 into rust-lang:master May 29, 2025
5 checks passed
@jieyouxu jieyouxu deleted the stage0-std-redesign branch May 29, 2025 06:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.