Talk:Rosetta (software)

Emulator?
Is Rosetta really an emulator, or just a compatibility layer? —Preceding unsigned comment added by 200.195.79.39 (talk • contribs) 21:59, 7 June 2005


 * It is certainly an emulator, since it translates PowerPC instructions to x68 instructions. Compatiblity layers just provides an API without any code translation. --Fredrik Orderud 22:49, 7 Jun 2005 (UTC)
 * No, it's not an emulator. There's no run-time model of the PPC. —Preceding unsigned comment added by 67.170.224.208 (talk • contribs) 04:29, 25 July 2006
 * Rosetta allows code written for one machine architecture to be run on another - this is still emulation. Dynamic recompilation is one approach to emulation. MFNickster 01:16, 13 August 2006 (UTC)
 * This is all wonderful but unless someone cites a source that backs up the emulator argument, then we have to go with Apple's opinion on the matter: There’s no emulation. AlistairMcMillan 01:44, 13 August 2006 (UTC)
 * I'll check around, but this is only true for a very specific type of "emulation," and regardless of the technique employed, the function of the software is emulation. It's not an application, it's not a utility, it's not a development tool. It serves no purpose except to run software from one architecture on a different architecture, which is the purpose of emulation. MFNickster 02:53, 13 August 2006 (UTC)
 * Except that it doesn't run software from one architecture on another. It only runs a small subset of the software that ran on PPC Macs.  I'm sure you've seen the list (no Classic, no Sys Pref plugins, no screensavers, etc) so I won't repeat it here.  If it really did emulate a PPC processor wouldn't it run all PPC software?  I guess Apple would say its purpose is to "translate software from one architecture to a different architecture".  AlistairMcMillan 03:08, 13 August 2006 (UTC)
 * The MC68LC040 emulator for PowerPC Macs didn't run all 68k software. It also handed off some (but not all) Toolbox/OS calls to the Mixed Mode Manager. Was it any less an emulator for that reason? All emulators also "translate software from one architecture to a different architecture." Whether you do it a piece at a time or in blocks, cache it or not, optimize it or not, it is still making one machine act like a different machine. Make sense? MFNickster 03:23, 13 August 2006 (UTC)

Is it a dynamic recompiler, or is not enough known yet for this to be answered? —Preceding unsigned comment added by 60.240.224.235 (talk • contribs) 10:33, 8 June 2005
 * it is a recompiler. —Preceding unsigned comment added by 67.170.224.208 (talk • contribs) 04:29, 25 July 2006
 * I would give Transitive and Apple more slack on this one if Rosetta recompiled high-level code to binary, but that's not what it does - it recompiles finished, loadable, executable binaries which were intended to run on a different machine, i.e. the machine you are "emulating." MFNickster 03:26, 13 August 2006 (UTC)

Alistair, to address the points you made in your discussion with Steven_Fisher, the fact that Rosetta doesn't directly emulate a PowerPC processor only means that it is not a low-level emulator. The fact that Apple and Transitive never call it an emulator is because in marketing terms, consumers read "emulator" to mean "s..l..o..w....." MFNickster
 * Does it mean anything that Transitive's software doesn't translate directly from PPC to Intel; that it translates blocks of instructions into an "intermediate" step? That seems to be what Transitive's CEO thinks differentiates it from emulation.  AlistairMcMillan 04:21, 13 August 2006 (UTC)
 * That gains them a couple things - one, the intermediate representation can be optimized at a higher level, and two, the possibility of recompiling to multiple architectures (what some sites have called "universal emulation"), but IMHO that doesn't mean it's not emulation. If anything, it's double emulation, since the Intel chip is emulating an abstract intermediate architecture which is emulating the PPC architecture. MFNickster 04:40, 13 August 2006 (UTC)

stub?
is this really a stub? I think the stub qualifier should be removed... there probably isn't much else to say about this topic, and its a decently long article. —Preceding unsigned comment added by 130.132.143.49 (talk • contribs) 00:11, 14 July 2005

Relationship to previous tools?
How does Rosetta compare with:
 * Apple's 68000 emulator?
 * DEC's FX32! x86 emulator for the ALPHA.

I've used both systems, and I was particularly impressed with FX32!. FX32! was rather slow the first few times you ran a particular app. But after that, the speed picked up dramatically. I gather that it profiled the emulated code as it ran, then during idle time it would optimize heavily used portions of code and store the result for use when running the application in the future. The system worked very well. We never had any problems running complex apps like Photoshop on our Alphas. Native Apps for the Alpha were pretty few and far between. It was never more than a niche player in the world of WinNT.

