Skip to content

Remove all reliance on Intel binaries under Apple Silicon #1635

Description

@savetheclocktower

Apple has plans to deprecate Rosetta slowly over the next few releases. The actual removal won't come until macOS 28 (current version is 26), but it's best to get way ahead of it because apps will start showing warnings for visibility.

There are three binaries (all dependencies in some form) that need to be changed so that they are built to match the architecture rather than using the Intel version in all cases:

  • ctags-darwin is vendored in the symbol-provider-ctags package and is always built for x86. (This is probably equally true for Linux, so that might be worth a more urgent fix!) The fix here is either (a) figure out how to build Exuberant Ctags at build time (so that its architecture will always match) or (b) pre-build a binary for each platform and architecture (both x86 and ARM for at least macOS and Linux and perhaps even Windows).
  • vscode-ripgrep incorrectly bundles an x86-built rg. The fix for this one might be as easy as migrating to the @vscode/ripgrep package (which has fixed this, I think).
  • term-size — this one is a transitive dependency, and a strange one at that. ppm’s old bundled version of npm depends on a package called update-notifier… which depends on a package called term-size… which seems to have a binary built for x86, at least on my machine. This one could be the hardest to fix (though we are actively trying to make ppm work without bundling its own npm)… but the least severe in practice, because I'm not sure that this code path ever gets hit in the first place.

Anyway, the first two are not too difficult, but I'm writing them down so I don't forget!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions