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!
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-darwinis vendored in thesymbol-provider-ctagspackage 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-ripgrepincorrectly bundles an x86-builtrg. The fix for this one might be as easy as migrating to the@vscode/ripgreppackage (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 ofnpmdepends on a package calledupdate-notifier… which depends on a package calledterm-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 makeppmwork without bundling its ownnpm)… 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!