The best Rosetta 2 can do here is just scan the executable ahead of time, and try to JIT everything it *guesses* it might need later ahead of time. It won't know until the app runs whether it guessed right. It's an emulator. A nice, well engineered emulator.
-
Show this thread
-
(Alternately, if you subscribe to "emulators don't translate, they interpret", then qemu and Dolphin aren't emulators either)
2 replies 2 retweets 41 likesShow this thread -
Wine Is Not an Emulator, but wine works under Rosetta 2, which is. Is Rosetta 2 statically translating Windows apps to macOS ARM? Obviously not :-) Is Rosetta 2 JITting Windows apps when run through Wine? Sure! Is it caching those translations? We don't know! Open question.
2 replies 5 retweets 57 likesShow this thread -
Replying to @marcan42
Why are you so sure it’s not statically translating?
1 reply 0 retweets 0 likes -
Replying to @Gok
Because that's not a solvable problem, as I've said before. Also it would involve linking wine into windows executable to build statically linked(?) osx executables and... what? No, none of that makes any practical sense.
1 reply 0 retweets 0 likes -
Replying to @marcan42
Do you see how it could be a *mostly* ahead of time translator?
1 reply 0 retweets 0 likes -
Replying to @Gok
That's exactly what I said, it does cache warming. The point is, it isn't a new paradigm. Using a Shiny New Word like "translator" is marketing speak to make people think it's revolutionary. It isn't. It's just good.
1 reply 0 retweets 0 likes -
Replying to @marcan42
I mean....pre-translating literally the entire __TEXT segment feels like more than cache warming to me.
1 reply 0 retweets 0 likes -
Replying to @Gok
It's cache warming because the way the whole thing is *architected* is still a JIT. All it does is *try* (optimistically) to pre-translate stuff. It can't do it all. The app is still x86. The app still needs to see itself as x86. Function pointers must point to x86 code.
1 reply 0 retweets 0 likes -
The app hasn't become an ARM app. It just has layers of translated code standing in for x86 code, but they still have to meticulously appear to the app itself as if they're not there. The app has to see an x86 world. And that's very different from true translation.
1 reply 0 retweets 0 likes
Using the word "translator" makes people think what Apple is doing is closer to recompiling an app for ARM at startup, and that is very much not how it works, at all.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.