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

Publish native binaries for macOS AArch64 #29801

Open
1366613 opened this issue May 27, 2023 · 6 comments
Open

Publish native binaries for macOS AArch64 #29801

1366613 opened this issue May 27, 2023 · 6 comments

Comments

@1366613
Copy link

1366613 commented May 27, 2023

No description provided.

@mrobinson
Copy link
Member

Published nightlies should be universal builds. Are you having trouble running the nightlies from servo.org?

@mrobinson mrobinson changed the title Publish binaries for macOS AArch64 Publish native binaries for macOS AArch64 May 29, 2023
@mrobinson
Copy link
Member

Replying to myself: we publish a universal build, but it's not a true universal build because it's running through Rosetta.

@1366613
Copy link
Author

1366613 commented Jun 10, 2023

@mrobinson
Are the build scripts public? Anything I could help?

@mrobinson
Copy link
Member

All of the build infrastructure for Servo is public. It is managed via GitHub Actions. If you are interested in learning how it works you can investigate the GitHub workflow configuration in the .github directory of the repository.

That said, producing builds for many platforms is not yet a priority for the project since they aren't really useful other than testing the state of Servo itself -- which is possible with the CPU architecture emulation. What's the benefit of adding build support for native M1/M2 binaries?

@1366613
Copy link
Author

1366613 commented Jun 12, 2023

@mrobinson

What's the benefit of adding build support for native M1/M2 binaries?

Potential performance increase; Anyway, I don't think there should be strong reasoning to publish native binaries for this architecture other than that all the new MacBooks are now only using Apple Silicon.

@mrobinson
Copy link
Member

Due to the maintenance burden, we are considering shedding supported platforms rather than adding them. Roughly speaking here is what is needed to add and continue to support a new platform:

  • A build of shared object dependencies that Servo depends on (currently GStreamer and a few other small libraries).
  • All crate dependencies need to build properly on the platform. The main burden here is mozjs which compiles a lot of C++ code.
  • A local build that succeeds and runs properly. Test suites should also run.
  • A GitHub Actions configuration for the platform.
  • The build needs to be maintained. Every crate or operating system upgrade can potentially break things and they frequently break and need to be fixed. We are working on trying to make the build more resilient though.

So when considering a new build configuration we have to weigh the work it takes to get it running and continuing to maintain it. Many things affect this consideration. For instance, this balance might be different if Servo were a mature web engine with many users or potential users on the new platform. Right now things are different, because Servo doesn't really have users. That said, if the work is easy or the benefits are large then maybe it could make sense to add a new platform.

Regarding performance, there is a lot of optimization to do in Servo still. We would be happy to look at contributions which increase performance for existing supported platforms or, even better, all platforms that Servo runs on.

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

No branches or pull requests

2 participants