Skip to content
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

Compile C rubies from source, use 3.2.2 by default, and speed build_all by caching self-built rubies #369

Merged
merged 14 commits into from
Jun 26, 2023

Conversation

ajhodgson
Copy link
Contributor

@ajhodgson ajhodgson commented Jun 14, 2023

This does the following:

  • changes the default Ruby to 3.2.2 in -full and non-ruby images
  • compiles all C Ruby versions from source and installs rust before compiling 3.1 and 3.2 to ensure YJIT is enabled (credit to @djones; this replicates the work in Add YJIT support by installing rustc during Ruby compilation #359 just to hopefully get it done)
  • caches ruby builds between images so that each version is only compiled once per architecture during a build; this is really only useful during build_all, but saves a lot of compilation steps there
  • current master takes ~4 hours to make build_all on my machine, this branch takes ~2.5 hours (and only about 125 minutes with make -j2). This speed savings is due to reducing the number of rubies compiled from source in the arm64 images.

@ajhodgson ajhodgson closed this Jun 15, 2023
@ajhodgson ajhodgson reopened this Jun 15, 2023
@CamJN CamJN merged commit de5b806 into phusion:master Jun 26, 2023
@ajhodgson ajhodgson deleted the ajhodgson/speed-buildall2 branch June 26, 2023 16:01
@webrails
Copy link

❤️ Would it be possible to make a new release that includes this pull request? We're desperately waiting for YJIT.

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.

3 participants