-
Notifications
You must be signed in to change notification settings - Fork 788
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
Coexistence of Rosetta 2 and ARM native binaries on Apple Silicon M1 Mac #834
Comments
Thinking out loud here. Supporting this will be difficult. Is it worth investing the effort when in just a couple years time we will only have M1 to support on macOS? People on non-M1 devices won't need this feature, so realistically it's only for early adopters of M1 devices, is that group large enough to warrant the refactor to support this? |
@jthegedus I understand your position talk. I think it will be difficult, too. |
Do you have stats about the usage of asdf by mac users / os version / specs ? @jthegedus you suggest to tell to all M1 macOS asdf users to go for another tool for several years until most of mac users have moved to M1. asdf will have lost most of the macOS users by then. Will they come back ? This group (M1 users) could be large enough quite soon IMO and implementing this huge feature takes time. PS: I would like to be able to use asdf next year when I will change my laptop for a M1 😄 |
@clakech There may be some confusion here with what asdf is just bash scripts, so should run on Apple Silicon asdf plugins can install binaries for any platform, the plugin is where the decision is made to install a binary for a particular OS or architecture. It is up to the plugin author to auto-detect this or offer the selection to the user. Plugins can detect OSs with So The OP was asking for
As an example, installing Any upgrade required to get an Apple Silicon specific binary is required by each plugin, not the asdf core. My earlier response was that we could potentially add support the OP wants to the core, but since Intel-based Apple devices will be phased out, and the use case is niche at best (same version of binary for two different architectures on same machine), then we shouldn't invest the time to support this in the core. There is a way asdf plugins can offer what OP was asking without changes to the core. I will outline for documentation purposes. Using the Java plugin as an example: ➜ asdf list all java
adoptopenjdk-8.0.162+12.openj9-0.8.0
...
corretto-8.202.08.2
...
corretto-musl-8.252.09.1
...
dragonwell-8.0.0
...
graalvm-19.0.0
...
java-se-ri-7u75-b13
...
liberica-1.8.0
...
liberica-javafx-8u242+7
...
liberica-lite-11
...
liberica-lite-musl-11.0.2
...
liberica-musl-8u262+10
...
mandrel-20.1.0.1.Final+java11
...
openjdk-9
...
sapmachine-11.0.6
...
trava-11.0.1+1
...
zulu-6.2.0.9
...
zulu-javafx-8.33.0.1
...
zulu-musl-8.33.0.1 We see that it supports multiple JVM tools from within the one plugin (I suspect it is auto-detecting OS and architecture). The "version" of a tool ➜ asdf list all some_tool
0.0.1-x86_64
0.0.2-x86_64
0.0.1-aarch64
0.0.2-aarch64
# etc Allowing a user to define both the version and architecture in
and to switch they would just edit
This is the workflow the OP was asking for, but again, I caution the necessity of it given in a few years macOS devices will all be
We do not track users in Since we recommend Homebrew also tracks install statistics - https://formulae.brew.sh/formula/asdf OS/architecture/CPU specs would be interesting to know, but I don't believe |
@jthegedus thank you very much for your awesome answer. Seems like everything is fine |
I am going to close this now. We can reopen should new people add to the discussion in a significant way that is not covered by my previous answer :) |
I understand that the original question was aimed at having the same version for both architectures. The discussion is missing the point that the important utility There is a workaround to trick the Switch to x86_64 shell:
Change the Install some legacy binaries like this old version of Terraform:
Exit the x86_64 shell and continue using asdf |
Is your feature request related to a problem? Please describe.
Current
asdf
cannot have and switch both binaries of x86_64 with Rosetta 2 and ARM native on Apple SIlicon M1 Mac.Describe the solution you'd like
asdf
can install both binaries.Describe similar asdf features and why they are not sufficient
asdf
can have only one binaries corresponding to each version.Describe workarounds you've considered
In case of Elixir and Erlang plugin, I use
kerl
instead ofasdf
.Additional context
None.
The text was updated successfully, but these errors were encountered: