Mobileread
Is Calibre compatible with Apple Silicon M1 Macs (using rosetta 2)?
#1  kirk8677 11-17-2020, 12:28 AM
For those early adopters getting their new ARM based Macs today, I'm really curious if Calibre runs out of the box using Rosetta 2? And also how hard would it be to recompile an ARM native version for the new Macs?
Reply 

#2  kovidgoyal 11-17-2020, 12:55 AM
Cant answer your first question, as to the second, pretty hard, all of calibre's deps would need to be dual compiled. In the past calibre has had dual ppc/x86 builds for os x, so its not impossible, just dont expect it to be anytime soon.
Reply 

#3  kirk8677 11-17-2020, 11:46 AM
Thanks, if anyone buys an M1 Mac and tries it, please do report on whether it works!
Reply 

#4  Quoth 11-17-2020, 01:45 PM
And also if Calibre works
Reply 

#5  binaryhermit 11-17-2020, 04:01 PM
I'd think in theory it *should* work, though performance might not be great
Reply 

#6  kirk8677 11-17-2020, 06:42 PM
@Quoth: indeed! The reviews are quite positive so far......

@Binaryhermit: quite the opposite, the initial benchmarks indicate that Intel code running on Mac's ARM actually is faster than many Intel native computers (google it). However, even Apple does not guarantee 100% of Intel code will work, and the exceptions are rather technical. I suspect Calibre will work fine based on what I have read.
Reply 

#7  kirk8677 11-17-2020, 06:54 PM
Quote kovidgoyal
Cant answer your first question, as to the second, pretty hard, all of calibre's deps would need to be dual compiled. In the past calibre has had dual ppc/x86 builds for os x, so its not impossible, just dont expect it to be anytime soon.
Here's a link from Apple that describes what is compatible: https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment

Note specifically this (does Calibre use Kernel extensions?):

What Can't Be Translated?
Rosetta can translate most Intel-based apps, including apps that contain just-in-time (JIT) compilers. However, Rosetta doesn’t translate the following executables:

Kernel extensions

Virtual Machine apps that virtualize x86_64 computer platforms

Rosetta translates all x86_64 instructions, but it doesn’t support the execution of some newer instruction sets and processor features, such as AVX, AVX2, and AVX512 vector instructions. If you include these newer instructions in your code, execute them only after verifying that they are available. For example, to determine if AVX512 vector instructions are available, use the sysctlbyname function to check the hw.optional.avx512f attribute.
Reply 

#8  kirk8677 11-17-2020, 07:56 PM
Quote binaryhermit
I'd think in theory it *should* work, though performance might not be great
Here's Lightroom Classic running under Rosetta. I suspect Calibre performance will not be an issue!

https://youtu.be/S-dOB326mlY?t=771
Reply 

#9  kovidgoyal 11-18-2020, 12:14 AM
No calibre does not use kernel extensions/virtual machines. As far as I know it *should* work fine, however, the proof of the pudding is in the eating.
Reply 

#10  kirk8677 11-18-2020, 01:04 AM
Thanks! I'm inspired enough to pick up my M1 Macbook Air tomorrow and try. 14 days to test it, at least!
Reply 

  Next »  Last »  (1/3)
Today's Posts | Search this Thread | Login | Register