Apple's 68000 emulator was a very transparent experience, for the end user there was no sign that an application was not native PPC (even portions of the OS were run in emulation). However the emulator did not include an FPU, so some apps wouldn't work. You could get a shareware FPU emulator if you really needed one. Apple used FAT BINARIES to bundle 68k and PPC code together in one file. Since disc space was such an issue then, there were utilities that would strip out the unneeded portion of a binary file. It took a long time before everything one wanted to run was available in native PPC. It took Apple years to get all the 68K code out of the OS, as well. —Preceding unsigned comment added by 68.189.136.159 (talk • contribs) 16:26, 14 July 2005

No Java applets?
Is there a source for the statement that Rosetta won't handle Java applets in a web browser? That seems a fairly substantial shortcoming that I would expect to have been brought up more often, and this is the first place I've seen it stated. Tverbeek 12:53, 28 July 2005 (UTC)

Hello, I put in the addition about the applets running in web browsers. My source was from Apple developer guidelines on Rosetta at:

Universal Binary Programming Guidlines: What Can Be Translated?

As I understand it, Java applets should run without difficulty in x86-native browsers. However, they will not operate in a translated browser. So, for example, Internet Explorer, which I doubt will ever be recompiled by Microsoft as a Universal Binary, will run under Rosetta, but Java applets will not run inside said application. If I had to speculate as to a reason, perhaps it's not possible to translate both the browser itself and the PPC Java plugin, and it's not possible for the PPC-native browser to call the x86-native plugin.

(Oh, and if it's not appropriate to respond to talk page inquiries in the talk page itself, sorry. I'm new. Please correct me if I'm wrong.) —Preceding unsigned comment added by Crispy1083 (talk • contribs) 04:55, 1 August 2005

That's exactly what you're supposed to do. Just remember to sign your comments, by putting ~ at the end of them. Thanks. (And I wouldn't be so sure that IE won't be recompiled; MS may have stopped developing it, but they probably don't want their browser to be known as "the broken one".) Tverbeek 07:53, 1 August 2005 (UTC)


 * See this Apple document. The Java Virtual Machine will not run under Rosetta, presumably because that would disrtibuting a PowerPC version of it. --87.82.18.46 05:39, 7 March 2006 (UTC)

Performance
What's the performance hit from using Rosetta? —Preceding unsigned comment added by 209.240.239.139 (talk • contribs) 15:11, 15 August 2005
 * I agree: does code run through Rosetta go at, say, tenth native, half native, or near-native speed? (additional side comment: Tenth native would still be a speed increase for me on applications through Rosetta, since when I upgrade my mac it will be over 17 times faster anyway.) Mathwhiz90601 17:43, 4 July 2007 (UTC)

Location in the System?
An interesting point that I do not see covered would be "Where is Rosetta located in the system?" Is it embedded in the kernel? Or is it a file? Also, how does the process start? This information, of course, would only increase understanding of how OS X for Intel works.

Further to that, is such information deliberately concealed by Apple (probably for good reason)?


 * Do a Google search for "/usr/libexec/oah/translate". There's also a daemon named "translated" that watches for launched PPC code. Amit Singh's book Mac OS X Internals might make a good reference, but I don't have a copy of the book myself. MFNickster 14:41, 19 November 2006 (UTC)

Rosetta 2?
Should Rosetta 2 be incorporated into this article or have an article of its own? Herbfur (talk) 20:13, 22 June 2020 (UTC)
 * Herbfur, thank you for starting talk about Rosetta 2. I don't know much about Rosetta 2, so I don't yet have a preference as to where Wikipedia should cover it. But I very much appreciate that there is coverage. For me, the lifespan of Rosetta 2 is critical. I looked at one of the article's existing references: specifically Evans, Jonny (November 19, 2020), Computerworld. That reference includes the following:

"With this in mind, it seems plausible to think Apple will retain support for Rosetta 2 within the macOS into at least 2023."
 * I would very much like to see some coverage of this point, perhaps by adding the Evans quote into the article. Oaklandguy (talk) 19:49, 8 September 2021 (UTC)

Install-time translation
I've again removed mention of install-time translation per WP:V ("Any material that needs a source but does not have one may be removed"); "it was mentioned in the video at WWDC 2020" isn't sufficient. There's no mention of this feature at https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment or the https://developer.apple.com/videos/play/wwdc2020/10214 transcript, so someone would need to specify precisely which video. ...Found it in the keynote. 73.69.184.160 (talk) 12:21, 21 August 2020 (UTC)
 * Thanks for going to the effort of verifying this rather than just nuking it. —Flicky1984 (talk) 13:06, 1 September 2020 (UTC)